[
  {
    "path": ".editorconfig",
    "content": "; EditorConfig is awesome: http://EditorConfig.org\n\n; top-most EditorConfig file\nroot = true\n\n; Unix-style newlines with a newline ending every file\n[*]\n; end_of_line = lf\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n; 4 space indentation\n[*.py]\nindent_style = space\nindent_size = 4\n\n; Tab indentation (no size specified)\n[*.js]\n; indent_style = tab\nindent_style = space\nindent_size = 2\n\n; Indentation override for all JS under lib directory\n[lib/**.js]\nindent_style = space\nindent_size = 2\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]\npatreon: # Replace with a single Patreon username\nopen_collective: # Replace with a single Open Collective username\nko_fi: # Replace with a single Ko-fi username\ntidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel\ncommunity_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry\nliberapay: # Replace with a single Liberapay username\nissuehunt: # Replace with a single IssueHunt username\notechie: # Replace with a single Otechie username\nlfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry\n# custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']\ncustom: ['https://www.paypal.com/donate/?hosted_button_id=RA6G29AZRUD44']\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "content": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: \"\"\nlabels: bug, need-triage\nassignees: \"\"\n---\n\nThank you for your contribution.\n\nSee [here](https://mar10.github.io/wunderbaum/index.html#/tutorial/contribute) for the contribution guidelines.\n\n**Describe the bug**\nA clear and concise description of what the bug is.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n\n1. Go to '...'\n2. Click on '....'\n3. Scroll down to '....'\n4. See error\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Screenshots**\nIf applicable, add screenshots to help explain your problem.\n\n**Minimal Reproducible Example**\nSee here for an details and an\n[HTML template](https://mar10.github.io/wunderbaum/index.html#/tutorial/contribute) or create one at [JS BIN](https://jsbin.com/lecasinava/edit?html,js,output)\n\n**Desktop (please complete the following information):**\n\n- OS: [e.g. iOS]\n- Browser [e.g. chrome, safari]\n- Version [e.g. 22]\n\n**Smartphone (please complete the following information):**\n\n- Device: [e.g. iPhone6]\n- OS: [e.g. iOS8.1]\n- Browser [e.g. stock browser, safari]\n- Version [e.g. 22]\n\n**Additional context**\nAdd any other context about the problem here.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "content": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: enhancement\nassignees: ''\n\n---\n\nThank you for your contribution.\n\nSee [here](https://mar10.github.io/wunderbaum/index.html#/tutorial/contribute) for the contribution guidelines.\n\n**Is your feature request related to a problem? Please describe.**\nA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\n\n**Describe the solution you'd like**\nA clear and concise description of what you want to happen.\n\n**Describe alternatives you've considered**\nA clear and concise description of any alternative solutions or features you've considered.\n\n**Additional context**\nAdd any other context or screenshots about the feature request here.\n"
  },
  {
    "path": ".github/SECURITY.md",
    "content": "# Security Policy\n\n## Supported Versions\n\nThese project versions are currently being supported with security updates:\n\n| Version | Supported          |\n| ------- | ------------------ |\n| 1.0.x   | :white_check_mark: |\n\n<!-- | < 4.0   | :x:                | -->\n\n\n## Reporting a Vulnerability\n\n<!--\nUse this section to tell people how to report a vulnerability.\n\nTell them where to go, how often they can expect to get an update on a\nreported vulnerability, what to expect if the vulnerability is accepted or\ndeclined, etc.\n-->\n\nThank you for reporting a security related issue using a private channel \ninstead of opening a public issue!\n\nThe security team (i.e. me) will try to acknowledge and respond as quick as \npossible.\n\nTo report a security issue, please email \n\n> security(at)wwwendt.de\n\nand, to your best knowledge, please\n\n- Include your name and affiliation (if any).\n- Include the scope of the vulnerability. Let us know who could use this exploit.\n- Mention the affected versions.\n- Document steps to identify the vulnerability. It is important that we can \n  reproduce your findings.\n- Describe how to exploit vulnerability, give us an attack scenario.\n- If known, describe mitigations for the issue.\n\nThis project follows a 90 day disclosure timeline.\n\n(See also [Vulnerability Disclosure Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Vulnerability_Disclosure_Cheat_Sheet.html#initial-report).)\n"
  },
  {
    "path": ".github/workflows/codeql.yml",
    "content": "# For most projects, this workflow file will not need changing; you simply need\n# to commit it to your repository.\n#\n# You may wish to alter this file to override the set of languages analyzed,\n# or to provide custom queries or build logic.\n#\n# ******** NOTE ********\n# We have attempted to detect the languages in your repository. Please check\n# the `language` matrix defined below to confirm you have the correct set of\n# supported CodeQL languages.\n#\nname: \"CodeQL\"\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    # The branches below must be a subset of the branches above\n    branches: [ \"main\" ]\n  schedule:\n    - cron: '40 8 * * 3'\n\njobs:\n  analyze:\n    name: Analyze\n    runs-on: ubuntu-latest\n    permissions:\n      actions: read\n      contents: read\n      security-events: write\n\n    strategy:\n      fail-fast: false\n      matrix:\n        language: [ 'javascript' ]\n        # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]\n        # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support\n        paths:\n          - src\n        # paths-ignore:\n        #   - src/node_modules\n        #   - '**/*.test.js'\n\n    steps:\n    - name: Checkout repository\n      uses: actions/checkout@v3\n\n    # Initializes the CodeQL tools for scanning.\n    - name: Initialize CodeQL\n      uses: github/codeql-action/init@v2\n      with:\n        languages: ${{ matrix.language }}\n        # If you wish to specify custom queries, you can do so here or in a config file.\n        # By default, queries listed here will override any specified in a config file.\n        # Prefix the list here with \"+\" to use these queries and those in the config file.\n\n        # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs\n        # queries: security-extended,security-and-quality\n\n\n    # Autobuild attempts to build any compiled languages  (C/C++, C#, Go, or Java).\n    # If this step fails, then you should remove it and run the build manually (see below)\n    - name: Autobuild\n      uses: github/codeql-action/autobuild@v2\n\n    # ℹ️ Command-line programs to run using the OS shell.\n    # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun\n\n    #   If the Autobuild fails above, remove it and uncomment the following three lines.\n    #   modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.\n\n    # - run: |\n    #   echo \"Run, Build Application using script\"\n    #   ./location_of_script_within_repo/buildscript.sh\n\n    - name: Perform CodeQL Analysis\n      uses: github/codeql-action/analyze@v2\n      with:\n        category: \"/language:${{matrix.language}}\"\n"
  },
  {
    "path": ".github/workflows/mkdocs.yml",
    "content": "name: mkdocs\non:\n  push:\n    branches:\n      - master\n      - main\npermissions:\n  contents: write\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n\n      - name: Configure Git Credentials\n        run: |\n          git config user.name github-actions[bot]\n          git config user.email 41898282+github-actions[bot]@users.noreply.github.com\n\n      - uses: actions/setup-python@v5\n        with:\n          python-version: 3.x\n\n      - run: echo \"cache_id=$(date --utc '+%V')\" >> $GITHUB_ENV\n\n      - uses: actions/cache@v4\n        with:\n          key: mkdocs-material-${{ env.cache_id }}\n          path: .cache\n          restore-keys: |\n            mkdocs-material-\n\n      - run: pip install mkdocs-material\n\n      - run: mkdocs gh-deploy --force\n\n      - name: Commit 'docs/unittest' folder to 'gh-pages'\n        run: |\n          git fetch\n          git checkout gh-pages\n          git checkout main -- docs/unittest\n          mv docs/unittest unittest\n          git add unittest\n          git commit -m \"Add '/docs/unittest' folder from 'main' branch to /unittest\"\n          git push origin gh-pages\n"
  },
  {
    "path": ".github/workflows/node.js.yml",
    "content": "# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node\n# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs\n\nname: Node.js CI\n\non:\n  push:\n    branches: [\"main\"]\n  pull_request:\n    branches: [\"main\"]\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    steps:\n      - uses: actions/checkout@v4\n      - name: Enable Corepack\n        run: corepack enable\n      - name: Use Node.js 20.x\n        uses: actions/setup-node@v4\n        with:\n          node-version: \"20.x\"\n          cache: \"yarn\"\n      - name: Install dependencies\n        run: yarn install\n        # run: yarn install --immutable\n      - run: yarn add grunt-cli\n      - name: Run lint\n        run: yarn lint\n      - name: Run tests\n        run: yarn test\n    # - name: Run build\n    #   run: yarn build\n"
  },
  {
    "path": ".github/workflows/stale.yml",
    "content": "# This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time.\n#\n# You can adjust the behavior by modifying this file.\n# For more information, see:\n# https://github.com/actions/stale\nname: Mark stale issues and pull requests\n\non:\n  schedule:\n  - cron: '26 14 * * *'\n\njobs:\n  stale:\n\n    runs-on: ubuntu-latest\n    permissions:\n      issues: write\n      pull-requests: write\n\n    steps:\n    - uses: actions/stale@v5\n      with:\n        repo-token: ${{ secrets.GITHUB_TOKEN }}\n        \n        days-before-stale: 90\n        days-before-close: 14\n        exempt-all-milestones: true\n        operations-per-run: 5\n\n        stale-issue-label: 'no-issue-activity'\n        exempt-issue-labels: 'pinned,security'\n        stale-issue-message: |\n          This issue has been automatically marked as stale because it has not had\n          recent activity. It will be closed if no further activity occurs.\n          Thank you for your contributions.\n        close-issue-reason: 'not_planned'\n        \n        stale-pr-label: 'no-pr-activity'\n        exempt-pr-labels: 'pinned,security'\n        stale-pr-message: |\n          This pull request has been automatically marked as stale because it has not had\n          recent activity. It will be closed if no further activity occurs.\n          Thank you for your contributions.\n"
  },
  {
    "path": ".gitignore",
    "content": "__pycache__\n.DS_Store\n.pyftpsync-meta.json\n.venv/\n*.log\n/.settings\n/archive\n/build\n/node_modules\n/site/\n/test/triage\ndocs/tutorial/FT_*.md\nplaywright-report/\ntest-results/\n/test/fixtures\ntest/issue_*.*\n/.yarn\n.pnp.cjs\n.pnp.loader.mjs\n"
  },
  {
    "path": ".hintrc",
    "content": "{\n  \"extends\": [\n    \"development\"\n  ]\n}"
  },
  {
    "path": ".prettierrc",
    "content": "# Style guide rationale:\n# Width 80 is default (and explicitly recommended) by prettier\n# - 2 space indentation and trailing semicolons seem to be most popular\n#     https://hackernoon.com/what-javascript-code-style-is-the-most-popular-5a3f5bec1f6f\n#   It is also the prettier's default\n# - Double quotes are default in prettier and mandatory in Black\n# - Trailing comma produces smaller diffs\n# BUT:\n# As a first step, we keep the current whitespace setting:\n# - use tabs\n# - tabWitdh 4\n\nprintWidth: 80\nuseTabs: false\ntabWidth: 2\nsemi: true\nsingleQuote: false\ntrailingComma: \"es5\"\nbracketSpacing: true  # because it's prettier's default\n#requirePragma: true\nendOfLine: \"auto\"  # don't rewrite all lines with `yarn format` on Windows\n#overrides:\n#  - files: \"*.test.js\"\n#    options:\n#      semi: true\n"
  },
  {
    "path": ".python-version",
    "content": "3.12\n"
  },
  {
    "path": ".vscode/launch.json",
    "content": "{\n  // Use IntelliSense to learn about possible attributes.\n  // Hover to view descriptions of existing attributes.\n  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387\n  \"version\": \"0.2.0\",\n  \"configurations\": [\n    {\n      \"name\": \"Python Debugger: Current File with Arguments\",\n      \"type\": \"debugpy\",\n      \"request\": \"launch\",\n      \"program\": \"${file}\",\n      \"console\": \"integratedTerminal\",\n      \"args\": [\"${command:pickArgs}\"]\n    },\n    {\n      \"type\": \"chrome\",\n      \"request\": \"launch\",\n      \"name\": \"Launch Chrome against localhost\",\n      \"url\": \"http://localhost:8080\",\n      \"webRoot\": \"${workspaceFolder}\"\n    }\n  ]\n}\n"
  },
  {
    "path": ".vscode/settings.json",
    "content": "{\n  \"python.formatting.provider\": \"black\",\n  \"files.exclude\": {\n    \"**/build\": true,\n    \"**/dist\": true,\n    \"**/docs/api\": true\n  },\n  \"explorer.excludeGitIgnore\": false,\n  \"editor.formatOnSave\": true,\n  \"black-formatter.importStrategy\": \"fromEnvironment\",\n  \"eslint.useFlatConfig\": true\n}"
  },
  {
    "path": ".yarnrc.yml",
    "content": "nodeLinker: node-modules\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# 1.0.0 / Unreleased\n\nFirst release.\n\n# Beta-Changes since v0.2.0\n\n> This section will be removed after the beta phase. <br>\n> Note that semantic versioning rules are not strictly followed during this phase.\n\n- v0.14.1: Fix checkbox assignment bug in wb_node.ts where the value was not being assigned to this.checkbox.\n\n- v0.14.0: Refactor sorting:\n  - Deprecate `sortChildren()` and `sortByProperty()` in favor of `sort()`.\n  - Add `key` callback argument and deprecate `cmp`.\n  - Add `tree.options.sortFoldersFirst` option.\n  - Add `tree.resort()`.\n- v0.14.0: Add `tree.reload()`.\n- v0.14.0: Add tree option `autoKeys`.\n- v0.14.0: Don't open file in browser when dropped in empty area.\n- v0.14.0: Fix icon when expanding an empty lazy node.\n- v0.14.0: Fix [#129](https://github.com/mar10/wunderbaum/issues/129)\n  Focus on click.\n- v0.14.0: Fix [#136)(https://github.com/mar10/wunderbaum/issues/136)\n  Fix behavior of setSelected in \"single\" selectMode.\n- v0.14.0: Add `dataTransfer` to `DropEventType`.\n- v0.14.0: Add `tree.children` and `tree.parent` getters.\n- v0.14.0: Add `tree.getRefKeys(selected)` and `node.getRefKeys(selected)` methods.\n- v0.14.0: Support HTML string for `iconMap.expander...` properties.\n- v0.14.0: Expose `Wunderbaum.iconMaps` to be used as defaults for `iconMap` when\n  passing partial maps.\n  Deprecate `Wunderbaum.iconMap` getter in favor of `iconMaps`.\n\n- v0.13.0: Add `tree.saveState()` and `tree.restoreState()` methods (experimental).\n- v0.13.0: Breadcrumb:\n  - Show node icons\n  - Parts can be clicked to activate parent nodes\n  - `connectTopBreadcrumb` can also be a selector\n- v0.13.0: Filter:\n  - BREAKING: Filter: changed `filter.connectInput` to `filter.connect: {...}`.\n  - Add support for prev/next-match buttons and an info string.\n  - New mode 'mark' (like 'dim' but does not gray out)\n- v0.13.0: Add `tree.countUnique()` method.\n\n- v0.12.1: Fix flat source format for positional args.\n\n- v0.12.0: Add `deep`, `resetLazy`, and `collapseOthers` options to\n  `node.` and `tree.expandAll()`.\n- v0.12.0: Add `resetLazy` options to `tree.setExpanded(false, ...)`.\n- v0.12.0: Fix [#107](https://github.com/mar10/wunderbaum/issues/107)\n  Double click on expander is calling .setExpanded() twice.\n- v0.12.0: Fix [#108](https://github.com/mar10/wunderbaum/issues/108)\n  Exception when clicking a cell in rowmode.\n- v0.12.0: Fix [#109](https://github.com/mar10/wunderbaum/issues/109)\n  expandAll: 'depth' option ignored when flag is set to false.\n\n- v0.11.1: Accept `0`/`1` for known boolean node property values (allowing for\n  more compact JSON sources).\n- v0.11.1: Fix passing `checkbox: 'radio'`.\n- v0.11.1: Fix sorting boolean and undefined column values.\n- v0.11.1: Prevent editing a status node title.\n- v0.11.1: Improve random data generation in demos.\n- v0.11.1: Fix drop effect on dragenter.\n\n- v0.11.0: BREAKING\n  Renamed `tree.options.resizableColumns` to `columnsResizable`.\n- v0.11.0: Add support for icon buttons in column headers (menu, sort, filter).\n- v0.11.0: Add `tree.options.columnsSortable` and `ColumnDefinition.sortable`.\n- v0.11.0: Add `tree.options.columnsFilerable` and `ColumnDefinition.filterable`.\n- v0.11.0: Add `tree.options.columnsMenu` and `ColumnDefinition.menu`.\n- v0.11.0: Add `tree.sortByProperty()`.\n- v0.11.0: Add `util.rotate()`.\n- v0.11.0: Migrate documentation from docsify to MkDocs.\n\n- v0.10.1: Fix column resizer for Edge.\n\n- v0.10.0: Add `tree.options.resizableColumns` and `ColumnDefinition.resizable`.\n- v0.10.0: Add `tree.resetColumns()`.\n\n- v0.9.0: DEPRECATE `tree.filterBranches()`:\n  use `tree.filterNodes(..., {matchBranch: true})` instead.\n- v0.9.0: Allow to pass a RegEx to filterNodes()\n- v0.9.0: Add `tree.countMatches()` method.\n- v0.9.0: Add `node.hasFocus()` method.\n- v0.9.0: Fix `tree.filter.hideExpanders` option.\n- v0.9.0: Drop `tree.filter.count` and `hideExpandedCounter` options in favor of\n  `tree.iconBadge` (see tutorial for an example).\n\n- v0.8.4: Fix #90: Add tooltip functionality to node titles.\n\n- v0.8.3: Fix #84: After editing a node title a javascript error\n  \"Cannot read properties of null (reading '\\_render')\" occurs (Chromium).\n\n- v0.8.2: Fix #82: Drag/Drop of nodes does not work any more.\n\n- v0.8.1: Distinguish between `.log()` and `.logDebug()`, which now call\n  `console.log()` and `console.debug()` respectively.\n- v0.8.1: Fix #72: DragEnter event does not provide the source node, only the target.\n- v0.8.1: Fix #73: Fix typing of `tree.options.dnd.dropEffect` and others.\n- v0.8.1: Fix #75: After reloading nodes with \"resetLazy\", wunderbaum is broken.\n- v0.8.1: Fix #76: Lazyload could be called for the same node multiple times.\n- v0.8.1: Fix #78: Add JS Bin template for reporting issues.\n- v0.8.1: Fix #79: Improve logging when drop operation is prevented.\n- Thanks to @jogibear9988 for the testing, opening, and contributing to most of\n  these issues.\n\n- v0.8.0: Add `expand(e)` and `beforeExpand(e)` events.\n- v0.8.0: Add `tree.findByRefKey()`, `node.getCloneList()`, and `node.isClone()`.\n- v0.8.0: Add `node.startEditTitle()`.\n- v0.8.0: Fix #70: resetLazy does not remove sub childrens \"key\"s, so error\n  occurs when re-adding.\n- v0.8.0: Allow to `throw new ValidationError()` in `tree.change(e)` event.\n- v0.8.0: `node.setActive()` allows to focus or edit a cell.\n- v0.8.0: Rename `tree.isEditing()` to `.isEditingTitle()`\n  and add `tree.isEditing()` to check for title _and_ grid cell editing.\n\n- v0.7.0: #68 Always reset 'loading' status.\n- v0.7.0: #69 prevent iOS browser from opening links on drop.\n- v0.7.0: BREAKING CHANGE:\n  Changed syntax format for compressed formats:\n\n  - `_keyMap: {\"t\": \"title\", ...}` -> `_keyMap: {\"title\": \"t\", ...}`.\n  - `_typeList: [...]` -> `_valueMap: {\"type\": [...]}`.\n    This allows to compress values of other properties than `type`.\n\n- v0.6.0: #61 Avoid race conditions in debounced 'change' event handler.\n- v0.6.0: #63 Don't overwrite dataTransfer 'text/plain' on drag'n'drop.\n- v0.6.0: #64 Accept Promise in `tree.load()`.\n\n- v0.5.5: Rename `defaultDropMode` -> `suggestedDropMode`; add `suggestedDropEffect`\n- v0.5.5: Work on drag'n'drop (dropEffects, cross-window, ...)\n\n- v0.5.4: Use eslint\n- v0.5.4: Removed deprecated `setModified()`\n\n- v0.5.2: Improved typing and drag'n'drop behavior (@jogibear9988)\n- v0.5.2: Add `tree.options.adjustHeight` (default: `true`)\n- v0.5.2: Add `tree.options.scrollIntoViewOnExpandClick` (default: `true`)\n- v0.5.2: Add `tree.options.dnd.serializeClipboardData` (default: `true`)\n\n- v0.5.1: Add EXPERIMENTAL support for `tree.iconBadge` (allows to implement counter badges, ...)\n\n- v0.5.0: Add support for Font Awesome icons (`options.iconMap: \"fontawesome6\"`)\n\n- v0.4.0: Add support for hierarchical selection (`selectMode: \"hier\"`)\n- v0.4.0: Add support for radio-groups\n\n- v0.3.6: Remove import of wunderbaum.scss into TS modules\n- v0.3.6: Renamed `setModified()` to `update()`\n- v0.3.6: Removed `node.render()`: use `node.update()` instead\n- v0.3.6: #26: New option `autoCollapse` and methods `node.collapseSiblings()`\n\n- v0.3.5: #23: New `columns` option `headerClasses`\n\n- v0.3.4: Add `tree.toDictArray()`\n- v0.3.4: #21: Use CSS variables to allow dynamic custom themes\n- v0.3.4: #22: Set box-sizing: border-box\n- v0.3.4: #23: wb-helper-end is not applied to column header\n\n- v0.3.2, v0.3.3: Improve distribution\n\n- v0.3.1: #20: Fix sourcemaps\n- v0.3.1: #19: Fix missing icons in deploymet by inlining\n- v0.3.1: #19: Make options optional: debugLevel, edit, filter, grid\n- v0.3.1: Update typescript to 5.x\n\n- v0.3.0: new option `tree.options.emptyChildListExpandable` controls if\n  parent nodes with `node.children === []` are still expandable\n  (like macOS Finder). Defaults to false.\n- v0.3.0: `load()`, `source` and `lazyLoad` now support an extended sytax :\n  ```js\n  source: {\n    url: \"path/to/request\",\n    params: {},  // key/value pairs converted to URL parameters\n    body: {},    // key/value pairs converted to JSON body (defaults to method POST)\n    options: {}, // passed to `fetch(url, OPTIONS)`\n  }\n  ```\n- v0.3.0: Add `node.setIcon()`.\n- v0.3.0: Add `tree.` and `node.sortChildren()`.\n- v0.3.0: Removed `tree.updateColumns()`. Use `tree.setModified(ChangeType.colStructure)` instead.\n"
  },
  {
    "path": "Gruntfile.ts",
    "content": "/*\n * Build scripts for Wunderbaum\n */\nmodule.exports = (grunt: any) => {\n  grunt.initConfig({\n    pkg: grunt.file.readJSON(\"package.json\"),\n\n    exec: {\n      build: {\n        stdin: true, // Allow interactive console\n        cmd: \"npm run build\",\n      },\n      copy_dist: {\n        stdin: true, // Allow interactive console\n        cmd: \"rm dist/*.* ; cp build/*.* dist\",\n      },\n      make_docs: {\n        stdin: true, // Allow interactive console\n        cmd: \"npm run api_docs\",\n      },\n      make_dist: {\n        stdin: true, // Allow interactive console\n        cmd: \"npm run make_dist\",\n      },\n    },\n    connect: {\n      dev: {\n        options: {\n          port: 8088,\n          base: \"./\",\n          keepalive: false, // pass on, so subsequent tasks (like watch or qunit) can start\n        },\n      },\n    },\n    qunit: {\n      options: {\n        httpBase: \"http://localhost:8088\",\n        //   timeout: 20000,\n        //   \"--cookies-file\": \"misc/cookies.txt\",\n      },\n      dist: [\"test/unit/test_dist.html\"],\n      // build: [\"test/unit/test-build.html\"],\n      develop: [\"test/unit/test-dev.html\"],\n    },\n    yabs: {\n      release: {\n        common: {\n          // defaults for all tools\n          manifests: [\"package.json\"],\n        },\n        // The following tools are run in order:\n        check: {\n          branch: [\"main\"],\n          canPush: true,\n          clean: true,\n          cmpVersion: \"gte\",\n        },\n        run_test: { tasks: [\"test_dev\"], always: true },\n        bump: {}, // 'bump' also uses the increment mode `yabs:release:MODE`\n        run_build: { tasks: [\"exec:build\"], always: true }, // TODO 'always' NYI\n        run_copy_dist: { tasks: [\"exec:copy_dist\"] },\n        run_make_docs: { tasks: [\"exec:make_docs\"] },\n        run_test_dist: { tasks: [\"test_dist\"] },\n        commit: { add: \".\" },\n        tag: {},\n        push: { tags: true, useFollowTags: true },\n        githubRelease: {\n          repo: \"mar10/wunderbaum\",\n          draft: false,\n        },\n        npmPublish: {},\n        bump_develop: { inc: \"prepatch\" },\n        commit_develop: {\n          message: \"Bump prerelease ({%= version %}) [ci skip]\",\n        },\n        push_develop: {},\n      },\n    },\n  });\n\n  // ----------------------------------------------------------------------------\n\n  // Load \"grunt*\" dependencies\n  for (const key in grunt.file.readJSON(\"package.json\").devDependencies) {\n    if (key !== \"grunt\" && key.indexOf(\"grunt\") === 0) {\n      grunt.loadNpmTasks(key);\n    }\n  }\n  // Register tasks\n  grunt.registerTask(\"test_dev\", [\n    \"connect:dev\", // start server\n    \"qunit:develop\",\n  ]);\n  grunt.registerTask(\"test_dist\", [\n    \"connect:dev\", // start server\n    \"qunit:dist\",\n  ]);\n  grunt.registerTask(\"ci\", [\"test_dev\"]); // Called by 'npm test'\n  grunt.registerTask(\"default\", [\"test_dev\"]);\n};\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2021-2025 Martin Wendt\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "Pipfile",
    "content": "[[source]]\nurl = \"https://pypi.org/simple\"\nverify_ssl = true\nname = \"pypi\"\n\n[packages]\n# fabulist = \"*\"\n\"nutree[all]\" = \">=0.9\"\nmkdocs = \"*\"\nmkdocs-material = \"*\"\n\n[dev-packages]\nblack = \"24.8\"\n\n[requires]\npython_version = \"3.12\"\n\n[pipenv]\n# allow_prereleases = true\n"
  },
  {
    "path": "README.md",
    "content": "# ![](docs/assets/tree_logo_32.png) wunderbaum\n\n[![GitHub version](https://img.shields.io/github/v/release/mar10/wunderbaum?display_name=tag&sort=semver)](https://github.com/mar10/wunderbaum/releases/latest)\n[![Node.js CI](https://github.com/mar10/wunderbaum/actions/workflows/node.js.yml/badge.svg)](https://github.com/mar10/wunderbaum/actions/workflows/node.js.yml)\n[![npm](https://img.shields.io/npm/dm/wunderbaum.svg)](https://www.npmjs.com/package/wunderbaum)\n[![jsDelivr](https://data.jsdelivr.com/v1/package/npm/wunderbaum/badge)](https://www.jsdelivr.com/package/npm/wunderbaum)\n[![Released with: grunt-yabs](https://img.shields.io/badge/released%20with-grunt--yabs-yellowgreen)](https://github.com/mar10/grunt-yabs)\n[![StackOverflow: wunderbaum](https://img.shields.io/badge/StackOverflow-wunderbaum-blue.svg)](https://stackoverflow.com/questions/tagged/wunderbaum)\n\n> A modern tree/treegrid control for the web.\n\nDesignated successor of [Fancytree](https://github.com/mar10/fancytree).<br>\nSee the [upgrade guide](https://mar10.github.io/wunderbaum/tutorial/migrate/#what-has-changed)\nfor details.\n\n[![Demo](https://mar10.github.io/wunderbaum/assets/teaser_2.png)](https://mar10.github.io/wunderbaum/demo/)\n\n- Supports drag and drop, editing, filtering, sorting, and multi-selection.\n- Written in TypeScript, transpiled to ES6 (esm & umd).\n- Performant handling of big data structures.\n- Provide an object oriented API.\n- Framework agnostic.\n- Zero dependencies.\n- Keyboard support.\n\n### Details\n\n- [Online Demo](https://mar10.github.io/wunderbaum/demo/)\n- [Documentation](https://mar10.github.io/wunderbaum/)\n- [API Reference](https://mar10.github.io/wunderbaum/api/index.html)\n- [Quick Start](https://mar10.github.io/wunderbaum/#/tutorial/quick_start)\n"
  },
  {
    "path": "dist/wunderbaum.css",
    "content": "@charset \"UTF-8\";\n/*!\n * Wunderbaum style sheet (generated from wunderbaum.scss)\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n:root,\n:host {\n  --wb-font-stack: Helvetica, sans-serif;\n  --wb-error-color: #b5373b;\n  --wb-node-text-color: #56534c;\n  --wb-border-color: #56534c;\n  --wb-bg-highlight-color: #26a0da;\n  --wb-header-color: #dedede;\n  --wb-background-color: #ffffff;\n  --wb-alternate-row-color: #f7f7f7;\n  --wb-alternate-row-color-hover: #f3f3f3;\n  --wb-focus-border-color: #275dc5;\n  --wb-drop-source-color: rgb(211.3703703704, 209.6481481481, 205.6296296296);\n  --wb-drop-target-color: rgb(212.2834645669, 236.2992125984, 247.7165354331);\n  --wb-dim-color: rgb(139.5925925926, 135.037037037, 124.4074074074);\n  --wb-error-background-color: rgb(244.6292372881, 220.8707627119, 221.625);\n  --wb-hover-color: rgb(247.1401574803, 251.5590551181, 253.6598425197);\n  --wb-hover-border-color: rgb(247.1401574803, 251.5590551181, 253.6598425197);\n  --wb-grid-color: #dedede;\n  --wb-active-color: #e5f3fb;\n  --wb-active-cell-color: rgb(125.1417322835, 198.1496062992, 232.8582677165);\n  --wb-active-border-color: #70c0e7;\n  --wb-active-hover-color: #dceff8;\n  --wb-active-hover-border-color: #26a0da;\n  --wb-active-column-color: rgb(247.1401574803, 251.5590551181, 253.6598425197);\n  --wb-active-header-column-color: rgb(196.5, 196.5, 196.5);\n  --wb-active-color-grayscale: #f0f0f0;\n  --wb-active-border-color-grayscale: rgb(171.5, 171.5, 171.5);\n  --wb-active-hover-color-grayscale: #eaeaea;\n  --wb-active-cell-color-grayscale: #b3b3b3;\n  --wb-grid-color-grayscale: #dedede;\n  --wb-filter-dim-color: #dedede;\n  --wb-filter-submatch-color: #868581;\n  --wb-row-outer-height: 22px;\n  --wb-row-inner-height: 20px;\n  --wb-row-padding-y: 1px;\n  --wb-col-padding-x: 2px;\n  --wb-icon-outer-height: 20px;\n  --wb-icon-outer-width: 20px;\n  --wb-icon-height: 16px;\n  --wb-icon-width: 16px;\n  --wb-icon-padding-y: 2px;\n  --wb-icon-padding-x: 2px;\n  --wb-header-height: 22px;\n}\n\ndiv.wunderbaum * {\n  box-sizing: border-box;\n}\n\ndiv.wunderbaum {\n  height: 100%;\n  min-height: 4px;\n  background-color: var(--wb-background-color);\n  margin: 0;\n  padding: 0;\n  font-family: var(--wb-font-stack);\n  font-size: 14px;\n  color: var(--wb-node-text-color);\n  border: 2px solid var(--wb-border-color);\n  border-radius: 4px;\n  background-clip: content-box;\n  overflow-x: auto;\n  overflow-y: scroll;\n}\ndiv.wunderbaum:focus, div.wunderbaum:focus-within {\n  border-color: var(--wb-focus-border-color);\n}\ndiv.wunderbaum.wb-disabled {\n  opacity: 0.7;\n  pointer-events: none;\n}\ndiv.wunderbaum div.wb-list-container {\n  position: relative;\n  min-height: 4px;\n}\ndiv.wunderbaum {\n  /* --- FIXED-COLUMN --- */\n}\ndiv.wunderbaum div.wb-header {\n  position: sticky;\n  top: 0;\n  z-index: 2;\n  -webkit-user-select: none; /* Safari */\n  user-select: none;\n}\ndiv.wunderbaum div.wb-header,\ndiv.wunderbaum div.wb-list-container {\n  overflow: unset;\n}\ndiv.wunderbaum div.wb-row {\n  position: absolute;\n  width: 100%;\n  height: var(--wb-row-outer-height);\n  line-height: var(--wb-row-outer-height);\n  border: 1px solid transparent;\n}\ndiv.wunderbaum {\n  /* Fixed column must be opaque, i.e. have the bg color set. */\n}\ndiv.wunderbaum.wb-fixed-col span.wb-col:first-of-type {\n  position: sticky;\n  left: 0;\n  z-index: 1;\n  background-color: var(--wb-background-color);\n}\ndiv.wunderbaum.wb-fixed-col div.wb-header span.wb-col:first-of-type {\n  background-color: var(--wb-header-color);\n}\ndiv.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type {\n  background-color: var(--wb-active-color);\n}\ndiv.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row.wb-active:hover span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row.wb-selected:hover span.wb-col:first-of-type {\n  background-color: var(--wb-active-hover-color);\n}\ndiv.wunderbaum.wb-fixed-col div.wb-node-list div.wb-row:hover span.wb-col:first-of-type {\n  background-color: var(--wb-hover-color);\n}\ndiv.wunderbaum.wb-fixed-col:not(:focus-within) div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col:not(:focus-within) div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col:not(:focus) div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col:not(:focus) div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type {\n  background-color: var(--wb-active-color-grayscale);\n  border-color: var(--wb-active-border-color-grayscale);\n}\ndiv.wunderbaum.wb-fixed-col:not(:focus-within) div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type:hover span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col:not(:focus-within) div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type:hover span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col:not(:focus) div.wb-node-list div.wb-row.wb-active span.wb-col:first-of-type:hover span.wb-col:first-of-type, div.wunderbaum.wb-fixed-col:not(:focus) div.wb-node-list div.wb-row.wb-selected span.wb-col:first-of-type:hover span.wb-col:first-of-type {\n  background-color: var(--wb-active-hover-color-grayscale);\n}\ndiv.wunderbaum:not(:focus-within) div.wb-node-list div.wb-row.wb-active, div.wunderbaum:not(:focus-within) div.wb-node-list div.wb-row.wb-selected, div.wunderbaum:not(:focus) div.wb-node-list div.wb-row.wb-active, div.wunderbaum:not(:focus) div.wb-node-list div.wb-row.wb-selected {\n  background-color: var(--wb-active-color-grayscale);\n  border-color: var(--wb-active-border-color-grayscale);\n}\ndiv.wunderbaum:not(:focus-within) div.wb-node-list div.wb-row.wb-active:hover, div.wunderbaum:not(:focus-within) div.wb-node-list div.wb-row.wb-selected:hover, div.wunderbaum:not(:focus) div.wb-node-list div.wb-row.wb-active:hover, div.wunderbaum:not(:focus) div.wb-node-list div.wb-row.wb-selected:hover {\n  background-color: var(--wb-active-hover-color-grayscale);\n}\ndiv.wunderbaum.wb-alternate div.wb-node-list div.wb-row:nth-of-type(even):not(.wb-active):not(.wb-selected) {\n  background-color: var(--wb-alternate-row-color);\n}\ndiv.wunderbaum.wb-alternate div.wb-node-list div.wb-row:nth-of-type(even):not(.wb-active):not(.wb-selected):hover {\n  background-color: var(--wb-alternate-row-color-hover);\n}\ndiv.wunderbaum div.wb-node-list div.wb-row:hover {\n  background-color: var(--wb-hover-color);\n}\ndiv.wunderbaum div.wb-node-list div.wb-row.wb-active, div.wunderbaum div.wb-node-list div.wb-row.wb-selected {\n  background-color: var(--wb-active-color);\n}\ndiv.wunderbaum div.wb-node-list div.wb-row.wb-active:hover, div.wunderbaum div.wb-node-list div.wb-row.wb-selected:hover {\n  background-color: var(--wb-active-hover-color);\n}\ndiv.wunderbaum div.wb-node-list div.wb-row.wb-focus:not(.wb-active) {\n  border-style: dotted;\n  border-color: var(--wb-active-border-color);\n}\ndiv.wunderbaum div.wb-node-list div.wb-row.wb-active {\n  border-style: solid;\n  border-color: var(--wb-active-border-color);\n}\ndiv.wunderbaum div.wb-node-list div.wb-row.wb-active:hover {\n  border-color: var(--wb-active-hover-border-color);\n}\ndiv.wunderbaum div.wb-node-list div.wb-row.wb-loading {\n  font-style: italic;\n}\ndiv.wunderbaum div.wb-node-list div.wb-row.wb-busy,\ndiv.wunderbaum div.wb-node-list div.wb-row i.wb-busy,\ndiv.wunderbaum div.wb-node-list div.wb-row .wb-col.wb-busy {\n  font-style: italic;\n  background: repeating-linear-gradient(45deg, transparent, transparent 3.88px, var(--wb-grid-color) 3.88px, var(--wb-grid-color) 7.78px);\n  animation: wb-busy-animation 2s linear infinite;\n}\ndiv.wunderbaum div.wb-node-list div.wb-row.wb-error, div.wunderbaum div.wb-node-list div.wb-row.wb-status-error {\n  color: var(--wb-error-color);\n}\ndiv.wunderbaum div.wb-header {\n  position: sticky;\n  height: var(--wb-header-height);\n  border-bottom: 1px solid var(--wb-border-color);\n  padding: 0;\n  background-color: var(--wb-header-color);\n}\ndiv.wunderbaum div.wb-header span.wb-col {\n  font-weight: bold;\n  overflow: visible;\n}\ndiv.wunderbaum div.wb-header span.wb-col-title {\n  width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\ndiv.wunderbaum div.wb-header span.wb-col-resizer {\n  position: absolute;\n  top: 0;\n  right: -1px;\n  width: 3px;\n  border: none;\n  border-right: 2px solid var(--wb-border-color);\n  height: 100%;\n  -webkit-user-select: none;\n  user-select: none;\n}\ndiv.wunderbaum div.wb-header span.wb-col-resizer.wb-col-resizer-active {\n  cursor: col-resize;\n}\ndiv.wunderbaum div.wb-header i.wb-col-icon {\n  float: inline-end;\n  padding-left: 2px;\n}\ndiv.wunderbaum div.wb-header i.wb-col-icon:hover {\n  cursor: pointer;\n  color: var(--wb-focus-border-color);\n}\ndiv.wunderbaum span.wb-col {\n  position: absolute;\n  display: inline-block;\n  overflow: hidden;\n  height: var(--wb-row-inner-height);\n  line-height: var(--wb-row-inner-height);\n  padding: 0 var(--wb-col-padding-x);\n  border-right: 1px solid var(--wb-grid-color);\n  white-space: nowrap;\n}\ndiv.wunderbaum span.wb-col:last-of-type {\n  border-right: none;\n}\ndiv.wunderbaum span.wb-node {\n  -webkit-user-select: none;\n  user-select: none;\n}\ndiv.wunderbaum span.wb-node i.wb-checkbox,\ndiv.wunderbaum span.wb-node i.wb-expander,\ndiv.wunderbaum span.wb-node i.wb-icon,\ndiv.wunderbaum span.wb-node i.wb-indent {\n  height: var(--wb-icon-outer-height);\n  width: var(--wb-icon-outer-width);\n  padding: var(--wb-icon-padding-y) var(--wb-icon-padding-x);\n  display: inline-block;\n}\ndiv.wunderbaum span.wb-node i.wb-expander,\ndiv.wunderbaum span.wb-node i.wb-icon {\n  background-repeat: no-repeat;\n  background-size: contain;\n}\ndiv.wunderbaum span.wb-node {\n  /* Fix Bootstrap Icon alignment */\n}\ndiv.wunderbaum span.wb-node i.bi::before {\n  vertical-align: baseline;\n}\ndiv.wunderbaum span.wb-node img.wb-icon {\n  width: var(--wb-icon-width);\n  height: var(--wb-icon-height);\n  padding: var(--wb-icon-padding-y) var(--wb-icon-padding-x);\n}\ndiv.wunderbaum span.wb-node i.wb-indent::before {\n  content: \" \";\n}\ndiv.wunderbaum span.wb-node i.wb-expander.wb-spin,\ndiv.wunderbaum span.wb-node i.wb-icon.wb-spin {\n  height: unset;\n  width: unset;\n  padding: 0 3px;\n  animation: wb-spin-animation 2s linear infinite;\n}\ndiv.wunderbaum span.wb-node span.wb-title {\n  min-width: 1em;\n  vertical-align: top;\n  overflow-x: hidden;\n  display: inline-block;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\ndiv.wunderbaum {\n  /* --- GRID --- */\n}\ndiv.wunderbaum.wb-grid div.wb-header div.wb-row span.wb-col:hover {\n  background-color: var(--wb-active-header-column-color);\n}\ndiv.wunderbaum.wb-grid.wb-cell-mode div.wb-header div.wb-row span.wb-col.wb-active {\n  background-color: var(--wb-active-hover-color);\n}\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row {\n  border-bottom-color: var(--wb-grid-color);\n}\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row:hover:not(.wb-active):not(.wb-selected) {\n  background-color: var(--wb-hover-color);\n}\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row.wb-active {\n  border-bottom-color: var(--wb-active-border-color);\n}\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col {\n  border-right: 1px solid var(--wb-grid-color);\n}\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col input.wb-input-edit,\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=color],\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=date],\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=datetime],\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=datetime-local],\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=email],\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=month],\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=number],\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=password],\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=search],\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=tel],\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=text],\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=time],\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=url],\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input[type=week],\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > select {\n  width: 100%;\n  max-height: var(--wb-row-inner-height);\n  border: none;\n}\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > input:focus,\ndiv.wunderbaum.wb-grid div.wb-node-list div.wb-row span.wb-col > select:focus {\n  border: 1px dashed #70c0e7;\n}\ndiv.wunderbaum.wb-grid.wb-cell-mode div.wb-row:not(.wb-colspan).wb-active span.wb-col.wb-active {\n  background-color: var(--wb-active-cell-color-grayscale);\n}\ndiv.wunderbaum.wb-grid.wb-cell-mode:focus-within div.wb-row:not(.wb-colspan):not(.wb-selected) span.wb-col.wb-active, div.wunderbaum.wb-grid.wb-cell-mode:focus div.wb-row:not(.wb-colspan):not(.wb-selected) span.wb-col.wb-active {\n  background-color: var(--wb-active-column-color);\n}\ndiv.wunderbaum.wb-grid.wb-cell-mode:focus-within div.wb-row:not(.wb-colspan):not(.wb-selected).wb-active, div.wunderbaum.wb-grid.wb-cell-mode:focus div.wb-row:not(.wb-colspan):not(.wb-selected).wb-active {\n  background-color: var(--wb-active-column-color);\n}\ndiv.wunderbaum.wb-grid.wb-cell-mode:focus-within div.wb-row:not(.wb-colspan):not(.wb-selected).wb-active span.wb-col.wb-active, div.wunderbaum.wb-grid.wb-cell-mode:focus div.wb-row:not(.wb-colspan):not(.wb-selected).wb-active span.wb-col.wb-active {\n  background-color: var(--wb-active-cell-color);\n}\ndiv.wunderbaum.wb-grid.wb-alternate div.wb-node-list div.wb-row:nth-of-type(even):not(.wb-active):not(.wb-selected) {\n  background-color: var(--wb-alternate-row-color);\n}\ndiv.wunderbaum.wb-grid.wb-alternate div.wb-node-list div.wb-row:nth-of-type(even):not(.wb-active):not(.wb-selected):hover {\n  background-color: var(--wb-alternate-row-color-hover);\n}\ndiv.wunderbaum.wb-grid:not(:focus-within) div.wb-node-list div.wb-row, div.wunderbaum.wb-grid:not(:focus) div.wb-node-list div.wb-row {\n  border-bottom-color: var(--wb-grid-color-grayscale);\n}\ndiv.wunderbaum {\n  /* --- FILTER --- */\n}\ndiv.wunderbaum.wb-ext-filter-dim div.wb-node-list div.wb-row, div.wunderbaum.wb-ext-filter-hide div.wb-node-list div.wb-row {\n  color: var(--wb-filter-dim-color);\n}\ndiv.wunderbaum.wb-ext-filter-dim div.wb-node-list div.wb-row.wb-submatch, div.wunderbaum.wb-ext-filter-hide div.wb-node-list div.wb-row.wb-submatch {\n  color: var(--wb-filter-submatch-color);\n}\ndiv.wunderbaum.wb-ext-filter-dim div.wb-node-list div.wb-row.wb-match, div.wunderbaum.wb-ext-filter-hide div.wb-node-list div.wb-row.wb-match {\n  color: var(--wb-node-text-color);\n}\ndiv.wunderbaum.wb-ext-filter-hide.wb-ext-filter-hide-expanders div.wb-node-list div.wb-row:not(.wb-submatch) i.wb-expander {\n  visibility: hidden;\n}\ndiv.wunderbaum {\n  /* --- DND --- */\n}\ndiv.wunderbaum div.wb-row.wb-drag-source {\n  opacity: 0.5;\n}\ndiv.wunderbaum div.wb-row.wb-drag-source .wb-node {\n  background-color: var(--wb-drop-source-color);\n}\ndiv.wunderbaum div.wb-row.wb-drop-target {\n  overflow: visible;\n}\ndiv.wunderbaum div.wb-row.wb-drop-target .wb-node {\n  background-color: var(--wb-drop-target-color);\n  overflow: visible;\n}\ndiv.wunderbaum div.wb-row.wb-drop-target .wb-node .wb-icon {\n  position: relative;\n  overflow: visible;\n}\ndiv.wunderbaum div.wb-row.wb-drop-target .wb-node .wb-icon::after {\n  position: absolute;\n  z-index: 1000;\n  content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAMAAABA3o1rAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACKUExURe/v9/f39+//7+f35+f/79bW5wgIawwYd97e55Tnpc731rjA2d7350LOY1LWa7Xvvf///wAQcyAze97e773vxnuczgA5pQBCpdb33rXvxu//9whjxgBaxlKU1oOz5ABz3gB73tbn99bW1rXe/wCM9xiU997v/97e3gCc/xil/9bv/wic/+/3/wAAALM9X5QAAAAudFJOU////////////////////////////////////////////////////////////wCCj3NVAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAqUlEQVQoU6WQ2w6CMAxA54agsCHq1HlFBREv/f/fs1tHAoaoiedlbXrWtGXwhV8FNqAXuAi4DwkShmE0cgGIcSwCCgkSkrAxpEonot0DhQxJptFsbnOpdNdgsFh6VtYwyqzTmG+oijDY7hr22E4qY7QybeGQe46nsxP0Wwc3Q1GWl+qKec8MlqKubxX+xzV7tkDuD1+3d+heigT2zGx/hCMUeUj4wL8CwAsW1kqCTugMCwAAAABJRU5ErkJggg==);\n  left: 0;\n  top: calc((22px - var(--wb-icon-height)) / 2);\n}\ndiv.wunderbaum div.wb-row.wb-drop-target.wb-drop-before .wb-node .wb-icon::after,\ndiv.wunderbaum div.wb-row.wb-drop-target.wb-drop-after .wb-node .wb-icon::after {\n  content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAMAAACROYkbAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACNUExURe/v9/f39+//7+f35+f/79bW5wgIawwYd97e55Tnpc731rjA2d7350LOY1LWa7Xvvf///wAQcyAze97e773vxgAAAHuczgA5pQBCpdb33rXvxu//9whjxgBaxlKU1oOz5ABz3gB73tbn99bW1rXe/wCM9xiU997v/97e3gCc/xil/9bv/wic/+/3/wAAAParqS4AAAAvdFJOU/////////////////////////////////////////////////////////////8AWqU49wAAAAlwSFlzAAAOwwAADsMBx2+oZAAAALlJREFUOE/FktsSgiAQhglMS8WstKLzQTM77Ps/XguL16I208cFyzB8/LPAYCC/ErARzcCFx23pBgnGfjAxBYhpKDwq3SBB5DeGWCYz0SUDClIkmgeLpV7HMiNDbrbbYbBaWzbaoKTaJiHfQe5oYLA/NBwxTiyVyqTSghYwox4MTmfL5XozgqxjAtODoizv1QPXPXqgKer6WeH9+Iw9XgF5ve15/Q+6/SQSsE+q8yMcocoREgzg3wKAL4vrpBIKREShAAAAAElFTkSuQmCC);\n  left: 0;\n  top: calc((22px - var(--wb-icon-height)) / 2 - 11px);\n}\ndiv.wunderbaum div.wb-row.wb-drop-target.wb-drop-after .wb-node .wb-icon::after {\n  top: calc((22px - var(--wb-icon-height)) / 2 + 11px);\n}\ndiv.wunderbaum {\n  /* --- SPECIAL EFFECTS --- */\n  /* Colorize indentation levels. */\n}\ndiv.wunderbaum.wb-rainbow i.wb-expander:nth-child(4n+1),\ndiv.wunderbaum.wb-rainbow i.wb-indent:nth-child(4n+1) {\n  background: rgb(255, 255, 201);\n}\ndiv.wunderbaum.wb-rainbow i.wb-expander:nth-child(4n+2),\ndiv.wunderbaum.wb-rainbow i.wb-indent:nth-child(4n+2) {\n  background: rgb(218, 255, 218);\n}\ndiv.wunderbaum.wb-rainbow i.wb-expander:nth-child(4n+3),\ndiv.wunderbaum.wb-rainbow i.wb-indent:nth-child(4n+3) {\n  background: rgb(255, 217, 254);\n}\ndiv.wunderbaum.wb-rainbow i.wb-expander:nth-child(4n+4),\ndiv.wunderbaum.wb-rainbow i.wb-indent:nth-child(4n+4) {\n  background: rgb(204, 250, 250);\n}\ndiv.wunderbaum {\n  /* Fade out expanders, when container is not hovered or active */\n}\ndiv.wunderbaum.wb-fade-expander i.wb-expander {\n  transition: color 1.5s;\n  color: rgba(86, 83, 76, 0);\n}\ndiv.wunderbaum.wb-fade-expander div.wb-row.wb-loading i.wb-expander, div.wunderbaum.wb-fade-expander:hover i.wb-expander, div.wunderbaum.wb-fade-expander:focus i.wb-expander, div.wunderbaum.wb-fade-expander:focus-within i.wb-expander,\ndiv.wunderbaum.wb-fade-expander [class*=wb-statusnode-] i.wb-expander {\n  transition: color 0.6s;\n  color: var(--wb-node-text-color);\n}\ndiv.wunderbaum {\n  /* Skeleton */\n}\ndiv.wunderbaum div.wb-row.wb-skeleton span.wb-title,\ndiv.wunderbaum div.wb-row.wb-skeleton i.wb-icon {\n  animation: wb-skeleton-animation 1s linear infinite alternate;\n  border-radius: 0.25em;\n  color: transparent;\n  opacity: 0.7;\n}\ndiv.wunderbaum {\n  /* Auto-hide checkboxes unless selected or hovered */\n}\ndiv.wunderbaum.wb-checkbox-auto-hide i.wb-checkbox {\n  visibility: hidden;\n}\ndiv.wunderbaum.wb-checkbox-auto-hide .wb-row:hover i.wb-checkbox,\ndiv.wunderbaum.wb-checkbox-auto-hide .wb-row.wb-selected i.wb-checkbox {\n  visibility: unset;\n}\ndiv.wunderbaum.wb-checkbox-auto-hide:focus .wb-row.wb-active i.wb-checkbox, div.wunderbaum.wb-checkbox-auto-hide:focus-within .wb-row.wb-active i.wb-checkbox {\n  visibility: unset;\n}\n\n/* --- TOOL CLASSES --- */\na.wb-breadcrumb {\n  cursor: pointer;\n  text-decoration: none;\n}\n\n.wb-helper-center {\n  text-align: center;\n}\n\n.wb-helper-disabled {\n  color: var(--wb-dim-color);\n}\n\n.wb-helper-hidden {\n  display: none;\n}\n\n.wb-helper-invalid {\n  color: var(--wb-error-color);\n}\n\n.wb-helper-lazy-expander {\n  color: var(--wb-bg-highlight-color);\n}\n\n.wb-helper-link {\n  cursor: pointer;\n}\n\n.wb-no-select {\n  -webkit-user-select: none;\n  user-select: none;\n}\n.wb-no-select span.wb-title {\n  -webkit-user-select: contain;\n  user-select: contain;\n}\n\nbutton.wb-filter-hide {\n  font-weight: bolder;\n}\n\n/* RTL support */\n.wb-helper-start,\n.wb-helper-start > input {\n  text-align: left;\n}\n\n.wb-helper-end,\n.wb-helper-end > input {\n  text-align: right;\n}\n\n.wb-rtl .wb-helper-start,\n.wb-rtl .wb-helper-start > input {\n  text-align: right;\n}\n.wb-rtl .wb-helper-end,\n.wb-rtl .wb-helper-end > input {\n  text-align: left;\n}\n\ni.wb-icon {\n  position: relative;\n}\ni.wb-icon > span.wb-badge {\n  position: absolute;\n  display: inline-block;\n  top: 0;\n  left: -0.6rem;\n  color: white;\n  background-color: var(--wb-bg-highlight-color);\n  padding: 0.2em 0.3rem 0.1em 0.3rem;\n  font-size: 60%;\n  font-weight: 200;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  border-radius: 0.5rem;\n  pointer-events: none;\n}\n\n/* Class 'wb-tristate' is used to mark checkboxes that should toggle like\n *   indeterminate -> checked -> unchecked -> indeterminate ...\n */\n.wb-col input[type=checkbox]:indeterminate {\n  color: var(--wb-dim-color);\n  background-color: red;\n}\n\n.wb-col input:invalid {\n  background-color: var(--wb-error-background-color);\n}\n\n.wb-col.wb-invalid {\n  border: 1px dotted var(--wb-error-color);\n}\n\n@keyframes wb-spin-animation {\n  0% {\n    transform: rotate(0deg);\n  }\n  to {\n    transform: rotate(1turn);\n  }\n}\n@keyframes wb-skeleton-animation {\n  0% {\n    background-color: hsl(200, 20%, 70%);\n  }\n  100% {\n    background-color: hsl(200, 20%, 95%);\n  }\n}\n@keyframes wb-busy-animation {\n  0% {\n    background-position: 0 0;\n  }\n  100% {\n    background-position: 0 22px;\n  }\n}\n\n/*# sourceMappingURL=wunderbaum.css.map */\n"
  },
  {
    "path": "dist/wunderbaum.d.ts",
    "content": "declare module \"debounce\" {\n    /*!\n     * Wunderbaum - debounce.ts\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n     */\n    type Procedure = (...args: any[]) => any;\n    type DebounceOptions = {\n        /** Specify invoking on the leading edge of the timeout. @default false */\n        leading?: boolean;\n        /** The maximum time `func` is allowed to be delayed before it's invoked.*/\n        maxWait?: number;\n        /**  Specify invoking on the trailing edge of the timeout. @default true */\n        trailing?: boolean;\n    };\n    type ThrottleOptions = {\n        /** Specify invoking on the leading edge of the timeout. @default true */\n        leading?: boolean;\n        /**  Specify invoking on the trailing edge of the timeout. @default true */\n        trailing?: boolean;\n    };\n    export interface DebouncedFunction<F extends Procedure> {\n        (this: ThisParameterType<F>, ...args: Parameters<F>): ReturnType<F>;\n        cancel: () => void;\n        flush: () => any;\n        pending: () => boolean;\n    }\n    /**\n     * Creates a debounced function that delays invoking `func` until after `wait`\n     * milliseconds have elapsed since the last time the debounced function was\n     * invoked, or until the next browser frame is drawn. The debounced function\n     * comes with a `cancel` method to cancel delayed `func` invocations and a\n     * `flush` method to immediately invoke them. Provide `options` to indicate\n     * whether `func` should be invoked on the leading and/or trailing edge of the\n     * `wait` timeout. The `func` is invoked with the last arguments provided to the\n     * debounced function. Subsequent calls to the debounced function return the\n     * result of the last `func` invocation.\n     *\n     * **Note:** If `leading` and `trailing` options are `true`, `func` is\n     * invoked on the trailing edge of the timeout only if the debounced function\n     * is invoked more than once during the `wait` timeout.\n     *\n     * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n     * until the next tick, similar to `setTimeout` with a timeout of `0`.\n     *\n     * If `wait` is omitted in an environment with `requestAnimationFrame`, `func`\n     * invocation will be deferred until the next frame is drawn (typically about\n     * 16ms).\n     *\n     * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n     * for details over the differences between `debounce` and `throttle`.\n     *\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to debounce.\n     * @param {number} [wait=0]\n     *  The number of milliseconds to delay; if omitted, `requestAnimationFrame` is\n     *  used (if available).\n     * @param [options={}] The options object.\n     * @returns {Function} Returns the new debounced function.\n     * @example\n     *\n     * // Avoid costly calculations while the window size is in flux.\n     * jQuery(window).on('resize', debounce(calculateLayout, 150))\n     *\n     * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n     * jQuery(element).on('click', debounce(sendMail, 300, {\n     *   'leading': true,\n     *   'trailing': false\n     * }))\n     *\n     * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n     * const debounced = debounce(batchLog, 250, { 'maxWait': 1000 })\n     * const source = new EventSource('/stream')\n     * jQuery(source).on('message', debounced)\n     *\n     * // Cancel the trailing debounced invocation.\n     * jQuery(window).on('popstate', debounced.cancel)\n     *\n     * // Check for pending invocations.\n     * const status = debounced.pending() ? \"Pending...\" : \"Ready\"\n     */\n    export function debounce<F extends Procedure>(func: F, wait?: number, options?: DebounceOptions): DebouncedFunction<F>;\n    /**\n     * Creates a throttled function that only invokes `func` at most once per\n     * every `wait` milliseconds (or once per browser frame). The throttled function\n     * comes with a `cancel` method to cancel delayed `func` invocations and a\n     * `flush` method to immediately invoke them. Provide `options` to indicate\n     * whether `func` should be invoked on the leading and/or trailing edge of the\n     * `wait` timeout. The `func` is invoked with the last arguments provided to the\n     * throttled function. Subsequent calls to the throttled function return the\n     * result of the last `func` invocation.\n     *\n     * **Note:** If `leading` and `trailing` options are `true`, `func` is\n     * invoked on the trailing edge of the timeout only if the throttled function\n     * is invoked more than once during the `wait` timeout.\n     *\n     * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n     * until the next tick, similar to `setTimeout` with a timeout of `0`.\n     *\n     * If `wait` is omitted in an environment with `requestAnimationFrame`, `func`\n     * invocation will be deferred until the next frame is drawn (typically about\n     * 16ms).\n     *\n     * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n     * for details over the differences between `throttle` and `debounce`.\n     *\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to throttle.\n     * @param {number} [wait=0]\n     *  The number of milliseconds to throttle invocations to; if omitted,\n     *  `requestAnimationFrame` is used (if available).\n     * @param [options={}] The options object.\n     * @returns {Function} Returns the new throttled function.\n     * @example\n     *\n     * // Avoid excessively updating the position while scrolling.\n     * jQuery(window).on('scroll', throttle(updatePosition, 100))\n     *\n     * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n     * const throttled = throttle(renewToken, 300000, { 'trailing': false })\n     * jQuery(element).on('click', throttled)\n     *\n     * // Cancel the trailing throttled invocation.\n     * jQuery(window).on('popstate', throttled.cancel)\n     */\n    export function throttle<F extends Procedure>(func: F, wait?: number, options?: ThrottleOptions): DebouncedFunction<F>;\n}\ndeclare module \"util\" {\n    /*!\n     * Wunderbaum - util\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n     */\n    /** @module util */\n    import { DebouncedFunction, debounce, throttle } from \"debounce\";\n    export { debounce, throttle };\n    /** Readable names for `MouseEvent.button` */\n    export const MOUSE_BUTTONS: {\n        [key: number]: string;\n    };\n    export const MAX_INT = 9007199254740991;\n    /**True if the client is using a macOS platform. */\n    export const isMac: boolean;\n    export type NotPromise<T> = T extends Promise<any> ? never : T;\n    export type FunctionType = (...args: any[]) => any;\n    export type EventCallbackType = (e: Event) => boolean | void;\n    /** A generic error that can be thrown to indicate a validation error when\n     * handling the `apply` event for a node title or the `change` event for a\n     * grid cell.\n     */\n    export class ValidationError extends Error {\n        constructor(message: string);\n    }\n    /**\n     * A ES6 Promise, that exposes the resolve()/reject() methods.\n     *\n     * TODO: See [Promise.withResolvers()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers#description)\n     * , a proposed standard, but not yet implemented in any browser.\n     */\n    export class Deferred {\n        private thens;\n        private catches;\n        private status;\n        private resolvedValue;\n        private rejectedError;\n        constructor();\n        resolve(value?: any): void;\n        reject(error?: any): void;\n        then(cb: any): void;\n        catch(cb: any): void;\n        promise(): {\n            then: (cb: any) => void;\n            catch: (cb: any) => void;\n        };\n    }\n    /**Throw an `Error` if `cond` is falsey. */\n    export function assert(cond: any, msg: string): void;\n    /** Run `callback` when document was loaded. */\n    export function documentReady(callback: () => void): void;\n    /** Resolve when document was loaded. */\n    export function documentReadyPromise(): Promise<void>;\n    /**\n     * Iterate over Object properties or array elements.\n     *\n     * @param obj `Object`, `Array` or null\n     * @param callback called for every item.\n     *  `this` also contains the item.\n     *  Return `false` to stop the iteration.\n     */\n    export function each(obj: any, callback: (index: number | string, item: any) => void | boolean): any;\n    /** Shortcut for `throw new Error(msg)`. */\n    export function error(msg: string): void;\n    /** Convert `<`, `>`, `&`, `\"`, `'`, and `/` to the equivalent entities. */\n    export function escapeHtml(s: string): string;\n    /**Convert a regular expression string by escaping special characters (e.g. `\"$\"` -> `\"\\$\"`) */\n    export function escapeRegex(s: string): string;\n    /** Convert `<`, `>`, `\"`, `'`, and `/` (but not `&`) to the equivalent entities. */\n    export function escapeTooltip(s: string): string;\n    /** TODO */\n    export function extractHtmlText(s: string): string;\n    /**\n     * Read the value from an HTML input element.\n     *\n     * If a `<span class=\"wb-col\">` is passed, the first child input is used.\n     * Depending on the target element type, `value` is interpreted accordingly.\n     * For example for a checkbox, a value of true, false, or null is returned if\n     * the element is checked, unchecked, or indeterminate.\n     * For datetime input control a numerical value is assumed, etc.\n     *\n     * Common use case: store the new user input in a `change` event handler:\n     *\n     * ```ts\n     *   change: (e) => {\n     *     const tree = e.tree;\n     *     const node = e.node;\n     *     // Read the value from the input control that triggered the change event:\n     *     let value = tree.getValueFromElem(e.element);\n     *     // and store it to the node model (assuming the column id matches the property name)\n     *     node.data[e.info.colId] = value;\n     *   },\n     * ```\n     * @param elem `<input>` or `<select>` element. Also a parent `span.wb-col` is accepted.\n     * @param coerce pass true to convert date/time inputs to `Date`.\n     * @returns the value\n     */\n    export function getValueFromElem(elem: HTMLElement, coerce?: boolean): any;\n    /**\n     * Set the value of an HTML input element.\n     *\n     * If a `<span class=\"wb-col\">` is passed, the first child input is used.\n     * Depending on the target element type, `value` is interpreted accordingly.\n     * For example a checkbox is set to checked, unchecked, or indeterminate if the\n     * value is truethy, falsy, or `null`.\n     * For datetime input control a numerical value is assumed, etc.\n     *\n     * Common use case: update embedded input controls in a `render` event handler:\n     *\n     * ```ts\n     *   render: (e) => {\n     *     // e.node.log(e.type, e, e.node.data);\n     *\n     *     for (const col of Object.values(e.renderColInfosById)) {\n     *       switch (col.id) {\n     *         default:\n     *           // Assumption: we named column.id === node.data.NAME\n     *           util.setValueToElem(col.elem, e.node.data[col.id]);\n     *           break;\n     *       }\n     *     }\n     *   },\n     * ```\n     *\n     * @param elem `<input>` or `<select>` element Also a parent `span.wb-col` is accepted.\n     * @param value a value that matches the target element.\n     */\n    export function setValueToElem(elem: HTMLElement, value: any): void;\n    /** Show/hide element by setting the `display` style to 'none'. */\n    export function setElemDisplay(elem: string | HTMLElement, flag: boolean): void;\n    /** Create and return an unconnected `HTMLElement` from a HTML string. */\n    export function elemFromHtml<T = HTMLElement>(html: string): T;\n    /** Return a HtmlElement from selector or cast an existing element. */\n    export function elemFromSelector<T = HTMLElement>(obj: string | T): T | null;\n    /**\n     * Return a canonical descriptive string for a keyboard or mouse event.\n     *\n     * The result also contains a prefix for modifiers if any, for example\n     * `\"x\"`, `\"F2\"`, `\"Control+Home\"`, or `\"Shift+clickright\"`.\n     * This is especially useful in `switch` statements, to make sure that modifier\n     * keys are considered and handled correctly:\n     * ```ts\n     *   const eventName = util.eventToString(e);\n     *   switch (eventName) {\n     *     case \"+\":\n     *     case \"Add\":\n     *       ...\n     *       break;\n     *     case \"Enter\":\n     *     case \"End\":\n     *     case \"Control+End\":\n     *     case \"Meta+ArrowDown\":\n     *     case \"PageDown\":\n     *       ...\n     *       break;\n     *   }\n     * ```\n     */\n    export function eventToString(event: Event): string;\n    /**\n     * Copy allproperties from one or more source objects to a target object.\n     *\n     * @returns the modified target object.\n     */\n    export function extend(...args: any[]): any;\n    /** Return true if `obj` is of type `array`. */\n    export function isArray(obj: any): obj is any[];\n    /** Return true if `obj` is of type `Object` and has no properties. */\n    export function isEmptyObject(obj: any): boolean;\n    /** Return true if `obj` is of type `function`. */\n    export function isFunction(obj: any): boolean;\n    /** Return true if `obj` is of type `Object`. */\n    export function isPlainObject(obj: any): boolean;\n    /** A dummy function that does nothing ('no operation'). */\n    export function noop(...args: any[]): any;\n    /**\n     * Bind one or more event handlers directly to an [EventTarget](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget).\n     *\n     * @param rootTarget EventTarget or selector\n     * @param eventNames\n     * @param handler\n     */\n    export function onEvent(rootTarget: EventTarget | string, eventNames: string, handler: EventCallbackType): void;\n    /**\n     * Bind one or more event handlers using event delegation.\n     *\n     * E.g. handle all 'input' events for input and textarea elements of a given\n     * form:\n     * ```ts\n     * onEvent(\"#form_1\", \"input\", \"input,textarea\", function (e: Event) {\n     *   console.log(e.type, e.target);\n     * });\n     * ```\n     *\n     * @param rootTarget EventTarget or selector\n     * @param eventNames\n     * @param selector\n     * @param handler\n     */\n    export function onEvent(rootTarget: EventTarget | string, eventNames: string, selector: string, handler: EventCallbackType): void;\n    /** Return a wrapped handler method, that provides `this._super` and `this._superApply`.\n     *\n     * ```ts\n      // Implement `opts.createNode` event to add the 'draggable' attribute\n      overrideMethod(ctx.options, \"createNode\", (event, data) => {\n        // Default processing if any\n        this._super.apply(this, event, data);\n        // Add 'draggable' attribute\n        data.node.span.draggable = true;\n      });\n      ```\n      */\n    export function overrideMethod(instance: any, methodName: string, handler: FunctionType, ctx?: any): void;\n    /** Run function after ms milliseconds and return a promise that resolves when done. */\n    export function setTimeoutPromise<T = unknown>(this: unknown, callback: (...args: any[]) => T, ms: number): Promise<T>;\n    /**\n     * Wait `ms` microseconds.\n     *\n     * Example:\n     * ```js\n     * await sleep(1000);\n     * ```\n     * @param ms duration\n     * @returns\n     */\n    export function sleep(ms: number): Promise<unknown>;\n    /**\n     * Set or rotate checkbox status with support for tri-state.\n     *\n     * An initial 'indeterminate' state becomes 'checked' on the first call.\n     *\n     * If the input element has the class 'wb-tristate' assigned, the sequence is:<br>\n     * 'indeterminate' -> 'checked' -> 'unchecked' -> 'indeterminate' -> ...<br>\n     * Otherwise we toggle like <br>\n     * 'checked' -> 'unchecked' -> 'checked' -> ...\n     */\n    export function toggleCheckbox(element: HTMLElement | string, value?: boolean | null, tristate?: boolean): void;\n    /**\n     * Return `opts.NAME` if opts is valid and\n     *\n     * @param opts dict, object, or null\n     * @param name option name (use dot notation to access extension option, e.g. `filter.mode`)\n     * @param defaultValue returned when `opts` is not an object, or does not have a NAME property\n     */\n    export function getOption(opts: any, name: string, defaultValue?: any): any;\n    /** Return the next value from a list of values (rotating). @since 0.11 */\n    export function rotate(value: any, values: any[]): any;\n    /** Convert an Array or space-separated string to a Set. */\n    export function toSet(val: any): Set<string>;\n    /** Convert a pixel string to number.\n     * We accept a number or a string like '123px'. If undefined, the first default\n     * value that is a number or a string ending with 'px' is returned.\n     *\n     * Example:\n     * ```js\n     * let x = undefined;\n     * let y = \"123px\";\n     * const width = util.toPixel(x, y, 100);  // returns 123\n     * ```\n     */\n    export function toPixel(...defaults: (string | number | undefined | null)[]): number;\n    /** Cast any value to <T>. */\n    export function unsafeCast<T>(value: any): T;\n    /** Return the the boolean value of the first non-null element.\n     * Example:\n     * ```js\n     * const opts = { flag: true };\n     * const value = util.toBool(opts.foo, opts.flag, false);  // returns true\n     * ```\n     */\n    export function toBool(...boolDefaults: (boolean | undefined | null)[]): boolean;\n    /**\n     * Return `val` unless `val` is a number in which case we convert to boolean.\n     * This is useful when a boolean value is stored as a 0/1 (e.g. in JSON) and\n     * we still want to maintain string values. null and undefined are returned as\n     * is. E.g. `checkbox` may be boolean or 'radio'.\n     */\n    export function intToBool(val: boolean | number | string | undefined): boolean | string | undefined;\n    /** Return a canonical string representation for an object's type (e.g. 'array', 'number', ...). */\n    export function type(obj: any): string;\n    /**\n     * Return a function that can be called instead of `callback`, but guarantees\n     * a limited execution rate.\n     * The execution rate is calculated based on the runtime duration of the\n     * previous call.\n     * Example:\n     * ```js\n     * throttledFoo = util.adaptiveThrottle(foo.bind(this), {});\n     * throttledFoo();\n     * throttledFoo();\n     * ```\n     */\n    export function adaptiveThrottle(this: unknown, callback: (...args: any[]) => void, options: object): DebouncedFunction<(...args: any[]) => void>;\n    /**\n     * MurmurHash3 implementation for strings.\n     * @param key The input string to hash.\n     * @param asString Optional convert result to zero-padded string of 8 characters.\n     * @param seed Optional seed value.\n     * @returns A 32-bit hash as a number or string.\n     */\n    export function murmurHash3(key: string, asString?: boolean, seed?: number): number | string;\n}\ndeclare module \"common\" {\n    /*!\n     * Wunderbaum - common\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n     */\n    import { ApplyCommandType, NavigationType, SourceObjectType, IconMapType, MatcherCallback } from \"types\";\n    import { WunderbaumNode } from \"wb_node\";\n    export const DEFAULT_DEBUGLEVEL = 4;\n    /**\n     * Fixed height of a row in pixel. Must match the SCSS variable `$row-outer-height`.\n     */\n    export const DEFAULT_ROW_HEIGHT = 22;\n    /**\n     * Fixed width of node icons in pixel. Must match the SCSS variable `$icon-outer-width`.\n     */\n    export const ICON_WIDTH = 20;\n    /**\n     * Adjust the width of the title span, so overflow ellipsis work.\n     * (2 x `$col-padding-x` + 3px rounding errors).\n     */\n    export const TITLE_SPAN_PAD_Y = 7;\n    /** Render row markup for N nodes above and below the visible viewport. */\n    export const RENDER_MAX_PREFETCH = 5;\n    /** Skip rendering new rows when we have at least N nodes rendeed above and below the viewport. */\n    export const RENDER_MIN_PREFETCH = 5;\n    /** Minimum column width if not set otherwise. */\n    export const DEFAULT_MIN_COL_WIDTH = 4;\n    /**\n     * A value for `node.type` that by convention may be used to mark a node as directory.\n     * It may be used to sort 'directories' to the top.\n     */\n    export const NODE_TYPE_FOLDER = \"folder\";\n    /** Regular expression to detect if a string describes an image URL (in contrast\n     * to a class name). Strings are considered image urls if they contain '.' or '/'.\n     * `<` is ignored, because it is probably an html tag.\n     */\n    export const TEST_FILE_PATH: RegExp;\n    /** Regular expression to detect if a string describes an HTML element. */\n    export const TEST_HTML: RegExp;\n    /** Currently supported default icon maps. */\n    type IconLibrary = \"bootstrap\" | \"fontawesome6\";\n    /**\n     * Default node icons for icon libraries\n     *\n     *  - 'bootstrap': {@link https://icons.getbootstrap.com}\n     *  - 'fontawesome6' {@link https://fontawesome.com/icons}\n     *\n     */\n    export const defaultIconMaps: {\n        [key in IconLibrary]: IconMapType;\n    };\n    export const KEY_NODATA = \"__not_found__\";\n    /** Define which keys are handled by embedded <input> control, and should\n     * *not* be passed to tree navigation handler in cell-edit mode.\n     */\n    export const INPUT_KEYS: {\n        [key: string]: Array<string>;\n    };\n    /** Dict keys that are evaluated by source loader (others are added to `tree.data` instead). */\n    export const RESERVED_TREE_SOURCE_KEYS: Set<string>;\n    /** Map `KeyEvent.key` to navigation action. */\n    export const KEY_TO_NAVIGATION_MAP: {\n        [key: string]: NavigationType;\n    };\n    /** Map `KeyEvent.key` to navigation action. */\n    export const KEY_TO_COMMAND_MAP: {\n        [key: string]: ApplyCommandType;\n    };\n    /** Return a callback that returns true if the node title matches the string\n     * or regular expression.\n     * @see {@link WunderbaumNode.findAll}\n     */\n    export function makeNodeTitleMatcher(match: string | RegExp): MatcherCallback;\n    /** Return a callback that returns true if the node title starts with a string (case-insensitive). */\n    export function makeNodeTitleStartMatcher(s: string): MatcherCallback;\n    /** Compare two nodes by title (case-insensitive).\n     * @deprecated Use `key` option instead of `cmp` in sort methods.\n     */\n    export function nodeTitleSorter(a: WunderbaumNode, b: WunderbaumNode): number;\n    /**\n     * Decompresses the source data by\n     * - converting from 'flat' to 'nested' format\n     * - expanding short alias names to long names (if defined in _keyMap)\n     * - resolving value indexes to value strings (if defined in _valueMap)\n     *\n     * @param source - The source object to be decompressed.\n     * @returns void\n     */\n    export function decompressSourceData(source: SourceObjectType): void;\n}\ndeclare module \"deferred\" {\n    /*!\n     * Wunderbaum - deferred\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n     */\n    type PromiseCallbackType = (val: any) => void;\n    type finallyCallbackType = () => void;\n    /**\n     * Implement a ES6 Promise, that exposes a resolve() and reject() method.\n     *\n     * Loosely mimics {@link https://api.jquery.com/category/deferred-object/ | jQuery.Deferred}.\n     * Example:\n     * ```js\n     * function foo() {\n     *   let dfd = new Deferred(),\n     *   ...\n     *   dfd.resolve('foo')\n     *   ...\n     *   return dfd.promise();\n     * }\n     * ```\n     */\n    export class Deferred<T> {\n        private _promise;\n        protected _resolve: any;\n        protected _reject: any;\n        constructor();\n        /** Resolve the Promise. */\n        resolve(value?: any): void;\n        /** Reject the Promise. */\n        reject(reason?: any): void;\n        /** Return the native Promise instance.*/\n        promise(): Promise<T>;\n        /** Call Promise.then on the embedded promise instance.*/\n        then(cb: PromiseCallbackType): Promise<void>;\n        /** Call Promise.catch on the embedded promise instance.*/\n        catch(cb: PromiseCallbackType): Promise<void | T>;\n        /** Call Promise.finally on the embedded promise instance.*/\n        finally(cb: finallyCallbackType): Promise<T>;\n    }\n}\ndeclare module \"wb_node\" {\n    import { Wunderbaum } from \"wunderbaum\";\n    import { AddChildrenOptions, ApplyCommandOptions, ApplyCommandType, ChangeType, CheckboxOption, ExpandAllOptions, IconOption, InsertNodeType, MakeVisibleOptions, MatcherCallback, NavigateOptions, NavigationType, NodeAnyCallback, NodeStatusType, NodeStringCallback, NodeToDictCallback, NodeVisitCallback, NodeVisitResponse, RenderOptions, ResetOrderOptions, ScrollIntoViewOptions, SetActiveOptions, SetExpandedOptions, SetSelectedOptions, SetStatusOptions, SortByPropertyOptions, SortCallback, SortOptions, SourceType, TooltipOption, TristateType, WbNodeData } from \"types\";\n    /**\n     * A single tree node.\n     *\n     * **NOTE:** <br>\n     * Generally you should not modify properties directly, since this may break\n     * the internal bookkeeping.\n     */\n    export class WunderbaumNode {\n        static sequence: number;\n        /** Reference to owning tree. */\n        tree: Wunderbaum;\n        /** Parent node (null for the invisible root node `tree.root`). */\n        parent: WunderbaumNode;\n        /** Name of the node.\n         * @see Use {@link setTitle} to modify. */\n        title: string;\n        /** Unique key. Passed with constructor or defaults to `SEQUENCE`.\n         * @see Use {@link setKey} to modify. */\n        readonly key: string;\n        /** Reference key. Unlike {@link key}, a `refKey` may occur multiple\n         * times within a tree (in this case we have 'clone nodes').\n         * @see Use {@link setKey} to modify.\n         */\n        readonly refKey: string | undefined;\n        /**\n         * Array of child nodes (null for leaf nodes).\n         * For lazy nodes, this is `null` or ùndefined` until the children are loaded\n         * and leaf nodes may be `[]` (empty array).\n         * @see {@link hasChildren}, {@link addChildren}, {@link lazy}.\n         */\n        children: WunderbaumNode[] | null;\n        /** Render a checkbox or radio button @see {@link selected}. */\n        checkbox?: CheckboxOption;\n        /** If true, this node's children are considerd radio buttons.\n         * @see {@link isRadio}.\n         */\n        radiogroup?: boolean;\n        /** If true, (in grid mode) no cells are rendered, except for the node title.*/\n        colspan?: boolean;\n        /** Icon definition. */\n        icon?: IconOption;\n        /** Lazy loading flag.\n         * @see {@link isLazy}, {@link isLoaded}, {@link isUnloaded}.\n         */\n        lazy?: boolean;\n        /** Expansion state.\n         * @see {@link isExpandable}, {@link isExpanded}, {@link setExpanded}. */\n        expanded?: boolean;\n        /** Selection state.\n         * @see {@link isSelected}, {@link setSelected}, {@link toggleSelected}. */\n        selected?: boolean;\n        unselectable?: boolean;\n        /** Node type (used for styling).\n         * @see {@link Wunderbaum.types}.\n         */\n        type?: string;\n        /** Tooltip definition (`true`: use node's title). */\n        tooltip?: TooltipOption;\n        /** Icon tooltip definition (`true`: use node's title). */\n        iconTooltip?: TooltipOption;\n        /** Additional classes added to `div.wb-row`.\n         * @see {@link hasClass}, {@link setClass}. */\n        classes: Set<string> | null;\n        /** Custom data that was passed to the constructor */\n        data: any;\n        statusNodeType?: NodeStatusType;\n        _isLoading: boolean;\n        _requestId: number;\n        _errorInfo: any | null;\n        _partsel: boolean;\n        _partload: boolean;\n        /**\n         * > 0 if matched (-1 to keep system nodes visible);\n         * Added and removed by filter code.\n         */\n        match?: number;\n        subMatchCount?: number;\n        /** @internal */\n        titleWithHighlight?: string;\n        _filterAutoExpanded?: boolean;\n        _rowIdx: number | undefined;\n        _rowElem: HTMLDivElement | undefined;\n        constructor(tree: Wunderbaum, parent: WunderbaumNode, data: WbNodeData);\n        /**\n         * Return readable string representation for this instance.\n         * @internal\n         */\n        toString(): string;\n        /**\n         * Iterate all descendant nodes depth-first, pre-order using `for ... of ...` syntax.\n         * More concise, but slightly slower than {@link WunderbaumNode.visit}.\n         *\n         * Example:\n         * ```js\n         * for(const n of node) {\n         *   ...\n         * }\n         * ```\n         */\n        [Symbol.iterator](): IterableIterator<WunderbaumNode>;\n        /** Call event handler if defined in tree.options.\n         * Example:\n         * ```js\n         * node._callEvent(\"edit.beforeEdit\", {foo: 42})\n         * ```\n         */\n        _callEvent(type: string, extra?: any): any;\n        /**\n         * Append (or insert) a list of child nodes.\n         *\n         * Tip: pass `{ before: 0 }` to prepend new nodes as first children.\n         *\n         * @returns first child added\n         */\n        addChildren(nodeData: WbNodeData | WbNodeData[], options?: AddChildrenOptions): WunderbaumNode;\n        /**\n         * Append or prepend a node, or append a child node.\n         *\n         * This a convenience function that calls addChildren()\n         *\n         * @param nodeData node definition\n         * @param [mode=child] 'before', 'after', 'firstChild', or 'child' ('over' is a synonym for 'child')\n         * @returns new node\n         */\n        addNode(nodeData: WbNodeData, mode?: InsertNodeType): WunderbaumNode;\n        /**\n         * Apply a modification (or navigation) operation.\n         *\n         * @see {@link Wunderbaum.applyCommand}\n         */\n        applyCommand(cmd: ApplyCommandType, options: ApplyCommandOptions): any;\n        /**\n         * Collapse all expanded sibling nodes if any.\n         * (Automatically called when `autoCollapse` is true.)\n         */\n        collapseSiblings(options?: SetExpandedOptions): any;\n        /**\n         * Add/remove one or more classes to `<div class='wb-row'>`.\n         *\n         * This also maintains `node.classes`, so the class will survive a re-render.\n         *\n         * @param className one or more class names. Multiple classes can be passed\n         *     as space-separated string, array of strings, or set of strings.\n         */\n        setClass(className: string | string[] | Set<string>, flag?: boolean): void;\n        /** Start editing this node's title. */\n        startEditTitle(): void;\n        /**\n         * Call `setExpanded()` on all descendant nodes.\n         *\n         * @param flag true to expand, false to collapse.\n         * @param options Additional options.\n         * @see {@link Wunderbaum.expandAll}\n         * @see {@link WunderbaumNode.setExpanded}\n         */\n        expandAll(flag?: boolean, options?: ExpandAllOptions): Promise<void>;\n        /**\n         * Find all descendant nodes that match condition (excluding self).\n         *\n         * If `match` is a string, search for exact node title.\n         * If `match` is a RegExp expression, apply it to node.title, using\n         * [RegExp.test()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test).\n         * If `match` is a callback, match all nodes for that the callback(node) returns true.\n         *\n         * Returns an empty array if no nodes were found.\n         *\n         * Examples:\n         * ```js\n         * // Match all node titles that match exactly 'Joe':\n         * nodeList = node.findAll(\"Joe\")\n         * // Match all node titles that start with 'Joe' case sensitive:\n         * nodeList = node.findAll(/^Joe/)\n         * // Match all node titles that contain 'oe', case insensitive:\n         * nodeList = node.findAll(/oe/i)\n         * // Match all nodes with `data.price` >= 99:\n         * nodeList = node.findAll((n) => {\n         *   return n.data.price >= 99;\n         * })\n         * ```\n         */\n        findAll(match: string | RegExp | MatcherCallback): WunderbaumNode[];\n        /** Return the direct child with a given key, index or null. */\n        findDirectChild(ptr: number | string | WunderbaumNode): WunderbaumNode | null;\n        /**\n         * Find first descendant node that matches condition (excluding self) or null.\n         *\n         * @see {@link WunderbaumNode.findAll} for examples.\n         */\n        findFirst(match: string | RegExp | MatcherCallback): WunderbaumNode | null;\n        /** Find a node relative to self.\n         *\n         * @see {@link Wunderbaum.findRelatedNode|tree.findRelatedNode()}\n         */\n        findRelatedNode(where: NavigationType, includeHidden?: boolean): any;\n        /**\n         * Iterator version of {@link WunderbaumNode.format}.\n         */\n        format_iter(name_cb?: NodeStringCallback, connectors?: string[]): IterableIterator<string>;\n        /**\n         * Return a multiline string representation of a node/subnode hierarchy.\n         * Mostly useful for debugging.\n         *\n         * Example:\n         * ```js\n         * console.info(tree.getActiveNode().format((n)=>n.title));\n         * ```\n         * logs\n         * ```\n         * Books\n         *  ├─ Art of War\n         *  ╰─ Don Quixote\n         * ```\n         * @see {@link WunderbaumNode.format_iter}\n         */\n        format(name_cb?: NodeStringCallback, connectors?: string[]): string;\n        /** Return the `<span class='wb-col'>` element with a given index or id.\n         * @returns {WunderbaumNode | null}\n         */\n        getColElem(colIdx: number | string): HTMLSpanElement;\n        /**\n         * Return all nodes with the same refKey.\n         *\n         * @param includeSelf Include this node itself.\n         * @see {@link Wunderbaum.findByRefKey}\n         */\n        getCloneList(includeSelf?: boolean): WunderbaumNode[];\n        /** Return the first child node or null.\n         * @returns {WunderbaumNode | null}\n         */\n        getFirstChild(): WunderbaumNode;\n        /** Return the last child node or null.\n         * @returns {WunderbaumNode | null}\n         */\n        getLastChild(): WunderbaumNode;\n        /** Return node depth (starting with 1 for top level nodes). */\n        getLevel(): number;\n        /** Return the successive node (under the same parent) or null. */\n        getNextSibling(): WunderbaumNode | null;\n        /** Return the parent node (null for the system root node). */\n        getParent(): WunderbaumNode | null;\n        /** Return an array of all parent nodes (top-down).\n         * @param includeRoot Include the invisible system root node.\n         * @param includeSelf Include the node itself.\n         */\n        getParentList(includeRoot?: boolean, includeSelf?: boolean): any[];\n        /** Return a string representing the hierarchical node path, e.g. \"a/b/c\".\n         * @param includeSelf\n         * @param part property name or callback\n         * @param separator\n         */\n        getPath(includeSelf?: boolean, part?: keyof WunderbaumNode | NodeAnyCallback, separator?: string): string;\n        /** Return the preceding node (under the same parent) or null. */\n        getPrevSibling(): WunderbaumNode | null;\n        /** Return true if node has children.\n         * Return undefined if not sure, i.e. the node is lazy and not yet loaded.\n         */\n        hasChildren(): boolean;\n        /** Return true if node has className set. */\n        hasClass(className: string): boolean;\n        /** Return true if node is the currently focused node. @since 0.9.0 */\n        hasFocus(): boolean;\n        /** Return true if this node is the currently active tree node. */\n        isActive(): boolean;\n        /** Return true if this node is a direct or indirect parent of `other`.\n         * @see {@link WunderbaumNode.isParentOf}\n         */\n        isAncestorOf(other: WunderbaumNode): boolean;\n        /** Return true if this node is a **direct** subnode of `other`.\n         * @see {@link WunderbaumNode.isDescendantOf}\n         */\n        isChildOf(other: WunderbaumNode): boolean;\n        /** Return true if this node's refKey is used by at least one other node.\n         */\n        isClone(): boolean;\n        /** Return true if this node's title spans all columns, i.e. the node has no\n         * grid cells.\n         */\n        isColspan(): boolean;\n        /** Return true if this node is a direct or indirect subnode of `other`.\n         * @see {@link WunderbaumNode.isChildOf}\n         */\n        isDescendantOf(other: WunderbaumNode): boolean;\n        /** Return true if this node has children, i.e. the node is generally expandable.\n         * If `andCollapsed` is set, we also check if this node is collapsed, i.e.\n         * an expand operation is currently possible.\n         */\n        isExpandable(andCollapsed?: boolean): boolean;\n        /** Return true if _this_ node is currently in edit-title mode.\n         *\n         * See {@link WunderbaumNode.startEditTitle}.\n         */\n        isEditingTitle(): boolean;\n        /** Return true if this node is currently expanded. */\n        isExpanded(): boolean;\n        /** Return true if this node is the first node of its parent's children. */\n        isFirstSibling(): boolean;\n        /** Return true if this node is the last node of its parent's children. */\n        isLastSibling(): boolean;\n        /** Return true if this node is lazy (even if data was already loaded) */\n        isLazy(): boolean;\n        /** Return true if node is lazy and loaded. For non-lazy nodes always return true. */\n        isLoaded(): boolean;\n        /** Return true if node is currently loading, i.e. a GET request is pending. */\n        isLoading(): boolean;\n        /** Return true if this node is a temporarily generated status node of type 'paging'. */\n        isPagingNode(): boolean;\n        /** Return true if this node is a **direct** parent of `other`.\n         * @see {@link WunderbaumNode.isAncestorOf}\n         */\n        isParentOf(other: WunderbaumNode): boolean;\n        /** Return true if this node is partially loaded. @experimental  */\n        isPartload(): boolean;\n        /** Return true if this node is partially selected (tri-state). */\n        isPartsel(): boolean;\n        /** Return true if this node has DOM representation, i.e. is displayed in the viewport. */\n        isRadio(): boolean;\n        /** Return true if this node has DOM representation, i.e. is displayed in the viewport. */\n        isRendered(): boolean;\n        /** Return true if this node is the (invisible) system root node.\n         * @see {@link WunderbaumNode.isTopLevel}\n         */\n        isRootNode(): boolean;\n        /** Return true if this node is selected, i.e. the checkbox is set.\n         * `undefined` if partly selected (tri-state), false otherwise.\n         */\n        isSelected(): TristateType;\n        /** Return true if this node is a temporarily generated system node like\n         * 'loading', 'paging', or 'error' (node.statusNodeType contains the type).\n         */\n        isStatusNode(): boolean;\n        /** Return true if this a top level node, i.e. a direct child of the (invisible) system root node. */\n        isTopLevel(): boolean;\n        /** Return true if node is marked lazy but not yet loaded.\n         * For non-lazy nodes always return false.\n         */\n        isUnloaded(): boolean;\n        /** Return true if all parent nodes are expanded. Note: this does not check\n         * whether the node is scrolled into the visible part of the screen or viewport.\n         */\n        isVisible(): boolean;\n        protected _loadSourceObject(source: any, level?: number): void;\n        _fetchWithOptions(source: any): Promise<any>;\n        /** Download  data from the cloud, then call `.update()`. */\n        load(source: SourceType): Promise<void>;\n        /**\n         * Load content of a lazy node.\n         * If the node is already loaded, nothing happens.\n         * @param [forceReload=false] If true, reload even if already loaded.\n         */\n        loadLazy(forceReload?: boolean): Promise<void>;\n        /** Write to `console.log` with node name as prefix if opts.debugLevel >= 4.\n         * @see {@link WunderbaumNode.logDebug}\n         */\n        log(...args: any[]): void;\n        /** Write to `console.debug` with node name as prefix if opts.debugLevel >= 4\n         * and browser console level includes debug/verbose messages.\n         * @see {@link WunderbaumNode.log}\n         */\n        logDebug(...args: any[]): void;\n        /** Write to `console.error` with node name as prefix if opts.debugLevel >= 1. */\n        logError(...args: any[]): void;\n        /** Write to `console.info` with node name as prefix if opts.debugLevel >= 3. */\n        logInfo(...args: any[]): void;\n        /** Write to `console.warn` with node name as prefix if opts.debugLevel >= 2. */\n        logWarn(...args: any[]): void;\n        /** Expand all parents and optionally scroll into visible area as neccessary.\n         * Promise is resolved, when lazy loading and animations are done.\n         * @param {object} [options] passed to `setExpanded()`.\n         *     Defaults to {noAnimation: false, noEvents: false, scrollIntoView: true}\n         */\n        makeVisible(options?: MakeVisibleOptions): Promise<unknown>;\n        /** Move this node to targetNode. */\n        moveTo(targetNode: WunderbaumNode, mode?: InsertNodeType, map?: NodeAnyCallback): void;\n        /** Set focus relative to this node and optionally activate.\n         *\n         * 'left' collapses the node if it is expanded, or move to the parent\n         * otherwise.\n         * 'right' expands the node if it is collapsed, or move to the first\n         * child otherwise.\n         *\n         * @param where 'down', 'first', 'last', 'left', 'parent', 'right', or 'up'.\n         *   (Alternatively the `event.key` that would normally trigger this move,\n         *   e.g. `ArrowLeft` = 'left'.\n         * @param options\n         */\n        navigate(where: NavigationType | string, options?: NavigateOptions): Promise<any>;\n        /** Delete this node and all descendants. */\n        remove(): void;\n        /** Remove all descendants of this node. */\n        removeChildren(): void;\n        /** Remove all HTML markup from the DOM. */\n        removeMarkup(): void;\n        protected _getRenderInfo(): any;\n        protected _createIcon(parentElem: HTMLElement, replaceChild: HTMLElement | null, showLoading: boolean): HTMLElement | null;\n        /**\n         * Create a whole new `<div class=\"wb-row\">` element.\n         * @see {@link WunderbaumNode._render}\n         */\n        protected _render_markup(opts: RenderOptions): void;\n        /**\n         * Render `node.title`, `.icon` into an existing row.\n         *\n         * @see {@link WunderbaumNode._render}\n         */\n        protected _render_data(opts: RenderOptions): void;\n        /**\n         * Update row classes to reflect active, focuses, etc.\n         * @see {@link WunderbaumNode._render}\n         */\n        protected _render_status(opts: RenderOptions): void;\n        _render(options?: RenderOptions): void;\n        /**\n         * Remove all children, collapse, and set the lazy-flag, so that the lazyLoad\n         * event is triggered on next expand.\n         */\n        resetLazy(): void;\n        /** Convert node (or whole branch) into a plain object.\n         *\n         * The result is compatible with node.addChildren().\n         *\n         * @param recursive include child nodes\n         * @param callback is called for every node, in order to allow\n         *     modifications.\n         *     Return `false` to ignore this node or `\"skip\"` to include this node\n         *     without its children.\n         * @see {@link Wunderbaum.toDictArray}.\n         */\n        toDict(recursive?: boolean, callback?: NodeToDictCallback): WbNodeData;\n        /** Return an option value that has a default, but may be overridden by a\n         * callback or a node instance attribute.\n         *\n         * Evaluation sequence:\n         *\n         * - If `tree.options.<name>` is a callback that returns something, use that.\n         * - Else if `node.<name>` is defined, use that.\n         * - Else if `tree.types[<node.type>]` is a value, use that.\n         * - Else if `tree.options.<name>` is a value, use that.\n         * - Else use `defaultValue`.\n         *\n         * @param name name of the option property (on node and tree)\n         * @param defaultValue return this if nothing else matched\n         * {@link Wunderbaum.getOption|Wunderbaum.getOption}\n         */\n        getOption(name: string, defaultValue?: any): any;\n        /** Make sure that this node is visible in the viewport.\n         * @see {@link Wunderbaum.scrollTo|Wunderbaum.scrollTo}\n         */\n        scrollIntoView(options?: ScrollIntoViewOptions): Promise<void>;\n        /**\n         * Activate this node, deactivate previous, send events, activate column and\n         * scroll into viewport.\n         */\n        setActive(flag?: boolean, options?: SetActiveOptions): Promise<void>;\n        /**\n         * Expand or collapse this node.\n         */\n        setExpanded(flag?: boolean, options?: SetExpandedOptions): Promise<void>;\n        /**\n         * Set keyboard focus here.\n         * @see {@link setActive}\n         */\n        setFocus(flag?: boolean): void;\n        /** Set a new icon path or class. */\n        setIcon(icon: string): void;\n        /** Change node's {@link key} and/or {@link refKey}.  */\n        setKey(key: string | null, refKey: string | null): void;\n        /**\n         * Trigger a repaint, typically after a status or data change.\n         *\n         * `change` defaults to 'data', which handles modifcations of title, icon,\n         * and column content. It can be reduced to 'ChangeType.status' if only\n         * active/focus/selected state has changed.\n         *\n         * This method will eventually call  {@link WunderbaumNode._render} with\n         * default options, but may be more consistent with the tree's\n         * {@link Wunderbaum.update} API.\n         */\n        update(change?: ChangeType): void;\n        /**\n         * Return an array of selected nodes.\n         * @param stopOnParents only return the topmost selected node (useful with selectMode 'hier')\n         */\n        getSelectedNodes(stopOnParents?: boolean): WunderbaumNode[];\n        /**\n         * Return an array of refKey values.\n         *\n         * RefKeys are unique identifiers for a node data, and are used to identify\n         * clones.\n         * If more than one node has the same refKey, it is only returned once.\n         * @param selected if true, only return refKeys of selected nodes.\n         */\n        getRefKeys(selected?: boolean): string[];\n        /** Toggle the check/uncheck state. */\n        toggleSelected(options?: SetSelectedOptions): TristateType;\n        /** Return true if at least on selectable descendant end-node is unselected. @internal */\n        _anySelectable(): boolean;\n        protected _changeSelectStatusProps(state: TristateType): boolean;\n        /**\n         * Fix selection status, after this node was (de)selected in `selectMode: 'hier'`.\n         * This includes (de)selecting all descendants.\n         */\n        fixSelection3AfterClick(opts?: SetSelectedOptions): void;\n        /**\n         * Fix selection status for multi-hier mode.\n         * Only end-nodes are considered to update the descendants branch and parents.\n         * Should be called after this node has loaded new children or after\n         * children have been modified using the API.\n         */\n        fixSelection3FromEndNodes(opts?: SetSelectedOptions): void;\n        /** Modify the check/uncheck state. */\n        setSelected(flag?: boolean, options?: SetSelectedOptions): TristateType;\n        /** Display node status (ok, loading, error, noData) using styles and a dummy child node. */\n        setStatus(status: NodeStatusType, options?: SetStatusOptions): WunderbaumNode | null;\n        /** Rename this node. */\n        setTitle(title: string): void;\n        /** Set the node tooltip. */\n        setTooltip(tooltip: TooltipOption): void;\n        /**\n         * Sort child list by title or custom criteria.\n         * @param {function} cmp custom compare function(a, b) that returns -1, 0, or 1\n         *    (defaults to sorting by title).\n         * @param {boolean} deep pass true to sort all descendant nodes recursively\n         * @deprecated use {@link sort}\n         */\n        sortChildren(cmp?: SortCallback | null, deep?: boolean): void;\n        /**\n         * Renumber nodes `_nativeIndex`. This is useful to allow to restore the\n         * order after sorting a column.\n         * This method is automatically called after loading new child nodes.\n         * @since 0.11.0\n         */\n        resetNativeChildOrder(options?: ResetOrderOptions): void;\n        /**\n         * Convenience method to implement column sorting.\n         * @since 0.11.0\n         * @deprecated use {@link sort}\n         */\n        sortByProperty(options: SortByPropertyOptions): void;\n        /**\n         * Implement column sorting.\n         * @since 0.14.0\n         */\n        sort(options: SortOptions): void;\n        /**\n         * Re-apply current sorting if any (use after lazy load).\n         * Example:\n         * ```js\n         * load: function (e) {\n         *   // Whe loading a lazy branch, apply current sort order if any\n         *   e.node.resort();\n         * },\n         * ```\n         * @since 0.14.0\n         */\n        resort(options?: SortOptions): void;\n        /**\n         * Trigger `modifyChild` event on a parent to signal that a child was modified.\n         * @param {string} operation Type of change: 'add', 'remove', 'rename', 'move', 'data', ...\n         */\n        triggerModifyChild(operation: string, child: WunderbaumNode | null, extra?: any): void;\n        /**\n         * Trigger `modifyChild` event on node.parent(!).\n         * @param {string} operation Type of change: 'add', 'remove', 'rename', 'move', 'data', ...\n         * @param {object} [extra]\n         */\n        triggerModify(operation: string, extra?: any): void;\n        /**\n         * Call `callback(node)` for all descendant nodes in hierarchical order (depth-first, pre-order).\n         *\n         * Stop iteration, if fn() returns false. Skip current branch, if fn()\n         * returns \"skip\".<br>\n         * Return false if iteration was stopped.\n         *\n         * @param {function} callback the callback function.\n         *     Return false to stop iteration, return \"skip\" to skip this node and\n         *     its children only.\n         * @see `wb_node.WunderbaumNode.IterableIterator<WunderbaumNode>`\n         * @see {@link Wunderbaum.visit}.\n         */\n        visit(callback: NodeVisitCallback, includeSelf?: boolean): NodeVisitResponse;\n        /** Call fn(node) for all parent nodes, bottom-up, including invisible system root.<br>\n         * Stop iteration, if callback() returns false.<br>\n         * Return false if iteration was stopped.\n         *\n         * @param callback the callback function. Return false to stop iteration\n         */\n        visitParents(callback: (node: WunderbaumNode) => boolean | void, includeSelf?: boolean): boolean;\n        /**\n         * Call fn(node) for all sibling nodes.<br>\n         * Stop iteration, if fn() returns false.<br>\n         * Return false if iteration was stopped.\n         *\n         * @param callback the callback function.\n         *     Return false to stop iteration.\n         * @param includeSelf include this node in the iteration.\n         */\n        visitSiblings(callback: (node: WunderbaumNode) => boolean | void, includeSelf?: boolean): boolean;\n        /**\n         * [ext-filter] Return true if this node is matched by current filter (or no filter is active).\n         */\n        isMatched(): boolean;\n    }\n}\ndeclare module \"wb_options\" {\n    /*!\n     * Wunderbaum - options\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n     */\n    import { ColumnDefinitionList, DndOptionsType, DynamicBoolOption, DynamicBoolOrStringOption, DynamicCheckboxOption, DynamicIconOption, EditOptionsType, FilterOptionsType, IconMapType, NavModeEnum, NodeTypeDefinitionMap, SelectModeType, SourceType, TranslationsType, WbActivateEventType, WbButtonClickEventType, WbCancelableEventResultType, WbChangeEventType, WbClickEventType, WbDeactivateEventType, WbErrorEventType, WbExpandEventType, WbIconBadgeCallback, WbIconBadgeEventResultType, WbInitEventType, WbKeydownEventType, WbNodeEventType, WbReceiveEventType, WbRenderEventType, WbSelectEventType, WbTreeEventType } from \"types\";\n    /**\n     * Properties of {@link wunderbaum.Wunderbaum.options}.\n     *\n     * This is similar, but not identical, to the options that can be passed to the\n     * constructor(@see {@link InitWunderbaumOptions}).\n     */\n    export interface WunderbaumOptions {\n        /**\n         * If true, add a `wb-skeleton` class to all nodes, that will result in a\n         * 'glow' effect. Typically used with initial dummy nodes, while loading the\n         * real data.\n         * @default false.\n         */\n        skeleton: boolean;\n        /**\n         * Translation map for some system messages.\n         */\n        strings: TranslationsType;\n        /**\n         * 0:quiet, 1:errors, 2:warnings, 3:info, 4:verbose\n         * @default 3 (4 in local debug environment)\n         */\n        debugLevel: number;\n        /**\n         * Number of levels that are forced to be expanded, and have no expander icon.\n         * E.g. 1 would keep all toplevel nodes expanded.\n         * @default 0\n         */\n        minExpandLevel: number;\n        /**\n         * If true, allow to expand parent nodes, even if `node.children` conatains\n         * an empty array (`[]`). This is the the behavior of macOS Finder, for example.\n         * @default false\n         */\n        emptyChildListExpandable: boolean;\n        /**\n         * Height of a node row div.\n         * @default 22\n         */\n        rowHeightPx: number;\n        /**\n         * Icon font definition. May be a string (e.g. \"fontawesome6\" or \"bootstrap\")\n         * or a map of `iconName: iconClass` pairs.\n         * Note: the icon font must be loaded separately.\n         * In order to only override some defauöt icons, use this pattern:\n         * ```js\n         * const tree = new mar10.Wunderbaum({\n         *   ...\n         *   iconMap: Object.assign(Wunderbaum.iconMaps.bootstrap, {\n         *     folder: \"bi bi-archive\",\n         *   }),\n         * });\n         * ```\n      \n         * @default \"bootstrap\"\n         */\n        iconMap: string | IconMapType;\n        /**\n         * Collapse siblings when a node is expanded.\n         * @default false\n         */\n        autoCollapse: boolean;\n        /**\n         * If true, the tree will automatically adjust its height to fit the parent\n         * container. This is useful when the tree is embedded in a container with\n         * a fixed or calculated sized.\n         * If the parent container is unsized (e.g. grows with its content, `height: auto`),\n         * then we can define a `height: ...` or `max_height: ...` style on the parent.\n         * To avoid a recursive resize-loop, it may be helpful to set `overflow: hidden`\n         * on the parent container.\n         *\n         * Set this option to `false` will disable auto-resizing.\n         *\n         * @default: true\n         */\n        adjustHeight: boolean;\n        /**\n         * HTMLElement or selector that receives the top nodes breadcrumb.\n         * @default undefined\n         */\n        connectTopBreadcrumb: HTMLElement | string | null;\n        /**\n         * @default  NavModeEnum.startRow\n         */\n        navigationModeOption: NavModeEnum;\n        /**\n         * Show/hide header (default: null)\n         * null: assume false for plain tree and true for grids.\n         * string: use text as header (only for plain trees)\n         * true: display a header (use tree's id as text for plain trees)\n         * false: do not display a header\n         */\n        header: boolean | string | null;\n        /**\n         * Show a `<progress>` element while loading data.\n         * @default false.\n         */\n        showSpinner: boolean;\n        /**\n         * Generate missing keys by hashing a combination of refKey (or title) and\n         * the parent key. This is useful when the source data does not contain unique\n         * keys but we want stable keys for persisting the active node, selection or\n         * expansion state. Note that this still assumes that the same refKey must not\n         * appear twice in the same parent node.\n         * @default false.\n         */\n        autoKeys: boolean;\n        /**\n         * If true, render a checkbox before the node tile to allow selection with the\n         * mouse. Pass `\"radio\"` to render a radio button instead.\n         * @default false.\n         */\n        checkbox: DynamicCheckboxOption;\n        /** Optional callback to render icons per node. */\n        icon?: DynamicIconOption;\n        /** Optional callback to render a tooltip for the icon. */\n        iconTooltip?: DynamicBoolOrStringOption;\n        /** Optional callback to render a tooltip for the node title.\n         * Pass `true` to use the node's `title` property as tooltip.\n         */\n        tooltip?: DynamicBoolOrStringOption;\n        /** Optional callback to make a node unselectable. */\n        unselectable?: DynamicBoolOption;\n        /**\n         * @default true\n         */\n        enabled: boolean;\n        /**\n         *\n         * @default false\n         */\n        fixedCol: boolean;\n        /**\n         * Default value for ColumnDefinition.filterable option.\n         * @default false\n         * @since 0.11.0\n         */\n        columnsFilterable: boolean;\n        /**\n         * Default value for ColumnDefinition.menu option.\n         * @default false\n         * @since 0.11.0\n         */\n        columnsMenu: boolean;\n        /**\n         * Default value for ColumnDefinition.resizable option.\n         * @default false\n         * @since 0.10.0\n         */\n        columnsResizable?: boolean;\n        /**\n         * Default value for ColumnDefinition.sortable option.\n         * @default false\n         * @since 0.11.0\n         */\n        columnsSortable?: boolean;\n        /**\n         * Group nodes with children or of `type: 'folder'` at the top when sorting.\n         * If a function is passed, it is called with the node as argument to determine\n         * whether the node is a folder or not. The function should return `true` for\n         * folders.\n         * and should return `true` for folders.\n         * @default false\n         * @since 0.14.0\n         */\n        sortFoldersFirst?: DynamicBoolOption;\n        /**\n         * @default \"multi\"\n         */\n        selectMode: SelectModeType;\n        /**\n         * @default true\n         */\n        quicksearch: boolean;\n        /**\n         * Scroll Node into view on Expand Click\n         * @default true\n         */\n        scrollIntoViewOnExpandClick: boolean;\n        /** Configuration options for the drag-and-drop extension. */\n        dnd: DndOptionsType;\n        /** Configuration options for the edit-title extension. */\n        edit: EditOptionsType;\n        /** Configuration options for the node-filter extension. */\n        filter: FilterOptionsType;\n        /**\n         * `e.node` was activated.\n         * @category Callback\n         */\n        activate?: (e: WbActivateEventType) => void;\n        /**\n         * `e.node` is about to be activated.\n         * Return `false` to prevent default handling, i.e. activating the node.\n         * See also `deactivate` event.\n         * @category Callback\n         */\n        beforeActivate?: (e: WbActivateEventType) => WbCancelableEventResultType;\n        /**\n         * `e.node` is about to be expanded/collapsed.\n         * Return `false` to prevent default handling, i.e. expanding/collapsing the node.\n         * @category Callback\n         */\n        beforeExpand?: (e: WbExpandEventType) => WbCancelableEventResultType;\n        /**\n         * Return `false` to prevent default handling, i.e. (de)selecting the node.\n         * @category Callback\n         */\n        beforeSelect?: (e: WbSelectEventType) => WbCancelableEventResultType;\n        /**\n         * Return `false` to prevent default handling, i.e. (de)selecting the node.\n         * @category Callback\n         */\n        buttonClick?: (e: WbButtonClickEventType) => void;\n        /**\n         *\n         * @category Callback\n         */\n        change?: (e: WbChangeEventType) => void;\n        /**\n         *\n         * Return `false` to prevent default behavior, e.g. expand/collapse, (de)selection, or activation.\n         * @category Callback\n         */\n        click?: (e: WbClickEventType) => WbCancelableEventResultType;\n        /**\n         * Return `false` to prevent default behavior, e.g. expand/collapse.\n         * @category Callback\n         */\n        dblclick?: (e: WbClickEventType) => WbCancelableEventResultType;\n        /**\n         * `e.node` was deactivated.\n         *\n         * Return `false` to prevent default handling, e.g. deactivating the node\n         * and activating the next.\n         * See also `activate` event.\n         * @category Callback\n         */\n        deactivate?: (e: WbDeactivateEventType) => WbCancelableEventResultType;\n        /**\n         * `e.node` was discarded from the viewport and its HTML markup removed.\n         * @category Callback\n         */\n        discard?: (e: WbNodeEventType) => void;\n        /**\n         * `e.node` is about to be rendered. We can add a badge to the icon cell here.\n         * @category Callback\n         */\n        iconBadge?: (e: WbIconBadgeCallback) => WbIconBadgeEventResultType;\n        /**\n         * An error occurred, e.g. during initialization or lazy loading.\n         * @category Callback\n         */\n        error?: (e: WbErrorEventType) => void;\n        /**\n         * `e.node` was expanded (`e.flag === true`) or collapsed (`e.flag === false`)\n         * @category Callback\n         */\n        expand?: (e: WbTreeEventType) => void;\n        /**\n         * The tree received or lost focus.\n         * Check `e.flag` for status.\n         * @category Callback\n         */\n        focus?: (e: WbTreeEventType) => void;\n        /**\n         * Fires when the tree markup was created and the initial source data was loaded.\n         * Typical use cases would be activating a node, setting focus, enabling other\n         * controls on the page, etc.<br>\n         *  Also sent if an error occured during initialization (check `e.error` for status).\n         * @category Callback\n         */\n        init?: (e: WbInitEventType) => void;\n        /**\n         * Fires when a key was pressed while the tree has focus.\n         * `e.node` is set if a node is currently active.\n         * Return `false` to prevent default navigation.\n         * @category Callback\n         */\n        keydown?: (e: WbKeydownEventType) => WbCancelableEventResultType;\n        /**\n         * Fires when a node that was marked 'lazy', is expanded for the first time.\n         * Typically we return an endpoint URL or the Promise of a fetch request that\n         * provides a (potentially nested) list of child nodes.\n         * @category Callback\n         */\n        lazyLoad?: (e: WbNodeEventType) => void;\n        /**\n         * Fires when data was loaded (initial request, reload, or lazy loading),\n         * after the data is applied and rendered.\n         * @category Callback\n         */\n        load?: (e: WbNodeEventType) => void;\n        /**\n         * @category Callback\n         */\n        modifyChild?: (e: WbNodeEventType) => void;\n        /**\n         * Fires when data was fetched (initial request, reload, or lazy loading),\n         * but before the data is applied and rendered.\n         * Here we can modify and adjust the received data, for example to convert an\n         * external response to native Wunderbaum syntax.\n         * @category Callback\n         */\n        receive?: (e: WbReceiveEventType) => void;\n        /**\n         * Fires when a node is about to be displayed.\n         * The default HTML markup is already created, but not yet added to the DOM.\n         * Now we can tweak the markup, create HTML elements in this node's column\n         * cells, etc.\n         * See also `Custom Rendering` for details.\n         * @category Callback\n         */\n        render?: (e: WbRenderEventType) => void;\n        /**\n         * Same as `render(e)`, but for the status nodes, i.e. `e.node.statusNodeType`.\n         * @category Callback\n         */\n        renderStatusNode?: (e: WbRenderEventType) => void;\n        /**\n         *`e.node` was selected (`e.flag === true`) or deselected (`e.flag === false`)\n         * @category Callback\n         */\n        select?: (e: WbNodeEventType) => void;\n        /**\n         * Fires when the viewport content was updated, after scroling, expanding etc.\n         * @category Callback\n         */\n        update?: (e: WbTreeEventType) => void;\n    }\n    /**\n     * Available options for {@link wunderbaum.Wunderbaum}.\n     *\n     * Options are passed to the constructor as plain object:\n     *\n     * ```js\n     * const tree = new mar10.Wunderbaum({\n     *   id: \"demo\",\n     *   element: document.getElementById(\"demo-tree\"),\n     *   source: \"url/of/data/request\",\n     *   ...\n     * });\n     * ```\n     *\n     * Event handlers are also passed as callbacks\n     *\n     * ```js\n     * const tree = new mar10.Wunderbaum({\n     *   ...\n     *   init: (e) => {\n     *     console.log(`Tree ${e.tree} was initialized and loaded.`)\n     *   },\n     *   activate: (e) => {\n     *     console.log(`Node ${e.node} was activated.`)\n     *   },\n     *   ...\n     * });\n     * ```\n     *\n     * Most of the properties are optional and have resonable default.\n     * They are then available as {@link Wunderbaum.options} property and can be\n     * changed at runtime. <br>\n     * Only the `element` option is mandatory.\n     *\n     * Note that some options passed here, are *not* available as {@link Wunderbaum.options}.\n     * They are moved to the `tree` instance instead:\n     * - `tree.element`\n     * - `tree.id`\n     * - `tree.columns`\n     * - `tree.types`\n     * - ...\n     *\n     * Some options are only used during initialization and are not stored in the\n     * tree instance:\n     * - `source`\n     *\n     */\n    export interface InitWunderbaumOptions extends Partial<WunderbaumOptions> {\n        /**\n         * The target `div` element (or selector) that shall become a Wunderbaum.\n         */\n        element: string | HTMLDivElement;\n        /**\n         * The identifier of this tree. Used to reference the instance, especially\n         * when multiple trees are present (e.g. `tree = mar10.Wunderbaum.getTree(\"demo\")`).\n         *\n         * @default `\"wb_\" + COUNTER`.\n         */\n        id?: string;\n        /**\n         * A list of maps that define column headers. If this option is set,\n         * Wunderbaum becomes a treegrid control instead of a plain tree.\n         * Column definitions can be passed as tree option, or be part of a `source`\n         * response.\n         * @default `[]` meaning this is a plain tree.\n         */\n        columns?: ColumnDefinitionList;\n        /**\n         * Define shared attributes for multiple nodes of the same type.\n         * This allows for more compact data models. Type definitions can be passed\n         * as tree option, or be part of a `source` response.\n         *\n         * @default `{}`.\n         */\n        types?: NodeTypeDefinitionMap;\n        /**\n         * Define the initial tree data. Typically a URL of an endpoint that serves\n         * a JSON formatted structure, but also a callback, Promise, or static data\n         * is allowed.\n         *\n         * @default `[]`.\n         */\n        source?: SourceType;\n    }\n}\ndeclare module \"types\" {\n    /*!\n     * Wunderbaum - types\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n     */\n    import { WunderbaumNode } from \"wb_node\";\n    import { Wunderbaum } from \"wunderbaum\";\n    /** A value that can either be true, false, or undefined. */\n    export type TristateType = boolean | undefined;\n    /** Show/hide checkbox or display a radiobutton icon instead. */\n    export type CheckboxOption = boolean | \"radio\";\n    /** A value that can either be true, false, or undefined. */\n    export type SortOrderType = \"asc\" | \"desc\" | undefined;\n    /** An icon may either be\n     * a string-tag that references an entry in the `iconMap` (e.g. `\"folderOpen\"`)),\n     * an HTML string that contains a `<` and is used as-is,\n     * an image URL string that contains a `.` or `/` and is rendered as `<img src='...'>`,\n     * a class string such as `\"bi bi-folder\"`,\n     * or a boolean value that indicates if the default icon should be used or hidden.\n     */\n    export type IconOption = boolean | string;\n    /** Show/hide default tooltip or display a string. */\n    export type TooltipOption = boolean | string;\n    export interface SourceAjaxType {\n        url: string;\n        params?: any;\n        body?: any;\n        options?: RequestInit;\n    }\n    export type SourceListType = Array<WbNodeData>;\n    export interface SourceObjectType {\n        _format?: \"nested\" | \"flat\";\n        _version?: number;\n        types?: NodeTypeDefinitionMap;\n        columns?: ColumnDefinitionList;\n        children: SourceListType;\n        _keyMap?: {\n            [key: string]: string;\n        };\n        _positional?: Array<string>;\n        _valueMap?: {\n            [key: string]: Array<string>;\n        };\n    }\n    /** Possible initilization for tree nodes. */\n    export type SourceType = string | SourceListType | SourceAjaxType | SourceObjectType;\n    /** Passed to `find...()` methods. Should return true if node matches. */\n    export type MatcherCallback = (node: WunderbaumNode) => boolean;\n    /** Used for `tree.iconBadge` event. */\n    export type WbIconBadgeCallback = (e: WbIconBadgeEventType) => WbIconBadgeEventResultType;\n    /**\n     * Passed to `sort()` methods. Should return -1, 0, or 1.\n     * @deprecated Use SortKeyCallback instead\n     */\n    export type SortCallback = (a: WunderbaumNode, b: WunderbaumNode) => number;\n    /** Passed to `sort()` methods. Should return a representation that can be compared using `<`. */\n    export type SortKeyCallback = (node: WunderbaumNode) => string | number | any[];\n    /** When set as option, called when the value is needed (e.g. `colspan` type definition). */\n    export type BoolOptionResolver = (node: WunderbaumNode) => boolean;\n    /** When set as option, called when the value is needed (e.g. `icon` type definition). */\n    export type BoolOrStringOptionResolver = (node: WunderbaumNode) => boolean | string;\n    /** A callback that receives a node instance and returns an arbitrary value type. */\n    export type NodeAnyCallback = (node: WunderbaumNode) => any;\n    /** A callback that receives a node instance and returns a string value. */\n    export type NodeStringCallback = (node: WunderbaumNode) => string;\n    /** A callback that receives a node instance and property name returns a value. */\n    export type NodePropertyGetterCallback = (node: WunderbaumNode, propName: string) => any;\n    /** A callback that receives a node instance and returns an iteration modifier. */\n    export type NodeVisitCallback = (node: WunderbaumNode) => NodeVisitResponse;\n    /**\n     * Returned by `NodeVisitCallback` to control iteration.\n     * `false` stops iteration, `skip` skips descendants but continues.\n     * All other values continue iteration.\n     */\n    export type NodeVisitResponse = \"skip\" | boolean | void;\n    /**\n     * A callback that receives a node-data dictionary and a node instance and\n     * returns an iteration modifier.\n     */\n    export type NodeToDictCallback = (dict: WbNodeData, node: WunderbaumNode) => NodeVisitResponse;\n    /**\n     * A callback that receives a node instance and may returnsa `false` to prevent\n     * (de)selection.\n     */\n    export type NodeSelectCallback = (node: WunderbaumNode) => boolean | void;\n    /** @internal */\n    export type DeprecationOptions = {\n        since?: string;\n        hint?: string;\n    };\n    /**\n     * See also {@link WunderbaumNode.getOption|WunderbaumNode.getOption()}\n     * to evaluate `node.NAME` setting and `tree.types[node.type].NAME`.\n     */\n    export type DynamicBoolOption = boolean | BoolOptionResolver;\n    export type DynamicStringOption = string | BoolOptionResolver;\n    export type DynamicBoolOrStringOption = boolean | string | BoolOrStringOptionResolver;\n    export type DynamicCheckboxOption = CheckboxOption | BoolOrStringOptionResolver;\n    export type DynamicIconOption = IconOption | BoolOrStringOptionResolver;\n    export type DynamicTooltipOption = TooltipOption | BoolOrStringOptionResolver;\n    /** A plain object (dictionary) that represents a node instance. */\n    export interface WbNodeData {\n        /** Defines if the `selected` state is displayed as checkbox, radio button,\n         * or hidden.\n         * Defaults to {@link WunderbaumOptions.checkbox}.\n         */\n        checkbox?: CheckboxOption;\n        /** Optional list of child nodes.\n         * If `children` is an empty array, the node is considered a leaf.\n         * If `lazy` is true and `children is undefined or null, the node, is\n         * considered unloaded. Otherwise, the node is considered a leaf.\n         */\n        children?: Array<WbNodeData>;\n        /** Additional classes that are added to `<div class='wb-row'>`. */\n        classes?: string;\n        /** Only show title in a single, merged column. */\n        colspan?: boolean;\n        /** Expand this node. */\n        expanded?: boolean;\n        /** Defaults to standard icons (doc, folder, folderOpen, ...)\n         * from {@link WunderbaumOptions.iconMap}.\n         * Can be overridden by {@link WunderbaumOptions.icon}.\n         */\n        icon?: IconOption;\n        /** Tooltip for the node icon only. Defaults to {@link WunderbaumOptions.iconTooltip}. */\n        iconTooltip?: TooltipOption;\n        /** The node's key. Must be unique for the whole tree. Defaults to a sequence number. */\n        key?: string;\n        /** If true (and children are undefined or null), the node is considered lazy\n         * and {@link WunderbaumOptions.lazyLoad} is called when expanded.\n         */\n        lazy?: boolean;\n        /** Make child nodes single-select radio buttons. */\n        radiogroup?: boolean;\n        /** Node's reference key. Unlike {@link WunderbaumNode.key}, this value\n         * may be non-unique. Nodes within the tree that share the same refKey are considered\n         * clones.\n         */\n        refKey?: string;\n        /** The node's selection status, typically displayed as a checkbox. */\n        selected?: boolean;\n        /** The node's status, typically displayed as merged single row.\n         * @see {@link Wunderbaum.setStatus}\n         */\n        statusNodeType?: NodeStatusType;\n        /** The node's title. Will be html escaped to prevent XSS. */\n        title: string;\n        /** Pass true to set node tooltip to the node's title. Defaults to {@link WunderbaumOptions.tooltip}. */\n        tooltip?: TooltipOption;\n        /** Inherit shared settings from the matching entry in `InitWunderbaumOptions.types`. */\n        type?: string;\n        /** Set to `true` to prevent selection. Defaults to {@link WunderbaumOptions.unselectable}. */\n        unselectable?: boolean;\n        /** @internal */\n        _treeId?: string;\n        /** Other data is passed to `node.data` and can be accessed via `node.data.NAME` */\n        [key: string]: unknown;\n    }\n    /** A plain object (dictionary) that defines node icons. */\n    export interface IconMapType {\n        error: string;\n        loading: string;\n        noData: string;\n        expanderExpanded: string;\n        expanderCollapsed: string;\n        expanderLazy: string;\n        checkChecked: string;\n        checkUnchecked: string;\n        checkUnknown: string;\n        radioChecked: string;\n        radioUnchecked: string;\n        radioUnknown: string;\n        folder: string;\n        folderOpen: string;\n        folderLazy: string;\n        doc: string;\n        colSortable: string;\n        colSortAsc: string;\n        colSortDesc: string;\n        colFilter: string;\n        colFilterActive: string;\n        colMenu: string;\n        [key: string]: string;\n    }\n    /** Retuen value of an event handler that can return `false` to prevent the default action. */\n    export type WbCancelableEventResultType = false | void;\n    export interface WbTreeEventType {\n        /** Name of the event. */\n        type: string;\n        /** The affected tree instance. */\n        tree: Wunderbaum;\n        /** Exposed utility module methods\n         * (see [API docs](https://mar10.github.io/wunderbaum/api/modules/util.html)).\n         */\n        util: any;\n        /** Originating HTML event if any (e.g. `click`). */\n        event?: Event;\n    }\n    export interface WbNodeEventType extends WbTreeEventType {\n        /** The affected target node. */\n        node: WunderbaumNode;\n        /**\n         * Contains the node's type information, i.e. `tree.types[node.type]` if\n         * defined. Set to `{}` otherwise. @see {@link Wunderbaum.types}\n         */\n        typeInfo: NodeTypeDefinition;\n    }\n    export interface WbActivateEventType extends WbNodeEventType {\n        prevNode: WunderbaumNode;\n        /** The original event. */\n        event: Event;\n    }\n    export interface WbChangeEventType extends WbNodeEventType {\n        /** Additional information derived from the original change event. */\n        info: WbEventInfo;\n        /** The embedded element that fired the change event. */\n        inputElem: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n        /** The new value of the embedded element, depending on the input element type. */\n        inputValue: any;\n        /** Result of `inputElem.checkValidity()`. */\n        inputValid: boolean;\n    }\n    export interface WbClickEventType extends WbTreeEventType {\n        /** The original event. */\n        event: MouseEvent;\n        /** The clicked node if any. */\n        node: WunderbaumNode;\n        /** Additional information derived from the original mouse event. */\n        info: WbEventInfo;\n    }\n    export interface WbDeactivateEventType extends WbNodeEventType {\n        nextNode: WunderbaumNode;\n        /** The original event. */\n        event: Event;\n    }\n    export interface WbEditApplyEventType extends WbNodeEventType {\n        /** Additional information derived from the original change event. */\n        info: WbEventInfo;\n        /** The input element of the node title that fired the change event. */\n        inputElem: HTMLInputElement;\n        /** The previous node title. */\n        oldValue: string;\n        /** The new node title. */\n        newValue: string;\n        /** Result of `inputElem.checkValidity()`. */\n        inputValid: boolean;\n    }\n    export interface WbEditEditEventType extends WbNodeEventType {\n        /** The input element of the node title that was just created. */\n        inputElem: HTMLInputElement;\n    }\n    export interface WbErrorEventType extends WbNodeEventType {\n        error: any;\n    }\n    export interface WbExpandEventType extends WbNodeEventType {\n        flag: boolean;\n    }\n    export interface WbFocusEventType extends WbTreeEventType {\n        /** The original event. */\n        event: FocusEvent;\n        /** True if `focusin`, false if `focusout`. */\n        flag: boolean;\n    }\n    export interface WbIconBadgeEventType extends WbNodeEventType {\n        iconSpan: HTMLElement;\n    }\n    export interface WbIconBadgeEventResultType {\n        /** Content of the badge `<span class='wb-badge'>` if any. */\n        badge: string | number | HTMLSpanElement | null | false;\n        /** Additional class name(s), separate with space. */\n        badgeClass?: string;\n        /** Tooltip for the badge. */\n        badgeTooltip?: string;\n    }\n    export interface WbInitEventType extends WbTreeEventType {\n        error?: any;\n    }\n    export interface WbKeydownEventType extends WbTreeEventType {\n        /** The original event. */\n        event: KeyboardEvent;\n        node: WunderbaumNode;\n        /** Additional information derived from the original keyboard event. */\n        info: WbEventInfo;\n    }\n    export interface WbModifyChildEventType extends WbNodeEventType {\n        /** Type of change: 'add', 'remove', 'rename', 'move', 'data', ... */\n        operation: string;\n        child: WunderbaumNode;\n    }\n    export interface WbReceiveEventType extends WbNodeEventType {\n        response: any;\n    }\n    export interface WbSelectEventType extends WbNodeEventType {\n        flag: boolean;\n    }\n    export interface WbButtonClickEventType extends WbTreeEventType {\n        info: WbEventInfo;\n        /** The associated command, e.g. 'menu', 'sort', 'filter', ... */\n        command: string;\n    }\n    export interface WbRenderEventType extends WbNodeEventType {\n        /**\n         * True if the node's markup was not yet created. In this case the render\n         * event should create embedded input controls (in addition to update the\n         * values according to to current node data). <br>\n         * False if the node's markup was already created. In this case the render\n         * event should only update the values according to to current node data.\n         */\n        isNew: boolean;\n        /** The node's `<span class='wb-node'>` element. */\n        nodeElem: HTMLSpanElement;\n        /** True if the node only displays the title and is stretched over all remaining columns. */\n        isColspan: boolean;\n        /**\n         * Array of node's `<span class='wb-col'>` elements.\n         * The first element is `<span class='wb-node wb-col'>`, which contains the\n         * node title and icon (`idx: 0`, id: '*'`).\n         */\n        allColInfosById: ColumnEventInfoMap;\n        /**\n         * Array of node's `<span class='wb-node'>` elements,\n         * *that should be rendered by the event handler*.\n         * In contrast to `allColInfosById`, the node title is not part of this array.\n         * If node.isColspan() is true, this array is empty (`[]`).\n         * This allows to iterate over all relevant in a simple loop:\n         * ```\n         * for (const col of Object.values(e.renderColInfosById)) {\n         *   switch (col.id) {\n         *     default:\n         *       // Assumption: we named column.id === node.data.NAME\n         *       col.elem.textContent = node.data[col.id];\n         *       break;\n         *   }\n         * }\n         */\n        renderColInfosById: ColumnEventInfoMap;\n    }\n    /**\n     * Contains the node's type information, i.e. `tree.types[node.type]` if\n     * defined.\n     * @see {@link Wunderbaum.types} and {@link WunderbaumNode.getOption|WunderbaumNode.getOption()}\n     * to evaluate `node.NAME` setting and `tree.types[node.type].NAME`.\n     */\n    export interface NodeTypeDefinition {\n        /** En/disable checkbox for matching nodes. */\n        checkbox?: CheckboxOption;\n        /** Optional class names that are added to all `div.wb-row` elements of matching nodes. */\n        classes?: string;\n        /** Only show title and hide other columns if any. */\n        colspan?: boolean;\n        /** Default icon for matching nodes. */\n        icon?: IconOption;\n        /** Default icon tooltip for matching nodes. */\n        iconTooltip?: TooltipOption;\n        [key: string]: unknown;\n    }\n    export type NodeTypeDefinitionMap = {\n        [type: string]: NodeTypeDefinition;\n    };\n    /**\n     * Column type definitions.\n     * @see {@link Wunderbaum.columns}\n     */\n    export interface ColumnDefinition {\n        /** Column ID as defined in `tree.columns` definition (\"*\" for title column). */\n        id: string;\n        /** Column header (defaults to id) */\n        title: string;\n        /** Column header tooltip (optional) */\n        tooltip?: string;\n        /** Column width or weight.\n         * Either an absolute pixel value (e.g. `\"50px\"`) or a relative weight (e.g. `1`)\n         * that is used to calculate the width  inside the remaining available space.\n         * Default: `\"*\"`, which is interpreted as `1`.\n         */\n        width?: string | number;\n        /** Only used for columns with a relative weight.\n         * Default: `4px`.\n         */\n        minWidth?: string | number;\n        /** Allow user to resize the column.\n         * @default false (or global tree option `columnsSortable`)\n         * @see {@link WunderbaumOptions.columnsResizable}.\n         * @since 0.10.0\n         */\n        resizable?: boolean;\n        /** Optional custom column width when user resized by mouse drag.\n         * Default: unset.\n         */\n        customWidthPx?: number;\n        /** Display a 'filter' button in the column header. Default: false. <br>\n         * Note: The actual filtering must be implemented in the `buttonClick()` event.\n         * @default false (or global tree option `columnsFilterable`)\n         * @since 0.11.0\n         */\n        filterable?: boolean;\n        /** .\n         * Default: inactive. <br>\n         * Note: The actual filtering must be implemented in the `buttonClick()` event.\n         */\n        filterActive?: boolean;\n        /** Display a 'sort' button in the column header. Default: false. <br>\n         * Note: The actual sorting must be implemented in the `buttonClick()` event.\n         * @default false (or global tree option `columnsSortable`)\n         * @see {@link WunderbaumOptions.columnsSortable}.\n         * @since 0.11.0\n         */\n        sortable?: boolean;\n        /** Optional custom column sort orde when user clicked the sort icon.\n         * Default: unset, e.g. not sorted. <br>\n         * Note: The actual sorting must be implemented in the `buttonClick()` event.\n         * @since 0.11.0\n         */\n        sortOrder?: SortOrderType;\n        /** Display a menu icon that may open a context menu for this column.\n         * Note: The actual functionality must be implemented in the `buttonClick()` event.\n         * @default false (or global tree option `columnsMenu`)\n         * @see {@link WunderbaumOptions.columnsMenu}.\n         * @since 0.11.0\n         */\n        menu?: boolean;\n        /** Optional class names that are added to all `span.wb-col` header AND data\n         * elements of that column. Separate multiple classes with space.\n         */\n        classes?: string;\n        /** If `headerClasses` is a set, it will be used for the header element only\n         * (unlike `classes`, which is used for body and header cells).\n         * Separate multiple classes with space.\n         */\n        headerClasses?: string;\n        /** Optional HTML content that is rendered into all `span.wb-col` elements of that column.*/\n        html?: string;\n        /** @internal */\n        _weight?: number;\n        /** @internal */\n        _widthPx?: number;\n        /** @internal */\n        _ofsPx?: number;\n        [key: string]: unknown;\n    }\n    export type ColumnDefinitionList = Array<ColumnDefinition>;\n    /**\n     * Column information (passed to the `render` event).\n     */\n    export interface ColumnEventInfo {\n        /** Column ID as defined in `tree.columns` definition (\"*\" for title column). */\n        id: string;\n        /** Column index (0: leftmost title column). */\n        idx: number;\n        /** The cell's `<span class='wb-col'>` element (null for plain trees). */\n        elem: HTMLSpanElement | null;\n        /** The value of `tree.columns[]` for the current index. */\n        info: ColumnDefinition;\n    }\n    export type ColumnEventInfoMap = {\n        [colId: string]: ColumnEventInfo;\n    };\n    /**\n     * Additional information derived from mouse or keyboard events.\n     * @see {@link Wunderbaum.getEventInfo}\n     */\n    export interface WbEventInfo {\n        /** The original HTTP Event.*/\n        event: MouseEvent | KeyboardEvent;\n        /** Canonical descriptive string of the event type including modifiers,\n         * e.g. `Ctrl+Down`. @see {@link util.eventToString}\n         */\n        canonicalName: string;\n        /** The tree instance. */\n        tree: Wunderbaum;\n        /** The affected node instance instance if any. */\n        node: WunderbaumNode | null;\n        /** The affected part of the node span (e.g. title, expander, ...). */\n        region: NodeRegion;\n        /** The definition of the affected column if any. */\n        colDef?: ColumnDefinition;\n        /** The index of affected column or -1. */\n        colIdx: number;\n        /** The column definition ID of affected column if any. */\n        colId?: string;\n        /** The affected column's span tag if any. */\n        colElem?: HTMLSpanElement;\n    }\n    export type FilterModeType = null | \"mark\" | \"dim\" | \"hide\";\n    export type SelectModeType = \"single\" | \"multi\" | \"hier\";\n    export type NavigationType = \"down\" | \"first\" | \"firstCol\" | \"last\" | \"lastCol\" | \"left\" | \"nextMatch\" | \"pageDown\" | \"pageUp\" | \"parent\" | \"prevMatch\" | \"right\" | \"up\";\n    export type ApplyCommandType = NavigationType | \"addChild\" | \"addSibling\" | \"collapse\" | \"collapseAll\" | \"copy\" | \"cut\" | \"edit\" | \"expand\" | \"expandAll\" | \"indent\" | \"moveDown\" | \"moveUp\" | \"outdent\" | \"paste\" | \"remove\" | \"rename\" | \"toggleSelect\";\n    export type NodeFilterResponse = \"skip\" | \"branch\" | boolean | void;\n    export type NodeFilterCallback = (node: WunderbaumNode) => NodeFilterResponse;\n    /**\n     * Possible values for {@link WunderbaumNode.update} and {@link Wunderbaum.update}.\n     */\n    export enum ChangeType {\n        /** Re-render the whole viewport, headers, and all rows. */\n        any = \"any\",\n        /** A node's title, icon, columns, or status have changed. Update the existing row markup. */\n        data = \"data\",\n        /** The `tree.columns` definition has changed beyond simple width adjustments. */\n        colStructure = \"colStructure\",\n        /** The viewport/window was resized. Adjust layout attributes for all elements. */\n        resize = \"resize\",\n        /** A node's definition has changed beyond status and data. Re-render the whole row's markup. */\n        row = \"row\",\n        /** Nodes have been added, removed, etc. Update markup. */\n        structure = \"structure\",\n        /** A node's status has changed. Update current row's classes, to reflect active, selected, ... */\n        status = \"status\",\n        /** Vertical scroll event. Update the 'top' property of all rows. */\n        scroll = \"scroll\"\n    }\n    /** @internal */\n    export enum RenderFlag {\n        clearMarkup = \"clearMarkup\",\n        header = \"header\",\n        redraw = \"redraw\",\n        scroll = \"scroll\"\n    }\n    /** Possible values for {@link WunderbaumNode.setStatus}. */\n    export enum NodeStatusType {\n        ok = \"ok\",\n        loading = \"loading\",\n        error = \"error\",\n        noData = \"noData\",\n        paging = \"paging\"\n    }\n    /** Define the subregion of a node, where an event occurred. */\n    export enum NodeRegion {\n        unknown = \"\",\n        checkbox = \"checkbox\",\n        column = \"column\",\n        expander = \"expander\",\n        icon = \"icon\",\n        prefix = \"prefix\",\n        title = \"title\"\n    }\n    /** Initial navigation mode and possible transition. */\n    export enum NavModeEnum {\n        /** Start with row mode, but allow cell-nav mode */\n        startRow = \"startRow\",\n        /** Cell-nav mode only */\n        cell = \"cell\",\n        /** Start in cell-nav mode, but allow row mode */\n        startCell = \"startCell\",\n        /** Row mode only */\n        row = \"row\"\n    }\n    /** Translatable strings. */\n    export type TranslationsType = {\n        /** @default \"Loading...\" */\n        loading: string;\n        /** @default \"Error\" */\n        loadError: string;\n        /** @default \"No data\" */\n        noData: string;\n        /** @default \" » \" */\n        breadcrumbDelimiter: string;\n        /** @default \"Found ${matches} of ${count}\" */\n        queryResult: string;\n        /** @default \"No result\" */\n        noMatch: string;\n        /** @default \"${match} of ${matches}\" */\n        matchIndex: string;\n    };\n    /** Possible values for {@link WunderbaumNode.addChildren}. */\n    export interface AddChildrenOptions {\n        /** Insert children before this node (or index)\n         * @default undefined or null:  append as last child\n         */\n        before?: WunderbaumNode | number | null;\n        /**\n         * Set `node.expanded = true` according to tree.options.minExpandLevel.\n         * This does *not* load lazy nodes.\n         * @default true\n         */\n        applyMinExpanLevel?: boolean;\n        /** (@internal Internal use, do not set! ) */\n        _level?: number;\n    }\n    /** Possible values for {@link Wunderbaum.applyCommand} and {@link WunderbaumNode.applyCommand}. */\n    export interface ApplyCommandOptions {\n        [key: string]: unknown;\n    }\n    /** Possible values for {@link Wunderbaum.expandAll} and {@link WunderbaumNode.expandAll}. */\n    export interface ExpandAllOptions {\n        /** Expand and load lazy nodes @default false  */\n        loadLazy?: boolean;\n        /** Unload lazily loaded children if any (if collapsing). @default false */\n        resetLazy?: boolean;\n        /** Ignore tree's `minExpandLevel` option @default false */\n        force?: boolean;\n        /** Restrict expand level.\n         * Pass 0 to make only toplevel nodes visible, 1 to expand one level deeper, etc.\n         * @default unset (unlimited)\n         */\n        depth?: number;\n        /**\n         * Also collapse child nodes beyond the `depth` level.\n         * Otherwise only the `depth` level is collapsed and the expand state of the\n         * descendants is retained.\n         * Only in combination with collapse and `depth`.\n         * Expanding with `deep` option is not supported as recursion depth implied by\n         * the `depth` option. However a `deep` option will be considered if\n         * `collapseOthers` is set.\n         * @default false\n         */\n        deep?: boolean;\n        /**\n         * Expand up to level=depth and collapse all other branches.\n         * Only in combination with `flag == true`, `depth > 0`.\n         * @default false\n         */\n        collapseOthers?: boolean;\n        /** Keep active node visible @default true */\n        keepActiveNodeVisible?: boolean;\n    }\n    /**\n     * Possible option values for {@link Wunderbaum.filterNodes}.\n     * The defaults are inherited from the tree instances ´tree.options.filter`\n     * settings (see also {@link FilterOptionsType}).\n     */\n    export interface FilterNodesOptions {\n        /** Expand all branches that contain matches while filtered @default false */\n        autoExpand?: boolean;\n        /** Whether to implicitly match all children of matched nodes @default false */\n        matchBranch?: boolean;\n        /** Match single characters in order, e.g. 'fb' will match 'FooBar' @default false */\n        fuzzy?: boolean;\n        /**Hide expanders if all child nodes are hidden by filter @default false */\n        hideExpanders?: boolean;\n        /** Highlight matches by wrapping inside `<mark>` tags.\n         * Does not work for filter callbacks.  @default true\n         */\n        highlight?: boolean;\n        /** Match end nodes only @default false */\n        leavesOnly?: boolean;\n        /** Grayout unmatched nodes (pass 'hide' to remove instead) @default 'dim' */\n        mode?: FilterModeType;\n        /** Display a 'no data' status node if result is empty @default true */\n        noData?: boolean | string;\n    }\n    /** Possible values for {@link Wunderbaum.getState}. */\n    export interface GetStateOptions {\n        /** Include the active node's key (and expand its parents). @default true */\n        activeKey?: boolean;\n        /** Include the expanded keys. @default false */\n        expandedKeys?: boolean;\n        /** Include the selected keys. @default false */\n        selectedKeys?: boolean;\n    }\n    /** Possible values for {@link Wunderbaum.setState}. */\n    export interface SetStateOptions {\n        /** Recursively load lazy nodes as needed. @default false */\n        expandLazy?: boolean;\n    }\n    /** Used by {@link Wunderbaum.getState} and {@link Wunderbaum.setState}. */\n    export interface TreeStateDefinition {\n        /** List of expanded node's keys. */\n        expandedKeys: Array<string> | undefined;\n        /** The active node's key if any. */\n        activeKey: string | null;\n        /** The active column index if any. */\n        activeColIdx: number | null;\n        /** List of selected node's keys. */\n        selectedKeys: Array<string> | undefined;\n    }\n    /** Possible values for {@link Wunderbaum.loadLazyNodes} `options` argument. */\n    export interface LoadLazyNodesOptions {\n        /** Expand node (otherwise load, but keep collapsed). @default true */\n        expand?: boolean;\n        /** Force reloading even if already loaded. @default false */\n        force?: boolean;\n        /** Do not send events. @default false */\n        noEvents?: boolean;\n    }\n    /** Possible values for {@link WunderbaumNode.makeVisible}. */\n    export interface MakeVisibleOptions {\n        /** Do not animate expand (currently not implemented). @default false */\n        noAnimation?: boolean;\n        /** Scroll node into visible viewport area if required. @default true */\n        scrollIntoView?: boolean;\n        /** Do not send events. @default false */\n        noEvents?: boolean;\n    }\n    /** Possible values for {@link WunderbaumNode.navigate}. */\n    export interface NavigateOptions {\n        /** Activate the new node (otherwise focus only). @default true */\n        activate?: boolean;\n        /** Originating event (e.g. KeyboardEvent) if any. */\n        event?: Event;\n    }\n    /** Possible values for {@link WunderbaumNode._render}. */\n    export interface RenderOptions {\n        /** Which parts need update? @default ChangeType.data */\n        change?: ChangeType;\n        /** Where to append a new node. @default 'last' */\n        after?: any;\n        /** @internal. @default false */\n        isNew?: boolean;\n        /** @internal. @default false */\n        preventScroll?: boolean;\n        /** @internal. @default false */\n        isDataChange?: boolean;\n        /** @internal. @default false */\n        top?: number;\n        /** @internal. @default true */\n        resizeCols?: boolean;\n    }\n    /** Possible values for {@link WunderbaumNode.scrollIntoView} `options` argument. */\n    export interface ScrollIntoViewOptions {\n        /** Do not animate (currently not implemented). @default false */\n        noAnimation?: boolean;\n        /** Do not send events. @default false */\n        noEvents?: boolean;\n        /** Keep this node visible at the top in any case. */\n        topNode?: WunderbaumNode;\n        /** Add N pixel offset at top. */\n        ofsY?: number;\n    }\n    /** Possible values for {@link Wunderbaum.scrollTo} `options` argument. */\n    export interface ScrollToOptions extends ScrollIntoViewOptions {\n        /** Which node to scroll into the viewport.*/\n        node: WunderbaumNode;\n    }\n    /** Possible values for {@link WunderbaumNode.setActive} `options` argument. */\n    export interface SetActiveOptions {\n        /** Generate (de)activate event, even if node already has this status (@default: false). */\n        retrigger?: boolean;\n        /** Do not generate (de)activate event  (@default: false). */\n        noEvents?: boolean;\n        /** Call `tree.setFocus()` to acquire keyboard focus (@default: false). */\n        focusTree?: boolean;\n        /** Optional original event that will be passed to the (de)activate handler. */\n        event?: Event;\n        /** Also call {@link Wunderbaum.setColumn}. */\n        colIdx?: number | string;\n        /**\n         * Focus embedded input control of the grid cell if any (requires colIdx >= 0).\n         * If colIdx is 0 or '*', the node title is put into edit mode.\n         * Implies `focusTree: true`, requires `colIdx`.\n         */\n        edit?: boolean;\n    }\n    /** Possible values for {@link Wunderbaum.setColumn} `options` argument. */\n    export interface SetColumnOptions {\n        /**\n         * Focus embedded input control of the grid cell if any .\n         * If colIdx is 0 or '*', the node title is put into edit mode.\n         * @default false\n         */\n        edit?: boolean;\n        /** Horizontically scroll into view. @default: true */\n        scrollIntoView?: boolean;\n    }\n    /** Possible values for {@link WunderbaumNode.setExpanded} `options` argument. */\n    export interface SetExpandedOptions {\n        /** Ignore {@link WunderbaumOptions}.minExpandLevel. @default false */\n        force?: boolean;\n        /** Immediately update viewport (async otherwise). @default false */\n        immediate?: boolean;\n        /** Do not animate expand (currently not implemented). @default false */\n        noAnimation?: boolean;\n        /** Do not send events. @default false */\n        noEvents?: boolean;\n        /** Unload lazily loaded children if any (if collapsing). @default false */\n        resetLazy?: boolean;\n        /** Scroll up to bring expanded nodes into viewport. @default false */\n        scrollIntoView?: boolean;\n    }\n    /** Possible values for {@link WunderbaumNode.update} `options` argument. */\n    export interface UpdateOptions {\n        /** Force immediate redraw instead of throttled/async mode. @default false */\n        immediate?: boolean;\n    }\n    /** Possible values for {@link WunderbaumNode.setSelected} `options` argument. */\n    export interface SetSelectedOptions {\n        /** Ignore restrictions, e.g. (`unselectable`). @default false */\n        force?: boolean;\n        /** Do not send `beforeSelect` or `select` events. @default false */\n        noEvents?: boolean;\n        /** Apply to all descendant nodes (only for `selectMode: 'multi'`). @default false */\n        propagateDown?: boolean;\n        /** Called for every node. May return false to prevent action. @default null */\n        callback?: NodeSelectCallback;\n    }\n    /** Possible values for {@link WunderbaumNode.setStatus} `options` argument. */\n    export interface SetStatusOptions {\n        /** Displayed as status node title. */\n        message?: string;\n        /** Used as tooltip. */\n        details?: string;\n    }\n    /**\n     * Possible values for {@link Wunderbaum.reload} `options` argument.\n     */\n    export interface ReloadOptions {\n        /** Load this source instead. @default initial source (if loaded via ajax) */\n        source?: SourceType;\n        /** Reactivate currently active node if any. @default true */\n        reactivate?: boolean;\n    }\n    /**\n     * Possible values for {@link WunderbaumNode.resetNativeChildOrder} `options` argument.\n     */\n    export interface ResetOrderOptions {\n        /** Sort descendants recursively. @default true */\n        recursive?: boolean;\n        /** The name of the node property that will be renumbered.\n         * @default `_nativeIndex`.\n         */\n        propName?: string;\n    }\n    /**\n     * Possible values for {@link Wunderbaum.sort} and {@link WunderbaumNode.sort}\n     * `options` argument.\n     */\n    export interface SortOptions {\n        /** The name of the node property that will be used for sorting.\n         * Mandatory, unless  {@link key} or  {@link colId} are given.\n         */\n        propName?: string;\n        /** Callback that determines a node representation for comparison.\n         * @default {@link common.nodeTitleKeyGetter} */\n        key?: SortKeyCallback;\n        /** Callback that determines the order. @default {@link common.nodeTitleSorter}\n         * @deprecated use {@link key} instead\n         */\n        cmp?: SortCallback;\n        /** Sort order 'asc' or 'desc'.\n         * @default 'asc' (or if `updateColInfo` is true, the rotated status of the\n         * column definition.\n         * See also {@link WunderbaumOptions.sortFoldersFirst}.\n         */\n        order?: SortOrderType;\n        /** Sort descendants recursively. @default true */\n        deep?: boolean;\n        /** Sort string values case insensitive. @default false */\n        caseInsensitive?: boolean;\n        /**\n         * Sort by this property if order is `undefined`.\n         * See also {@link WunderbaumNode.resetNativeChildOrder}.\n         * @default `_nativeIndex`.\n         */\n        nativeOrderPropName?: string;\n        /**\n         * Rotate sort order (asc -> desc -> none) before sorting.\n         * Update the sort icons in the column header\n         * Note:\n         * Sorting is done in-place. There is no 'unsorted' state, but we can\n         * call `setCurrentSortOrder()` to renumber the `node._sortIdx` property,\n         * which will be used as sort key, when `order` is `undefined`.\n         * @default false\n         */\n        updateColInfo?: boolean;\n        /** Column ID as defined in `tree.columns` definition. Required if updateColInfo is true.*/\n        colId?: string;\n    }\n    /**\n     * Possible values for {@link WunderbaumNode.sortByProperty} `options` argument.\n     * @deprecated\n     */\n    export type SortByPropertyOptions = SortOptions;\n    /** Options passed to {@link Wunderbaum.visitRows}. */\n    export interface VisitRowsOptions {\n        /** Skip filtered nodes and children of collapsed nodes. @default false */\n        includeHidden?: boolean;\n        /** Return the start node as first result. @default true */\n        includeSelf?: boolean;\n        /** Traverse in opposite direction, i.e. bottom up. @default false */\n        reverse?: boolean;\n        /** Start traversal at this node @default first (topmost) tree node */\n        start?: WunderbaumNode | null;\n        /** Wrap around at last node and continue at the top,\n         * until the start node is reached again @default false */\n        wrap?: boolean;\n    }\n    /**\n     * Passed as tree option.filer.connect to configure automatic integration of\n     * filter UI controls. @experimental\n     */\n    export interface FilterConnectType {\n        inputElem: string | HTMLInputElement | null;\n        modeButton?: string | HTMLButtonElement | null;\n        nextButton?: string | HTMLButtonElement | HTMLAnchorElement | null;\n        prevButton?: string | HTMLButtonElement | HTMLAnchorElement | null;\n        matchInfoElem?: string | HTMLElement | null;\n    }\n    /**\n     * Passed as tree options to configure default filtering behavior.\n     *\n     * @see {@link Wunderbaum.filterNodes}\n     * @see {@link FilterNodesOptions}\n     */\n    export type FilterOptionsType = {\n        /**\n         * Element or selector of input controls and buttons for filter query strings.\n         * @experimental\n         * @since 0.13\n         * @default null\n         */\n        connect?: null | FilterConnectType;\n        /**\n         * Re-apply last filter if lazy data is loaded\n         * @default true\n         */\n        autoApply?: boolean;\n    } & FilterNodesOptions;\n    /**\n     * Note: <br>\n     * This options are used for renaming node titles. <br>\n     * There is also the `tree.change` event to handle modifying node data from\n     * input controls that are embedded in grid cells.\n     */\n    export type EditOptionsType = {\n        /**\n         * Used to debounce the `change` event handler for grid cells [ms].\n         * @default 100\n         */\n        debounce?: number;\n        /**\n         * Minimum number of characters required for node title input field.\n         * @default 1\n         */\n        minlength?: number;\n        /**\n         * Maximum number of characters allowed for node title input field.\n         * @default null;\n         */\n        maxlength?: null | number;\n        /**\n         * Array of strings to determine which user input should trigger edit mode.\n         * E.g. `[\"clickActive\", \"F2\", \"macEnter\"]`: <br>\n         * 'clickActive': single click on active node title <br>\n         * 'F2': press F2 key <br>\n         * 'macEnter': press Enter (on macOS only) <br>\n         * Pass an empty array to disable edit mode.\n         * @default []\n         */\n        trigger?: string[];\n        /**\n         * Trim whitespace before saving a node title.\n         * @default true\n         */\n        trim?: boolean;\n        /**\n         * Select all text of a node title, so it can be overwritten by typing.\n         * @default true\n         */\n        select?: boolean;\n        /**\n         * Handle 'clickActive' only if last click is less than this ms old (0: always)\n         * @default 1000\n         */\n        slowClickDelay?: number;\n        /**\n         * Permanently apply node title input validations (CSS and tooltip) on keydown.\n         * @default true\n         */\n        validity?: boolean;\n        /**\n         * `beforeEdit(e)` may return an input HTML string. Otherwise use a default.\n         * @category Callback\n         */\n        beforeEdit?: null | ((e: WbNodeEventType) => boolean) | string;\n        /**\n         *\n         * @category Callback\n         */\n        edit?: null | ((e: WbNodeEventType & {\n            inputElem: HTMLInputElement;\n        }) => void);\n        /**\n         *\n         * @category Callback\n         */\n        apply?: null | ((e: WbNodeEventType & {\n            inputElem: HTMLInputElement;\n        }) => any) | Promise<any>;\n    };\n    export type InsertNodeType = \"before\" | \"after\" | \"prependChild\" | \"appendChild\";\n    export type DropEffectType = \"none\" | \"copy\" | \"link\" | \"move\";\n    export type DropEffectAllowedType = \"none\" | \"copy\" | \"copyLink\" | \"copyMove\" | \"link\" | \"linkMove\" | \"move\" | \"all\";\n    export type DropRegionType = \"over\" | \"before\" | \"after\";\n    export type DropRegionTypeSet = Set<DropRegionType>;\n    export type DropRegionTypeList = Array<DropRegionType>;\n    export interface DragEventType extends WbNodeEventType {\n        /** The original event. */\n        event: DragEvent;\n        /** The source node. */\n        node: WunderbaumNode;\n    }\n    export interface DropEventType extends WbNodeEventType {\n        /** The original event. */\n        event: DragEvent;\n        /** The target node. */\n        node: WunderbaumNode;\n        /** The source node if any. */\n        sourceNode: WunderbaumNode;\n        /** The DataTransfer object. */\n        dataTransfer: DataTransfer;\n    }\n    export type DndOptionsType = {\n        /**\n         * Expand nodes after n milliseconds of hovering\n         * @default 1500\n         */\n        autoExpandMS?: 1500;\n        /**\n         * true: Drag multiple (i.e. selected) nodes. Also a callback() is allowed\n         * @default false\n         */\n        multiSource?: false;\n        /**\n         * Restrict the possible cursor shapes and modifier operations\n         * (can also be set in the dragStart event)\n         * @default \"all\"\n         */\n        effectAllowed?: DropEffectAllowedType;\n        /**\n         * Default dropEffect ('copy', 'link', or 'move') when no modifier is pressed.\n         * Overidable in the dragEnter or dragOver event.\n         * @default \"move\"\n         */\n        dropEffectDefault?: DropEffectType;\n        /**\n         * Use opinionated heuristics to determine the dropEffect ('copy', 'link', or 'move')\n         * based on `effectAllowed`, `dropEffectDefault`, and modifier keys.\n         * This is recalculated before each dragEnter and dragOver event and can be\n         * overridden there.\n         *\n         * @default true\n         */\n        guessDropEffect: boolean;\n        /**\n         * Prevent dropping nodes from different Wunderbaum trees\n         * @default false\n         */\n        preventForeignNodes?: boolean;\n        /**\n         * Prevent dropping items on unloaded lazy Wunderbaum tree nodes\n         * @default true\n         */\n        preventLazyParents?: boolean;\n        /**\n         * Prevent dropping items other than Wunderbaum tree nodes\n         * @default false\n         */\n        preventNonNodes?: boolean;\n        /**\n         * Prevent dropping nodes on own descendants\n         * @default true\n         */\n        preventRecursion?: boolean;\n        /**\n         * Prevent dropping nodes under same direct parent\n         * @default false\n         */\n        preventSameParent?: boolean;\n        /**\n         * Prevent dropping nodes 'before self', etc. (move only)\n         * @default true\n         */\n        preventVoidMoves?: boolean;\n        /**\n         * Serialize Node Data to datatransfer object\n         * @default true\n         */\n        serializeClipboardData?: boolean | ((nodeData: WbNodeData, node: WunderbaumNode) => string);\n        /**\n         * Enable auto-scrolling while dragging\n         * @default true\n         */\n        scroll?: boolean;\n        /**\n         * Active top/bottom margin in pixel\n         * @default 20\n         */\n        scrollSensitivity?: 20;\n        /**\n         * Pixel per event\n         * @default 5\n         */\n        scrollSpeed?: 5;\n        /**\n         * Optional callback passed to `toDict` on dragStart\n         * @default null\n         * @category Callback\n         */\n        sourceCopyHook?: null;\n        /**\n         * Callback(sourceNode, data), return true, to enable dnd drag\n         * @default null\n         * @category Callback\n         */\n        dragStart?: null | ((e: DragEventType) => boolean);\n        /**\n         * Callback(sourceNode, data)\n         * @default null\n         * @category Callback\n         */\n        drag?: null | ((e: DragEventType) => void);\n        /**\n         * Callback(sourceNode, data)\n         * @default null\n         * @category Callback\n         */\n        dragEnd?: null | ((e: DragEventType) => void);\n        /**\n         * Callback(targetNode, data), return true, to enable dnd drop\n         * @default null\n         * @category Callback\n         */\n        dragEnter?: null | ((e: DropEventType) => DropRegionType | DropRegionTypeSet | DropRegionTypeList | boolean);\n        /**\n         * Callback(targetNode, data)\n         * @default null\n         * @category Callback\n         */\n        dragOver?: null | ((e: DropEventType) => void);\n        /**\n         * Callback(targetNode, data), return false to prevent autoExpand\n         * @default null\n         * @category Callback\n         */\n        dragExpand?: null | ((e: DropEventType) => boolean);\n        /**\n         * Callback(targetNode, data)\n         * @default null\n         * @category Callback\n         */\n        drop?: null | ((e: WbNodeEventType & {\n            event: DragEvent;\n            region: DropRegionType;\n            suggestedDropMode: InsertNodeType;\n            suggestedDropEffect: DropEffectType;\n            sourceNode: WunderbaumNode;\n            sourceNodeData: WbNodeData | null;\n        }) => void);\n        /**\n         * Callback(targetNode, data)\n         * @default null\n         * @category Callback\n         */\n        dragLeave?: null | ((e: DropEventType) => void);\n    };\n    export type GridOptionsType = object;\n    export type KeynavOptionsType = object;\n    export type LoggerOptionsType = object;\n}\ndeclare module \"wb_ext_dnd\" {\n    import { Wunderbaum } from \"wunderbaum\";\n    import { WunderbaumExtension } from \"wb_extension_base\";\n    import { WunderbaumNode } from \"wb_node\";\n    import { DndOptionsType, DropEffectType, DropRegionType, DropRegionTypeSet } from \"types\";\n    import { DebouncedFunction } from \"debounce\";\n    export class DndExtension extends WunderbaumExtension<DndOptionsType> {\n        protected srcNode: WunderbaumNode | null;\n        protected lastTargetNode: WunderbaumNode | null;\n        protected lastEnterStamp: number;\n        protected lastAllowedDropRegions: DropRegionTypeSet | null;\n        protected lastDropEffect: DropEffectType | null;\n        protected lastDropRegion: DropRegionType | false;\n        protected currentScrollDir: number;\n        protected applyScrollDirThrottled: DebouncedFunction<() => void>;\n        constructor(tree: Wunderbaum);\n        init(): void;\n        /** Cleanup classes after target node is no longer hovered. */\n        protected _leaveNode(): void;\n        /** */\n        protected unifyDragover(res: any): DropRegionTypeSet | false;\n        /**\n         * Calculates the drop region based on the drag event and the allowed drop regions.\n         */\n        protected _calcDropRegion(e: DragEvent, allowed: DropRegionTypeSet | null): DropRegionType | false;\n        /**\n         * Guess drop effect (copy/link/move) using opinionated conventions.\n         *\n         * Default: dnd.dropEffectDefault\n         */\n        protected _guessDropEffect(e: DragEvent): DropEffectType;\n        /** Don't allow void operation ('drop on self').*/\n        protected _isVoidDrop(targetNode: WunderbaumNode, srcNode: WunderbaumNode | null, dropRegion: DropRegionType | false): boolean;\n        protected _applyScrollDir(): void;\n        protected _autoScroll(viewportY: number): number;\n        /** Return true if a drag operation currently in progress. */\n        isDragging(): boolean;\n        /**\n         * Handle dragstart, drag and dragend events for the source node.\n         */\n        protected onDragEvent(e: DragEvent): boolean;\n        /**\n         * Handle dragenter, dragover, dragleave, drop events.\n         */\n        protected onDropEvent(e: DragEvent): boolean;\n    }\n}\ndeclare module \"wb_ext_edit\" {\n    /*!\n     * Wunderbaum - ext-edit\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n     */\n    import { Wunderbaum } from \"wunderbaum\";\n    import { WunderbaumExtension } from \"wb_extension_base\";\n    import { WunderbaumNode } from \"wb_node\";\n    import { EditOptionsType, InsertNodeType, WbNodeData } from \"types\";\n    export class EditExtension extends WunderbaumExtension<EditOptionsType> {\n        protected debouncedOnChange: (e: Event) => void;\n        protected curEditNode: WunderbaumNode | null;\n        protected relatedNode: WunderbaumNode | null;\n        constructor(tree: Wunderbaum);\n        protected _applyChange(eventName: string, node: WunderbaumNode, colElem: HTMLElement, inputElem: HTMLInputElement, extra: any): Promise<any>;\n        protected _onChange(e: Event): void;\n        init(): void;\n        _preprocessKeyEvent(data: any): boolean | undefined;\n        /** Return true if a title is currently being edited. */\n        isEditingTitle(node?: WunderbaumNode): boolean;\n        /** Start renaming, i.e. replace the title with an embedded `<input>`. */\n        startEditTitle(node?: WunderbaumNode | null): void;\n        /**\n         *\n         * @param apply\n         * @returns\n         */\n        stopEditTitle(apply: boolean): void;\n        _stopEditTitle(apply: boolean, options: any): void;\n        /**\n         * Create a new child or sibling node and start edit mode.\n         */\n        createNode(mode?: InsertNodeType, node?: WunderbaumNode | null, init?: string | WbNodeData): void;\n    }\n}\ndeclare module \"drag_observer\" {\n    /*!\n     * Wunderbaum - drag_observer\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n     */\n    export type DragCallbackArgType = {\n        /** \"dragstart\", \"drag\", or \"dragstop\". */\n        type: string;\n        /** Original mousedown or touch event that triggered the dragstart event. */\n        startEvent: MouseEvent | TouchEvent;\n        /** Original mouse or touch event that triggered the current drag event.\n         * Note that this is not the same as `startEvent`, but a mousemove in case of\n         * a dragstart threshold.\n         */\n        event: MouseEvent | TouchEvent;\n        /** Custom data that was passed to the DragObserver, typically on dragstart. */\n        customData: any;\n        /** Element which is currently dragged. */\n        dragElem: HTMLElement | null;\n        /** Relative horizontal drag distance since start. */\n        dx: number;\n        /** Relative vertical drag distance since start. */\n        dy: number;\n        /** False if drag was canceled. */\n        apply?: boolean;\n    };\n    export type DragCallbackType = (e: DragCallbackArgType) => boolean | void;\n    type DragObserverOptionsType = {\n        /**Event target (typically `window.document`). */\n        root: EventTarget;\n        /**Event delegation selector.*/\n        selector?: string;\n        /**Minimum drag distance in px. */\n        thresh?: number;\n        /**Return `false` to cancel drag. */\n        dragstart: DragCallbackType;\n        drag?: DragCallbackType;\n        dragstop?: DragCallbackType;\n    };\n    /**\n     * Convert mouse- and touch events to 'dragstart', 'drag', and 'dragstop'.\n     */\n    export class DragObserver {\n        protected _handler: any;\n        protected root: EventTarget;\n        protected start: {\n            event: MouseEvent | TouchEvent | null;\n            x: number;\n            y: number;\n            altKey: boolean;\n            ctrlKey: boolean;\n            metaKey: boolean;\n            shiftKey: boolean;\n        };\n        protected dragElem: HTMLElement | null;\n        protected dragging: boolean;\n        protected customData: object;\n        protected events: string[];\n        protected opts: DragObserverOptionsType;\n        constructor(opts: DragObserverOptionsType);\n        /** Unregister all event listeners. */\n        disconnect(): void;\n        getDragElem(): HTMLElement | null;\n        isDragging(): boolean;\n        stopDrag(cb_event?: DragCallbackArgType): void;\n        protected handleEvent(e: MouseEvent): boolean | void;\n    }\n}\ndeclare module \"wb_ext_grid\" {\n    /*!\n     * Wunderbaum - ext-grid\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n     */\n    import { Wunderbaum } from \"wunderbaum\";\n    import { WunderbaumExtension } from \"wb_extension_base\";\n    import { DragCallbackArgType, DragObserver } from \"drag_observer\";\n    import { GridOptionsType } from \"types\";\n    export class GridExtension extends WunderbaumExtension<GridOptionsType> {\n        protected observer: DragObserver;\n        constructor(tree: Wunderbaum);\n        init(): void;\n        /**\n         * Handles drag and sragstop events for column resizing.\n         */\n        protected handleDrag(e: DragCallbackArgType): void;\n    }\n}\ndeclare module \"wb_ext_keynav\" {\n    /*!\n     * Wunderbaum - ext-keynav\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n     */\n    import { KeynavOptionsType } from \"types\";\n    import { Wunderbaum } from \"wunderbaum\";\n    import { WunderbaumExtension } from \"wb_extension_base\";\n    export class KeynavExtension extends WunderbaumExtension<KeynavOptionsType> {\n        constructor(tree: Wunderbaum);\n        protected _getEmbeddedInputElem(elem: any): HTMLInputElement | null;\n        protected _isCurInputFocused(): boolean;\n        onKeyEvent(data: any): boolean | undefined;\n    }\n}\ndeclare module \"wb_ext_logger\" {\n    /*!\n     * Wunderbaum - ext-logger\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n     */\n    import { LoggerOptionsType } from \"types\";\n    import { WunderbaumExtension } from \"wb_extension_base\";\n    import { Wunderbaum } from \"wunderbaum\";\n    export class LoggerExtension extends WunderbaumExtension<LoggerOptionsType> {\n        readonly prefix: string;\n        protected ignoreEvents: Set<string>;\n        constructor(tree: Wunderbaum);\n        init(): void;\n        onKeyEvent(data: any): boolean | undefined;\n    }\n}\ndeclare module \"wb_extension_base\" {\n    import { DndExtension } from \"wb_ext_dnd\";\n    import { EditExtension } from \"wb_ext_edit\";\n    import { FilterExtension } from \"wb_ext_filter\";\n    import { GridExtension } from \"wb_ext_grid\";\n    import { KeynavExtension } from \"wb_ext_keynav\";\n    import { LoggerExtension } from \"wb_ext_logger\";\n    import { WunderbaumOptions } from \"wb_options\";\n    import { Wunderbaum } from \"wunderbaum\";\n    export type ExtensionsDict = {\n        dnd: DndExtension;\n        edit: EditExtension;\n        filter: FilterExtension;\n        grid: GridExtension;\n        keynav: KeynavExtension;\n        logger: LoggerExtension;\n        [key: string]: WunderbaumExtension<any>;\n    };\n    export abstract class WunderbaumExtension<TOptions> {\n        enabled: boolean;\n        readonly id: string;\n        readonly tree: Wunderbaum;\n        readonly treeOpts: WunderbaumOptions;\n        readonly extensionOpts: any;\n        constructor(tree: Wunderbaum, id: string, defaults: TOptions);\n        /** Called on tree (re)init after all extensions are added, but before loading.*/\n        init(): void;\n        getPluginOption(name: string, defaultValue?: any): any;\n        setPluginOption(name: string, value: any): void;\n        setEnabled(flag?: boolean): void;\n        onKeyEvent(data: any): boolean | undefined;\n        onRender(data: any): boolean | undefined;\n    }\n}\ndeclare module \"wb_ext_filter\" {\n    import { FilterNodesOptions, FilterOptionsType, NodeFilterCallback } from \"types\";\n    import { Wunderbaum } from \"wunderbaum\";\n    import { WunderbaumExtension } from \"wb_extension_base\";\n    export class FilterExtension extends WunderbaumExtension<FilterOptionsType> {\n        queryInput: HTMLInputElement | null;\n        prevButton: HTMLElement | HTMLAnchorElement | null;\n        nextButton: HTMLElement | HTMLAnchorElement | null;\n        modeButton: HTMLButtonElement | null;\n        matchInfoElem: HTMLElement | null;\n        lastFilterArgs: IArguments | null;\n        constructor(tree: Wunderbaum);\n        init(): void;\n        setPluginOption(name: string, value: any): void;\n        _updatedConnectedControls(): void;\n        _connectControls(): void;\n        _applyFilterNoUpdate(filter: string | RegExp | NodeFilterCallback, _opts: FilterNodesOptions): number;\n        _applyFilterImpl(filter: string | RegExp | NodeFilterCallback, _opts: FilterNodesOptions): number;\n        /**\n         * [ext-filter] Dim or hide nodes.\n         */\n        filterNodes(filter: string | RegExp | NodeFilterCallback, options: FilterNodesOptions): number;\n        /**\n         * [ext-filter] Dim or hide whole branches.\n         * @deprecated Use {@link filterNodes} instead and set `options.matchBranch: true`.\n         */\n        filterBranches(filter: string | NodeFilterCallback, options: FilterNodesOptions): number;\n        /**\n         * [ext-filter] Return the number of matched nodes.\n         */\n        countMatches(): number;\n        /**\n         * [ext-filter] Re-apply current filter.\n         */\n        updateFilter(): void;\n        /**\n         * [ext-filter] Reset the filter.\n         */\n        clearFilter(): void;\n    }\n}\ndeclare module \"wunderbaum\" {\n    /*!\n     * wunderbaum.ts\n     *\n     * A treegrid control.\n     *\n     * Copyright (c) 2021-2025, Martin Wendt (https://wwWendt.de).\n     * https://github.com/mar10/wunderbaum\n     *\n     * Released under the MIT license.\n     * @version @VERSION\n     * @date @DATE\n     */\n    import * as util from \"util\";\n    import { ExtensionsDict, WunderbaumExtension } from \"wb_extension_base\";\n    import { AddChildrenOptions, ApplyCommandOptions, ApplyCommandType, ChangeType, ColumnDefinitionList, ExpandAllOptions, FilterModeType, FilterNodesOptions, IconMapType, GetStateOptions, MatcherCallback, NavigationType, NavModeEnum, NodeFilterCallback, NodeStatusType, NodeStringCallback, NodeToDictCallback, NodeTypeDefinitionMap, NodeVisitCallback, RenderFlag, ScrollToOptions, SetActiveOptions, SetColumnOptions, SetStateOptions, SetStatusOptions, SortCallback, SourceType, TreeStateDefinition, UpdateOptions, VisitRowsOptions, WbEventInfo, WbNodeData, SortOptions, DeprecationOptions, SortByPropertyOptions, ReloadOptions, LoadLazyNodesOptions } from \"types\";\n    import { WunderbaumNode } from \"wb_node\";\n    import { InitWunderbaumOptions, WunderbaumOptions } from \"wb_options\";\n    import { DebouncedFunction } from \"debounce\";\n    /**\n     * A persistent plain object or array.\n     *\n     * See also {@link WunderbaumOptions}.\n     */\n    export class Wunderbaum {\n        protected static sequence: number;\n        protected enabled: boolean;\n        /** Wunderbaum release version number \"MAJOR.MINOR.PATCH\". */\n        static version: string;\n        /** The invisible root node, that holds all visible top level nodes. */\n        readonly root: WunderbaumNode;\n        /** Unique tree ID as passed to constructor. Defaults to `\"wb_SEQUENCE\"`. */\n        readonly id: string;\n        /** The `div` container element that was passed to the constructor. */\n        readonly element: HTMLDivElement;\n        /** The `div.wb-header` element if any. */\n        readonly headerElement: HTMLDivElement;\n        /** The `div.wb-list-container` element that contains the `nodeListElement`. */\n        readonly listContainerElement: HTMLDivElement;\n        /** The `div.wb-node-list` element that contains all visible div.wb-row child elements. */\n        readonly nodeListElement: HTMLDivElement;\n        /** Contains additional data that was sent as response to an Ajax source load request. */\n        readonly data: {\n            [key: string]: any;\n        };\n        protected readonly _updateViewportThrottled: DebouncedFunction<() => void>;\n        protected extensionList: WunderbaumExtension<any>[];\n        protected extensions: ExtensionsDict;\n        /** Merged options from constructor args and tree- and extension defaults. */\n        options: WunderbaumOptions;\n        protected keyMap: Map<string, WunderbaumNode>;\n        protected refKeyMap: Map<string, Set<WunderbaumNode>>;\n        protected treeRowCount: number;\n        protected _disableUpdateCount: number;\n        protected _disableUpdateIgnoreCount: number;\n        protected _activeNode: WunderbaumNode | null;\n        protected _focusNode: WunderbaumNode | null;\n        protected _initialSource: SourceType | null;\n        /** Currently active node if any.\n         * Use {@link WunderbaumNode.setActive|setActive} to modify.\n         */\n        get activeNode(): WunderbaumNode;\n        /** Current node hat has keyboard focus if any.\n         * Use {@link WunderbaumNode.setFocus|setFocus()} to modify.\n         */\n        get focusNode(): WunderbaumNode;\n        /** Shared properties, referenced by `node.type`. */\n        types: NodeTypeDefinitionMap;\n        /** List of column definitions. */\n        columns: ColumnDefinitionList;\n        protected _columnsById: {\n            [key: string]: any;\n        };\n        protected resizeObserver: ResizeObserver;\n        protected pendingChangeTypes: Set<RenderFlag>;\n        /** A Promise that is resolved when the tree was initialized (similar to `init(e)` event). */\n        readonly ready: Promise<any>;\n        /** Expose some useful methods of the util.ts module as `Wunderbaum.util`. */\n        static util: typeof util;\n        /** A map of default iconMaps.\n         * May be used as default, when passing partial icon definition maps:\n         * ```js\n         * const tree = new mar10.Wunderbaum({\n         *   ...\n         *   iconMap: Object.assign(Wunderbaum.iconMaps.bootstrap, {\n         *     folder: \"bi bi-archive\",\n         *   }),\n         * });\n         * ```\n         */\n        static iconMaps: {\n            bootstrap: IconMapType;\n            fontawesome6: IconMapType;\n        };\n        /** Expose some useful methods of the util.ts module as `tree._util`. */\n        _util: typeof util;\n        /** Filter options (used as defaults for calls to {@link Wunderbaum.filterNodes} ) */\n        breadcrumb: HTMLElement | null;\n        /** Filter options (used as defaults for calls to {@link Wunderbaum.filterNodes} ) */\n        filterMode: FilterModeType;\n        /** @internal Use `setColumn()`/`getActiveColElem()` to access. */\n        activeColIdx: number;\n        /** @internal */\n        _cellNavMode: boolean;\n        /** @internal */\n        lastQuicksearchTime: number;\n        /** @internal */\n        lastQuicksearchTerm: string;\n        protected lastClickTime: number;\n        constructor(options: InitWunderbaumOptions);\n        private _registerEventHandlers;\n        /**\n         * Return a Wunderbaum instance, from element, id, index, or event.\n         *\n         * ```js\n         * getTree();         // Get first Wunderbaum instance on page\n         * getTree(1);        // Get second Wunderbaum instance on page\n         * getTree(event);    // Get tree for this mouse- or keyboard event\n         * getTree(\"foo\");    // Get tree for this `tree.options.id`\n         * getTree(\"#tree\");  // Get tree for first matching element selector\n         * ```\n         */\n        static getTree(el?: Element | Event | number | string | WunderbaumNode): Wunderbaum | null;\n        /**\n         * Return the icon-function -> icon-definition mapping.\n         * @deprecated Use {@link Wunderbaum.iconMaps}\n         */\n        get iconMap(): IconMapType;\n        /**\n         * Return a WunderbaumNode instance from element or event.\n         */\n        static getNode(el: Element | Event): WunderbaumNode | null;\n        /**\n         * Iterate all descendant nodes depth-first, pre-order using `for ... of ...` syntax.\n         * More concise, but slightly slower than {@link Wunderbaum.visit}.\n         *\n         * Example:\n         * ```js\n         * for(const node of tree) {\n         *   ...\n         * }\n         * ```\n         */\n        [Symbol.iterator](): IterableIterator<WunderbaumNode>;\n        /** @internal */\n        protected _registerExtension(extension: WunderbaumExtension<any>): void;\n        /** Called on tree (re)init after markup is created, before loading. */\n        protected _initExtensions(): void;\n        /**\n         * Calculate a *stable*, unique key for a node from its refKey (or title).\n         * We also add information from the parent, because a refKey may occur multiple\n         * times in a tree (but not as child of the same parent).\n         * @internal\n         */\n        _calculateKey(data: WbNodeData, parent?: WunderbaumNode): string;\n        /** Add node to tree's bookkeeping data structures. @internal */\n        _registerNode(node: WunderbaumNode): void;\n        /** Remove node from tree's bookkeeping data structures. @internal  */\n        _unregisterNode(node: WunderbaumNode): void;\n        /** Call all hook methods of all registered extensions.*/\n        protected _callHook(hook: keyof WunderbaumExtension<any>, data?: any): any;\n        /**\n         * Call tree method or extension method if defined.\n         *\n         * Example:\n         * ```js\n         * tree._callMethod(\"edit.startEdit\", \"arg1\", \"arg2\")\n         * ```\n         */\n        _callMethod(name: string, ...args: any[]): any;\n        /**\n         * Call event handler if defined in tree or tree.EXTENSION options.\n         *\n         * Example:\n         * ```js\n         * tree._callEvent(\"edit.beforeEdit\", {foo: 42})\n         * ```\n         */\n        _callEvent(type: string, extra?: any): any;\n        /** Return the node for  given row index. */\n        protected _getNodeByRowIdx(idx: number): WunderbaumNode | null;\n        /** Return the topmost visible node in the viewport.\n         * @param complete If `false`, the node is considered visible if at least one\n         * pixel is visible.\n         */\n        getTopmostVpNode(complete?: boolean): WunderbaumNode;\n        /** Return the lowest visible node in the viewport. */\n        getLowestVpNode(complete?: boolean): WunderbaumNode;\n        /** Return preceding visible node in the viewport. */\n        protected _getPrevNodeInView(node?: WunderbaumNode, ofs?: number): WunderbaumNode;\n        /** Return following visible node in the viewport. */\n        protected _getNextNodeInView(node?: WunderbaumNode, options?: {\n            ofs?: number;\n            reverse?: boolean;\n            cb?: (n: WunderbaumNode) => boolean;\n        }): WunderbaumNode;\n        /**\n         * Append (or insert) a list of toplevel nodes.\n         *\n         * @see {@link WunderbaumNode.addChildren}\n         */\n        addChildren(nodeData: any, options?: AddChildrenOptions): WunderbaumNode;\n        /**\n         * Apply a modification (or navigation) operation on the **tree or active node**.\n         */\n        applyCommand(cmd: ApplyCommandType, options?: ApplyCommandOptions): any;\n        /**\n         * Apply a modification (or navigation) operation on a **node**.\n         * @see {@link WunderbaumNode.applyCommand}\n         */\n        applyCommand(cmd: ApplyCommandType, node: WunderbaumNode, options?: ApplyCommandOptions): any;\n        /** Delete all nodes. */\n        clear(): void;\n        /**\n         * Clear nodes and markup and detach events and observers.\n         *\n         * This method may be useful to free up resources before re-creating a tree\n         * on an existing div, for example in unittest suites.\n         * Note that this Wunderbaum instance becomes unusable afterwards.\n         */\n        destroy(): void;\n        /**\n         * Return `tree.option.NAME` (also resolving if this is a callback).\n         *\n         * See also {@link WunderbaumNode.getOption|WunderbaumNode.getOption()}\n         * to evaluate `node.NAME` setting and `tree.types[node.type].NAME`.\n         *\n         * @param name option name (use dot notation to access extension option, e.g.\n         * `filter.mode`)\n         */\n        getOption(name: string, defaultValue?: any): any;\n        /**\n         * Set tree option.\n         * Use dot notation to set plugin option, e.g. \"filter.mode\".\n         */\n        setOption(name: string, value: any): void;\n        /** Return true if the tree (or one of its nodes) has the input focus. */\n        hasFocus(): boolean;\n        /**\n         * Return true if the tree displays a header. Grids have a header unless the\n         * `header` option is set to `false`. Plain trees have a header if the `header`\n         * option is a string or `true`.\n         */\n        hasHeader(): boolean;\n        /** Run code, but defer rendering of viewport until done.\n         *\n         * ```js\n         * const res = tree.runWithDeferredUpdate(() => {\n         *   return someFunctionThatWouldUpdateManyNodes();\n         * });\n         * ```\n         */\n        runWithDeferredUpdate<T>(func: () => util.NotPromise<T>): T;\n        /** Run code, but defer rendering of viewport until done.\n         *\n         * ```js\n         * const res = await tree.runWithDeferredUpdate(async () => {\n         *   return someAsyncFunctionThatWouldUpdateManyNodes();\n         * });\n         * ```\n         */\n        runWithDeferredUpdateAsync<T>(func: () => Promise<T>): Promise<T>;\n        /** Recursively expand all expandable nodes (triggers lazy load if needed). */\n        expandAll(flag?: boolean, options?: ExpandAllOptions): Promise<void>;\n        /** Recursively select all nodes. */\n        selectAll(flag?: boolean): import(\"types\").TristateType;\n        /** Toggle select all nodes. */\n        toggleSelect(): void;\n        /**\n         * Return an array of selected nodes.\n         * @param stopOnParents only return the topmost selected node (useful with selectMode 'hier')\n         */\n        getSelectedNodes(stopOnParents?: boolean): WunderbaumNode[];\n        /**\n         * Return an array of refKey values.\n         *\n         * RefKeys are unique identifiers for a node data, and are used to identify\n         * clones.\n         * If more than one node has the same refKey, it is only returned once.\n         * @param selected if true, only return refKeys of selected nodes.\n         */\n        getRefKeys(selected?: boolean): string[];\n        protected _selectRange(eventInfo: WbEventInfo): false | void;\n        /** Return the number of nodes in the data model.\n         * @param visible if true, nodes that are hidden due to collapsed parents are ignored.\n         */\n        count(visible?: boolean): number;\n        /** Return the number of *unique* nodes in the data model, i.e. unique `node.refKey`.\n         */\n        countUnique(): number;\n        /** @internal sanity check. */\n        _check(): void;\n        /**\n         * Find all nodes that match condition.\n         *\n         * @param match title string to search for, or a\n         *     callback function that returns `true` if a node is matched.\n         * @see {@link WunderbaumNode.findAll}\n         */\n        findAll(match: string | RegExp | MatcherCallback): WunderbaumNode[];\n        /**\n         * Find all nodes with a given _refKey_ (aka a list of clones).\n         *\n         * @param refKey a `node.refKey` value to search for.\n         * @returns an array of matching nodes with at least two element or `[]`\n         * if nothing found.\n         *\n         * @see {@link WunderbaumNode.getCloneList}\n         */\n        findByRefKey(refKey: string): WunderbaumNode[];\n        /**\n         * Find first node that matches condition.\n         *\n         * @param match title string to search for, or a\n         *     callback function that returns `true` if a node is matched.\n         * @see {@link WunderbaumNode.findFirst}\n         */\n        findFirst(match: string | RegExp | MatcherCallback): WunderbaumNode;\n        /**\n         * Find first node that matches condition.\n         *\n         * @see {@link WunderbaumNode.findFirst}\n         *\n         */\n        findKey(key: string): WunderbaumNode | null;\n        /**\n         * Find the next visible node that starts with `match`, starting at `startNode`\n         * and wrap-around at the end.\n         * Used by quicksearch and keyboard navigation.\n         */\n        findNextNode(match: string | MatcherCallback, startNode?: WunderbaumNode | null, reverse?: boolean): WunderbaumNode | null;\n        /**\n         * Find a node relative to another node.\n         *\n         * @param node\n         * @param where 'down', 'first', 'last', 'left', 'parent', 'right', or 'up'.\n         *   (Alternatively the keyCode that would normally trigger this move,\n         *   e.g. `$.ui.keyCode.LEFT` = 'left'.\n         * @param includeHidden Not yet implemented\n         */\n        findRelatedNode(node: WunderbaumNode, where: NavigationType, includeHidden?: boolean): any;\n        /**\n         * Iterator version of {@link Wunderbaum.format}.\n         */\n        format_iter(name_cb?: NodeStringCallback, connectors?: string[]): IterableIterator<string>;\n        /**\n         * Return multiline string representation of the node hierarchy.\n         * Mostly useful for debugging.\n         *\n         * Example:\n         * ```js\n         * console.info(tree.format((n)=>n.title));\n         * ```\n         * logs\n         * ```\n         * Playground\n         * ├─ Books\n         * |   ├─ Art of War\n         * |   ╰─ Don Quixote\n         * ├─ Music\n         * ...\n         * ```\n         *\n         * @see {@link Wunderbaum.format_iter} and {@link WunderbaumNode.format}.\n         */\n        format(name_cb?: NodeStringCallback, connectors?: string[]): string;\n        /**\n         * Always returns null (so a tree instance behaves as `tree.root`).\n         */\n        get parent(): null;\n        /**\n         * Return a list of top-level nodes.\n         */\n        get children(): WunderbaumNode[];\n        /**\n         * Return the active cell (`span.wb-col`) of the currently active node or null.\n         */\n        getActiveColElem(): HTMLSpanElement;\n        /**\n         * Return the currently active node or null (alias for `tree.activeNode`).\n         * Alias for {@link Wunderbaum.activeNode}.\n         *\n         * @see {@link WunderbaumNode.setActive}\n         * @see {@link WunderbaumNode.isActive}\n         * @see {@link Wunderbaum.activeNode}\n         * @see {@link Wunderbaum.focusNode}\n         */\n        getActiveNode(): WunderbaumNode;\n        /**\n         * Return the first top level node if any (not the invisible root node).\n         */\n        getFirstChild(): WunderbaumNode;\n        /**\n         * Return the last top level node if any (not the invisible root node).\n         */\n        getLastChild(): WunderbaumNode;\n        /**\n         * Return the node that currently has keyboard focus or null.\n         * Alias for {@link Wunderbaum.focusNode}.\n         * @see {@link WunderbaumNode.setFocus}\n         * @see {@link WunderbaumNode.hasFocus}\n         * @see {@link Wunderbaum.activeNode}\n         * @see {@link Wunderbaum.focusNode}\n         */\n        getFocusNode(): WunderbaumNode;\n        /** Return a {node: WunderbaumNode, region: TYPE} object for a mouse event.\n         *\n         * @param {Event} event Mouse event, e.g. click, ...\n         * @returns {object} Return a {node: WunderbaumNode, region: TYPE} object\n         *     TYPE: 'title' | 'prefix' | 'expander' | 'checkbox' | 'icon' | undefined\n         */\n        static getEventInfo(event: Event): WbEventInfo;\n        /**\n         * Return readable string representation for this instance.\n         * @internal\n         */\n        toString(): string;\n        /** Return true if any node title or grid cell is currently beeing edited.\n         *\n         * See also {@link isEditingTitle}.\n         */\n        isEditing(): boolean;\n        /** Return true if any node is currently in edit-title mode.\n         *\n         * See also {@link WunderbaumNode.isEditingTitle} and {@link isEditing}.\n         */\n        isEditingTitle(): boolean;\n        /**\n         * Return true if any node is currently beeing loaded, i.e. a Ajax request is pending.\n         */\n        isLoading(): boolean;\n        /** Write to `console.log` with tree name as prefix if opts.debugLevel >= 4.\n         * @see {@link logDebug}\n         */\n        log(...args: any[]): void;\n        /** Write to `console.debug`  with tree name as prefix if opts.debugLevel >= 4.\n         * and browser console level includes debug/verbose messages.\n         * @see {@link log}\n         */\n        logDebug(...args: any[]): void;\n        /** Write to `console.error` with tree name as prefix. */\n        logError(...args: any[]): void;\n        /** Write to `console.info`  with tree name as prefix if opts.debugLevel >= 3. */\n        logInfo(...args: any[]): void;\n        /** @internal */\n        logTime(label: string): string;\n        /** @internal */\n        logTimeEnd(label: string): void;\n        /** Write to `console.warn` with tree name as prefix with if opts.debugLevel >= 2. */\n        logWarn(...args: any[]): void;\n        /** Emit a warning for deprecated methods. @internal */\n        logDeprecate(method: string, options?: DeprecationOptions): void;\n        /** Reset column widths to default. @since 0.10.0 */\n        resetColumns(): void;\n        /**\n         * Make sure that this node is vertically scrolled into the viewport.\n         *\n         * Nodes that are above the visible area become the top row, nodes that are\n         * below the viewport become the bottom row.\n         */\n        scrollTo(nodeOrOpts: ScrollToOptions | WunderbaumNode): void;\n        /**\n         * Make sure that this node is horizontally scrolled into the viewport.\n         * Called by {@link setColumn}.\n         */\n        protected scrollToHorz(): void;\n        /**\n         * Set column #colIdx to 'active'.\n         *\n         * This higlights the column header and -cells by adding the `wb-active`\n         * class to all grid cells of the active column. <br>\n         * Available in cell-nav mode only.\n         *\n         * If _options.edit_ is true, the embedded input element is focused, or if\n         * colIdx is 0, the node title is put into edit mode.\n         */\n        setColumn(colIdx: number | string, options?: SetColumnOptions): void;\n        _setActiveNode(node: WunderbaumNode | null): void;\n        /** Set or remove keyboard focus to the tree container. */\n        setActiveNode(key: string, flag?: boolean, options?: SetActiveOptions): void;\n        /** Set or remove keyboard focus to the tree container. */\n        setFocus(flag?: boolean): void;\n        _setFocusNode(node: WunderbaumNode | null): void;\n        /** Return the current selection/expansion/activation status. @experimental */\n        getState(options?: GetStateOptions): TreeStateDefinition;\n        /** Apply selection/expansion/activation status. @experimental */\n        setState(state: TreeStateDefinition, options?: SetStateOptions): Promise<void>;\n        /**\n         * Schedule an update request to reflect a tree change.\n         * The render operation is async and debounced unless the `immediate` option\n         * is set.\n         *\n         * Use {@link WunderbaumNode.update} if only a single node has changed,\n         * or {@link WunderbaumNode._render}) to pass special options.\n         */\n        update(change: ChangeType, options?: UpdateOptions): void;\n        /**\n         * Update a row to reflect a single node's modification.\n         *\n         * @see {@link WunderbaumNode.update}, {@link WunderbaumNode._render}\n         */\n        update(change: ChangeType, node: WunderbaumNode, options?: UpdateOptions): void;\n        /** Disable mouse and keyboard interaction (return prev. state). */\n        setEnabled(flag?: boolean): boolean;\n        /** Return false if tree is disabled. */\n        isEnabled(): boolean;\n        /** Return true if tree has more than one column, i.e. has additional data columns. */\n        isGrid(): boolean;\n        /** Return true if cell-navigation mode is active. */\n        isCellNav(): boolean;\n        /** Return true if row-navigation mode is active. */\n        isRowNav(): boolean;\n        /** Set the tree's navigation mode. */\n        setCellNav(flag?: boolean): void;\n        /** Set the tree's navigation mode option. */\n        setNavigationOption(mode: NavModeEnum, reset?: boolean): void;\n        /** Display tree status (ok, loading, error, noData) using styles and a dummy root node. */\n        setStatus(status: NodeStatusType, options?: SetStatusOptions): WunderbaumNode | null;\n        /** Add or redefine node type definitions. */\n        setTypes(types: any, replace?: boolean): void;\n        /**\n         * Sort nodes list by title or custom criteria.\n         * @param {function} cmp custom compare function(a, b) that returns -1, 0, or 1\n         *    (defaults to sorting by title).\n         * @param {boolean} deep pass true to sort all descendant nodes recursively\n         * @deprecated use {@link sort}\n         */\n        sortChildren(cmp?: SortCallback | null, deep?: boolean): void;\n        /**\n         * Convenience method to implement column sorting.\n         * @see {@link WunderbaumNode.sortByProperty}.\n         * @since 0.11.0\n         * @deprecated use {@link sort}\n         */\n        sortByProperty(options: SortByPropertyOptions): void;\n        /**\n         * Sort nodes list by title or custom criteria.\n         * @since 0.14.0\n         */\n        sort(options: SortOptions): void;\n        /** Convert tree to an array of plain objects.\n         *\n         * @param callback is called for every node, in order to allow\n         *     modifications.\n         *     Return `false` to ignore this node or `\"skip\"` to include this node\n         *     without its children.\n         * @see {@link WunderbaumNode.toDict}.\n         */\n        toDictArray(callback?: NodeToDictCallback): Array<WbNodeData>;\n        /**\n         * Update column headers and column width.\n         * Return true if at least one column width changed.\n         */\n        _updateColumnWidths(): boolean;\n        /** Create/update header markup from `this.columns` definition.\n         * @internal\n         */\n        protected _renderHeaderMarkup(): void;\n        /**\n         * Render pending changes that were scheduled using {@link WunderbaumNode.update} if any.\n         *\n         * This is hardly ever neccessary, since we normally either\n         * - call `update(ChangeType.TYPE)` (async, throttled), or\n         * - call `update(ChangeType.TYPE, {immediate: true})` (synchronous)\n         *\n         * `updatePendingModifications()` will only force immediate execution of\n         * pending async changes if any.\n         */\n        updatePendingModifications(): void;\n        /** @internal */\n        _createNodeIcon(node: WunderbaumNode, showLoading: boolean, showBadge: boolean): HTMLElement | null;\n        private _updateTopBreadcrumb;\n        /**\n         * This is the actual update method, which is wrapped inside a throttle method.\n         * It calls `updateColumns()` and `_updateRows()`.\n         *\n         * This protected method should not be called directly but via\n         * {@link WunderbaumNode.update}`, {@link Wunderbaum.update},\n         * or {@link Wunderbaum.updatePendingModifications}.\n         * @internal\n         */\n        protected _updateViewportImmediately(): void;\n        protected _updateRows(options?: any): boolean;\n        /**\n         * Call `callback(node)` for all nodes in hierarchical order (depth-first, pre-order).\n         * @see `wb_node.WunderbaumNode.IterableIterator<WunderbaumNode>`\n         * @see {@link WunderbaumNode.visit}.\n         *\n         * @param {function} callback the callback function.\n         *     Return false to stop iteration, return \"skip\" to skip this node and\n         *     children only.\n         * @returns {boolean} false, if the iterator was stopped.\n         */\n        visit(callback: (node: WunderbaumNode) => any): import(\"types\").NodeVisitResponse;\n        /**\n         * Call callback(node) for all nodes in vertical order, top down (or bottom up).\n         *\n         * Note that this considers expansion state, i.e. filtered nodes and children\n         * of collapsed nodes are skipped, unless `includeHidden` is set.\n         *\n         * Stop iteration if callback() returns false.<br>\n         * Return false if iteration was stopped.\n         *\n         * @returns {boolean} false if iteration was canceled\n         */\n        visitRows(callback: NodeVisitCallback, options?: VisitRowsOptions): boolean;\n        /**\n         * Call fn(node) for all nodes in vertical order, bottom up.\n         * @internal\n         */\n        protected _visitRowsUp(callback: NodeVisitCallback, options: VisitRowsOptions): boolean;\n        /**\n         * Reload the tree with a new source.\n         *\n         * Previous data is cleared. Note that also column- and type defintions may\n         * be passed with the `source` object.\n         * @see {@link Wunderbaum.reload} for a shortcut to reload the last ajax request\n         * and restore the previous state.\n         */\n        load(source: SourceType): Promise<void>;\n        /** Reload the tree and optionally restore state.\n         * Source defaults to last ajax url if any.\n         * Restoring the active node requires stable keys\n         * @see {@link WunderbaumOptions.autoKeys}\n         * @see {@link Wunderbaum.load}\n         * @experimental\n         */\n        reload(options?: ReloadOptions): Promise<void>;\n        /**\n         * Make sure that all nodes in the given keyList are accessible.\n         * This may include loading lazy parent nodes.\n         * Recursively load (and optionally expand) all requested node paths.\n         */\n        protected _loadLazyNodes(keyList: string[], options?: LoadLazyNodesOptions): Promise<void>;\n        /**\n         * Disable render requests during operations that would trigger many updates.\n         *\n         * ```js\n         * try {\n         *   tree.enableUpdate(false);\n         *   // ... (long running operation that would trigger many updates)\n         *   foo();\n         *   // ... NOTE: make sure that async operations have finished, e.g.\n         *   await foo();\n         * } finally {\n         *   tree.enableUpdate(true);\n         * }\n         * ```\n         */\n        enableUpdate(flag: boolean): void;\n        /**\n         * Dim or hide unmatched nodes.\n         * @param filter a string to match against node titles, or a callback function.\n         * @param options filter options. Defaults to the `tree.options.filter` settings.\n         * @returns the number of nodes that match the filter.\n         * @example\n         * ```ts\n         * tree.filterNodes(\"foo\", {mode: 'dim', fuzzy: true});\n         * // or pass a callback\n         * tree.filterNodes((node) => { return node.data.foo === true }, {mode: 'hide'});\n         * ```\n         */\n        filterNodes(filter: string | RegExp | NodeFilterCallback, options: FilterNodesOptions): number;\n        /**\n         * Return the number of nodes that match the current filter.\n         * @see {@link Wunderbaum.filterNodes}\n         * @since 0.9.0\n         */\n        countMatches(): number;\n        /**\n         * Dim or hide whole branches.\n         * @deprecated Use {@link filterNodes} instead and set `options.matchBranch: true`.\n         */\n        filterBranches(filter: string | NodeFilterCallback, options: FilterNodesOptions): number;\n        /**\n         * Reset the filter.\n         */\n        clearFilter(): void;\n        /**\n         * Return true if a filter is currently applied.\n         */\n        isFilterActive(): boolean;\n        /**\n         * Re-apply current filter.\n         */\n        updateFilter(): void;\n    }\n}\n"
  },
  {
    "path": "dist/wunderbaum.esm.js",
    "content": "/*!\n * Wunderbaum - debounce.ts\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n */\n/*\n * debounce & throttle, taken from https://github.com/lodash/lodash v4.17.21\n * MIT License: https://raw.githubusercontent.com/lodash/lodash/4.17.21-npm/LICENSE\n * Modified for TypeScript type annotations.\n */\n/* --- */\n/** Detect free variable `global` from Node.js. */\nconst freeGlobal = typeof global === \"object\" &&\n    global !== null &&\n    global.Object === Object &&\n    global;\n/** Detect free variable `globalThis` */\nconst freeGlobalThis = typeof globalThis === \"object\" &&\n    globalThis !== null &&\n    globalThis.Object == Object &&\n    globalThis;\n/** Detect free variable `self`. */\nconst freeSelf = typeof self === \"object\" && self !== null && self.Object === Object && self;\n/** Used as a reference to the global object. */\nconst root = freeGlobalThis || freeGlobal || freeSelf || Function(\"return this\")();\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * isObject({})\n * // => true\n *\n * isObject([1, 2, 3])\n * // => true\n *\n * isObject(Function)\n * // => true\n *\n * isObject(null)\n * // => false\n */\nfunction isObject(value) {\n    const type = typeof value;\n    return value != null && (type === \"object\" || type === \"function\");\n}\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked, or until the next browser frame is drawn. The debounced function\n * comes with a `cancel` method to cancel delayed `func` invocations and a\n * `flush` method to immediately invoke them. Provide `options` to indicate\n * whether `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. The `func` is invoked with the last arguments provided to the\n * debounced function. Subsequent calls to the debounced function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * If `wait` is omitted in an environment with `requestAnimationFrame`, `func`\n * invocation will be deferred until the next frame is drawn (typically about\n * 16ms).\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `debounce` and `throttle`.\n *\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0]\n *  The number of milliseconds to delay; if omitted, `requestAnimationFrame` is\n *  used (if available).\n * @param [options={}] The options object.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', debounce(calculateLayout, 150))\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }))\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * const debounced = debounce(batchLog, 250, { 'maxWait': 1000 })\n * const source = new EventSource('/stream')\n * jQuery(source).on('message', debounced)\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel)\n *\n * // Check for pending invocations.\n * const status = debounced.pending() ? \"Pending...\" : \"Ready\"\n */\nfunction debounce(func, wait = 0, options = {}) {\n    let lastArgs, lastThis, maxWait, result, timerId, lastCallTime;\n    let lastInvokeTime = 0;\n    let leading = false;\n    let maxing = false;\n    let trailing = true;\n    // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n    const useRAF = !wait && wait !== 0 && typeof root.requestAnimationFrame === \"function\";\n    if (typeof func !== \"function\") {\n        throw new TypeError(\"Expected a function\");\n    }\n    wait = +wait || 0;\n    if (isObject(options)) {\n        leading = !!options.leading;\n        maxing = \"maxWait\" in options;\n        maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : maxWait;\n        trailing = \"trailing\" in options ? !!options.trailing : trailing;\n    }\n    function invokeFunc(time) {\n        const args = lastArgs;\n        const thisArg = lastThis;\n        lastArgs = lastThis = undefined;\n        lastInvokeTime = time;\n        result = func.apply(thisArg, args);\n        return result;\n    }\n    function startTimer(pendingFunc, wait) {\n        if (useRAF) {\n            root.cancelAnimationFrame(timerId);\n            return root.requestAnimationFrame(pendingFunc);\n        }\n        return setTimeout(pendingFunc, wait);\n    }\n    function cancelTimer(id) {\n        if (useRAF) {\n            return root.cancelAnimationFrame(id);\n        }\n        clearTimeout(id);\n    }\n    function leadingEdge(time) {\n        // Reset any `maxWait` timer.\n        lastInvokeTime = time;\n        // Start the timer for the trailing edge.\n        timerId = startTimer(timerExpired, wait);\n        // Invoke the leading edge.\n        return leading ? invokeFunc(time) : result;\n    }\n    function remainingWait(time) {\n        const timeSinceLastCall = time - lastCallTime;\n        const timeSinceLastInvoke = time - lastInvokeTime;\n        const timeWaiting = wait - timeSinceLastCall;\n        return maxing\n            ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke)\n            : timeWaiting;\n    }\n    function shouldInvoke(time) {\n        const timeSinceLastCall = time - lastCallTime;\n        const timeSinceLastInvoke = time - lastInvokeTime;\n        // Either this is the first call, activity has stopped and we're at the\n        // trailing edge, the system time has gone backwards and we're treating\n        // it as the trailing edge, or we've hit the `maxWait` limit.\n        return (lastCallTime === undefined ||\n            timeSinceLastCall >= wait ||\n            timeSinceLastCall < 0 ||\n            (maxing && timeSinceLastInvoke >= maxWait));\n    }\n    function timerExpired() {\n        const time = Date.now();\n        if (shouldInvoke(time)) {\n            return trailingEdge(time);\n        }\n        // Restart the timer.\n        timerId = startTimer(timerExpired, remainingWait(time));\n    }\n    function trailingEdge(time) {\n        timerId = undefined;\n        // Only invoke if we have `lastArgs` which means `func` has been\n        // debounced at least once.\n        if (trailing && lastArgs) {\n            return invokeFunc(time);\n        }\n        lastArgs = lastThis = undefined;\n        return result;\n    }\n    function cancel() {\n        if (timerId !== undefined) {\n            cancelTimer(timerId);\n        }\n        lastInvokeTime = 0;\n        lastArgs = lastCallTime = lastThis = timerId = undefined;\n    }\n    function flush() {\n        return timerId === undefined ? result : trailingEdge(Date.now());\n    }\n    function pending() {\n        return timerId !== undefined;\n    }\n    function debounced(...args) {\n        const time = Date.now();\n        const isInvoking = shouldInvoke(time);\n        lastArgs = args;\n        // eslint-disable-next-line  @typescript-eslint/no-this-alias\n        lastThis = this;\n        lastCallTime = time;\n        if (isInvoking) {\n            if (timerId === undefined) {\n                return leadingEdge(lastCallTime);\n            }\n            if (maxing) {\n                // Handle invocations in a tight loop.\n                timerId = startTimer(timerExpired, wait);\n                return invokeFunc(lastCallTime);\n            }\n        }\n        if (timerId === undefined) {\n            timerId = startTimer(timerExpired, wait);\n        }\n        return result;\n    }\n    debounced.cancel = cancel;\n    debounced.flush = flush;\n    debounced.pending = pending;\n    return debounced;\n}\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds (or once per browser frame). The throttled function\n * comes with a `cancel` method to cancel delayed `func` invocations and a\n * `flush` method to immediately invoke them. Provide `options` to indicate\n * whether `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * If `wait` is omitted in an environment with `requestAnimationFrame`, `func`\n * invocation will be deferred until the next frame is drawn (typically about\n * 16ms).\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `throttle` and `debounce`.\n *\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0]\n *  The number of milliseconds to throttle invocations to; if omitted,\n *  `requestAnimationFrame` is used (if available).\n * @param [options={}] The options object.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', throttle(updatePosition, 100))\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * const throttled = throttle(renewToken, 300000, { 'trailing': false })\n * jQuery(element).on('click', throttled)\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel)\n */\nfunction throttle(func, wait = 0, options = {}) {\n    let leading = true;\n    let trailing = true;\n    if (typeof func !== \"function\") {\n        throw new TypeError(\"Expected a function\");\n    }\n    if (isObject(options)) {\n        leading = \"leading\" in options ? !!options.leading : leading;\n        trailing = \"trailing\" in options ? !!options.trailing : trailing;\n    }\n    return debounce(func, wait, {\n        leading,\n        trailing,\n        maxWait: wait,\n    });\n}\n\n/*!\n * Wunderbaum - util\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n */\n/** @module util */\n/** Readable names for `MouseEvent.button` */\nconst MOUSE_BUTTONS = {\n    0: \"\",\n    1: \"left\",\n    2: \"middle\",\n    3: \"right\",\n    4: \"back\",\n    5: \"forward\",\n};\nconst MAX_INT = 9007199254740991;\nconst userInfo = _getUserInfo();\n/**True if the client is using a macOS platform. */\nconst isMac = userInfo.isMac;\nconst REX_HTML = /[&<>\"'/]/g; // Escape those characters\nconst REX_TOOLTIP = /[<>\"'/]/g; // Don't escape `&` in tooltips\nconst ENTITY_MAP = {\n    \"&\": \"&amp;\",\n    \"<\": \"&lt;\",\n    \">\": \"&gt;\",\n    '\"': \"&quot;\",\n    \"'\": \"&#39;\",\n    \"/\": \"&#x2F;\",\n};\n/** A generic error that can be thrown to indicate a validation error when\n * handling the `apply` event for a node title or the `change` event for a\n * grid cell.\n */\nclass ValidationError extends Error {\n    constructor(message) {\n        super(message);\n        this.name = \"ValidationError\";\n    }\n}\n/**\n * A ES6 Promise, that exposes the resolve()/reject() methods.\n *\n * TODO: See [Promise.withResolvers()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers#description)\n * , a proposed standard, but not yet implemented in any browser.\n */\nlet Deferred$1 = class Deferred {\n    constructor() {\n        this.thens = [];\n        this.catches = [];\n        this.status = \"\";\n    }\n    resolve(value) {\n        if (this.status) {\n            throw new Error(\"already settled\");\n        }\n        this.status = \"resolved\";\n        this.resolvedValue = value;\n        this.thens.forEach((t) => t(value));\n        this.thens = []; // Avoid memleaks.\n    }\n    reject(error) {\n        if (this.status) {\n            throw new Error(\"already settled\");\n        }\n        this.status = \"rejected\";\n        this.rejectedError = error;\n        this.catches.forEach((c) => c(error));\n        this.catches = []; // Avoid memleaks.\n    }\n    then(cb) {\n        if (status === \"resolved\") {\n            cb(this.resolvedValue);\n        }\n        else {\n            this.thens.unshift(cb);\n        }\n    }\n    catch(cb) {\n        if (this.status === \"rejected\") {\n            cb(this.rejectedError);\n        }\n        else {\n            this.catches.unshift(cb);\n        }\n    }\n    promise() {\n        return {\n            then: this.then,\n            catch: this.catch,\n        };\n    }\n};\n/**Throw an `Error` if `cond` is falsey. */\nfunction assert(cond, msg) {\n    if (!cond) {\n        msg = msg || \"Assertion failed.\";\n        throw new Error(msg);\n    }\n}\nfunction _getUserInfo() {\n    const nav = navigator;\n    // const ua = nav.userAgentData;\n    const res = {\n        isMac: /Mac/.test(nav.platform),\n    };\n    return res;\n}\n/** Run `callback` when document was loaded. */\nfunction documentReady(callback) {\n    if (document.readyState === \"loading\") {\n        document.addEventListener(\"DOMContentLoaded\", callback);\n    }\n    else {\n        callback();\n    }\n}\n/** Resolve when document was loaded. */\nfunction documentReadyPromise() {\n    return new Promise((resolve) => {\n        documentReady(resolve);\n    });\n}\n/**\n * Iterate over Object properties or array elements.\n *\n * @param obj `Object`, `Array` or null\n * @param callback called for every item.\n *  `this` also contains the item.\n *  Return `false` to stop the iteration.\n */\nfunction each(obj, callback) {\n    if (obj == null) {\n        // accept `null` or `undefined`\n        return obj;\n    }\n    const length = obj.length;\n    let i = 0;\n    if (typeof length === \"number\") {\n        for (; i < length; i++) {\n            if (callback.call(obj[i], i, obj[i]) === false) {\n                break;\n            }\n        }\n    }\n    else {\n        for (const k in obj) {\n            if (callback.call(obj[i], k, obj[k]) === false) {\n                break;\n            }\n        }\n    }\n    return obj;\n}\n/** Shortcut for `throw new Error(msg)`. */\nfunction error(msg) {\n    throw new Error(msg);\n}\n/** Convert `<`, `>`, `&`, `\"`, `'`, and `/` to the equivalent entities. */\nfunction escapeHtml(s) {\n    return (\"\" + s).replace(REX_HTML, function (s) {\n        return ENTITY_MAP[s];\n    });\n}\n// export function escapeRegExp(s: string) {\n//   return s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\n// }\n/**Convert a regular expression string by escaping special characters (e.g. `\"$\"` -> `\"\\$\"`) */\nfunction escapeRegex(s) {\n    return (\"\" + s).replace(/([.?*+^$[\\]\\\\(){}|-])/g, \"\\\\$1\");\n}\n/** Convert `<`, `>`, `\"`, `'`, and `/` (but not `&`) to the equivalent entities. */\nfunction escapeTooltip(s) {\n    return (\"\" + s).replace(REX_TOOLTIP, function (s) {\n        return ENTITY_MAP[s];\n    });\n}\n/** TODO */\nfunction extractHtmlText(s) {\n    if (s.indexOf(\">\") >= 0) {\n        error(\"Not implemented\");\n        // return $(\"<div/>\").html(s).text();\n    }\n    return s;\n}\n/**\n * Read the value from an HTML input element.\n *\n * If a `<span class=\"wb-col\">` is passed, the first child input is used.\n * Depending on the target element type, `value` is interpreted accordingly.\n * For example for a checkbox, a value of true, false, or null is returned if\n * the element is checked, unchecked, or indeterminate.\n * For datetime input control a numerical value is assumed, etc.\n *\n * Common use case: store the new user input in a `change` event handler:\n *\n * ```ts\n *   change: (e) => {\n *     const tree = e.tree;\n *     const node = e.node;\n *     // Read the value from the input control that triggered the change event:\n *     let value = tree.getValueFromElem(e.element);\n *     // and store it to the node model (assuming the column id matches the property name)\n *     node.data[e.info.colId] = value;\n *   },\n * ```\n * @param elem `<input>` or `<select>` element. Also a parent `span.wb-col` is accepted.\n * @param coerce pass true to convert date/time inputs to `Date`.\n * @returns the value\n */\nfunction getValueFromElem(elem, coerce = false) {\n    const tag = elem.tagName;\n    let value = null;\n    if (tag === \"SPAN\" && elem.classList.contains(\"wb-col\")) {\n        const span = elem;\n        const embeddedInput = span.querySelector(\"input,select\");\n        if (embeddedInput) {\n            return getValueFromElem(embeddedInput, coerce);\n        }\n        span.innerText = \"\" + value;\n    }\n    else if (tag === \"INPUT\") {\n        const input = elem;\n        const type = input.type;\n        switch (type) {\n            case \"button\":\n            case \"reset\":\n            case \"submit\":\n            case \"image\":\n                break;\n            case \"checkbox\":\n                value = input.indeterminate ? null : input.checked;\n                break;\n            case \"date\":\n            case \"datetime\":\n            case \"datetime-local\":\n            case \"month\":\n            case \"time\":\n            case \"week\":\n                value = coerce ? input.valueAsDate : input.value;\n                break;\n            case \"number\":\n            case \"range\":\n                value = input.valueAsNumber;\n                break;\n            case \"radio\":\n                {\n                    const name = input.name;\n                    const checked = input.parentElement.querySelector(`input[name=\"${name}\"]:checked`);\n                    value = checked ? checked.value : undefined;\n                }\n                break;\n            case \"text\":\n            default:\n                value = input.value;\n        }\n    }\n    else if (tag === \"SELECT\") {\n        const select = elem;\n        value = select.value;\n    }\n    return value;\n}\n/**\n * Set the value of an HTML input element.\n *\n * If a `<span class=\"wb-col\">` is passed, the first child input is used.\n * Depending on the target element type, `value` is interpreted accordingly.\n * For example a checkbox is set to checked, unchecked, or indeterminate if the\n * value is truethy, falsy, or `null`.\n * For datetime input control a numerical value is assumed, etc.\n *\n * Common use case: update embedded input controls in a `render` event handler:\n *\n * ```ts\n *   render: (e) => {\n *     // e.node.log(e.type, e, e.node.data);\n *\n *     for (const col of Object.values(e.renderColInfosById)) {\n *       switch (col.id) {\n *         default:\n *           // Assumption: we named column.id === node.data.NAME\n *           util.setValueToElem(col.elem, e.node.data[col.id]);\n *           break;\n *       }\n *     }\n *   },\n * ```\n *\n * @param elem `<input>` or `<select>` element Also a parent `span.wb-col` is accepted.\n * @param value a value that matches the target element.\n */\nfunction setValueToElem(elem, value) {\n    const tag = elem.tagName;\n    if (tag === \"SPAN\" && elem.classList.contains(\"wb-col\")) {\n        const span = elem;\n        const embeddedInput = span.querySelector(\"input,select\");\n        if (embeddedInput) {\n            return setValueToElem(embeddedInput, value);\n        }\n        // No embedded input: simply write as escaped html\n        span.innerText = \"\" + value;\n    }\n    else if (tag === \"INPUT\") {\n        const input = elem;\n        const type = input.type;\n        switch (type) {\n            case \"checkbox\":\n                // An explicit `null` value is interpreted as 'indeterminate'.\n                // `undefined` is interpreted as 'unchecked'\n                input.indeterminate = value === null;\n                input.checked = !!value;\n                break;\n            case \"date\":\n            case \"month\":\n            case \"time\":\n            case \"week\":\n            case \"datetime\":\n            case \"datetime-local\":\n                input.valueAsDate = new Date(value);\n                break;\n            case \"number\":\n            case \"range\":\n                if (value == null) {\n                    input.value = value;\n                }\n                else {\n                    input.valueAsNumber = value;\n                }\n                break;\n            case \"radio\":\n                error(`Not yet implemented: ${type}`);\n                // const name = input.name;\n                // const checked = input.parentElement!.querySelector(\n                //   `input[name=\"${name}\"]:checked`\n                // );\n                // value = checked ? (<HTMLInputElement>checked).value : undefined;\n                break;\n            case \"button\":\n            case \"reset\":\n            case \"submit\":\n            case \"image\":\n                break;\n            case \"text\":\n            default:\n                input.value = value !== null && value !== void 0 ? value : \"\";\n        }\n    }\n    else if (tag === \"SELECT\") {\n        const select = elem;\n        if (value == null) {\n            select.selectedIndex = -1;\n        }\n        else {\n            select.value = value;\n        }\n    }\n}\n/** Show/hide element by setting the `display` style to 'none'. */\nfunction setElemDisplay(elem, flag) {\n    const style = elemFromSelector(elem).style;\n    if (flag) {\n        if (style.display === \"none\") {\n            style.display = \"\";\n        }\n    }\n    else if (style.display === \"\") {\n        style.display = \"none\";\n    }\n}\n/** Create and return an unconnected `HTMLElement` from a HTML string. */\nfunction elemFromHtml(html) {\n    const t = document.createElement(\"template\");\n    t.innerHTML = html.trim();\n    return t.content.firstElementChild;\n}\nconst _IGNORE_KEYS = new Set([\"Alt\", \"Control\", \"Meta\", \"Shift\"]);\n/** Return a HtmlElement from selector or cast an existing element. */\nfunction elemFromSelector(obj) {\n    if (!obj) {\n        return null; //(null as unknown) as HTMLElement;\n    }\n    if (typeof obj === \"string\") {\n        return document.querySelector(obj);\n    }\n    return obj;\n}\n/**\n * Return a canonical descriptive string for a keyboard or mouse event.\n *\n * The result also contains a prefix for modifiers if any, for example\n * `\"x\"`, `\"F2\"`, `\"Control+Home\"`, or `\"Shift+clickright\"`.\n * This is especially useful in `switch` statements, to make sure that modifier\n * keys are considered and handled correctly:\n * ```ts\n *   const eventName = util.eventToString(e);\n *   switch (eventName) {\n *     case \"+\":\n *     case \"Add\":\n *       ...\n *       break;\n *     case \"Enter\":\n *     case \"End\":\n *     case \"Control+End\":\n *     case \"Meta+ArrowDown\":\n *     case \"PageDown\":\n *       ...\n *       break;\n *   }\n * ```\n */\nfunction eventToString(event) {\n    const key = event.key;\n    const et = event.type;\n    const s = [];\n    if (event.altKey) {\n        s.push(\"Alt\");\n    }\n    if (event.ctrlKey) {\n        s.push(\"Control\");\n    }\n    if (event.metaKey) {\n        s.push(\"Meta\");\n    }\n    if (event.shiftKey) {\n        s.push(\"Shift\");\n    }\n    if (et === \"click\" || et === \"dblclick\") {\n        s.push(MOUSE_BUTTONS[event.button] + et);\n    }\n    else if (et === \"wheel\") {\n        s.push(et);\n        // } else if (!IGNORE_KEYCODES[key]) {\n        //   s.push(\n        //     SPECIAL_KEYCODES[key] ||\n        //     String.fromCharCode(key).toLowerCase()\n        //   );\n    }\n    else if (!_IGNORE_KEYS.has(key)) {\n        s.push(key);\n    }\n    return s.join(\"+\");\n}\n/**\n * Copy allproperties from one or more source objects to a target object.\n *\n * @returns the modified target object.\n */\n// TODO: use Object.assign()? --> https://stackoverflow.com/a/42740894\n// TODO: support deep merge --> https://stackoverflow.com/a/42740894\nfunction extend(...args) {\n    for (let i = 1; i < args.length; i++) {\n        const arg = args[i];\n        if (arg == null) {\n            continue;\n        }\n        for (const key in arg) {\n            if (Object.prototype.hasOwnProperty.call(arg, key)) {\n                args[0][key] = arg[key];\n            }\n        }\n    }\n    return args[0];\n}\n/** Return true if `obj` is of type `array`. */\nfunction isArray(obj) {\n    return Array.isArray(obj);\n}\n/** Return true if `obj` is of type `Object` and has no properties. */\nfunction isEmptyObject(obj) {\n    return Object.keys(obj).length === 0 && obj.constructor === Object;\n}\n/** Return true if `obj` is of type `function`. */\nfunction isFunction(obj) {\n    return typeof obj === \"function\";\n}\n/** Return true if `obj` is of type `Object`. */\nfunction isPlainObject(obj) {\n    return Object.prototype.toString.call(obj) === \"[object Object]\";\n}\n/** A dummy function that does nothing ('no operation'). */\nfunction noop(...args) { }\nfunction onEvent(rootTarget, eventNames, selectorOrHandler, handlerOrNone) {\n    let selector, handler;\n    rootTarget = elemFromSelector(rootTarget);\n    // rootTarget = eventTargetFromSelector<EventTarget>(rootTarget)!;\n    if (handlerOrNone) {\n        selector = selectorOrHandler;\n        handler = handlerOrNone;\n    }\n    else {\n        selector = \"\";\n        handler = selectorOrHandler;\n    }\n    eventNames.split(\" \").forEach((evn) => {\n        rootTarget.addEventListener(evn, function (e) {\n            if (!selector) {\n                return handler(e); // no event delegation\n            }\n            else if (e.target) {\n                let elem = e.target;\n                if (elem.matches(selector)) {\n                    return handler(e);\n                }\n                elem = elem.closest(selector);\n                if (elem) {\n                    return handler(e);\n                }\n            }\n        });\n    });\n}\n/** Return a wrapped handler method, that provides `this._super` and `this._superApply`.\n *\n * ```ts\n  // Implement `opts.createNode` event to add the 'draggable' attribute\n  overrideMethod(ctx.options, \"createNode\", (event, data) => {\n    // Default processing if any\n    this._super.apply(this, event, data);\n    // Add 'draggable' attribute\n    data.node.span.draggable = true;\n  });\n  ```\n  */\nfunction overrideMethod(instance, methodName, handler, ctx) {\n    let prevSuper, prevSuperApply;\n    const self = ctx || instance;\n    const prevFunc = instance[methodName];\n    const _super = (...args) => {\n        return prevFunc.apply(self, args);\n    };\n    const _superApply = (argsArray) => {\n        return prevFunc.apply(self, argsArray);\n    };\n    const wrapper = (...args) => {\n        try {\n            prevSuper = self._super;\n            prevSuperApply = self._superApply;\n            self._super = _super;\n            self._superApply = _superApply;\n            return handler.apply(self, args);\n        }\n        finally {\n            self._super = prevSuper;\n            self._superApply = prevSuperApply;\n        }\n    };\n    instance[methodName] = wrapper;\n}\n/** Run function after ms milliseconds and return a promise that resolves when done. */\nfunction setTimeoutPromise(callback, ms) {\n    return new Promise((resolve, reject) => {\n        setTimeout(() => {\n            try {\n                resolve(callback.apply(this));\n            }\n            catch (err) {\n                reject(err);\n            }\n        }, ms);\n    });\n}\n/**\n * Wait `ms` microseconds.\n *\n * Example:\n * ```js\n * await sleep(1000);\n * ```\n * @param ms duration\n * @returns\n */\nasync function sleep(ms) {\n    return new Promise((resolve) => setTimeout(resolve, ms));\n}\n/**\n * Set or rotate checkbox status with support for tri-state.\n *\n * An initial 'indeterminate' state becomes 'checked' on the first call.\n *\n * If the input element has the class 'wb-tristate' assigned, the sequence is:<br>\n * 'indeterminate' -> 'checked' -> 'unchecked' -> 'indeterminate' -> ...<br>\n * Otherwise we toggle like <br>\n * 'checked' -> 'unchecked' -> 'checked' -> ...\n */\nfunction toggleCheckbox(element, value, tristate) {\n    const input = elemFromSelector(element);\n    assert(input.type === \"checkbox\", `Expected a checkbox: ${input.type}`);\n    tristate !== null && tristate !== void 0 ? tristate : (tristate = input.classList.contains(\"wb-tristate\") || input.indeterminate);\n    if (value === undefined) {\n        const curValue = input.indeterminate ? null : input.checked;\n        switch (curValue) {\n            case true:\n                value = false;\n                break;\n            case false:\n                value = tristate ? null : true;\n                break;\n            case null:\n                value = true;\n                break;\n        }\n    }\n    input.indeterminate = value == null;\n    input.checked = !!value;\n}\n/**\n * Return `opts.NAME` if opts is valid and\n *\n * @param opts dict, object, or null\n * @param name option name (use dot notation to access extension option, e.g. `filter.mode`)\n * @param defaultValue returned when `opts` is not an object, or does not have a NAME property\n */\nfunction getOption(opts, name, defaultValue = undefined) {\n    let ext;\n    // Lookup `name` in options dict\n    if (opts && name.indexOf(\".\") >= 0) {\n        [ext, name] = name.split(\".\");\n        opts = opts[ext];\n    }\n    const value = opts ? opts[name] : null;\n    // Use value from value options dict, fallback do default\n    return value !== null && value !== void 0 ? value : defaultValue;\n}\n/** Return the next value from a list of values (rotating). @since 0.11 */\nfunction rotate(value, values) {\n    const idx = values.indexOf(value);\n    return values[(idx + 1) % values.length];\n}\n/** Convert an Array or space-separated string to a Set. */\nfunction toSet(val) {\n    if (val instanceof Set) {\n        return val;\n    }\n    if (typeof val === \"string\") {\n        const set = new Set();\n        for (const c of val.split(\" \")) {\n            set.add(c.trim());\n        }\n        return set;\n    }\n    if (Array.isArray(val)) {\n        return new Set(val);\n    }\n    throw new Error(\"Cannot convert to Set<string>: \" + val);\n}\n/** Convert a pixel string to number.\n * We accept a number or a string like '123px'. If undefined, the first default\n * value that is a number or a string ending with 'px' is returned.\n *\n * Example:\n * ```js\n * let x = undefined;\n * let y = \"123px\";\n * const width = util.toPixel(x, y, 100);  // returns 123\n * ```\n */\nfunction toPixel(...defaults) {\n    for (const d of defaults) {\n        if (typeof d === \"number\") {\n            return d;\n        }\n        if (typeof d === \"string\" && d.endsWith(\"px\")) {\n            return parseInt(d, 10);\n        }\n        assert(d == null, `Expected a number or string like '123px': ${d}`);\n    }\n    throw new Error(`Expected a string like '123px': ${defaults}`);\n}\n/** Cast any value to <T>. */\nfunction unsafeCast(value) {\n    return value;\n}\n/** Return the the boolean value of the first non-null element.\n * Example:\n * ```js\n * const opts = { flag: true };\n * const value = util.toBool(opts.foo, opts.flag, false);  // returns true\n * ```\n */\nfunction toBool(...boolDefaults) {\n    for (const d of boolDefaults) {\n        if (d != null) {\n            return !!d;\n        }\n    }\n    throw new Error(\"No default boolean value provided\");\n}\n/**\n * Return `val` unless `val` is a number in which case we convert to boolean.\n * This is useful when a boolean value is stored as a 0/1 (e.g. in JSON) and\n * we still want to maintain string values. null and undefined are returned as\n * is. E.g. `checkbox` may be boolean or 'radio'.\n */\nfunction intToBool(val) {\n    return typeof val === \"number\" ? !!val : val;\n}\n// /** Check if a string is contained in an Array or Set. */\n// export function isAnyOf(s: string, items: Array<string>|Set<string>): boolean {\n//   return Array.prototype.includes.call(items, s)\n// }\n// /** Check if an Array or Set has at least one matching entry. */\n// export function hasAnyOf(container: Array<string>|Set<string>, items: Array<string>): boolean {\n//   if (Array.isArray(container)) {\n//     return container.some(v => )\n//   }\n//   return container.some(v => {})\n//   // const container = toSet(items);\n//   // const itemSet = toSet(items);\n//   // Array.prototype.includes\n//   // throw new Error(\"Cannot convert to Set<string>: \" + val);\n// }\n/** Return a canonical string representation for an object's type (e.g. 'array', 'number', ...). */\nfunction type(obj) {\n    return Object.prototype.toString\n        .call(obj)\n        .replace(/^\\[object (.+)\\]$/, \"$1\")\n        .toLowerCase();\n}\n/**\n * Return a function that can be called instead of `callback`, but guarantees\n * a limited execution rate.\n * The execution rate is calculated based on the runtime duration of the\n * previous call.\n * Example:\n * ```js\n * throttledFoo = util.adaptiveThrottle(foo.bind(this), {});\n * throttledFoo();\n * throttledFoo();\n * ```\n */\nfunction adaptiveThrottle(callback, options) {\n    const opts = Object.assign({\n        minDelay: 16,\n        defaultDelay: 200,\n        maxDelay: 5000,\n        delayFactor: 2.0,\n    }, options);\n    const minDelay = Math.max(16, +opts.minDelay);\n    const maxDelay = +opts.maxDelay;\n    let waiting = 0; // Initially, we're not waiting\n    let pendingArgs = null;\n    let pendingTimer = null;\n    const throttledFn = (...args) => {\n        if (waiting) {\n            pendingArgs = args;\n            // console.log(`adaptiveThrottle() queueing request #${waiting}...`, args);\n            waiting += 1;\n        }\n        else {\n            // Prevent invocations while running or blocking\n            waiting = 1;\n            const useArgs = args; // pendingArgs || args;\n            pendingArgs = null;\n            // console.log(`adaptiveThrottle() execute...`, useArgs);\n            const start = Date.now();\n            try {\n                callback.apply(this, useArgs);\n            }\n            catch (error) {\n                console.error(error); // eslint-disable-line no-console\n            }\n            const elap = Date.now() - start;\n            const curDelay = Math.min(Math.max(minDelay, elap * opts.delayFactor), maxDelay);\n            const useDelay = Math.max(minDelay, curDelay - elap);\n            // console.log(\n            //   `adaptiveThrottle() calling worker took ${elap}ms. delay = ${curDelay}ms, using ${useDelay}ms`,\n            //   pendingArgs\n            // );\n            pendingTimer = setTimeout(() => {\n                // Unblock, and trigger pending requests if any\n                // const skipped = waiting - 1;\n                pendingTimer = null;\n                waiting = 0; // And allow future invocations\n                if (pendingArgs != null) {\n                    // There was another request while running or waiting\n                    // console.log(\n                    //   `adaptiveThrottle() re-trigger (missed ${skipped})...`,\n                    //   pendingArgs\n                    // );\n                    throttledFn.apply(this, pendingArgs);\n                }\n            }, useDelay);\n        }\n    };\n    throttledFn.cancel = () => {\n        if (pendingTimer) {\n            clearTimeout(pendingTimer);\n            pendingTimer = null;\n        }\n        pendingArgs = null;\n        waiting = 0;\n    };\n    throttledFn.pending = () => {\n        return !!pendingTimer;\n    };\n    throttledFn.flush = () => {\n        throw new Error(\"Not implemented\");\n    };\n    return throttledFn;\n}\n/**\n * MurmurHash3 implementation for strings.\n * @param key The input string to hash.\n * @param asString Optional convert result to zero-padded string of 8 characters.\n * @param seed Optional seed value.\n * @returns A 32-bit hash as a number or string.\n */\nfunction murmurHash3(key, asString = true, seed = 0) {\n    let h1 = seed;\n    const remainder = key.length & 3; // key.length % 4\n    const bytes = key.length - remainder;\n    const c1 = 0xcc9e2d51;\n    const c2 = 0x1b873593;\n    let i = 0;\n    while (i < bytes) {\n        let k1 = (key.charCodeAt(i) & 0xff) |\n            ((key.charCodeAt(++i) & 0xff) << 8) |\n            ((key.charCodeAt(++i) & 0xff) << 16) |\n            ((key.charCodeAt(++i) & 0xff) << 24);\n        ++i;\n        k1 = Math.imul(k1, c1);\n        k1 = (k1 << 15) | (k1 >>> 17);\n        k1 = Math.imul(k1, c2);\n        h1 ^= k1;\n        h1 = (h1 << 13) | (h1 >>> 19);\n        h1 = Math.imul(h1, 5) + 0xe6546b64;\n    }\n    let k1 = 0;\n    switch (remainder) {\n        case 3:\n            k1 ^= (key.charCodeAt(i + 2) & 0xff) << 16;\n        // fall through\n        case 2:\n            k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8;\n        // fall through\n        case 1:\n            k1 ^= key.charCodeAt(i) & 0xff;\n            k1 = Math.imul(k1, c1);\n            k1 = (k1 << 15) | (k1 >>> 17);\n            k1 = Math.imul(k1, c2);\n            h1 ^= k1;\n    }\n    h1 ^= key.length;\n    h1 ^= h1 >>> 16;\n    h1 = Math.imul(h1, 0x85ebca6b);\n    h1 ^= h1 >>> 13;\n    h1 = Math.imul(h1, 0xc2b2ae35);\n    h1 ^= h1 >>> 16;\n    if (asString) {\n        // Convert to 8 digit hex string\n        return (h1 >>> 0).toString(16).padStart(8, \"0\");\n    }\n    return h1 >>> 0; // Convert to unsigned 32-bit integer\n}\n\nvar util = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    Deferred: Deferred$1,\n    MAX_INT: MAX_INT,\n    MOUSE_BUTTONS: MOUSE_BUTTONS,\n    ValidationError: ValidationError,\n    adaptiveThrottle: adaptiveThrottle,\n    assert: assert,\n    debounce: debounce,\n    documentReady: documentReady,\n    documentReadyPromise: documentReadyPromise,\n    each: each,\n    elemFromHtml: elemFromHtml,\n    elemFromSelector: elemFromSelector,\n    error: error,\n    escapeHtml: escapeHtml,\n    escapeRegex: escapeRegex,\n    escapeTooltip: escapeTooltip,\n    eventToString: eventToString,\n    extend: extend,\n    extractHtmlText: extractHtmlText,\n    getOption: getOption,\n    getValueFromElem: getValueFromElem,\n    intToBool: intToBool,\n    isArray: isArray,\n    isEmptyObject: isEmptyObject,\n    isFunction: isFunction,\n    isMac: isMac,\n    isPlainObject: isPlainObject,\n    murmurHash3: murmurHash3,\n    noop: noop,\n    onEvent: onEvent,\n    overrideMethod: overrideMethod,\n    rotate: rotate,\n    setElemDisplay: setElemDisplay,\n    setTimeoutPromise: setTimeoutPromise,\n    setValueToElem: setValueToElem,\n    sleep: sleep,\n    throttle: throttle,\n    toBool: toBool,\n    toPixel: toPixel,\n    toSet: toSet,\n    toggleCheckbox: toggleCheckbox,\n    type: type,\n    unsafeCast: unsafeCast\n});\n\n/*!\n * Wunderbaum - types\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n */\n/**\n * Possible values for {@link WunderbaumNode.update} and {@link Wunderbaum.update}.\n */\nvar ChangeType;\n(function (ChangeType) {\n    /** Re-render the whole viewport, headers, and all rows. */\n    ChangeType[\"any\"] = \"any\";\n    /** A node's title, icon, columns, or status have changed. Update the existing row markup. */\n    ChangeType[\"data\"] = \"data\";\n    /** The `tree.columns` definition has changed beyond simple width adjustments. */\n    ChangeType[\"colStructure\"] = \"colStructure\";\n    /** The viewport/window was resized. Adjust layout attributes for all elements. */\n    ChangeType[\"resize\"] = \"resize\";\n    /** A node's definition has changed beyond status and data. Re-render the whole row's markup. */\n    ChangeType[\"row\"] = \"row\";\n    /** Nodes have been added, removed, etc. Update markup. */\n    ChangeType[\"structure\"] = \"structure\";\n    /** A node's status has changed. Update current row's classes, to reflect active, selected, ... */\n    ChangeType[\"status\"] = \"status\";\n    /** Vertical scroll event. Update the 'top' property of all rows. */\n    ChangeType[\"scroll\"] = \"scroll\";\n})(ChangeType || (ChangeType = {}));\n/** @internal */\nvar RenderFlag;\n(function (RenderFlag) {\n    RenderFlag[\"clearMarkup\"] = \"clearMarkup\";\n    RenderFlag[\"header\"] = \"header\";\n    RenderFlag[\"redraw\"] = \"redraw\";\n    RenderFlag[\"scroll\"] = \"scroll\";\n})(RenderFlag || (RenderFlag = {}));\n/** Possible values for {@link WunderbaumNode.setStatus}. */\nvar NodeStatusType;\n(function (NodeStatusType) {\n    NodeStatusType[\"ok\"] = \"ok\";\n    NodeStatusType[\"loading\"] = \"loading\";\n    NodeStatusType[\"error\"] = \"error\";\n    NodeStatusType[\"noData\"] = \"noData\";\n    NodeStatusType[\"paging\"] = \"paging\";\n})(NodeStatusType || (NodeStatusType = {}));\n/** Define the subregion of a node, where an event occurred. */\nvar NodeRegion;\n(function (NodeRegion) {\n    NodeRegion[\"unknown\"] = \"\";\n    NodeRegion[\"checkbox\"] = \"checkbox\";\n    NodeRegion[\"column\"] = \"column\";\n    NodeRegion[\"expander\"] = \"expander\";\n    NodeRegion[\"icon\"] = \"icon\";\n    NodeRegion[\"prefix\"] = \"prefix\";\n    NodeRegion[\"title\"] = \"title\";\n})(NodeRegion || (NodeRegion = {}));\n/** Initial navigation mode and possible transition. */\nvar NavModeEnum;\n(function (NavModeEnum) {\n    /** Start with row mode, but allow cell-nav mode */\n    NavModeEnum[\"startRow\"] = \"startRow\";\n    /** Cell-nav mode only */\n    NavModeEnum[\"cell\"] = \"cell\";\n    /** Start in cell-nav mode, but allow row mode */\n    NavModeEnum[\"startCell\"] = \"startCell\";\n    /** Row mode only */\n    NavModeEnum[\"row\"] = \"row\";\n})(NavModeEnum || (NavModeEnum = {}));\n\n/*!\n * Wunderbaum - wb_extension_base\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n */\nclass WunderbaumExtension {\n    constructor(tree, id, defaults) {\n        this.enabled = true;\n        this.tree = tree;\n        this.id = id;\n        this.treeOpts = tree.options;\n        const opts = tree.options;\n        if (this.treeOpts[id] === undefined) {\n            opts[id] = this.extensionOpts = extend({}, defaults);\n        }\n        else {\n            // TODO: do we break existing object instance references here?\n            this.extensionOpts = extend({}, defaults, opts[id]);\n            opts[id] = this.extensionOpts;\n        }\n        this.enabled = this.getPluginOption(\"enabled\", true);\n    }\n    /** Called on tree (re)init after all extensions are added, but before loading.*/\n    init() {\n        this.tree.element.classList.add(\"wb-ext-\" + this.id);\n    }\n    // protected callEvent(type: string, extra?: any): any {\n    //   let func = this.extensionOpts[type];\n    //   if (func) {\n    //     return func.call(\n    //       this.tree,\n    //       util.extend(\n    //         {\n    //           event: this.id + \".\" + type,\n    //         },\n    //         extra\n    //       )\n    //     );\n    //   }\n    // }\n    getPluginOption(name, defaultValue) {\n        var _a;\n        return (_a = this.extensionOpts[name]) !== null && _a !== void 0 ? _a : defaultValue;\n    }\n    setPluginOption(name, value) {\n        this.extensionOpts[name] = value;\n    }\n    setEnabled(flag = true) {\n        return this.setPluginOption(\"enabled\", !!flag);\n        // this.enabled = !!flag;\n    }\n    onKeyEvent(data) {\n        return;\n    }\n    onRender(data) {\n        return;\n    }\n}\n\n/*!\n * Wunderbaum - ext-filter\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n */\nconst START_MARKER = \"\\uFFF7\";\nconst END_MARKER = \"\\uFFF8\";\nconst RE_START_MARKER = new RegExp(escapeRegex(START_MARKER), \"g\");\nconst RE_END_MARTKER = new RegExp(escapeRegex(END_MARKER), \"g\");\nclass FilterExtension extends WunderbaumExtension {\n    constructor(tree) {\n        super(tree, \"filter\", {\n            autoApply: true, // Re-apply last filter if lazy data is loaded\n            autoExpand: false, // Expand all branches that contain matches while filtered\n            matchBranch: false, // Whether to implicitly match all children of matched nodes\n            connect: null, // Element or selector of an input control for filter query strings\n            fuzzy: false, // Match single characters in order, e.g. 'fb' will match 'FooBar'\n            hideExpanders: false, // Hide expanders if all child nodes are hidden by filter\n            highlight: true, // Highlight matches by wrapping inside <mark> tags\n            leavesOnly: false, // Match end nodes only\n            mode: \"dim\", // Grayout unmatched nodes (pass \"hide\" to remove unmatched node instead)\n            noData: true, // Display a 'no data' status node if result is empty\n        });\n        this.queryInput = null;\n        this.prevButton = null;\n        this.nextButton = null;\n        this.modeButton = null;\n        this.matchInfoElem = null;\n        this.lastFilterArgs = null;\n    }\n    init() {\n        super.init();\n        const connect = this.getPluginOption(\"connect\");\n        if (connect) {\n            this._connectControls();\n        }\n    }\n    setPluginOption(name, value) {\n        super.setPluginOption(name, value);\n        switch (name) {\n            case \"mode\":\n                this.tree.filterMode =\n                    value === \"hide\" ? \"hide\" : value === \"mark\" ? \"mark\" : \"dim\";\n                this.tree.updateFilter();\n                break;\n        }\n    }\n    _updatedConnectedControls() {\n        var _a;\n        const filterActive = this.tree.filterMode !== null;\n        const activeNode = this.tree.getActiveNode();\n        const matchCount = filterActive ? this.countMatches() : 0;\n        const strings = this.treeOpts.strings;\n        let matchIdx = \"?\";\n        if (this.matchInfoElem) {\n            if (filterActive) {\n                let info;\n                if (matchCount === 0) {\n                    info = strings.noMatch;\n                }\n                else if (activeNode && activeNode.match >= 1) {\n                    matchIdx = (_a = activeNode.match) !== null && _a !== void 0 ? _a : \"?\";\n                    info = strings.matchIndex;\n                }\n                else {\n                    info = strings.queryResult;\n                }\n                info = info\n                    .replace(\"${count}\", this.tree.count().toLocaleString())\n                    .replace(\"${match}\", \"\" + matchIdx)\n                    .replace(\"${matches}\", matchCount.toLocaleString());\n                this.matchInfoElem.textContent = info;\n            }\n            else {\n                this.matchInfoElem.textContent = \"\";\n            }\n        }\n        if (this.nextButton instanceof HTMLButtonElement) {\n            this.nextButton.disabled = !matchCount;\n        }\n        if (this.prevButton instanceof HTMLButtonElement) {\n            this.prevButton.disabled = !matchCount;\n        }\n        if (this.modeButton) {\n            this.modeButton.disabled = !filterActive;\n            this.modeButton.classList.toggle(\"wb-filter-hide\", this.tree.filterMode === \"hide\");\n        }\n    }\n    _connectControls() {\n        const tree = this.tree;\n        const connect = this.getPluginOption(\"connect\");\n        if (!connect) {\n            return;\n        }\n        this.queryInput = elemFromSelector(connect.inputElem);\n        if (!this.queryInput) {\n            throw new Error(`Invalid 'filter.connect' option: ${connect.inputElem}.`);\n        }\n        this.prevButton = elemFromSelector(connect.prevButton);\n        this.nextButton = elemFromSelector(connect.nextButton);\n        this.modeButton = elemFromSelector(connect.modeButton);\n        this.matchInfoElem = elemFromSelector(connect.matchInfoElem);\n        if (this.prevButton) {\n            onEvent(this.prevButton, \"click\", () => {\n                tree.findRelatedNode(tree.getActiveNode() || tree.getFirstChild(), \"prevMatch\");\n                this._updatedConnectedControls();\n            });\n        }\n        if (this.nextButton) {\n            onEvent(this.nextButton, \"click\", () => {\n                tree.findRelatedNode(tree.getActiveNode() || tree.getFirstChild(), \"nextMatch\");\n                this._updatedConnectedControls();\n            });\n        }\n        if (this.modeButton) {\n            onEvent(this.modeButton, \"click\", (e) => {\n                if (!this.tree.filterMode) {\n                    return;\n                }\n                this.setPluginOption(\"mode\", tree.filterMode === \"dim\" ? \"hide\" : \"dim\");\n            });\n        }\n        onEvent(this.queryInput, \"input\", debounce((e) => {\n            this.filterNodes(this.queryInput.value.trim(), {});\n        }, 700));\n        this._updatedConnectedControls();\n    }\n    _applyFilterNoUpdate(filter, _opts) {\n        return this.tree.runWithDeferredUpdate(() => {\n            return this._applyFilterImpl(filter, _opts);\n        });\n    }\n    _applyFilterImpl(filter, _opts) {\n        var _a;\n        let //temp,\n        count = 0;\n        const start = Date.now();\n        const tree = this.tree;\n        const treeOpts = tree.options;\n        const prevAutoCollapse = treeOpts.autoCollapse;\n        // Use default options from `tree.options.filter`, but allow to override them\n        const opts = extend({}, treeOpts.filter, _opts);\n        const hideMode = opts.mode === \"hide\";\n        const matchBranch = !!opts.matchBranch;\n        const leavesOnly = !!opts.leavesOnly && !matchBranch;\n        let filterRegExp;\n        let highlightRegExp;\n        // Default to 'match title substring (case insensitive)'\n        if (typeof filter === \"string\" || filter instanceof RegExp) {\n            if (filter === \"\") {\n                tree.logInfo(\"Passing an empty string as a filter is handled as clearFilter().\");\n                this.clearFilter();\n                return 0;\n            }\n            if (opts.fuzzy) {\n                assert(typeof filter === \"string\", \"fuzzy filter must be a string\");\n                // See https://codereview.stackexchange.com/questions/23899/faster-javascript-fuzzy-string-matching-function/23905#23905\n                // and http://www.quora.com/How-is-the-fuzzy-search-algorithm-in-Sublime-Text-designed\n                // and http://www.dustindiaz.com/autocomplete-fuzzy-matching\n                const matchReString = filter\n                    .split(\"\")\n                    // Escaping the `filter` will not work because,\n                    // it gets further split into individual characters. So,\n                    // escape each character after splitting\n                    .map(escapeRegex)\n                    .reduce(function (a, b) {\n                    // create capture groups for parts that comes before\n                    // the character\n                    return a + \"([^\" + b + \"]*)\" + b;\n                }, \"\");\n                filterRegExp = new RegExp(matchReString, \"i\");\n                // highlightRegExp = new RegExp(escapeRegex(filter), \"gi\");\n            }\n            else if (filter instanceof RegExp) {\n                filterRegExp = filter;\n                highlightRegExp = filter;\n            }\n            else {\n                const matchReString = escapeRegex(filter); // make sure a '.' is treated literally\n                filterRegExp = new RegExp(matchReString, \"i\");\n                highlightRegExp = new RegExp(matchReString, \"gi\");\n            }\n            tree.logDebug(`Filtering nodes by '${filterRegExp}'`);\n            // const re = new RegExp(match, \"i\");\n            // const reHighlight = new RegExp(escapeRegex(filter), \"gi\");\n            filter = (node) => {\n                if (!node.title) {\n                    return false;\n                }\n                // let text = escapeTitles ? node.title : extractHtmlText(node.title);\n                const text = node.title;\n                // `.match` instead of `.test` to get the capture groups\n                // const res = text.match(filterRegExp);\n                const res = filterRegExp.exec(text);\n                if (res && opts.highlight) {\n                    let highlightString;\n                    if (opts.fuzzy) {\n                        highlightString = _markFuzzyMatchedChars(text, res, true);\n                    }\n                    else {\n                        // #740: we must not apply the marks to escaped entity names, e.g. `&quot;`\n                        // Use some exotic characters to mark matches:\n                        highlightString = text.replace(highlightRegExp, function (s) {\n                            return START_MARKER + s + END_MARKER;\n                        });\n                    }\n                    // now we can escape the title...\n                    node.titleWithHighlight = escapeHtml(highlightString)\n                        // ... and finally insert the desired `<mark>` tags\n                        .replace(RE_START_MARKER, \"<mark>\")\n                        .replace(RE_END_MARTKER, \"</mark>\");\n                }\n                return !!res;\n            };\n        }\n        tree.filterMode = (_a = opts.mode) !== null && _a !== void 0 ? _a : \"dim\";\n        // eslint-disable-next-line prefer-rest-params\n        this.lastFilterArgs = arguments;\n        tree.element.classList.toggle(\"wb-ext-filter-hide\", !!hideMode);\n        tree.element.classList.toggle(\"wb-ext-filter-dim\", opts.mode === \"dim\");\n        tree.element.classList.toggle(\"wb-ext-filter-hide-expanders\", !!opts.hideExpanders);\n        // Reset current filter\n        tree.root.subMatchCount = 0;\n        tree.visit((node) => {\n            delete node.match;\n            delete node.titleWithHighlight;\n            node.subMatchCount = 0;\n        });\n        tree.setStatus(NodeStatusType.ok);\n        // Adjust node.hide, .match, and .subMatchCount properties\n        treeOpts.autoCollapse = false; // #528\n        tree.visit((node) => {\n            if (leavesOnly && node.children != null) {\n                return;\n            }\n            let res = filter(node);\n            if (res === \"skip\") {\n                node.visit(function (c) {\n                    c.match = undefined;\n                }, true);\n                return \"skip\";\n            }\n            let matchedByBranch = false;\n            if ((matchBranch || res === \"branch\") && node.parent.match) {\n                res = true;\n                matchedByBranch = true;\n            }\n            if (res) {\n                count++;\n                node.match = count;\n                node.visitParents((p) => {\n                    if (p !== node) {\n                        p.subMatchCount += 1;\n                    }\n                    // Expand match (unless this is no real match, but only a node in a matched branch)\n                    if (opts.autoExpand && !matchedByBranch && !p.expanded) {\n                        p.setExpanded(true, {\n                            noAnimation: true,\n                            noEvents: true,\n                        });\n                        p._filterAutoExpanded = true;\n                    }\n                }, true);\n            }\n        });\n        treeOpts.autoCollapse = prevAutoCollapse;\n        if (count === 0 && opts.noData && hideMode) {\n            if (typeof opts.noData === \"string\") {\n                tree.root.setStatus(NodeStatusType.noData, { message: opts.noData });\n            }\n            else {\n                tree.root.setStatus(NodeStatusType.noData);\n            }\n        }\n        // Redraw whole tree\n        tree.logDebug(`Filter '${filter}' found ${count} nodes in ${Date.now() - start} ms.`);\n        this._updatedConnectedControls();\n        return count;\n    }\n    /**\n     * [ext-filter] Dim or hide nodes.\n     */\n    filterNodes(filter, options) {\n        return this._applyFilterNoUpdate(filter, options);\n    }\n    /**\n     * [ext-filter] Dim or hide whole branches.\n     * @deprecated Use {@link filterNodes} instead and set `options.matchBranch: true`.\n     */\n    filterBranches(filter, options) {\n        assert(options.matchBranch === undefined, \"filterBranches() is deprecated.\");\n        this.tree.logDeprecate(\"filterBranches()\", {\n            since: \"0.9.0\",\n            hint: \"Use `filterNodes` instead and set `options.matchBranch: true`\",\n        });\n        options.matchBranch = true;\n        return this._applyFilterNoUpdate(filter, options);\n    }\n    /**\n     * [ext-filter] Return the number of matched nodes.\n     */\n    countMatches() {\n        let n = 0;\n        this.tree.visit((node) => {\n            if (node.match && !node.statusNodeType) {\n                n++;\n            }\n        });\n        return n;\n    }\n    /**\n     * [ext-filter] Re-apply current filter.\n     */\n    updateFilter() {\n        var _a;\n        const tree = this.tree;\n        if (tree.filterMode &&\n            this.lastFilterArgs &&\n            ((_a = tree.options.filter) === null || _a === void 0 ? void 0 : _a.autoApply)) {\n            // eslint-disable-next-line prefer-spread\n            this._applyFilterNoUpdate.apply(this, this.lastFilterArgs);\n        }\n        else {\n            tree.logWarn(\"updateFilter(): no filter active.\");\n        }\n        this._updatedConnectedControls();\n    }\n    /**\n     * [ext-filter] Reset the filter.\n     */\n    clearFilter() {\n        const tree = this.tree;\n        tree.enableUpdate(false);\n        tree.setStatus(NodeStatusType.ok);\n        // we also counted root node's subMatchCount\n        delete tree.root.match;\n        delete tree.root.subMatchCount;\n        tree.visit((node) => {\n            delete node.match;\n            delete node.subMatchCount;\n            delete node.titleWithHighlight;\n            if (node._filterAutoExpanded && node.expanded) {\n                node.setExpanded(false, {\n                    noAnimation: true,\n                    noEvents: true,\n                });\n            }\n            delete node._filterAutoExpanded;\n        });\n        tree.filterMode = null;\n        this.lastFilterArgs = null;\n        tree.element.classList.remove(\n        // \"wb-ext-filter\",\n        \"wb-ext-filter-dim\", \"wb-ext-filter-hide\");\n        this._updatedConnectedControls();\n        tree.enableUpdate(true);\n    }\n}\n/**\n * @description Marks the matching characters of `text` either by `mark` or\n * by exotic*Chars (if `escapeTitles` is `true`) based on `matches`\n * which is an array of matching groups.\n * @param {string} text\n * @param {RegExpMatchArray} matches\n */\nfunction _markFuzzyMatchedChars(text, matches, escapeTitles = true) {\n    const matchingIndices = [];\n    // get the indices of matched characters (Iterate through `RegExpMatchArray`)\n    for (let _matchingArrIdx = 1; _matchingArrIdx < matches.length; _matchingArrIdx++) {\n        const _mIdx = \n        // get matching char index by cumulatively adding\n        // the matched group length\n        matches[_matchingArrIdx].length +\n            (_matchingArrIdx === 1 ? 0 : 1) +\n            (matchingIndices[matchingIndices.length - 1] || 0);\n        matchingIndices.push(_mIdx);\n    }\n    // Map each `text` char to its position and store in `textPoses`.\n    const textPoses = text.split(\"\");\n    if (escapeTitles) {\n        // If escaping the title, then wrap the matching char within exotic chars\n        matchingIndices.forEach(function (v) {\n            textPoses[v] = START_MARKER + textPoses[v] + END_MARKER;\n        });\n    }\n    else {\n        // Otherwise, Wrap the matching chars within `mark`.\n        matchingIndices.forEach(function (v) {\n            textPoses[v] = \"<mark>\" + textPoses[v] + \"</mark>\";\n        });\n    }\n    // Join back the modified `textPoses` to create final highlight markup.\n    return textPoses.join(\"\");\n}\n\n/*!\n * Wunderbaum - ext-keynav\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n */\nconst QUICKSEARCH_DELAY = 500;\nclass KeynavExtension extends WunderbaumExtension {\n    constructor(tree) {\n        super(tree, \"keynav\", {});\n    }\n    _getEmbeddedInputElem(elem) {\n        var _a;\n        let input = null;\n        if (elem && elem.type != null) {\n            input = elem;\n        }\n        else {\n            // ,[contenteditable]\n            const ace = (_a = this.tree.getActiveColElem()) === null || _a === void 0 ? void 0 : _a.querySelector(\"input,select\");\n            if (ace) {\n                input = ace;\n            }\n        }\n        return input;\n    }\n    // /* Return the current cell's embedded input that has keyboard focus. */\n    // protected _getFocusedInputElem(): HTMLInputElement | null {\n    //   const ace = this.tree\n    //     .getActiveColElem()\n    //     ?.querySelector<HTMLInputElement>(\"input:focus,select:focus\");\n    //   return ace || null;\n    // }\n    /* Return true if the current cell's embedded input has keyboard focus. */\n    _isCurInputFocused() {\n        var _a;\n        const ace = (_a = this.tree\n            .getActiveColElem()) === null || _a === void 0 ? void 0 : _a.querySelector(\"input:focus,select:focus\");\n        return !!ace;\n    }\n    onKeyEvent(data) {\n        const event = data.event;\n        const tree = this.tree;\n        const opts = data.options;\n        const activate = !event.ctrlKey || opts.autoActivate;\n        const curInput = this._getEmbeddedInputElem(event.target);\n        const inputHasFocus = curInput && this._isCurInputFocused();\n        const navModeOption = opts.navigationModeOption;\n        let focusNode, eventName = eventToString(event), node = data.node, handled = true;\n        // tree.log(`onKeyEvent: ${eventName}, curInput`, curInput);\n        if (!tree.isEnabled()) {\n            // tree.logDebug(`onKeyEvent ignored for disabled tree: ${eventName}`);\n            return false;\n        }\n        // Let callback prevent default processing\n        if (tree._callEvent(\"keydown\", data) === false) {\n            return false;\n        }\n        // Let ext-edit trigger editing\n        if (tree._callMethod(\"edit._preprocessKeyEvent\", data) === false) {\n            return false;\n        }\n        // Set focus to active (or first node) if no other node has the focus yet\n        if (!node) {\n            const currentNode = tree.getFocusNode() || tree.getActiveNode();\n            const firstNode = tree.getFirstChild();\n            if (!currentNode && firstNode && eventName === \"ArrowDown\") {\n                firstNode.logInfo(\"Keydown: activate first node.\");\n                firstNode.setActive();\n                return;\n            }\n            focusNode = currentNode || firstNode;\n            if (focusNode) {\n                focusNode.setFocus();\n                node = tree.getFocusNode();\n                node.logInfo(\"Keydown: force focus on active node.\");\n            }\n        }\n        const isColspan = node.isColspan();\n        if (tree.isRowNav()) {\n            // -----------------------------------------------------------------------\n            // --- Row Mode ---\n            // -----------------------------------------------------------------------\n            if (inputHasFocus) {\n                // If editing an embedded input control, let the control handle all\n                // keys. Only Enter and Escape should apply / discard, but keep the\n                // keyboard focus.\n                switch (eventName) {\n                    case \"Enter\":\n                        curInput.blur();\n                        tree.setFocus();\n                        break;\n                    case \"Escape\":\n                        node._render();\n                        tree.setFocus();\n                        break;\n                }\n                return;\n            }\n            // --- Quick-Search\n            if (opts.quicksearch &&\n                eventName.length === 1 &&\n                /^\\w$/.test(eventName) &&\n                !curInput) {\n                // Allow to search for longer streaks if typed in quickly\n                const stamp = Date.now();\n                if (stamp - tree.lastQuicksearchTime > QUICKSEARCH_DELAY) {\n                    tree.lastQuicksearchTerm = \"\";\n                }\n                tree.lastQuicksearchTime = stamp;\n                tree.lastQuicksearchTerm += eventName;\n                const matchNode = tree.findNextNode(tree.lastQuicksearchTerm, tree.getActiveNode());\n                if (matchNode) {\n                    matchNode.setActive(true, { event: event });\n                }\n                event.preventDefault();\n                return;\n            }\n            // Pre-Evaluate expand/collapse action for LEFT/RIGHT\n            switch (eventName) {\n                case \"Enter\":\n                    if (node.isActive()) {\n                        if (node.isExpanded()) {\n                            eventName = \"Subtract\"; // callapse\n                        }\n                        else if (node.isExpandable(true)) {\n                            eventName = \"Add\"; // expand\n                        }\n                    }\n                    break;\n                case \"ArrowLeft\":\n                    if (node.expanded) {\n                        eventName = \"Subtract\"; // collapse\n                    }\n                    break;\n                case \"ArrowRight\":\n                    if (!node.expanded && node.isExpandable(true)) {\n                        eventName = \"Add\"; // expand\n                    }\n                    else if (navModeOption === NavModeEnum.startCell ||\n                        navModeOption === NavModeEnum.startRow) {\n                        event.preventDefault();\n                        tree.setCellNav();\n                        return false;\n                    }\n                    break;\n            }\n            // Standard navigation (row mode)\n            switch (eventName) {\n                case \"+\":\n                case \"Add\":\n                    // case \"=\": // 187: '+' @ Chrome, Safari\n                    node.setExpanded(true);\n                    break;\n                case \"-\":\n                case \"Subtract\":\n                    node.setExpanded(false);\n                    break;\n                case \" \": // Space\n                    // if (node.isPagingNode()) {\n                    //   tree._triggerNodeEvent(\"clickPaging\", ctx, event);\n                    // } else\n                    if (node.getOption(\"checkbox\")) {\n                        node.toggleSelected();\n                    }\n                    else {\n                        node.setActive(true, { event: event });\n                    }\n                    break;\n                case \"Enter\":\n                    node.setActive(true, { event: event });\n                    break;\n                case \"ArrowDown\":\n                case \"ArrowLeft\":\n                case \"ArrowRight\":\n                case \"ArrowUp\":\n                case \"Backspace\":\n                case \"End\":\n                case \"Home\":\n                case \"Control+End\":\n                case \"Control+Home\":\n                case \"Meta+ArrowDown\":\n                case \"Meta+ArrowUp\":\n                case \"PageDown\":\n                case \"PageUp\":\n                    node.navigate(eventName, { activate: activate, event: event });\n                    break;\n                default:\n                    handled = false;\n            }\n        }\n        else {\n            // -----------------------------------------------------------------------\n            // --- Cell Mode ---\n            // -----------------------------------------------------------------------\n            // // Standard navigation (cell mode)\n            // if (isCellEditMode && INPUT_BREAKOUT_KEYS.has(eventName)) {\n            // }\n            // const curInput = this._getEmbeddedInputElem(null);\n            const curInputType = curInput ? curInput.type || curInput.tagName : \"\";\n            // const inputHasFocus = curInput && this._isCurInputFocused();\n            const inputCanFocus = curInput && curInputType !== \"checkbox\";\n            if (inputHasFocus) {\n                if (eventName === \"Escape\") {\n                    node.logDebug(`Reset focused input on Escape`);\n                    // Discard changes and reset input validation state\n                    curInput.setCustomValidity(\"\");\n                    node._render();\n                    // Keep cell-nav mode\n                    tree.setFocus();\n                    tree.setColumn(tree.activeColIdx);\n                    return;\n                    // } else if (!INPUT_BREAKOUT_KEYS.has(eventName)) {\n                }\n                else if (eventName !== \"Enter\") {\n                    if (curInput && curInput.checkValidity && !curInput.checkValidity()) {\n                        // Invalid input: ignore all keys except Enter and Escape\n                        node.logDebug(`Ignored ${eventName} inside invalid input`);\n                        return false;\n                    }\n                    // Let current `<input>` handle it\n                    node.logDebug(`Ignored ${eventName} inside focused input`);\n                    return;\n                }\n                // const curInputType = curInput.type || curInput.tagName;\n                // const breakoutKeys = INPUT_KEYS[curInputType];\n                // if (!breakoutKeys.includes(eventName)) {\n                //   node.logDebug(`Ignored ${eventName} inside ${curInputType} input`);\n                //   return;\n                // }\n            }\n            else if (curInput) {\n                // On a cell that has an embedded, unfocused <input>\n                if (eventName.length === 1 && inputCanFocus) {\n                    // Typing a single char\n                    curInput.focus();\n                    curInput.value = \"\";\n                    node.logDebug(`Focus input: ${eventName}`);\n                    return false;\n                }\n            }\n            if (eventName === \"Tab\") {\n                eventName = \"ArrowRight\";\n                handled = true;\n            }\n            else if (eventName === \"Shift+Tab\") {\n                eventName = tree.activeColIdx > 0 ? \"ArrowLeft\" : \"\";\n                handled = true;\n            }\n            switch (eventName) {\n                case \"+\":\n                case \"Add\":\n                    // case \"=\": // 187: '+' @ Chrome, Safari\n                    node.setExpanded(true);\n                    break;\n                case \"-\":\n                case \"Subtract\":\n                    node.setExpanded(false);\n                    break;\n                case \" \": // Space\n                    if (tree.activeColIdx === 0 && node.getOption(\"checkbox\")) {\n                        node.toggleSelected();\n                        handled = true;\n                    }\n                    else if (curInput && curInputType === \"checkbox\") {\n                        curInput.click();\n                        // toggleCheckbox(curInput)\n                        // new Event(\"change\")\n                        // curInput.change\n                        handled = true;\n                    }\n                    break;\n                case \"F2\":\n                    if (curInput && !inputHasFocus && inputCanFocus) {\n                        curInput.focus();\n                        handled = true;\n                    }\n                    break;\n                case \"Enter\":\n                    tree.setFocus(); // Blur prev. input if any\n                    if ((tree.activeColIdx === 0 || isColspan) && node.isExpandable()) {\n                        node.setExpanded(!node.isExpanded());\n                        handled = true;\n                    }\n                    else if (curInput && !inputHasFocus && inputCanFocus) {\n                        curInput.focus();\n                        handled = true;\n                    }\n                    break;\n                case \"Escape\":\n                    tree.setFocus(); // Blur prev. input if any\n                    node.log(`keynav: focus tree...`);\n                    if (tree.isCellNav() && navModeOption !== NavModeEnum.cell) {\n                        node.log(`keynav: setCellNav(false)`);\n                        tree.setCellNav(false); // row-nav mode\n                        tree.setFocus(); //\n                        handled = true;\n                    }\n                    break;\n                case \"ArrowLeft\":\n                    tree.setFocus(); // Blur prev. input if any\n                    if (isColspan && node.isExpanded()) {\n                        node.setExpanded(false);\n                    }\n                    else if (!isColspan && tree.activeColIdx > 0) {\n                        tree.setColumn(tree.activeColIdx - 1);\n                    }\n                    else if (navModeOption !== NavModeEnum.cell) {\n                        tree.setCellNav(false); // row-nav mode\n                    }\n                    handled = true;\n                    break;\n                case \"ArrowRight\":\n                    tree.setFocus(); // Blur prev. input if any\n                    if (isColspan && !node.isExpanded()) {\n                        node.setExpanded();\n                    }\n                    else if (!isColspan &&\n                        tree.activeColIdx < tree.columns.length - 1) {\n                        tree.setColumn(tree.activeColIdx + 1);\n                    }\n                    handled = true;\n                    break;\n                case \"Home\": // Generated by [Fn] + ArrowLeft on Mac\n                    // case \"Meta+ArrowLeft\":\n                    tree.setFocus(); // Blur prev. input if any\n                    if (!isColspan && tree.activeColIdx > 0) {\n                        tree.setColumn(0);\n                    }\n                    handled = true;\n                    break;\n                case \"End\": // Generated by [Fn] + ArrowRight on Mac\n                    // case \"Meta+ArrowRight\":\n                    tree.setFocus(); // Blur prev. input if any\n                    if (!isColspan && tree.activeColIdx < tree.columns.length - 1) {\n                        tree.setColumn(tree.columns.length - 1);\n                    }\n                    handled = true;\n                    break;\n                case \"ArrowDown\":\n                case \"ArrowUp\":\n                case \"Backspace\":\n                case \"Control+End\": // Generated by Control + [Fn] + ArrowRight on Mac\n                case \"Control+Home\": // Generated by Control + [Fn] + Arrowleft on Mac\n                case \"Meta+ArrowDown\": // [⌘] + ArrowDown on Mac\n                case \"Meta+ArrowUp\": // [⌘] + ArrowUp on Mac\n                case \"PageDown\": // Generated by [Fn] + ArrowDown on Mac\n                case \"PageUp\": // Generated by [Fn] + ArrowUp on Mac\n                    node.navigate(eventName, { activate: activate, event: event });\n                    // if (isCellEditMode) {\n                    //   this._getEmbeddedInputElem(null, true); // set focus to input\n                    // }\n                    handled = true;\n                    break;\n                default:\n                    handled = false;\n            }\n        }\n        if (handled) {\n            event.preventDefault();\n        }\n        return;\n    }\n}\n\n/*!\n * Wunderbaum - ext-logger\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n */\nclass LoggerExtension extends WunderbaumExtension {\n    constructor(tree) {\n        super(tree, \"logger\", {});\n        this.ignoreEvents = new Set([\n            \"iconBadge\",\n            // \"enhanceTitle\",\n            \"render\",\n            \"discard\",\n        ]);\n        this.prefix = tree + \".ext-logger\";\n    }\n    init() {\n        const tree = this.tree;\n        // this.ignoreEvents.add();\n        if (tree.getOption(\"debugLevel\") >= 4) {\n            // const self = this;\n            const ignoreEvents = this.ignoreEvents;\n            const prefix = this.prefix;\n            overrideMethod(tree, \"callEvent\", function (name, extra) {\n                /* eslint-disable prefer-rest-params */\n                if (ignoreEvents.has(name)) {\n                    return tree._superApply(arguments);\n                }\n                const start = Date.now();\n                const res = tree._superApply(arguments);\n                tree.logDebug(`${prefix}: callEvent('${name}') took ${Date.now() - start} ms.`, arguments[1]);\n                return res;\n            });\n        }\n    }\n    onKeyEvent(data) {\n        // this.tree.logInfo(\"onKeyEvent\", eventToString(data.event), data);\n        this.tree.logDebug(`${this.prefix}: onKeyEvent()`, data);\n        return;\n    }\n}\n\n/*!\n * Wunderbaum - ext-dnd\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n */\nconst nodeMimeType = \"application/x-wunderbaum-node\";\nclass DndExtension extends WunderbaumExtension {\n    constructor(tree) {\n        super(tree, \"dnd\", {\n            autoExpandMS: 1500, // Expand nodes after n milliseconds of hovering\n            // dropMarkerInsertOffsetX: -16, // Additional offset for drop-marker with hitMode = \"before\"/\"after\"\n            // dropMarkerOffsetX: -24, // Absolute position offset for .fancytree-drop-marker relatively to ..fancytree-title (icon/img near a node accepting drop)\n            // #1021 `document.body` is not available yet\n            // dropMarkerParent: \"body\", // Root Container used for drop marker (could be a shadow root)\n            multiSource: false, // true: Drag multiple (i.e. selected) nodes. Also a callback() is allowed\n            effectAllowed: \"all\", // Restrict the possible cursor shapes and modifier operations (can also be set in the dragStart event)\n            dropEffectDefault: \"move\", // Default dropEffect ('copy', 'link', or 'move') when no modifier is pressed (override in drag, dragOver).\n            guessDropEffect: true, // Calculate from `effectAllowed` and modifier keys)\n            preventForeignNodes: false, // Prevent dropping nodes from different Wunderbaum trees\n            preventLazyParents: true, // Prevent dropping items on unloaded lazy Wunderbaum tree nodes\n            preventNonNodes: false, // Prevent dropping items other than Wunderbaum tree nodes\n            preventRecursion: true, // Prevent dropping nodes on own descendants\n            preventSameParent: false, // Prevent dropping nodes under same direct parent\n            preventVoidMoves: true, // Prevent dropping nodes 'before self', etc. (move only)\n            serializeClipboardData: true, // Serialize node data to dataTransfer object\n            scroll: true, // Enable auto-scrolling while dragging\n            scrollSensitivity: 20, // Active top/bottom margin in pixel\n            // scrollnterval: 50, // Generate event every 50 ms\n            scrollSpeed: 5, // Scroll pixel per 50 ms\n            // setTextTypeJson: false, // Allow dragging of nodes to different IE windows\n            sourceCopyHook: null, // Optional callback passed to `toDict` on dragStart @since 2.38\n            // Events (drag support)\n            dragStart: null, // Callback(sourceNode, data), return true, to enable dnd drag\n            drag: null, // Callback(sourceNode, data)\n            dragEnd: null, // Callback(sourceNode, data)\n            // Events (drop support)\n            dragEnter: null, // Callback(targetNode, data), return true, to enable dnd drop\n            dragOver: null, // Callback(targetNode, data)\n            dragExpand: null, // Callback(targetNode, data), return false to prevent autoExpand\n            drop: null, // Callback(targetNode, data)\n            dragLeave: null, // Callback(targetNode, data)\n        });\n        // public dropMarkerElem?: HTMLElement;\n        this.srcNode = null;\n        this.lastTargetNode = null;\n        this.lastEnterStamp = 0;\n        this.lastAllowedDropRegions = null;\n        this.lastDropEffect = null;\n        this.lastDropRegion = false;\n        this.currentScrollDir = 0;\n        this.applyScrollDirThrottled = throttle(this._applyScrollDir, 50);\n    }\n    init() {\n        super.init();\n        // Store the current scroll parent, which may be the tree\n        // container, any enclosing div, or the document.\n        // #761: scrollParent() always needs a container child\n        // $temp = $(\"<span>\").appendTo(this.$container);\n        // this.$scrollParent = $temp.scrollParent();\n        // $temp.remove();\n        const tree = this.tree;\n        const dndOpts = tree.options.dnd;\n        // Enable drag support if dragStart() is specified:\n        if (dndOpts.dragStart) {\n            onEvent(tree.element, \"dragstart drag dragend\", this.onDragEvent.bind(this));\n        }\n        // Enable drop support if dragEnter() is specified:\n        if (dndOpts.dragEnter) {\n            onEvent(tree.element, \"dragenter dragover dragleave drop\", this.onDropEvent.bind(this));\n        }\n    }\n    /** Cleanup classes after target node is no longer hovered. */\n    _leaveNode() {\n        // We remove the marker on dragenter from the previous target:\n        const ltn = this.lastTargetNode;\n        this.lastEnterStamp = 0;\n        if (ltn) {\n            ltn.setClass(\"wb-drop-target wb-drop-over wb-drop-after wb-drop-before\", false);\n            this.lastTargetNode = null;\n        }\n    }\n    /** */\n    unifyDragover(res) {\n        if (res === false) {\n            return false;\n        }\n        else if (res instanceof Set) {\n            return res.size > 0 ? res : false;\n        }\n        else if (res === true) {\n            return new Set([\"over\", \"before\", \"after\"]);\n        }\n        else if (typeof res === \"string\" || isArray(res)) {\n            res = toSet(res);\n            return res.size > 0 ? res : false;\n        }\n        throw new Error(\"Unsupported drop region definition: \" + res);\n    }\n    /**\n     * Calculates the drop region based on the drag event and the allowed drop regions.\n     */\n    _calcDropRegion(e, allowed) {\n        const rowHeight = this.tree.options.rowHeightPx;\n        const dy = e.offsetY;\n        if (!allowed) {\n            return false;\n        }\n        else if (allowed.size === 3) {\n            return dy < 0.25 * rowHeight\n                ? \"before\"\n                : dy > 0.75 * rowHeight\n                    ? \"after\"\n                    : \"over\";\n        }\n        else if (allowed.size === 1 && allowed.has(\"over\")) {\n            return \"over\";\n        }\n        else {\n            // Only 'before' and 'after':\n            return dy > rowHeight / 2 ? \"after\" : \"before\";\n        }\n        // return \"over\";\n    }\n    /**\n     * Guess drop effect (copy/link/move) using opinionated conventions.\n     *\n     * Default: dnd.dropEffectDefault\n     */\n    _guessDropEffect(e) {\n        // const nativeDropEffect = e.dataTransfer?.dropEffect;\n        var _a;\n        // if (nativeDropEffect && nativeDropEffect !== \"none\") {\n        //   return nativeDropEffect;\n        // }\n        const dndOpts = this.treeOpts.dnd;\n        const ea = (_a = dndOpts.effectAllowed) !== null && _a !== void 0 ? _a : \"all\";\n        const canCopy = [\"all\", \"copy\", \"copyLink\", \"copyMove\"].includes(ea);\n        const canLink = [\"all\", \"link\", \"copyLink\", \"linkMove\"].includes(ea);\n        const canMove = [\"all\", \"move\", \"copyMove\", \"linkMove\"].includes(ea);\n        let res = dndOpts.dropEffectDefault;\n        if (dndOpts.guessDropEffect) {\n            if (isMac) {\n                if (e.altKey && canCopy) {\n                    res = \"copy\";\n                }\n                if (e.metaKey && canMove) {\n                    res = \"move\"; // command key\n                }\n                if (e.altKey && e.metaKey && canLink) {\n                    res = \"link\";\n                }\n            }\n            else {\n                if (e.ctrlKey && canCopy) {\n                    res = \"copy\";\n                }\n                if (e.shiftKey && canMove) {\n                    res = \"move\";\n                }\n                if (e.altKey && canLink) {\n                    res = \"link\";\n                }\n            }\n        }\n        return res;\n    }\n    /** Don't allow void operation ('drop on self').*/\n    _isVoidDrop(targetNode, srcNode, dropRegion) {\n        // this.tree.logDebug(\n        //   `_isVoidDrop: ${srcNode} -> ${dropRegion} ${targetNode}`\n        // );\n        // TODO: should be checked on  move only\n        if (!this.treeOpts.dnd.preventVoidMoves || !srcNode) {\n            return false;\n        }\n        if ((dropRegion === \"before\" && targetNode === srcNode.getNextSibling()) ||\n            (dropRegion === \"after\" && targetNode === srcNode.getPrevSibling())) {\n            // this.tree.logDebug(\"Prevented before/after self\");\n            return true;\n        }\n        // Don't allow dropping nodes on own parent (or self)\n        return srcNode === targetNode || srcNode.parent === targetNode;\n    }\n    /* Implement auto scrolling when drag cursor is in top/bottom area of scroll parent. */\n    _applyScrollDir() {\n        if (this.isDragging() && this.currentScrollDir) {\n            const dndOpts = this.tree.options.dnd;\n            const sp = this.tree.element; // scroll parent\n            const scrollTop = sp.scrollTop;\n            if (this.currentScrollDir < 0) {\n                sp.scrollTop = Math.max(0, scrollTop - dndOpts.scrollSpeed);\n            }\n            else if (this.currentScrollDir > 0) {\n                sp.scrollTop = scrollTop + dndOpts.scrollSpeed;\n            }\n        }\n    }\n    /* Implement auto scrolling when drag cursor is in top/bottom area of scroll parent. */\n    _autoScroll(viewportY) {\n        const tree = this.tree;\n        const dndOpts = tree.options.dnd;\n        const sensitivity = dndOpts.scrollSensitivity;\n        const sp = tree.element; // scroll parent\n        const headerHeight = tree.headerElement.clientHeight; // May be 0\n        // const height = sp.clientHeight - headerHeight;\n        // const height = sp.offsetHeight + headerHeight;\n        const height = sp.offsetHeight;\n        const scrollTop = sp.scrollTop;\n        // tree.logDebug(\n        //   `autoScroll: height=${height}, scrollTop=${scrollTop}, viewportY=${viewportY}`\n        // );\n        this.currentScrollDir = 0;\n        if (scrollTop > 0 &&\n            viewportY > 0 &&\n            viewportY <= sensitivity + headerHeight) {\n            // Mouse in top 20px area: scroll up\n            // sp.scrollTop = Math.max(0, scrollTop - dndOpts.scrollSpeed);\n            this.currentScrollDir = -1;\n        }\n        else if (scrollTop < sp.scrollHeight - height &&\n            viewportY >= height - sensitivity) {\n            // Mouse in bottom 20px area: scroll down\n            // sp.scrollTop = scrollTop + dndOpts.scrollSpeed;\n            this.currentScrollDir = 1;\n        }\n        if (this.currentScrollDir) {\n            this.applyScrollDirThrottled();\n        }\n        return sp.scrollTop - scrollTop;\n    }\n    /** Return true if a drag operation currently in progress. */\n    isDragging() {\n        return !!this.srcNode;\n    }\n    /**\n     * Handle dragstart, drag and dragend events for the source node.\n     */\n    onDragEvent(e) {\n        var _a;\n        const dndOpts = this.treeOpts.dnd;\n        const srcNode = Wunderbaum.getNode(e);\n        if (!srcNode) {\n            this.tree.logWarn(`onDragEvent.${e.type}: no node`);\n            return;\n        }\n        if ([\"dragstart\", \"dragend\"].includes(e.type)) {\n            this.tree.logDebug(`onDragEvent.${e.type} srcNode: ${srcNode}`, e);\n        }\n        // --- dragstart ---\n        if (e.type === \"dragstart\") {\n            // Set a default definition of allowed effects\n            e.dataTransfer.effectAllowed = dndOpts.effectAllowed; //\"copyMove\"; // \"all\";\n            if (srcNode.isEditingTitle()) {\n                srcNode.logDebug(\"Prevented dragging node in edit mode.\");\n                e.preventDefault();\n                return false;\n            }\n            // Let user cancel the drag operation, override effectAllowed, etc.:\n            const res = srcNode._callEvent(\"dnd.dragStart\", { event: e });\n            if (!res) {\n                e.preventDefault();\n                return false;\n            }\n            const nodeData = srcNode.toDict(true, (n) => {\n                // We don't want to reuse the key on drop:\n                n._orgKey = n.key;\n                delete n.key;\n            });\n            nodeData._treeId = srcNode.tree.id;\n            if (dndOpts.serializeClipboardData) {\n                if (typeof dndOpts.serializeClipboardData === \"function\") {\n                    e.dataTransfer.setData(nodeMimeType, dndOpts.serializeClipboardData(nodeData, srcNode));\n                }\n                else {\n                    e.dataTransfer.setData(nodeMimeType, JSON.stringify(nodeData));\n                }\n            }\n            // e.dataTransfer!.setData(\"text/html\", $(node.span).html());\n            if (!((_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.types.includes(\"text/plain\"))) {\n                e.dataTransfer.setData(\"text/plain\", srcNode.title);\n            }\n            this.srcNode = srcNode;\n            setTimeout(() => {\n                // Decouple this call, so the CSS is applied to the node, but not to\n                // the system generated drag image\n                srcNode.setClass(\"wb-drag-source\");\n            }, 0);\n            // --- drag ---\n        }\n        else if (e.type === \"drag\") {\n            if (dndOpts.drag) {\n                srcNode._callEvent(\"dnd.drag\", { event: e });\n            }\n            // --- dragend ---\n        }\n        else if (e.type === \"dragend\") {\n            srcNode.setClass(\"wb-drag-source\", false);\n            this.srcNode = null;\n            if (this.lastTargetNode) {\n                this._leaveNode();\n            }\n            srcNode._callEvent(\"dnd.dragEnd\", { event: e });\n        }\n        return true;\n    }\n    /**\n     * Handle dragenter, dragover, dragleave, drop events.\n     */\n    onDropEvent(e) {\n        var _a;\n        // const isLink = event.dataTransfer.types.includes(\"text/uri-list\");\n        const srcNode = this.srcNode;\n        const srcTree = srcNode ? srcNode.tree : null;\n        const targetNode = Wunderbaum.getNode(e);\n        const dndOpts = this.treeOpts.dnd;\n        const dt = e.dataTransfer;\n        const dropRegion = this._calcDropRegion(e, this.lastAllowedDropRegions);\n        /** Helper to log a message if predicate is false. */\n        const _t = (pred, msg) => {\n            if (pred) {\n                this.tree.log(`Prevented drop operation (${msg}).`);\n            }\n            return pred;\n        };\n        if (!targetNode) {\n            this._leaveNode();\n            e.preventDefault(); // Don't open file in browser when dropped in empty area\n            return;\n        }\n        if ([\"drop\"].includes(e.type)) {\n            this.tree.logDebug(`onDropEvent.${e.type} targetNode: ${targetNode}, ea: ${dt === null || dt === void 0 ? void 0 : dt.effectAllowed}, ` +\n                `de: ${dt === null || dt === void 0 ? void 0 : dt.dropEffect}, cy: ${e.offsetY}, r: ${dropRegion}, srcNode: ${srcNode}`, e);\n        }\n        // --- dragenter ---\n        if (e.type === \"dragenter\") {\n            // this.tree.logWarn(` onDropEvent.${e.type} targetNode: ${targetNode}`, e);\n            this.lastAllowedDropRegions = null;\n            // `dragleave` is not reliable with event delegation, so we generate it\n            // from dragenter:\n            if (this.lastTargetNode && this.lastTargetNode !== targetNode) {\n                this._leaveNode();\n            }\n            this.lastTargetNode = targetNode;\n            this.lastEnterStamp = Date.now();\n            if (\n            // Don't drop on status node:\n            _t(targetNode.isStatusNode(), \"is status node\") ||\n                // Prevent dropping nodes from different Wunderbaum trees:\n                _t(dndOpts.preventForeignNodes && targetNode.tree !== srcTree, \"preventForeignNodes\") ||\n                // Prevent dropping items on unloaded lazy Wunderbaum tree nodes:\n                _t(dndOpts.preventLazyParents && !targetNode.isLoaded(), \"preventLazyParents\") ||\n                // Prevent dropping items other than Wunderbaum tree nodes:\n                _t(dndOpts.preventNonNodes && !srcNode, \"preventNonNodes\") ||\n                // Prevent dropping nodes on own descendants:\n                _t(dndOpts.preventRecursion && (srcNode === null || srcNode === void 0 ? void 0 : srcNode.isAncestorOf(targetNode)), \"preventRecursion\") ||\n                // Prevent dropping nodes under same direct parent:\n                _t(dndOpts.preventSameParent &&\n                    srcNode &&\n                    targetNode.parent === srcNode.parent, \"preventSameParent\") ||\n                // Don't allow void operation ('drop on self'): TODO: should be checked on  move only\n                _t(dndOpts.preventVoidMoves && targetNode === srcNode, \"preventVoidMoves\")) {\n                dt.dropEffect = \"none\";\n                // this.tree.log(\"Prevented drop operation\");\n                return true; // Prevent drop operation\n            }\n            // User may return a set of regions (or `false` to prevent drop)\n            // Figure out a drop effect (copy/link/move) using opinated conventions.\n            dt.dropEffect = this._guessDropEffect(e) || \"none\";\n            let regionSet = targetNode._callEvent(\"dnd.dragEnter\", {\n                event: e,\n                sourceNode: srcNode,\n            });\n            //\n            regionSet = this.unifyDragover(regionSet);\n            if (!regionSet) {\n                dt.dropEffect = \"none\";\n                return true; // Prevent drop operation\n            }\n            this.lastAllowedDropRegions = regionSet;\n            this.lastDropEffect = dt.dropEffect;\n            const region = this._calcDropRegion(e, this.lastAllowedDropRegions);\n            targetNode.setClass(\"wb-drop-target\");\n            targetNode.setClass(\"wb-drop-over\", region === \"over\");\n            targetNode.setClass(\"wb-drop-before\", region === \"before\");\n            targetNode.setClass(\"wb-drop-after\", region === \"after\");\n            e.preventDefault(); // Allow drop (Drop operation is denied by default)\n            return false;\n            // --- dragover ---\n        }\n        else if (e.type === \"dragover\") {\n            const viewportY = e.clientY - this.tree.element.offsetTop;\n            this._autoScroll(viewportY);\n            dt.dropEffect = this._guessDropEffect(e) || \"none\";\n            targetNode._callEvent(\"dnd.dragOver\", { event: e, sourceNode: srcNode });\n            const region = this._calcDropRegion(e, this.lastAllowedDropRegions);\n            this.lastDropRegion = region;\n            this.lastDropEffect = dt.dropEffect;\n            if (dndOpts.autoExpandMS > 0 &&\n                targetNode.isExpandable(true) &&\n                !targetNode._isLoading &&\n                Date.now() - this.lastEnterStamp > dndOpts.autoExpandMS &&\n                targetNode._callEvent(\"dnd.dragExpand\", {\n                    event: e,\n                    sourceNode: srcNode,\n                }) !== false) {\n                targetNode.setExpanded();\n            }\n            if (!region || this._isVoidDrop(targetNode, srcNode, region)) {\n                return; // We already rejected in dragenter\n            }\n            targetNode.setClass(\"wb-drop-over\", region === \"over\");\n            targetNode.setClass(\"wb-drop-before\", region === \"before\");\n            targetNode.setClass(\"wb-drop-after\", region === \"after\");\n            e.preventDefault(); // Allow drop (Drop operation is denied by default)\n            return false;\n            // --- dragleave ---\n        }\n        else if (e.type === \"dragleave\") {\n            // NOTE: we cannot trust this event, since it is always fired,\n            // Instead we remove the marker on dragenter\n            targetNode._callEvent(\"dnd.dragLeave\", { event: e, sourceNode: srcNode });\n            // --- drop ---\n        }\n        else if (e.type === \"drop\") {\n            e.stopPropagation(); // prevent browser from opening links?\n            e.preventDefault(); // #69 prevent iOS browser from opening links\n            this._leaveNode();\n            const region = this.lastDropRegion;\n            let nodeData = (_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.getData(nodeMimeType);\n            nodeData = nodeData ? JSON.parse(nodeData) : null;\n            const srcNode = this.srcNode;\n            const lastDropEffect = this.lastDropEffect;\n            /* Before v0.14.0, we decoupled `_callEvent` like so:\n                 Decouple this call, because drop actions may prevent the dragend\n                 event from being fired on some browsers.\n                 setTimeout(() => {...}, 10);\n              however this made e.dataTransfer.items inaccessible */\n            targetNode._callEvent(\"dnd.drop\", {\n                event: e,\n                region: region,\n                suggestedDropMode: region === \"over\" ? \"appendChild\" : region,\n                suggestedDropEffect: lastDropEffect,\n                sourceNode: srcNode,\n                sourceNodeData: nodeData,\n                dataTransfer: e.dataTransfer,\n            });\n        }\n        return false;\n    }\n}\n\n/*!\n * Wunderbaum - drag_observer\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n */\n/**\n * Convert mouse- and touch events to 'dragstart', 'drag', and 'dragstop'.\n */\nclass DragObserver {\n    constructor(opts) {\n        this.start = {\n            event: null,\n            x: 0,\n            y: 0,\n            altKey: false,\n            ctrlKey: false,\n            metaKey: false,\n            shiftKey: false,\n        };\n        this.dragElem = null;\n        this.dragging = false;\n        this.customData = {};\n        // TODO: touch events\n        this.events = [\"mousedown\", \"mouseup\", \"mousemove\", \"keydown\"];\n        if (!opts.root) {\n            throw new Error(\"Missing `root` option.\");\n        }\n        this.opts = Object.assign({ thresh: 5 }, opts);\n        this.root = opts.root;\n        this._handler = this.handleEvent.bind(this);\n        this.events.forEach((type) => {\n            this.root.addEventListener(type, this._handler);\n        });\n    }\n    /** Unregister all event listeners. */\n    disconnect() {\n        this.events.forEach((type) => {\n            this.root.removeEventListener(type, this._handler);\n        });\n    }\n    getDragElem() {\n        return this.dragElem;\n    }\n    isDragging() {\n        return this.dragging;\n    }\n    stopDrag(cb_event) {\n        if (this.dragging && this.opts.dragstop && cb_event) {\n            cb_event.type = \"dragstop\";\n            try {\n                this.opts.dragstop(cb_event);\n            }\n            catch (err) {\n                console.error(\"dragstop error\", err); // eslint-disable-line no-console\n            }\n        }\n        this.dragElem = null;\n        this.dragging = false;\n        this.start.event = null;\n        this.customData = {};\n    }\n    handleEvent(e) {\n        const type = e.type;\n        const opts = this.opts;\n        const cb_event = {\n            type: e.type,\n            startEvent: type === \"mousedown\" ? e : this.start.event,\n            event: e,\n            customData: this.customData,\n            dragElem: this.dragElem,\n            dx: e.pageX - this.start.x,\n            dy: e.pageY - this.start.y,\n            apply: undefined,\n        };\n        // console.log(\"handleEvent\", type, cb_event);\n        switch (type) {\n            case \"keydown\":\n                this.stopDrag(cb_event);\n                break;\n            case \"mousedown\":\n                if (this.dragElem) {\n                    this.stopDrag(cb_event);\n                    break;\n                }\n                if (opts.selector) {\n                    let elem = e.target;\n                    if (elem.matches(opts.selector)) {\n                        this.dragElem = elem;\n                    }\n                    else {\n                        elem = elem.closest(opts.selector);\n                        if (elem) {\n                            this.dragElem = elem;\n                        }\n                        else {\n                            break; // no event delegation selector matched\n                        }\n                    }\n                }\n                this.start.event = e;\n                this.start.x = e.pageX;\n                this.start.y = e.pageY;\n                this.start.altKey = e.altKey;\n                this.start.ctrlKey = e.ctrlKey;\n                this.start.metaKey = e.metaKey;\n                this.start.shiftKey = e.shiftKey;\n                break;\n            case \"mousemove\":\n                // TODO: debounce/throttle?\n                // TODO: horizontal mode: ignore if dx unchanged\n                if (!this.dragElem) {\n                    break;\n                }\n                if (!this.dragging) {\n                    if (opts.thresh) {\n                        const dist2 = cb_event.dx * cb_event.dx + cb_event.dy * cb_event.dy;\n                        if (dist2 < opts.thresh * opts.thresh) {\n                            break;\n                        }\n                    }\n                    cb_event.type = \"dragstart\";\n                    if (opts.dragstart(cb_event) === false) {\n                        this.stopDrag(cb_event);\n                        break;\n                    }\n                    this.dragging = true;\n                }\n                if (this.dragging && this.opts.drag) {\n                    cb_event.type = \"drag\";\n                    this.opts.drag(cb_event);\n                }\n                break;\n            case \"mouseup\":\n                if (!this.dragging) {\n                    this.stopDrag(cb_event);\n                    break;\n                }\n                if (e.button === 0) {\n                    cb_event.apply = true;\n                }\n                else {\n                    cb_event.apply = false;\n                }\n                this.stopDrag(cb_event);\n                break;\n        }\n    }\n}\n\n/*!\n * Wunderbaum - common\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n */\nconst DEFAULT_DEBUGLEVEL = 3; // Replaced by rollup script\n/**\n * Fixed height of a row in pixel. Must match the SCSS variable `$row-outer-height`.\n */\nconst DEFAULT_ROW_HEIGHT = 22;\n/**\n * Fixed width of node icons in pixel. Must match the SCSS variable `$icon-outer-width`.\n */\nconst ICON_WIDTH = 20;\n/**\n * Adjust the width of the title span, so overflow ellipsis work.\n * (2 x `$col-padding-x` + 3px rounding errors).\n */\nconst TITLE_SPAN_PAD_Y = 7;\n/** Render row markup for N nodes above and below the visible viewport. */\nconst RENDER_MAX_PREFETCH = 5;\n/** Minimum column width if not set otherwise. */\nconst DEFAULT_MIN_COL_WIDTH = 4;\n/**\n * A value for `node.type` that by convention may be used to mark a node as directory.\n * It may be used to sort 'directories' to the top.\n */\nconst NODE_TYPE_FOLDER = \"folder\";\n/** Regular expression to detect if a string describes an image URL (in contrast\n * to a class name). Strings are considered image urls if they contain '.' or '/'.\n * `<` is ignored, because it is probably an html tag.\n */\nconst TEST_FILE_PATH = /^(?!.*<).*[/.]/;\n/** Regular expression to detect if a string describes an HTML element. */\nconst TEST_HTML = /</;\n/**\n * Default node icons for icon libraries\n *\n *  - 'bootstrap': {@link https://icons.getbootstrap.com}\n *  - 'fontawesome6' {@link https://fontawesome.com/icons}\n *\n */\nconst defaultIconMaps = {\n    bootstrap: {\n        error: \"bi bi-exclamation-triangle\",\n        // loading: \"bi bi-hourglass-split wb-busy\",\n        loading: \"bi bi-chevron-right wb-busy\",\n        // loading: \"bi bi-arrow-repeat wb-spin\",\n        // loading: '<div class=\"spinner-border spinner-border-sm\" role=\"status\"> <span class=\"visually-hidden\">Loading...</span> </div>',\n        // noData: \"bi bi-search\",\n        noData: \"bi bi-question-circle\",\n        expanderExpanded: \"bi bi-chevron-down\",\n        // expanderExpanded: \"bi bi-dash-square\",\n        expanderCollapsed: \"bi bi-chevron-right\",\n        // expanderCollapsed: \"bi bi-plus-square\",\n        expanderLazy: \"bi bi-chevron-right wb-helper-lazy-expander\",\n        // expanderLazy: \"bi bi-chevron-bar-right\",\n        checkChecked: \"bi bi-check-square\",\n        checkUnchecked: \"bi bi-square\",\n        checkUnknown: \"bi bi-dash-square-dotted\",\n        radioChecked: \"bi bi-circle-fill\",\n        radioUnchecked: \"bi bi-circle\",\n        radioUnknown: \"bi bi-record-circle\",\n        folder: \"bi bi-folder2\",\n        folderOpen: \"bi bi-folder2-open\",\n        folderLazy: \"bi bi-folder-symlink\",\n        doc: \"bi bi-file-earmark\",\n        colSortable: \"bi bi-chevron-expand\",\n        // colSortable: \"bi bi-arrow-down-up\",\n        // colSortAsc: \"bi bi-chevron-down\",\n        // colSortDesc: \"bi bi-chevron-up\",\n        colSortAsc: \"bi bi-arrow-down\",\n        colSortDesc: \"bi bi-arrow-up\",\n        colFilter: \"bi bi-filter-circle\",\n        colFilterActive: \"bi bi-filter-circle-fill wb-helper-invalid\",\n        colMenu: \"bi bi-three-dots-vertical\",\n    },\n    fontawesome6: {\n        error: \"fa-solid fa-triangle-exclamation\",\n        loading: \"fa-solid fa-chevron-right fa-beat\",\n        noData: \"fa-solid fa-circle-question\",\n        expanderExpanded: \"fa-solid fa-chevron-down\",\n        expanderCollapsed: \"fa-solid fa-chevron-right\",\n        expanderLazy: \"fa-solid fa-chevron-right wb-helper-lazy-expander\",\n        checkChecked: \"fa-regular fa-square-check\",\n        checkUnchecked: \"fa-regular fa-square\",\n        checkUnknown: \"fa-regular fa-square-minus\",\n        radioChecked: \"fa-solid fa-circle\",\n        radioUnchecked: \"fa-regular fa-circle\",\n        radioUnknown: \"fa-regular fa-circle-question\",\n        folder: \"fa-regular fa-folder-closed\",\n        folderOpen: \"fa-regular fa-folder-open\",\n        folderLazy: \"fa-solid fa-folder-plus\",\n        doc: \"fa-regular fa-file\",\n        colSortable: \"fa-solid fa-fw fa-sort\",\n        colSortAsc: \"fa-solid fa-fw fa-sort-up\",\n        colSortDesc: \"fa-solid fa-fw fa-sort-down\",\n        colFilter: \"fa-solid fa-fw fa-filter\",\n        colFilterActive: \"fa-solid fa-fw fa-filter wb-helper-invalid\",\n        colMenu: \"fa-solid fa-fw fa-ellipsis-v\",\n    },\n};\n/** Dict keys that are evaluated by source loader (others are added to `tree.data` instead). */\nconst RESERVED_TREE_SOURCE_KEYS = new Set([\n    \"_format\", // reserved for future use\n    \"_keyMap\", // Used for compressed data format\n    \"_positional\", // Used for compressed data format\n    \"_typeList\", // Used for compressed data format @deprecated\n    \"_valueMap\", // Used for compressed data format\n    \"_version\", // reserved for future use\n    \"children\",\n    \"columns\",\n    \"types\",\n]);\n// /** Key codes that trigger grid navigation, even when inside an input element. */\n// export const INPUT_BREAKOUT_KEYS: Set<string> = new Set([\n//   // \"ArrowDown\",\n//   // \"ArrowUp\",\n//   \"Enter\",\n//   \"Escape\",\n// ]);\n/** Map `KeyEvent.key` to navigation action. */\nconst KEY_TO_NAVIGATION_MAP = {\n    ArrowDown: \"down\",\n    ArrowLeft: \"left\",\n    ArrowRight: \"right\",\n    ArrowUp: \"up\",\n    Backspace: \"parent\",\n    End: \"lastCol\",\n    Home: \"firstCol\",\n    \"Control+End\": \"last\",\n    \"Control+Home\": \"first\",\n    \"Meta+ArrowDown\": \"last\", // macOs\n    \"Meta+ArrowUp\": \"first\", // macOs\n    PageDown: \"pageDown\",\n    PageUp: \"pageUp\",\n};\n/** Return a callback that returns true if the node title matches the string\n * or regular expression.\n * @see {@link WunderbaumNode.findAll}\n */\nfunction makeNodeTitleMatcher(match) {\n    if (match instanceof RegExp) {\n        return function (node) {\n            return match.test(node.title);\n        };\n    }\n    assert(typeof match === \"string\", `Expected a string or RegExp: ${match}`);\n    // s = escapeRegex(s.toLowerCase());\n    return function (node) {\n        return node.title === match;\n        // console.log(\"match \" + node, node.title.toLowerCase().indexOf(match))\n        // return node.title.toLowerCase().indexOf(match) >= 0;\n    };\n}\n/** Return a callback that returns true if the node title starts with a string (case-insensitive). */\nfunction makeNodeTitleStartMatcher(s) {\n    s = escapeRegex(s);\n    const reMatch = new RegExp(\"^\" + s, \"i\");\n    return function (node) {\n        return reMatch.test(node.title);\n    };\n}\n/** Compare two nodes by title (case-insensitive).\n * @deprecated Use `key` option instead of `cmp` in sort methods.\n */\nfunction nodeTitleSorter(a, b) {\n    const x = a.title.toLowerCase();\n    const y = b.title.toLowerCase();\n    return x === y ? 0 : x > y ? 1 : -1;\n}\n// /** Compare nodes by title (case-insensitive). */\n// export function nodeTitleKeyGetter(\n//   node: WunderbaumNode\n// ): string | number | Array<any> {\n//   return node.title.toLowerCase();\n// }\n/**\n * Convert 'flat' to 'nested' format.\n *\n * Flat node entry format:\n *    [PARENT_IDX, {KEY_VALUE_ARGS}]\n * or, if N _positional re defined:\n *    [PARENT_IDX, POSITIONAL_ARG_1, POSITIONAL_ARG_2, ..., POSITIONAL_ARG_N]\n * Even if _positional additional are defined, KEY_VALUE_ARGS can be appended:\n *    [PARENT_IDX, POSITIONAL_ARG_1, ..., {KEY_VALUE_ARGS}]\n *\n * 1. Parent-referencing list is converted to a list of nested dicts with\n *    optional `children` properties.\n * 2. `[POSITIONAL_ARGS]` are added as dict attributes.\n */\nfunction unflattenSource(source) {\n    var _a, _b, _c;\n    const { _format, _keyMap = {}, _positional = [], children } = source;\n    const _positionalCount = _positional.length;\n    if (_format !== \"flat\") {\n        throw new Error(`Expected source._format: \"flat\", but got ${_format}`);\n    }\n    if (_positionalCount && _positional.includes(\"children\")) {\n        throw new Error(`source._positional must not include \"children\": ${_positional}`);\n    }\n    let longToShort = _keyMap;\n    if (_keyMap.t) {\n        // Inverse keyMap was used (pre 0.7.0)\n        // TODO: raise Error on final 1.x release\n        const msg = `source._keyMap maps from long to short since v0.7.0. Flip key/value!`;\n        console.warn(msg); // eslint-disable-line no-console\n        longToShort = {};\n        for (const [key, value] of Object.entries(_keyMap)) {\n            longToShort[value] = key;\n        }\n    }\n    const positionalShort = _positional.map((e) => { var _a; return (_a = longToShort[e]) !== null && _a !== void 0 ? _a : e; });\n    const newChildren = [];\n    const keyToNodeMap = {};\n    const indexToNodeMap = {};\n    const keyAttrName = (_a = longToShort[\"key\"]) !== null && _a !== void 0 ? _a : \"key\";\n    const childrenAttrName = (_b = longToShort[\"children\"]) !== null && _b !== void 0 ? _b : \"children\";\n    for (const [index, nodeTuple] of children.entries()) {\n        // Node entry format:\n        //   [PARENT_ID, [POSITIONAL_ARGS]]\n        // or\n        //   [PARENT_ID, POSITIONAL_ARG_1, POSITIONAL_ARG_2, ..., {KEY_VALUE_ARGS}]\n        let kwargs;\n        const [parentId, ...args] = nodeTuple;\n        if (args.length === _positionalCount) {\n            kwargs = {};\n        }\n        else if (args.length === _positionalCount + 1) {\n            kwargs = args.pop();\n            if (typeof kwargs !== \"object\") {\n                throw new Error(`unflattenSource: Expected dict as last tuple element: ${nodeTuple}`);\n            }\n        }\n        else {\n            throw new Error(`unflattenSource: unexpected tuple length: ${nodeTuple}`);\n        }\n        // Free up some memory as we go\n        nodeTuple[1] = null;\n        if (nodeTuple[2] != null) {\n            nodeTuple[2] = null;\n        }\n        // We keep `kwargs` as our new node definition. Then we add all positional\n        // values to this object:\n        args.forEach((val, positionalIdx) => {\n            kwargs[positionalShort[positionalIdx]] = val;\n        });\n        args.length = 0;\n        // Find the parent node. `null` means 'toplevel'. PARENT_ID may be the numeric\n        // index of the source.children list. If PARENT_ID is a string, we search\n        // a parent with node.key of this value.\n        indexToNodeMap[index] = kwargs;\n        const key = kwargs[keyAttrName];\n        if (key != null) {\n            keyToNodeMap[key] = kwargs;\n        }\n        let parentNode = null;\n        if (parentId === null) ;\n        else if (typeof parentId === \"number\") {\n            parentNode = indexToNodeMap[parentId];\n            if (parentNode === undefined) {\n                throw new Error(`unflattenSource: Could not find parent node by index: ${parentId}.`);\n            }\n        }\n        else {\n            parentNode = keyToNodeMap[parentId];\n            if (parentNode === undefined) {\n                throw new Error(`unflattenSource: Could not find parent node by key: ${parentId}`);\n            }\n        }\n        if (parentNode) {\n            (_c = parentNode[childrenAttrName]) !== null && _c !== void 0 ? _c : (parentNode[childrenAttrName] = []);\n            parentNode[childrenAttrName].push(kwargs);\n        }\n        else {\n            newChildren.push(kwargs);\n        }\n    }\n    source.children = newChildren;\n}\n/**\n * Decompresses the source data by\n * - converting from 'flat' to 'nested' format\n * - expanding short alias names to long names (if defined in _keyMap)\n * - resolving value indexes to value strings (if defined in _valueMap)\n *\n * @param source - The source object to be decompressed.\n * @returns void\n */\nfunction decompressSourceData(source) {\n    let { _format, _version = 1, _keyMap, _valueMap } = source;\n    assert(_version === 1, `Expected file version 1 instead of ${_version}`);\n    let longToShort = _keyMap;\n    let shortToLong = {};\n    if (longToShort) {\n        for (const [key, value] of Object.entries(longToShort)) {\n            shortToLong[value] = key;\n        }\n    }\n    // Fallback for old format (pre 0.7.0, using _keyMap in reverse direction)\n    // TODO: raise Error on final 1.x release\n    if (longToShort && longToShort.t) {\n        const msg = `source._keyMap maps from long to short since v0.7.0. Flip key/value!`;\n        console.warn(msg); // eslint-disable-line no-console\n        [longToShort, shortToLong] = [shortToLong, longToShort];\n    }\n    // Fallback for old format (pre 0.7.0, using _typeList instead of _valueMap)\n    // TODO: raise Error on final 1.x release\n    if (source._typeList != null) {\n        const msg = `source._typeList is deprecated since v0.7.0: use source._valueMap: {\"type\": [...]} instead.`;\n        if (_valueMap != null) {\n            throw new Error(msg);\n        }\n        else {\n            console.warn(msg); // eslint-disable-line no-console\n            _valueMap = { type: source._typeList };\n            delete source._typeList;\n        }\n    }\n    if (_format === \"flat\") {\n        unflattenSource(source);\n    }\n    delete source._format;\n    delete source._version;\n    delete source._keyMap;\n    delete source._valueMap;\n    delete source._positional;\n    function _iter(childList) {\n        for (const node of childList) {\n            // Iterate over a list of names, because we modify inside the loop\n            // (for ... of ... does not allow this)\n            Object.getOwnPropertyNames(node).forEach((propName) => {\n                const value = node[propName];\n                // Replace short names with long names if defined in _keyMap\n                let longName = propName;\n                if (_keyMap && shortToLong[propName] != null) {\n                    longName = shortToLong[propName];\n                    if (longName !== propName) {\n                        node[longName] = value;\n                        delete node[propName];\n                    }\n                }\n                // Replace type index with type name if defined in _valueMap\n                if (_valueMap &&\n                    typeof value === \"number\" &&\n                    _valueMap[longName] != null) {\n                    const newValue = _valueMap[longName][value];\n                    if (newValue == null) {\n                        throw new Error(`Expected valueMap[${longName}][${value}] entry in [${_valueMap[longName]}]`);\n                    }\n                    node[longName] = newValue;\n                }\n            });\n            // Recursion\n            if (node.children) {\n                _iter(node.children);\n            }\n        }\n    }\n    if (_keyMap || _valueMap) {\n        _iter(source.children);\n    }\n}\n\n/*!\n * Wunderbaum - ext-grid\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n */\nclass GridExtension extends WunderbaumExtension {\n    constructor(tree) {\n        super(tree, \"grid\", {\n        // throttle: 200,\n        });\n        this.observer = new DragObserver({\n            root: window.document,\n            selector: \"span.wb-col-resizer-active\",\n            thresh: 4,\n            // throttle: 400,\n            dragstart: (e) => {\n                const info = Wunderbaum.getEventInfo(e.startEvent);\n                const colDef = info.colDef;\n                const allow = colDef &&\n                    this.tree.element.contains(e.dragElem) &&\n                    toBool(colDef.resizable, tree.options.columnsResizable, false);\n                // this.tree.log(\"dragstart\", colDef, e, info);\n                this.tree.element.classList.toggle(\"wb-col-resizing\", !!allow);\n                info.colElem.classList.toggle(\"wb-col-resizing\", !!allow);\n                // We start dagging, so we remember the actual width in *pixels*\n                // (which may be 'auto' or '100%').\n                // Since we we re-create the markup on each update, we also cannot store\n                // the original event or DOM element, but only the colDef object.\n                if (allow) {\n                    // Store initial target column infos in customData\n                    e.customData.colDef = colDef;\n                    e.customData.orgCustomWidthPx = colDef.customWidthPx;\n                    const curWidthPx = Number.parseInt(info.colElem.style.width, 10);\n                    e.customData.orgWidthPx = curWidthPx;\n                    // Set custom width to current width, so that we can modify it\n                    colDef.customWidthPx = curWidthPx;\n                    // this.tree.log(\n                    //   `dragstart customWidthPx=${colDef.customWidthPx}`,\n                    //   e,\n                    //   info\n                    // );\n                    this.tree.update(ChangeType.colStructure);\n                    // this.tree.log(\n                    //   `dragstart 2 customWidthPx=${colDef.customWidthPx}`,\n                    //   e,\n                    //   info\n                    // );\n                }\n                return allow;\n            },\n            drag: (e) => {\n                // TODO: throttle\n                return this.handleDrag(e);\n            },\n            dragstop: (e) => {\n                return this.handleDrag(e);\n            },\n        });\n    }\n    init() {\n        super.init();\n    }\n    /**\n     * Handles drag and sragstop events for column resizing.\n     */\n    handleDrag(e) {\n        const custom = e.customData;\n        const colDef = custom.colDef;\n        // this.tree.log(`${e.type} (dx=${e.dx})`, e, info);\n        if (e.type === \"dragstop\" || e.type === \"drag\") {\n            this.tree.element.classList.remove(\"wb-col-resizing\");\n            // info.colElem!.classList.remove(\"wb-col-resizing\");\n            if (e.apply || e.type === \"drag\") {\n                const minWidth = toPixel(colDef.minWidth, DEFAULT_MIN_COL_WIDTH);\n                const newWidth = Math.max(minWidth, custom.orgWidthPx + e.dx);\n                colDef.customWidthPx = newWidth;\n                // this.tree.log(\n                //   `${e.type} minWidth=${minWidth}, newWidth=${newWidth}`,\n                //   colDef\n                // );\n            }\n            else {\n                // Drag was cancelled\n                this.tree.log(\"Column resize cancelled\", e);\n                colDef.customWidthPx = custom.orgCustomWidthPx; // Restore original width or undefined\n            }\n            this.tree.update(ChangeType.colStructure);\n        }\n    }\n}\n\n/*!\n * Wunderbaum - deferred\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n */\n/**\n * Implement a ES6 Promise, that exposes a resolve() and reject() method.\n *\n * Loosely mimics {@link https://api.jquery.com/category/deferred-object/ | jQuery.Deferred}.\n * Example:\n * ```js\n * function foo() {\n *   let dfd = new Deferred(),\n *   ...\n *   dfd.resolve('foo')\n *   ...\n *   return dfd.promise();\n * }\n * ```\n */\nclass Deferred {\n    constructor() {\n        this._promise = new Promise((resolve, reject) => {\n            this._resolve = resolve;\n            this._reject = reject;\n        });\n    }\n    /** Resolve the Promise. */\n    resolve(value) {\n        this._resolve(value);\n    }\n    /** Reject the Promise. */\n    reject(reason) {\n        this._reject(reason);\n    }\n    /** Return the native Promise instance.*/\n    promise() {\n        return this._promise;\n    }\n    /** Call Promise.then on the embedded promise instance.*/\n    then(cb) {\n        return this._promise.then(cb);\n    }\n    /** Call Promise.catch on the embedded promise instance.*/\n    catch(cb) {\n        return this._promise.catch(cb);\n    }\n    /** Call Promise.finally on the embedded promise instance.*/\n    finally(cb) {\n        return this._promise.finally(cb);\n    }\n}\n\n/*!\n * Wunderbaum - wunderbaum_node\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n */\n/** WunderbaumNode properties that can be passed with source data.\n * (Any other source properties will be stored as `node.data.PROP`.)\n */\nconst NODE_PROPS = new Set([\n    \"checkbox\",\n    \"classes\",\n    \"expanded\",\n    \"icon\",\n    \"iconTooltip\",\n    \"key\",\n    \"lazy\",\n    \"_partsel\",\n    \"radiogroup\",\n    \"refKey\",\n    \"selected\",\n    \"statusNodeType\",\n    \"title\",\n    \"tooltip\",\n    \"type\",\n    \"unselectable\",\n]);\n/** WunderbaumNode properties that will be returned by `node.toDict()`.)\n */\nconst NODE_DICT_PROPS = new Set(NODE_PROPS);\nNODE_DICT_PROPS.delete(\"_partsel\");\nNODE_DICT_PROPS.delete(\"unselectable\");\n// /** Node properties that are of type bool (or boolean & string).\n//  *  When parsing, we accept 0 for false and 1 for true for better JSON compression.\n//  */\n// export const NODE_BOOL_PROPS: Set<string> = new Set([\n//   \"checkbox\",\n//   \"colspan\",\n//   \"expanded\",\n//   \"icon\",\n//   \"iconTooltip\",\n//   \"radiogroup\",\n//   \"selected\",\n//   \"tooltip\",\n//   \"unselectable\",\n// ]);\n/**\n * A single tree node.\n *\n * **NOTE:** <br>\n * Generally you should not modify properties directly, since this may break\n * the internal bookkeeping.\n */\nclass WunderbaumNode {\n    constructor(tree, parent, data) {\n        var _a;\n        /** Reference key. Unlike {@link key}, a `refKey` may occur multiple\n         * times within a tree (in this case we have 'clone nodes').\n         * @see Use {@link setKey} to modify.\n         */\n        this.refKey = undefined;\n        /**\n         * Array of child nodes (null for leaf nodes).\n         * For lazy nodes, this is `null` or ùndefined` until the children are loaded\n         * and leaf nodes may be `[]` (empty array).\n         * @see {@link hasChildren}, {@link addChildren}, {@link lazy}.\n         */\n        this.children = null;\n        /** Additional classes added to `div.wb-row`.\n         * @see {@link hasClass}, {@link setClass}. */\n        this.classes = null; //new Set<string>();\n        /** Custom data that was passed to the constructor */\n        this.data = {};\n        this._isLoading = false;\n        this._requestId = 0;\n        this._errorInfo = null;\n        this._partsel = false;\n        this._partload = false;\n        this.subMatchCount = 0;\n        this._rowIdx = 0;\n        this._rowElem = undefined;\n        assert(!parent || parent.tree === tree, `Invalid parent: ${parent}`);\n        assert(!data.children, \"'children' not allowed here\");\n        this.tree = tree;\n        this.parent = parent;\n        this.key = tree._calculateKey(data, parent);\n        this.title = \"\" + ((_a = data.title) !== null && _a !== void 0 ? _a : \"<\" + this.key + \">\");\n        this.expanded = !!data.expanded;\n        this.lazy = !!data.lazy;\n        // We set the following node properties only if a matching data value is\n        // passed\n        data.refKey != null ? (this.refKey = \"\" + data.refKey) : 0;\n        data.type != null ? (this.type = \"\" + data.type) : 0;\n        data.icon != null ? (this.icon = intToBool(data.icon)) : 0;\n        data.tooltip != null ? (this.tooltip = intToBool(data.tooltip)) : 0;\n        data.iconTooltip != null\n            ? (this.iconTooltip = intToBool(data.iconTooltip))\n            : 0;\n        data.statusNodeType != null\n            ? (this.statusNodeType = (\"\" + data.statusNodeType))\n            : 0;\n        data.colspan != null ? (this.colspan = !!data.colspan) : 0;\n        // Selection\n        data.checkbox != null\n            ? (this.checkbox = intToBool(data.checkbox))\n            : 0;\n        data.radiogroup != null ? (this.radiogroup = !!data.radiogroup) : 0;\n        data.selected != null ? (this.selected = !!data.selected) : 0;\n        data.unselectable != null ? (this.unselectable = !!data.unselectable) : 0;\n        if (data.classes) {\n            this.setClass(data.classes);\n        }\n        // Store custom fields as `node.data`\n        for (const [key, value] of Object.entries(data)) {\n            if (!NODE_PROPS.has(key)) {\n                this.data[key] = value;\n            }\n        }\n        if (parent && !this.statusNodeType) {\n            // Don't register root node or status nodes\n            tree._registerNode(this);\n        }\n    }\n    /**\n     * Return readable string representation for this instance.\n     * @internal\n     */\n    toString() {\n        return `WunderbaumNode@${this.key}<'${this.title}'>`;\n    }\n    /**\n     * Iterate all descendant nodes depth-first, pre-order using `for ... of ...` syntax.\n     * More concise, but slightly slower than {@link WunderbaumNode.visit}.\n     *\n     * Example:\n     * ```js\n     * for(const n of node) {\n     *   ...\n     * }\n     * ```\n     */\n    *[Symbol.iterator]() {\n        // let node: WunderbaumNode | null = this;\n        const cl = this.children;\n        if (cl) {\n            for (let i = 0, l = cl.length; i < l; i++) {\n                const n = cl[i];\n                yield n;\n                if (n.children) {\n                    yield* n;\n                }\n            }\n            // Slower:\n            // for (let node of this.children) {\n            //   yield node;\n            //   yield* node : 0;\n            // }\n        }\n    }\n    // /** Return an option value. */\n    // protected _getOpt(\n    //   name: string,\n    //   nodeObject: any = null,\n    //   treeOptions: any = null,\n    //   defaultValue: any = null\n    // ): any {\n    //   return evalOption(\n    //     name,\n    //     this,\n    //     nodeObject || this,\n    //     treeOptions || this.tree.options,\n    //     defaultValue\n    //   );\n    // }\n    /** Call event handler if defined in tree.options.\n     * Example:\n     * ```js\n     * node._callEvent(\"edit.beforeEdit\", {foo: 42})\n     * ```\n     */\n    _callEvent(type, extra) {\n        var _a;\n        return (_a = this.tree) === null || _a === void 0 ? void 0 : _a._callEvent(type, extend({\n            node: this,\n            typeInfo: this.type ? this.tree.types[this.type] : {},\n        }, extra));\n    }\n    /**\n     * Append (or insert) a list of child nodes.\n     *\n     * Tip: pass `{ before: 0 }` to prepend new nodes as first children.\n     *\n     * @returns first child added\n     */\n    addChildren(nodeData, options) {\n        const tree = this.tree;\n        let { before = null, applyMinExpanLevel = true, _level } = options !== null && options !== void 0 ? options : {};\n        // let { before, loadLazy=true, _level } = options ?? {};\n        // const isTopCall = _level == null;\n        _level !== null && _level !== void 0 ? _level : (_level = this.getLevel());\n        const nodeList = [];\n        try {\n            tree.enableUpdate(false);\n            if (isPlainObject(nodeData)) {\n                nodeData = [nodeData];\n            }\n            const forceExpand = applyMinExpanLevel && _level < tree.options.minExpandLevel;\n            for (const child of nodeData) {\n                const subChildren = child.children;\n                // Remove children property from source data because it should not be\n                // passed to the constructor of WunderbaumNode:\n                delete child.children;\n                const n = new WunderbaumNode(tree, this, child);\n                // Set `children` property again, so it can be used in `reload()`\n                if (subChildren != null) {\n                    child.children = subChildren;\n                }\n                if (forceExpand && !n.isUnloaded()) {\n                    n.expanded = true;\n                }\n                nodeList.push(n);\n                if (subChildren) {\n                    n.addChildren(subChildren, { _level: _level + 1 });\n                }\n            }\n            if (!this.children) {\n                this.children = nodeList;\n            }\n            else if (before == null || this.children.length === 0) {\n                this.children = this.children.concat(nodeList);\n            }\n            else {\n                // Returns null if before is not a direct child:\n                before = this.findDirectChild(before);\n                const pos = this.children.indexOf(before);\n                assert(pos >= 0, `options.before must be a direct child of ${this}`);\n                // insert nodeList after children[pos]\n                this.children.splice(pos, 0, ...nodeList);\n            }\n            // this.triggerModifyChild(\"add\", nodeList.length === 1 ? nodeList[0] : null);\n            tree.update(ChangeType.structure);\n        }\n        finally {\n            // if (tree.options.selectMode === \"hier\") {\n            //   if (this.parent && this.parent.children) {\n            //     this.fixSelection3FromEndNodes();\n            //   } else {\n            //     // may happen when loading __root__;\n            //   }\n            // }\n            tree.enableUpdate(true);\n        }\n        // if(isTopCall && loadLazy){\n        //   this.logWarn(\"addChildren(): loadLazy is not yet implemented.\")\n        // }\n        return nodeList[0];\n    }\n    /**\n     * Append or prepend a node, or append a child node.\n     *\n     * This a convenience function that calls addChildren()\n     *\n     * @param nodeData node definition\n     * @param [mode=child] 'before', 'after', 'firstChild', or 'child' ('over' is a synonym for 'child')\n     * @returns new node\n     */\n    addNode(nodeData, mode = \"appendChild\") {\n        if (mode === \"over\") {\n            mode = \"appendChild\"; // compatible with drop region\n        }\n        switch (mode) {\n            case \"after\":\n                return this.parent.addChildren(nodeData, {\n                    before: this.getNextSibling(),\n                });\n            case \"before\":\n                return this.parent.addChildren(nodeData, { before: this });\n            case \"prependChild\":\n                // Insert before the first child if any\n                // let insertBefore = this.children ? this.children[0] : undefined;\n                return this.addChildren(nodeData, { before: 0 });\n            case \"appendChild\":\n                return this.addChildren(nodeData);\n        }\n        assert(false, `Invalid mode: ${mode}`);\n        return undefined;\n    }\n    /**\n     * Apply a modification (or navigation) operation.\n     *\n     * @see {@link Wunderbaum.applyCommand}\n     */\n    applyCommand(cmd, options) {\n        return this.tree.applyCommand(cmd, this, options);\n    }\n    /**\n     * Collapse all expanded sibling nodes if any.\n     * (Automatically called when `autoCollapse` is true.)\n     */\n    collapseSiblings(options) {\n        for (const node of this.parent.children) {\n            if (node !== this && node.expanded) {\n                node.setExpanded(false, options);\n            }\n        }\n    }\n    /**\n     * Add/remove one or more classes to `<div class='wb-row'>`.\n     *\n     * This also maintains `node.classes`, so the class will survive a re-render.\n     *\n     * @param className one or more class names. Multiple classes can be passed\n     *     as space-separated string, array of strings, or set of strings.\n     */\n    setClass(className, flag = true) {\n        const cnSet = toSet(className);\n        if (flag) {\n            if (this.classes === null) {\n                this.classes = new Set();\n            }\n            cnSet.forEach((cn) => {\n                var _a;\n                this.classes.add(cn);\n                (_a = this._rowElem) === null || _a === void 0 ? void 0 : _a.classList.toggle(cn, flag);\n            });\n        }\n        else {\n            if (this.classes === null) {\n                return;\n            }\n            cnSet.forEach((cn) => {\n                var _a;\n                this.classes.delete(cn);\n                (_a = this._rowElem) === null || _a === void 0 ? void 0 : _a.classList.toggle(cn, flag);\n            });\n            if (this.classes.size === 0) {\n                this.classes = null;\n            }\n        }\n    }\n    /** Start editing this node's title. */\n    startEditTitle() {\n        this.tree._callMethod(\"edit.startEditTitle\", this);\n    }\n    /**\n     * Call `setExpanded()` on all descendant nodes.\n     *\n     * @param flag true to expand, false to collapse.\n     * @param options Additional options.\n     * @see {@link Wunderbaum.expandAll}\n     * @see {@link WunderbaumNode.setExpanded}\n     */\n    async expandAll(flag = true, options) {\n        const tree = this.tree;\n        const { collapseOthers, deep, depth, force, keepActiveNodeVisible = true, loadLazy, resetLazy, } = options !== null && options !== void 0 ? options : {};\n        // limit expansion level to `depth` (or tree.minExpandLevel). Default: unlimited\n        const treeLevel = this.tree.options.minExpandLevel || null; // 0 -> null\n        const minLevel = depth !== null && depth !== void 0 ? depth : (force ? null : treeLevel);\n        const expandOpts = {\n            deep: deep,\n            force: force,\n            loadLazy: loadLazy,\n            resetLazy: resetLazy,\n            scrollIntoView: false, // don't scroll every node while iterating\n        };\n        this.logInfo(`expandAll(${flag}, depth=${depth}, minLevel=${minLevel})`);\n        assert(!(flag && deep != null && !collapseOthers), \"Expanding with `deep` option is not supported (implied by the `depth` option).\");\n        // Expand all direct children in parallel:\n        async function _iter(n, level) {\n            var _a;\n            // n.logInfo(`  _iter(level=${level})`);\n            const promises = [];\n            (_a = n.children) === null || _a === void 0 ? void 0 : _a.forEach((cn) => {\n                if (flag) {\n                    if (!cn.expanded &&\n                        (minLevel == null || level < minLevel) &&\n                        (cn.children || (loadLazy && cn.lazy))) {\n                        // Node is collapsed and may be expanded (i.e. has children or is lazy)\n                        // Expanding may be async, so we store the promise.\n                        // Also the recursion is delayed until expansion finished.\n                        const p = cn.setExpanded(true, expandOpts);\n                        promises.push(p);\n                        if (depth == null) {\n                            p.then(async () => {\n                                await _iter(cn, level + 1);\n                            });\n                        }\n                    }\n                    else {\n                        // We don't expand the node, but still visit descendants.\n                        // There we may find lazy nodes, so we\n                        promises.push(_iter(cn, level + 1));\n                    }\n                }\n                else {\n                    // Collapsing is always synchronous, so no promises required\n                    // Do not collapse until minExpandLevel\n                    if (minLevel == null || level >= minLevel) {\n                        cn.setExpanded(false, expandOpts);\n                    }\n                    if ((minLevel != null && level < minLevel) || deep) {\n                        _iter(cn, level + 1); // recursion, even if cn was already collapsed\n                    }\n                }\n            });\n            return new Promise((resolve) => {\n                Promise.all(promises).then(() => {\n                    resolve(true);\n                });\n            });\n        }\n        const tag = tree.logTime(`${this}.expandAll(${flag}, depth=${depth})`);\n        try {\n            tree.enableUpdate(false);\n            await _iter(this, 0);\n            if (collapseOthers) {\n                assert(flag, \"Option `collapseOthers` requires flag=true\");\n                assert(minLevel != null, \"Option `collapseOthers` requires `depth` or `minExpandLevel`\");\n                this.expandAll(false, { depth: minLevel });\n            }\n        }\n        finally {\n            tree.enableUpdate(true);\n            tree.logTimeEnd(tag);\n        }\n        if (tree.activeNode && keepActiveNodeVisible) {\n            tree.activeNode.scrollIntoView();\n        }\n    }\n    /**\n     * Find all descendant nodes that match condition (excluding self).\n     *\n     * If `match` is a string, search for exact node title.\n     * If `match` is a RegExp expression, apply it to node.title, using\n     * [RegExp.test()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test).\n     * If `match` is a callback, match all nodes for that the callback(node) returns true.\n     *\n     * Returns an empty array if no nodes were found.\n     *\n     * Examples:\n     * ```js\n     * // Match all node titles that match exactly 'Joe':\n     * nodeList = node.findAll(\"Joe\")\n     * // Match all node titles that start with 'Joe' case sensitive:\n     * nodeList = node.findAll(/^Joe/)\n     * // Match all node titles that contain 'oe', case insensitive:\n     * nodeList = node.findAll(/oe/i)\n     * // Match all nodes with `data.price` >= 99:\n     * nodeList = node.findAll((n) => {\n     *   return n.data.price >= 99;\n     * })\n     * ```\n     */\n    findAll(match) {\n        const matcher = typeof match === \"function\" ? match : makeNodeTitleMatcher(match);\n        const res = [];\n        this.visit((n) => {\n            if (matcher(n)) {\n                res.push(n);\n            }\n        });\n        return res;\n    }\n    /** Return the direct child with a given key, index or null. */\n    findDirectChild(ptr) {\n        const cl = this.children;\n        if (!cl) {\n            return null;\n        }\n        if (typeof ptr === \"string\") {\n            for (let i = 0, l = cl.length; i < l; i++) {\n                if (cl[i].key === ptr) {\n                    return cl[i];\n                }\n            }\n        }\n        else if (typeof ptr === \"number\") {\n            return cl[ptr];\n        }\n        else if (ptr.parent === this) {\n            // Return null if `ptr` is not a direct child\n            return ptr;\n        }\n        return null;\n    }\n    /**\n     * Find first descendant node that matches condition (excluding self) or null.\n     *\n     * @see {@link WunderbaumNode.findAll} for examples.\n     */\n    findFirst(match) {\n        const matcher = typeof match === \"function\" ? match : makeNodeTitleMatcher(match);\n        let res = null;\n        this.visit((n) => {\n            if (matcher(n)) {\n                res = n;\n                return false;\n            }\n        });\n        return res;\n    }\n    /** Find a node relative to self.\n     *\n     * @see {@link Wunderbaum.findRelatedNode|tree.findRelatedNode()}\n     */\n    findRelatedNode(where, includeHidden = false) {\n        return this.tree.findRelatedNode(this, where, includeHidden);\n    }\n    /**\n     * Iterator version of {@link WunderbaumNode.format}.\n     */\n    *format_iter(name_cb, connectors) {\n        connectors !== null && connectors !== void 0 ? connectors : (connectors = [\"    \", \" |  \", \" ╰─ \", \" ├─ \"]);\n        name_cb !== null && name_cb !== void 0 ? name_cb : (name_cb = (node) => \"\" + node);\n        function _is_last(node) {\n            const ca = node.parent.children;\n            return node === ca[ca.length - 1];\n        }\n        const _format_line = (node) => {\n            // https://www.measurethat.net/Benchmarks/Show/12196/0/arr-unshift-vs-push-reverse-small-array\n            const parts = [name_cb(node)];\n            parts.unshift(connectors[_is_last(node) ? 2 : 3]);\n            let p = node.parent;\n            while (p && p !== this) {\n                // `this` is the top node\n                parts.unshift(connectors[_is_last(p) ? 0 : 1]);\n                p = p.parent;\n            }\n            return parts.join(\"\");\n        };\n        yield name_cb(this);\n        for (const node of this) {\n            yield _format_line(node);\n        }\n    }\n    /**\n     * Return a multiline string representation of a node/subnode hierarchy.\n     * Mostly useful for debugging.\n     *\n     * Example:\n     * ```js\n     * console.info(tree.getActiveNode().format((n)=>n.title));\n     * ```\n     * logs\n     * ```\n     * Books\n     *  ├─ Art of War\n     *  ╰─ Don Quixote\n     * ```\n     * @see {@link WunderbaumNode.format_iter}\n     */\n    format(name_cb, connectors) {\n        const a = [];\n        for (const line of this.format_iter(name_cb, connectors)) {\n            a.push(line);\n        }\n        return a.join(\"\\n\");\n    }\n    /** Return the `<span class='wb-col'>` element with a given index or id.\n     * @returns {WunderbaumNode | null}\n     */\n    getColElem(colIdx) {\n        var _a;\n        if (typeof colIdx === \"string\") {\n            colIdx = this.tree.columns.findIndex((value) => value.id === colIdx);\n        }\n        const colElems = (_a = this._rowElem) === null || _a === void 0 ? void 0 : _a.querySelectorAll(\"span.wb-col\");\n        return colElems ? colElems[colIdx] : null;\n    }\n    /**\n     * Return all nodes with the same refKey.\n     *\n     * @param includeSelf Include this node itself.\n     * @see {@link Wunderbaum.findByRefKey}\n     */\n    getCloneList(includeSelf = false) {\n        if (!this.refKey) {\n            return [];\n        }\n        const clones = this.tree.findByRefKey(this.refKey);\n        if (includeSelf) {\n            return clones;\n        }\n        return [...clones].filter((n) => n !== this);\n    }\n    /** Return the first child node or null.\n     * @returns {WunderbaumNode | null}\n     */\n    getFirstChild() {\n        return this.children ? this.children[0] : null;\n    }\n    /** Return the last child node or null.\n     * @returns {WunderbaumNode | null}\n     */\n    getLastChild() {\n        return this.children ? this.children[this.children.length - 1] : null;\n    }\n    /** Return node depth (starting with 1 for top level nodes). */\n    getLevel() {\n        let i = 0, p = this.parent;\n        while (p) {\n            i++;\n            p = p.parent;\n        }\n        return i;\n    }\n    /** Return the successive node (under the same parent) or null. */\n    getNextSibling() {\n        const ac = this.parent.children;\n        const idx = ac.indexOf(this);\n        return ac[idx + 1] || null;\n    }\n    /** Return the parent node (null for the system root node). */\n    getParent() {\n        // TODO: return null for top-level nodes?\n        return this.parent;\n    }\n    /** Return an array of all parent nodes (top-down).\n     * @param includeRoot Include the invisible system root node.\n     * @param includeSelf Include the node itself.\n     */\n    getParentList(includeRoot = false, includeSelf = false) {\n        const l = [];\n        let dtn = includeSelf ? this : this.parent;\n        while (dtn) {\n            if (includeRoot || dtn.parent) {\n                l.unshift(dtn);\n            }\n            dtn = dtn.parent;\n        }\n        return l;\n    }\n    /** Return a string representing the hierarchical node path, e.g. \"a/b/c\".\n     * @param includeSelf\n     * @param part property name or callback\n     * @param separator\n     */\n    getPath(includeSelf = true, part = \"title\", separator = \"/\") {\n        let val;\n        const path = [];\n        const isFunc = typeof part === \"function\";\n        this.visitParents((n) => {\n            if (n.parent) {\n                val = isFunc\n                    ? part(n)\n                    : n[part];\n                path.unshift(val);\n            }\n            return undefined; // TODO remove this line\n        }, includeSelf);\n        return path.join(separator);\n    }\n    /** Return the preceding node (under the same parent) or null. */\n    getPrevSibling() {\n        const ac = this.parent.children;\n        const idx = ac.indexOf(this);\n        return ac[idx - 1] || null;\n    }\n    /** Return true if node has children.\n     * Return undefined if not sure, i.e. the node is lazy and not yet loaded.\n     */\n    hasChildren() {\n        if (this.lazy) {\n            if (this.children == null) {\n                return undefined; // null or undefined: Not yet loaded\n            }\n            else if (this.children.length === 0) {\n                return false; // Loaded, but response was empty\n            }\n            else if (this.children.length === 1 &&\n                this.children[0].isStatusNode()) {\n                return undefined; // Currently loading or load error\n            }\n            return true; // One or more child nodes\n        }\n        return !!(this.children && this.children.length);\n    }\n    /** Return true if node has className set. */\n    hasClass(className) {\n        return this.classes ? this.classes.has(className) : false;\n    }\n    /** Return true if node is the currently focused node. @since 0.9.0 */\n    hasFocus() {\n        return this.tree.focusNode === this;\n    }\n    /** Return true if this node is the currently active tree node. */\n    isActive() {\n        return this.tree.activeNode === this;\n    }\n    /** Return true if this node is a direct or indirect parent of `other`.\n     * @see {@link WunderbaumNode.isParentOf}\n     */\n    isAncestorOf(other) {\n        return other && other.isDescendantOf(this);\n    }\n    /** Return true if this node is a **direct** subnode of `other`.\n     * @see {@link WunderbaumNode.isDescendantOf}\n     */\n    isChildOf(other) {\n        return other && this.parent === other;\n    }\n    /** Return true if this node's refKey is used by at least one other node.\n     */\n    isClone() {\n        return !!this.refKey && this.tree.findByRefKey(this.refKey).length > 1;\n    }\n    /** Return true if this node's title spans all columns, i.e. the node has no\n     * grid cells.\n     */\n    isColspan() {\n        return !!this.getOption(\"colspan\");\n    }\n    /** Return true if this node is a direct or indirect subnode of `other`.\n     * @see {@link WunderbaumNode.isChildOf}\n     */\n    isDescendantOf(other) {\n        if (!other || other.tree !== this.tree) {\n            return false;\n        }\n        let p = this.parent;\n        while (p) {\n            if (p === other) {\n                return true;\n            }\n            if (p === p.parent) {\n                error(`Recursive parent link: ${p}`);\n            }\n            p = p.parent;\n        }\n        return false;\n    }\n    /** Return true if this node has children, i.e. the node is generally expandable.\n     * If `andCollapsed` is set, we also check if this node is collapsed, i.e.\n     * an expand operation is currently possible.\n     */\n    isExpandable(andCollapsed = false) {\n        // `false` is never expandable (unofficial)\n        if ((andCollapsed && this.expanded) || this.children === false) {\n            return false;\n        }\n        if (this.children == null) {\n            return !!this.lazy; // null or undefined can trigger lazy load\n        }\n        if (this.children.length === 0) {\n            return !!this.tree.options.emptyChildListExpandable;\n        }\n        return true;\n    }\n    /** Return true if _this_ node is currently in edit-title mode.\n     *\n     * See {@link WunderbaumNode.startEditTitle}.\n     */\n    isEditingTitle() {\n        return this.tree._callMethod(\"edit.isEditingTitle\", this);\n    }\n    /** Return true if this node is currently expanded. */\n    isExpanded() {\n        return !!this.expanded;\n    }\n    /** Return true if this node is the first node of its parent's children. */\n    isFirstSibling() {\n        const p = this.parent;\n        return !p || p.children[0] === this;\n    }\n    /** Return true if this node is the last node of its parent's children. */\n    isLastSibling() {\n        const p = this.parent;\n        return !p || p.children[p.children.length - 1] === this;\n    }\n    /** Return true if this node is lazy (even if data was already loaded) */\n    isLazy() {\n        return !!this.lazy;\n    }\n    /** Return true if node is lazy and loaded. For non-lazy nodes always return true. */\n    isLoaded() {\n        return !this.lazy || this.hasChildren() !== undefined; // Also checks if the only child is a status node\n    }\n    /** Return true if node is currently loading, i.e. a GET request is pending. */\n    isLoading() {\n        return this._isLoading;\n    }\n    /** Return true if this node is a temporarily generated status node of type 'paging'. */\n    isPagingNode() {\n        return this.statusNodeType === \"paging\";\n    }\n    /** Return true if this node is a **direct** parent of `other`.\n     * @see {@link WunderbaumNode.isAncestorOf}\n     */\n    isParentOf(other) {\n        return other && other.parent === this;\n    }\n    /** Return true if this node is partially loaded. @experimental  */\n    isPartload() {\n        return !!this._partload;\n    }\n    /** Return true if this node is partially selected (tri-state). */\n    isPartsel() {\n        return !this.selected && !!this._partsel;\n    }\n    /** Return true if this node has DOM representation, i.e. is displayed in the viewport. */\n    isRadio() {\n        return !!this.parent.radiogroup || this.getOption(\"checkbox\") === \"radio\";\n    }\n    /** Return true if this node has DOM representation, i.e. is displayed in the viewport. */\n    isRendered() {\n        return !!this._rowElem;\n    }\n    /** Return true if this node is the (invisible) system root node.\n     * @see {@link WunderbaumNode.isTopLevel}\n     */\n    isRootNode() {\n        return this.tree.root === this;\n    }\n    /** Return true if this node is selected, i.e. the checkbox is set.\n     * `undefined` if partly selected (tri-state), false otherwise.\n     */\n    isSelected() {\n        return this.selected ? true : this._partsel ? undefined : false;\n    }\n    /** Return true if this node is a temporarily generated system node like\n     * 'loading', 'paging', or 'error' (node.statusNodeType contains the type).\n     */\n    isStatusNode() {\n        return !!this.statusNodeType;\n    }\n    /** Return true if this a top level node, i.e. a direct child of the (invisible) system root node. */\n    isTopLevel() {\n        return this.tree.root === this.parent;\n    }\n    /** Return true if node is marked lazy but not yet loaded.\n     * For non-lazy nodes always return false.\n     */\n    isUnloaded() {\n        // Also checks if the only child is a status node:\n        return this.hasChildren() === undefined;\n    }\n    /** Return true if all parent nodes are expanded. Note: this does not check\n     * whether the node is scrolled into the visible part of the screen or viewport.\n     */\n    isVisible() {\n        const hasFilter = this.tree.filterMode === \"hide\";\n        const parents = this.getParentList(false, false);\n        // TODO: check $(n.span).is(\":visible\")\n        // i.e. return false for nodes (but not parents) that are hidden\n        // by a filter\n        if (hasFilter && !this.match && !this.subMatchCount) {\n            // this.debug( \"isVisible: HIDDEN (\" + hasFilter + \", \" + this.match + \", \" + this.match + \")\" );\n            return false;\n        }\n        for (let i = 0, l = parents.length; i < l; i++) {\n            const n = parents[i];\n            if (!n.expanded) {\n                // this.debug(\"isVisible: HIDDEN (parent collapsed)\");\n                return false;\n            }\n            // if (hasFilter && !n.match && !n.subMatchCount) {\n            // \tthis.debug(\"isVisible: HIDDEN (\" + hasFilter + \", \" + this.match + \", \" + this.match + \")\");\n            // \treturn false;\n            // }\n        }\n        // this.debug(\"isVisible: VISIBLE\");\n        return true;\n    }\n    _loadSourceObject(source, level) {\n        var _a;\n        const tree = this.tree;\n        level !== null && level !== void 0 ? level : (level = this.getLevel());\n        // Let caller modify the parsed JSON response:\n        const res = this._callEvent(\"receive\", { response: source });\n        if (res != null) {\n            source = res;\n        }\n        if (isArray(source)) {\n            source = { children: source };\n        }\n        assert(isPlainObject(source), `Expected an array or plain object: ${source}`);\n        const format = (_a = source.format) !== null && _a !== void 0 ? _a : \"nested\";\n        assert(format === \"nested\" || format === \"flat\", `Expected source.format = 'nested' or 'flat': ${format}`);\n        // Pre-rocess for 'nested' or 'flat' format\n        decompressSourceData(source);\n        assert(source.children, \"If `source` is an object, it must have a `children` property\");\n        if (source.types) {\n            tree.logInfo(\"Redefine types\", source.columns);\n            tree.setTypes(source.types, false);\n            delete source.types;\n        }\n        if (source.columns) {\n            tree.logInfo(\"Redefine columns\", source.columns);\n            tree.columns = source.columns;\n            delete source.columns;\n            tree.update(ChangeType.colStructure);\n        }\n        this.addChildren(source.children);\n        // Add extra data to `tree.data`\n        for (const [key, value] of Object.entries(source)) {\n            if (!RESERVED_TREE_SOURCE_KEYS.has(key)) {\n                tree.data[key] = value;\n                // tree.logDebug(`Add source.${key} to tree.data.${key}`);\n            }\n        }\n        if (tree.options.selectMode === \"hier\") {\n            this.fixSelection3FromEndNodes();\n        }\n        // Allow to un-sort nodes after sorting\n        this.resetNativeChildOrder();\n        this._callEvent(\"load\");\n    }\n    async _fetchWithOptions(source) {\n        var _a, _b;\n        // Either a URL string or an object with a `.url` property.\n        let url, params, body, options, rest;\n        let fetchOpts = {};\n        if (typeof source === \"string\") {\n            // source is a plain URL string: assume GET request\n            url = source;\n            fetchOpts.method = \"GET\";\n        }\n        else if (isPlainObject(source)) {\n            // source is a plain object with `.url` property.\n            ({ url, params, body, options, ...rest } = source);\n            assert(!rest || Object.keys(rest).length === 0, `Unexpected source properties: ${Object.keys(rest)}. Use 'options' instead.`);\n            assert(typeof url === \"string\", `expected source.url as string`);\n            if (isPlainObject(options)) {\n                fetchOpts = options;\n            }\n            if (isPlainObject(body)) {\n                // we also accept 'body' as object...\n                assert(!fetchOpts.body, \"options.body should be passed as source.body\");\n                fetchOpts.body = JSON.stringify(fetchOpts.body);\n                (_a = fetchOpts.method) !== null && _a !== void 0 ? _a : (fetchOpts.method = \"POST\"); // set default\n            }\n            if (isPlainObject(params)) {\n                url += \"?\" + new URLSearchParams(params);\n                (_b = fetchOpts.method) !== null && _b !== void 0 ? _b : (fetchOpts.method = \"GET\"); // set default\n            }\n        }\n        else {\n            url = \"\"; // keep linter happy\n            error(`Unsupported source format: ${source}`);\n        }\n        this.setStatus(NodeStatusType.loading);\n        const response = await fetch(url, fetchOpts);\n        if (!response.ok) {\n            error(`GET ${url} returned ${response.status}, ${response}`);\n        }\n        return await response.json();\n    }\n    /** Download  data from the cloud, then call `.update()`. */\n    async load(source) {\n        const tree = this.tree;\n        const requestId = Date.now();\n        const prevParent = this.parent;\n        const start = Date.now();\n        let elap = 0, elapLoad = 0, elapProcess = 0;\n        // Check for overlapping requests\n        if (this._requestId) {\n            this.logWarn(`Recursive load request #${requestId} while #${this._requestId} is pending. ` +\n                \"The previous request will be ignored.\");\n        }\n        this._requestId = requestId;\n        // const timerLabel = tree.logTime(this + \".load()\");\n        try {\n            const url = typeof source === \"string\" ? source : source.url;\n            if (!url) {\n                // An array or a plain object (that does NOT contain a `.url` property)\n                // will be treated as native Wunderbaum data\n                if (typeof source.then === \"function\") {\n                    const msg = tree.logTime(`Resolve thenable ${source}`);\n                    source = await Promise.resolve(source);\n                    tree.logTimeEnd(msg);\n                }\n                this._loadSourceObject(source);\n                elapProcess = Date.now() - start;\n            }\n            else {\n                // Either a URL string or an object with a `.url` property.\n                const data = await this._fetchWithOptions(source);\n                elapLoad = Date.now() - start;\n                if (this._requestId && this._requestId > requestId) {\n                    this.logWarn(`Ignored load response #${requestId} because #${this._requestId} is pending.`);\n                    return;\n                }\n                else {\n                    this.logDebug(`Received response for load request #${requestId}`);\n                }\n                if (this.parent === null && prevParent !== null) {\n                    this.logWarn(\"Lazy parent node was removed while loading: discarding response.\");\n                    return;\n                }\n                this.setStatus(NodeStatusType.ok);\n                // if (data.columns) {\n                //   tree.logInfo(\"Re-define columns\", data.columns);\n                //   util.assert(!this.parent);\n                //   tree.columns = data.columns;\n                //   delete data.columns;\n                //   tree.updateColumns({ calculateCols: false });\n                // }\n                const startProcess = Date.now();\n                this._loadSourceObject(data);\n                elapProcess = Date.now() - startProcess;\n            }\n        }\n        catch (error) {\n            this.logError(\"Error during load()\", source, error);\n            this._callEvent(\"error\", { error: error });\n            this.setStatus(NodeStatusType.error, { message: \"\" + error });\n            throw error;\n        }\n        finally {\n            this._requestId = 0;\n            elap = Date.now() - start;\n            if (tree.options.debugLevel >= 3) {\n                tree.logInfo(`Load source took ${elap / 1000} seconds ` +\n                    `(transfer: ${elapLoad / 1000}s, ` +\n                    `processing: ${elapProcess / 1000}s)`);\n            }\n        }\n    }\n    /**\n     * Load content of a lazy node.\n     * If the node is already loaded, nothing happens.\n     * @param [forceReload=false] If true, reload even if already loaded.\n     */\n    async loadLazy(forceReload = false) {\n        const wasExpanded = this.expanded;\n        assert(this.lazy, \"load() requires a lazy node\");\n        if (!forceReload && !this.isUnloaded()) {\n            return; // Already loaded: nothing to do\n        }\n        if (this.isLoading()) {\n            this.logWarn(\"loadLazy() called while already loading: ignored.\");\n            return; // Already loading: prevent duplicate requests\n        }\n        if (this.isLoaded()) {\n            this.resetLazy(); // Also collapses if currently expanded\n        }\n        // `lazyLoad` may be long-running, so mark node as loading now. `this.load()`\n        // will reset the status later.\n        this.setStatus(NodeStatusType.loading);\n        try {\n            const source = await this._callEvent(\"lazyLoad\");\n            if (source === false) {\n                this.setStatus(NodeStatusType.ok);\n                return;\n            }\n            assert(isArray(source) || (source && source.url), \"The lazyLoad event must return a node list, `{url: ...}`, or false.\");\n            await this.load(source);\n            this.setStatus(NodeStatusType.ok); // Also resets `this._isLoading`\n            if (wasExpanded) {\n                this.expanded = true;\n                this.tree.update(ChangeType.structure);\n            }\n            else {\n                this.update(); // Fix expander icon to 'loaded'\n            }\n        }\n        catch (e) {\n            this.logError(\"Error during loadLazy()\", e);\n            this._callEvent(\"error\", { error: e });\n            // Also resets `this._isLoading`:\n            this.setStatus(NodeStatusType.error, { message: \"\" + e });\n        }\n        return;\n    }\n    /** Write to `console.log` with node name as prefix if opts.debugLevel >= 4.\n     * @see {@link WunderbaumNode.logDebug}\n     */\n    log(...args) {\n        if (this.tree.options.debugLevel >= 4) {\n            console.log(this.toString(), ...args); // eslint-disable-line no-console\n        }\n    }\n    /** Write to `console.debug` with node name as prefix if opts.debugLevel >= 4\n     * and browser console level includes debug/verbose messages.\n     * @see {@link WunderbaumNode.log}\n     */\n    logDebug(...args) {\n        if (this.tree.options.debugLevel >= 4) {\n            console.debug(this.toString(), ...args); // eslint-disable-line no-console\n        }\n    }\n    /** Write to `console.error` with node name as prefix if opts.debugLevel >= 1. */\n    logError(...args) {\n        if (this.tree.options.debugLevel >= 1) {\n            console.error(this.toString(), ...args); // eslint-disable-line no-console\n        }\n    }\n    /** Write to `console.info` with node name as prefix if opts.debugLevel >= 3. */\n    logInfo(...args) {\n        if (this.tree.options.debugLevel >= 3) {\n            console.info(this.toString(), ...args); // eslint-disable-line no-console\n        }\n    }\n    /** Write to `console.warn` with node name as prefix if opts.debugLevel >= 2. */\n    logWarn(...args) {\n        if (this.tree.options.debugLevel >= 2) {\n            console.warn(this.toString(), ...args); // eslint-disable-line no-console\n        }\n    }\n    /** Expand all parents and optionally scroll into visible area as neccessary.\n     * Promise is resolved, when lazy loading and animations are done.\n     * @param {object} [options] passed to `setExpanded()`.\n     *     Defaults to {noAnimation: false, noEvents: false, scrollIntoView: true}\n     */\n    async makeVisible(options) {\n        let i;\n        const dfd = new Deferred();\n        const deferreds = [];\n        const parents = this.getParentList(false, false);\n        const len = parents.length;\n        const noAnimation = getOption(options, \"noAnimation\", false);\n        const scroll = getOption(options, \"scrollIntoView\", true);\n        // Expand bottom-up, so only the top node is animated\n        for (i = len - 1; i >= 0; i--) {\n            // self.debug(\"pushexpand\" + parents[i]);\n            const seOpts = { noAnimation: noAnimation };\n            deferreds.push(parents[i].setExpanded(true, seOpts));\n        }\n        Promise.all(deferreds).then(() => {\n            // All expands have finished\n            // self.debug(\"expand DONE\", scroll);\n            // Note: this.tree may be none when switching demo trees\n            if (scroll && this.tree) {\n                // Make sure markup and _rowIdx is updated before we do the scroll calculations\n                this.tree.updatePendingModifications();\n                this.scrollIntoView().then(() => {\n                    // self.debug(\"scroll DONE\");\n                    dfd.resolve();\n                });\n            }\n            else {\n                dfd.resolve();\n            }\n        });\n        return dfd.promise();\n    }\n    /** Move this node to targetNode. */\n    moveTo(targetNode, mode = \"appendChild\", map) {\n        if (mode === \"over\") {\n            mode = \"appendChild\"; // compatible with drop region\n        }\n        if (mode === \"prependChild\") {\n            if (targetNode.children && targetNode.children.length) {\n                mode = \"before\";\n                targetNode = targetNode.children[0];\n            }\n            else {\n                mode = \"appendChild\";\n            }\n        }\n        let pos;\n        const tree = this.tree;\n        const prevParent = this.parent;\n        const targetParent = mode === \"appendChild\" ? targetNode : targetNode.parent;\n        if (this === targetNode) {\n            return;\n        }\n        else if (!this.parent) {\n            error(\"Cannot move system root\");\n        }\n        else if (targetParent.isDescendantOf(this)) {\n            error(\"Cannot move a node to its own descendant\");\n        }\n        if (targetParent !== prevParent) {\n            prevParent.triggerModifyChild(\"remove\", this);\n        }\n        // Unlink this node from current parent\n        if (this.parent.children.length === 1) {\n            if (this.parent === targetParent) {\n                return; // #258\n            }\n            this.parent.children = this.parent.lazy ? [] : null;\n            this.parent.expanded = false;\n        }\n        else {\n            pos = this.parent.children.indexOf(this);\n            assert(pos >= 0, \"invalid source parent\");\n            this.parent.children.splice(pos, 1);\n        }\n        // Insert this node to target parent's child list\n        this.parent = targetParent;\n        if (targetParent.hasChildren()) {\n            switch (mode) {\n                case \"appendChild\":\n                    // Append to existing target children\n                    targetParent.children.push(this);\n                    break;\n                case \"before\":\n                    // Insert this node before target node\n                    pos = targetParent.children.indexOf(targetNode);\n                    assert(pos >= 0, \"invalid target parent\");\n                    targetParent.children.splice(pos, 0, this);\n                    break;\n                case \"after\":\n                    // Insert this node after target node\n                    pos = targetParent.children.indexOf(targetNode);\n                    assert(pos >= 0, \"invalid target parent\");\n                    targetParent.children.splice(pos + 1, 0, this);\n                    break;\n                default:\n                    error(`Invalid mode '${mode}'.`);\n            }\n        }\n        else {\n            targetParent.children = [this];\n        }\n        // Let caller modify the nodes\n        if (map) {\n            targetNode.visit(map, true);\n        }\n        if (targetParent === prevParent) {\n            targetParent.triggerModifyChild(\"move\", this);\n        }\n        else {\n            // prevParent.triggerModifyChild(\"remove\", this);\n            targetParent.triggerModifyChild(\"add\", this);\n        }\n        // Handle cross-tree moves\n        if (tree !== targetNode.tree) {\n            // Fix node.tree for all source nodes\n            // \tutil.assert(false, \"Cross-tree move is not yet implemented.\");\n            this.logWarn(\"Cross-tree moveTo is experimental!\");\n            this.visit((n) => {\n                // TODO: fix selection state and activation, ...\n                n.tree = targetNode.tree;\n            }, true);\n        }\n        // Make sure we update async, because discarding the markup would prevent\n        // DragAndDrop to generate a dragend event on the source node\n        setTimeout(() => {\n            // Even indentation may have changed:\n            tree.update(ChangeType.any);\n        }, 0);\n        // TODO: fix selection state\n        // TODO: fix active state\n    }\n    /** Set focus relative to this node and optionally activate.\n     *\n     * 'left' collapses the node if it is expanded, or move to the parent\n     * otherwise.\n     * 'right' expands the node if it is collapsed, or move to the first\n     * child otherwise.\n     *\n     * @param where 'down', 'first', 'last', 'left', 'parent', 'right', or 'up'.\n     *   (Alternatively the `event.key` that would normally trigger this move,\n     *   e.g. `ArrowLeft` = 'left'.\n     * @param options\n     */\n    async navigate(where, options) {\n        var _a;\n        // Allow to pass 'ArrowLeft' instead of 'left'\n        const navType = ((_a = KEY_TO_NAVIGATION_MAP[where]) !== null && _a !== void 0 ? _a : where);\n        // Otherwise activate or focus the related node\n        const node = this.findRelatedNode(navType);\n        if (!node) {\n            this.logWarn(`Could not find related node '${where}'.`);\n            return Promise.resolve(this);\n        }\n        // setFocus/setActive will scroll later (if autoScroll is specified)\n        try {\n            node.makeVisible({ scrollIntoView: false });\n        }\n        catch (e) {\n            // ignore\n        }\n        node.setFocus();\n        if ((options === null || options === void 0 ? void 0 : options.activate) === false) {\n            return Promise.resolve(this);\n        }\n        return node.setActive(true, { event: options === null || options === void 0 ? void 0 : options.event });\n    }\n    /** Delete this node and all descendants. */\n    remove() {\n        const tree = this.tree;\n        const pos = this.parent.children.indexOf(this);\n        this.triggerModify(\"remove\");\n        this.parent.children.splice(pos, 1);\n        this.visit((n) => {\n            n.removeMarkup();\n            tree._unregisterNode(n);\n        }, true);\n        tree.update(ChangeType.structure);\n    }\n    /** Remove all descendants of this node. */\n    removeChildren() {\n        var _a, _b;\n        const tree = this.tree;\n        if (!this.children) {\n            return;\n        }\n        if ((_a = tree.activeNode) === null || _a === void 0 ? void 0 : _a.isDescendantOf(this)) {\n            tree.activeNode.setActive(false); // TODO: don't fire events\n        }\n        if ((_b = tree.focusNode) === null || _b === void 0 ? void 0 : _b.isDescendantOf(this)) {\n            tree._setFocusNode(null);\n        }\n        // TODO: persist must take care to clear select and expand cookies\n        // Unlink children to support GC\n        // TODO: also delete this.children (not possible using visit())\n        this.triggerModifyChild(\"remove\", null);\n        this.visit((n) => {\n            tree._unregisterNode(n);\n        });\n        if (this.lazy) {\n            // 'undefined' would be interpreted as 'not yet loaded' for lazy nodes\n            this.children = [];\n        }\n        else {\n            this.children = null;\n        }\n        // util.assert(this.parent); // don't call this for root node\n        if (!this.isRootNode()) {\n            this.expanded = false;\n        }\n        this.tree.update(ChangeType.structure);\n    }\n    /** Remove all HTML markup from the DOM. */\n    removeMarkup() {\n        if (this._rowElem) {\n            delete this._rowElem._wb_node;\n            this._rowElem.remove();\n            this._rowElem = undefined;\n        }\n    }\n    _getRenderInfo() {\n        const allColInfosById = {};\n        const renderColInfosById = {};\n        const isColspan = this.isColspan();\n        const colElems = this._rowElem\n            ? (this._rowElem.querySelectorAll(\"span.wb-col\"))\n            : null;\n        let idx = 0;\n        for (const col of this.tree.columns) {\n            allColInfosById[col.id] = {\n                id: col.id,\n                idx: idx,\n                elem: colElems ? colElems[idx] : null,\n                info: col,\n            };\n            // renderColInfosById only contains columns that need rendering:\n            if (!isColspan && col.id !== \"*\") {\n                renderColInfosById[col.id] = allColInfosById[col.id];\n            }\n            idx++;\n        }\n        return {\n            allColInfosById: allColInfosById,\n            renderColInfosById: renderColInfosById,\n        };\n    }\n    _createIcon(parentElem, replaceChild, showLoading) {\n        const iconElem = this.tree._createNodeIcon(this, showLoading, true);\n        if (iconElem) {\n            if (replaceChild) {\n                parentElem.replaceChild(iconElem, replaceChild);\n            }\n            else {\n                parentElem.appendChild(iconElem);\n            }\n        }\n        return iconElem;\n    }\n    /**\n     * Create a whole new `<div class=\"wb-row\">` element.\n     * @see {@link WunderbaumNode._render}\n     */\n    _render_markup(opts) {\n        const tree = this.tree;\n        const treeOptions = tree.options;\n        const rowHeight = treeOptions.rowHeightPx;\n        const checkbox = this.getOption(\"checkbox\");\n        const columns = tree.columns;\n        const level = this.getLevel();\n        const activeColIdx = tree.isRowNav() ? null : tree.activeColIdx;\n        let elem;\n        let rowDiv = this._rowElem;\n        let checkboxSpan = null;\n        let expanderSpan = null;\n        const isNew = !rowDiv;\n        assert(isNew, \"Expected unrendered node\");\n        assert(!isNew || (opts && opts.after), \"opts.after expected, unless updating\");\n        assert(!this.isRootNode(), \"Root node not allowed\");\n        rowDiv = document.createElement(\"div\");\n        rowDiv.classList.add(\"wb-row\");\n        rowDiv.style.top = this._rowIdx * rowHeight + \"px\";\n        this._rowElem = rowDiv;\n        // Attach a node reference to the DOM Element:\n        rowDiv._wb_node = this;\n        const nodeElem = document.createElement(\"span\");\n        nodeElem.classList.add(\"wb-node\", \"wb-col\");\n        rowDiv.appendChild(nodeElem);\n        let ofsTitlePx = 0;\n        if (checkbox) {\n            checkboxSpan = document.createElement(\"i\");\n            checkboxSpan.classList.add(\"wb-checkbox\");\n            if (checkbox === \"radio\" || this.parent.radiogroup) {\n                checkboxSpan.classList.add(\"wb-radio\");\n            }\n            nodeElem.appendChild(checkboxSpan);\n            ofsTitlePx += ICON_WIDTH;\n        }\n        for (let i = level - 1; i > 0; i--) {\n            elem = document.createElement(\"i\");\n            elem.classList.add(\"wb-indent\");\n            nodeElem.appendChild(elem);\n            ofsTitlePx += ICON_WIDTH;\n        }\n        if (!treeOptions.minExpandLevel || level > treeOptions.minExpandLevel) {\n            expanderSpan = document.createElement(\"i\");\n            expanderSpan.classList.add(\"wb-expander\");\n            nodeElem.appendChild(expanderSpan);\n            ofsTitlePx += ICON_WIDTH;\n        }\n        // Render the icon (show a 'loading' icon if we do not have an expander that\n        // we would prefer).\n        const iconSpan = this._createIcon(nodeElem, null, !expanderSpan);\n        if (iconSpan) {\n            ofsTitlePx += ICON_WIDTH;\n        }\n        const titleSpan = document.createElement(\"span\");\n        titleSpan.classList.add(\"wb-title\");\n        nodeElem.appendChild(titleSpan);\n        // this._callEvent(\"enhanceTitle\", { titleSpan: titleSpan });\n        // Store the width of leading icons with the node, so we can calculate\n        // the width of the embedded title span later\n        nodeElem._ofsTitlePx = ofsTitlePx;\n        // Support HTML5 drag-n-drop\n        if (tree.options.dnd.dragStart) {\n            nodeElem.draggable = true;\n        }\n        // Render columns\n        const isColspan = this.isColspan();\n        if (!isColspan && columns.length > 1) {\n            let colIdx = 0;\n            for (const col of columns) {\n                colIdx++;\n                let colElem;\n                if (col.id === \"*\") {\n                    colElem = nodeElem;\n                }\n                else {\n                    colElem = document.createElement(\"span\");\n                    colElem.classList.add(\"wb-col\");\n                    rowDiv.appendChild(colElem);\n                }\n                if (colIdx === activeColIdx) {\n                    colElem.classList.add(\"wb-active\");\n                }\n                // Add classes from `columns` definition to `<div.wb-col>` cells\n                col.classes ? colElem.classList.add(...col.classes.split(\" \")) : 0;\n                colElem.style.left = col._ofsPx + \"px\";\n                colElem.style.width = col._widthPx + \"px\";\n                if (isNew && col.html) {\n                    if (typeof col.html === \"string\") {\n                        colElem.innerHTML = col.html;\n                    }\n                }\n            }\n        }\n        // Attach to DOM as late as possible\n        const after = opts ? opts.after : \"last\";\n        switch (after) {\n            case \"first\":\n                tree.nodeListElement.prepend(rowDiv);\n                break;\n            case \"last\":\n                tree.nodeListElement.appendChild(rowDiv);\n                break;\n            default:\n                opts.after.after(rowDiv);\n        }\n        // Now go on and fill in data and update classes\n        opts.isNew = true;\n        this._render_data(opts);\n    }\n    /**\n     * Render `node.title`, `.icon` into an existing row.\n     *\n     * @see {@link WunderbaumNode._render}\n     */\n    _render_data(opts) {\n        assert(this._rowElem, \"No _rowElem\");\n        const tree = this.tree;\n        const treeOptions = tree.options;\n        const rowDiv = this._rowElem;\n        const isNew = !!opts.isNew; // Called by _render_markup()?\n        const preventScroll = !!opts.preventScroll;\n        const columns = tree.columns;\n        const isColspan = this.isColspan();\n        // Row markup already exists\n        const nodeElem = rowDiv.querySelector(\"span.wb-node\");\n        const titleSpan = nodeElem.querySelector(\"span.wb-title\");\n        const scrollTop = tree.element.scrollTop;\n        if (this.titleWithHighlight) {\n            titleSpan.innerHTML = this.titleWithHighlight;\n        }\n        else {\n            titleSpan.textContent = this.title; // TODO: this triggers scroll events\n        }\n        const tooltip = this.getOption(\"tooltip\", false);\n        if (tooltip) {\n            titleSpan.title = tooltip === true ? this.title : tooltip;\n        }\n        // NOTE: At least on Safari, this render call triggers a scroll event\n        // probably when a focused input is replaced.\n        if (preventScroll) {\n            tree.element.scrollTop = scrollTop;\n        }\n        // Set the width of the title span, so overflow ellipsis work\n        if (!treeOptions.skeleton) {\n            if (isColspan) {\n                const vpWidth = tree.element.clientWidth;\n                titleSpan.style.width =\n                    vpWidth - nodeElem._ofsTitlePx - TITLE_SPAN_PAD_Y + \"px\";\n            }\n            else {\n                titleSpan.style.width =\n                    columns[0]._widthPx -\n                        nodeElem._ofsTitlePx -\n                        TITLE_SPAN_PAD_Y +\n                        \"px\";\n            }\n        }\n        // Update row classes\n        opts.isDataChange = true;\n        this._render_status(opts);\n        // Let user modify the result\n        if (this.statusNodeType) {\n            this._callEvent(\"renderStatusNode\", {\n                isNew: isNew,\n                nodeElem: nodeElem,\n                isColspan: isColspan,\n            });\n        }\n        else if (this.parent) {\n            // Skip root node\n            const renderInfo = this._getRenderInfo();\n            this._callEvent(\"render\", {\n                isNew: isNew,\n                nodeElem: nodeElem,\n                isColspan: isColspan,\n                allColInfosById: renderInfo.allColInfosById,\n                renderColInfosById: renderInfo.renderColInfosById,\n            });\n        }\n    }\n    /**\n     * Update row classes to reflect active, focuses, etc.\n     * @see {@link WunderbaumNode._render}\n     */\n    _render_status(opts) {\n        // this.log(\"_render_status\", opts);\n        const tree = this.tree;\n        const iconMap = tree.iconMap;\n        const treeOptions = tree.options;\n        const typeInfo = this.type ? tree.types[this.type] : null;\n        const rowDiv = this._rowElem;\n        // Row markup already exists\n        const nodeSpan = rowDiv.querySelector(\"span.wb-node\");\n        const expanderElem = nodeSpan.querySelector(\"i.wb-expander\");\n        const checkboxElem = nodeSpan.querySelector(\"i.wb-checkbox\");\n        const rowClasses = [\"wb-row\"];\n        this.expanded ? rowClasses.push(\"wb-expanded\") : 0;\n        this.lazy ? rowClasses.push(\"wb-lazy\") : 0;\n        this.selected ? rowClasses.push(\"wb-selected\") : 0;\n        this._partsel ? rowClasses.push(\"wb-partsel\") : 0;\n        this === tree.activeNode ? rowClasses.push(\"wb-active\") : 0;\n        this === tree.focusNode ? rowClasses.push(\"wb-focus\") : 0;\n        this._errorInfo ? rowClasses.push(\"wb-error\") : 0;\n        this._isLoading ? rowClasses.push(\"wb-loading\") : 0;\n        this.isColspan() ? rowClasses.push(\"wb-colspan\") : 0;\n        this.statusNodeType\n            ? rowClasses.push(\"wb-status-\" + this.statusNodeType)\n            : 0;\n        this.match ? rowClasses.push(\"wb-match\") : 0;\n        this.subMatchCount ? rowClasses.push(\"wb-submatch\") : 0;\n        treeOptions.skeleton ? rowClasses.push(\"wb-skeleton\") : 0;\n        // Replace previous classes:\n        rowDiv.className = rowClasses.join(\" \");\n        // Add classes from `node.classes`\n        this.classes ? rowDiv.classList.add(...this.classes) : 0;\n        // Add classes from `tree.types[node.type]`\n        if (typeInfo && typeInfo.classes) {\n            rowDiv.classList.add(...typeInfo.classes);\n        }\n        if (expanderElem) {\n            let image = null;\n            if (this._isLoading) {\n                image = iconMap.loading;\n            }\n            else if (this.isExpandable(false)) {\n                if (this.expanded) {\n                    image = iconMap.expanderExpanded;\n                }\n                else {\n                    image = iconMap.expanderCollapsed;\n                }\n            }\n            else if (this.lazy && this.children == null) {\n                image = iconMap.expanderLazy;\n            }\n            if (image == null) {\n                expanderElem.className = \"wb-expander\";\n                expanderElem.classList.add(\"wb-indent\");\n            }\n            else if (TEST_HTML.test(image)) {\n                expanderElem.replaceWith(elemFromHtml(image));\n            }\n            else if (TEST_FILE_PATH.test(image)) {\n                expanderElem.style.backgroundImage = `url('${image}')`;\n            }\n            else {\n                expanderElem.className = \"wb-expander \" + image;\n            }\n        }\n        if (checkboxElem) {\n            let cbclass = \"wb-checkbox \";\n            if (this.isRadio()) {\n                cbclass += \"wb-radio \";\n                if (this.selected) {\n                    cbclass += iconMap.radioChecked;\n                    // } else if (this._partsel) {\n                    //   cbclass += iconMap.radioUnknown;\n                }\n                else {\n                    cbclass += iconMap.radioUnchecked;\n                }\n            }\n            else {\n                if (this.selected) {\n                    cbclass += iconMap.checkChecked;\n                }\n                else if (this._partsel) {\n                    cbclass += iconMap.checkUnknown;\n                }\n                else {\n                    cbclass += iconMap.checkUnchecked;\n                }\n            }\n            checkboxElem.className = cbclass;\n        }\n        // Fix active cell in cell-nav mode\n        if (!opts.isNew) {\n            let i = 0;\n            for (const colSpan of rowDiv.children) {\n                colSpan.classList.toggle(\"wb-active\", i++ === tree.activeColIdx);\n                colSpan.classList.remove(\"wb-error\", \"wb-invalid\");\n            }\n            // Update icon (if not opts.isNew, which would rebuild markup anyway)\n            const iconSpan = nodeSpan.querySelector(\"i.wb-icon\");\n            if (iconSpan) {\n                this._createIcon(nodeSpan, iconSpan, !expanderElem);\n            }\n        }\n        // Adjust column width\n        if (opts.resizeCols !== false && !this.isColspan()) {\n            const colElems = rowDiv.querySelectorAll(\"span.wb-col\");\n            let idx = 0;\n            let ofs = 0;\n            for (const colDef of this.tree.columns) {\n                const colElem = colElems[idx];\n                colElem.style.left = `${ofs}px`;\n                colElem.style.width = `${colDef._widthPx}px`;\n                idx++;\n                ofs += colDef._widthPx;\n            }\n        }\n    }\n    /*\n     * Create or update node's markup.\n     *\n     * `options.change` defaults to ChangeType.data, which updates the title,\n     * icon, and status. It also triggers the `render` event, that lets the user\n     * create or update the content of embeded cell elements.\n     *\n     * If only the status or other class-only modifications have changed,\n     * `options.change` should be set to ChangeType.status instead for best\n     * efficiency.\n     *\n     * Calling `update()` is almost always a better alternative.\n     * @see {@link WunderbaumNode.update}\n     */\n    _render(options) {\n        // this.log(\"render\", options);\n        const opts = Object.assign({ change: ChangeType.data }, options);\n        if (!this._rowElem) {\n            opts.change = ChangeType.row;\n        }\n        switch (opts.change) {\n            case \"status\":\n                this._render_status(opts);\n                break;\n            case \"data\":\n                this._render_data(opts);\n                break;\n            case \"row\":\n                // _rowElem is not yet created (asserted in _render_markup)\n                this._render_markup(opts);\n                break;\n            default:\n                error(`Invalid change type '${opts.change}'.`);\n        }\n    }\n    /**\n     * Remove all children, collapse, and set the lazy-flag, so that the lazyLoad\n     * event is triggered on next expand.\n     */\n    resetLazy() {\n        this.removeChildren();\n        this.expanded = false;\n        this.lazy = true;\n        this.children = null;\n        this.tree.update(ChangeType.structure);\n    }\n    /** Convert node (or whole branch) into a plain object.\n     *\n     * The result is compatible with node.addChildren().\n     *\n     * @param recursive include child nodes\n     * @param callback is called for every node, in order to allow\n     *     modifications.\n     *     Return `false` to ignore this node or `\"skip\"` to include this node\n     *     without its children.\n     * @see {@link Wunderbaum.toDictArray}.\n     */\n    toDict(recursive = false, callback) {\n        const dict = {};\n        NODE_DICT_PROPS.forEach((propName) => {\n            const val = this[propName];\n            if (val instanceof Set) {\n                // Convert Set to string (or skip if set is empty)\n                val.size\n                    ? (dict[propName] = Array.prototype.join.call(val.keys(), \" \"))\n                    : 0;\n            }\n            else if (val || val === false || val === 0) {\n                dict[propName] = val;\n            }\n        });\n        if (!isEmptyObject(this.data)) {\n            dict.data = extend({}, this.data);\n            if (isEmptyObject(dict.data)) {\n                delete dict.data;\n            }\n        }\n        if (callback) {\n            const res = callback(dict, this);\n            if (res === false) {\n                // Note: a return value of `false` is only used internally\n                return false; // Don't include this node nor its children\n            }\n            if (res === \"skip\") {\n                recursive = false; // Include this node, but not the children\n            }\n        }\n        if (recursive) {\n            if (isArray(this.children)) {\n                dict.children = [];\n                for (let i = 0, l = this.children.length; i < l; i++) {\n                    const node = this.children[i];\n                    if (!node.isStatusNode()) {\n                        // Note: a return value of `false` is only used internally\n                        const res = node.toDict(true, callback);\n                        if (res !== false) {\n                            dict.children.push(res);\n                        }\n                    }\n                }\n            }\n        }\n        return dict;\n    }\n    /** Return an option value that has a default, but may be overridden by a\n     * callback or a node instance attribute.\n     *\n     * Evaluation sequence:\n     *\n     * - If `tree.options.<name>` is a callback that returns something, use that.\n     * - Else if `node.<name>` is defined, use that.\n     * - Else if `tree.types[<node.type>]` is a value, use that.\n     * - Else if `tree.options.<name>` is a value, use that.\n     * - Else use `defaultValue`.\n     *\n     * @param name name of the option property (on node and tree)\n     * @param defaultValue return this if nothing else matched\n     * {@link Wunderbaum.getOption|Wunderbaum.getOption}\n     */\n    getOption(name, defaultValue) {\n        const tree = this.tree;\n        let opts = tree.options;\n        // Lookup `name` in options dict\n        if (name.indexOf(\".\") >= 0) {\n            [opts, name] = name.split(\".\");\n        }\n        const value = opts[name]; // ?? defaultValue;\n        // A callback resolver always takes precedence\n        if (typeof value === \"function\") {\n            const res = value.call(tree, {\n                type: \"resolve\",\n                tree: tree,\n                node: this,\n                // typeInfo: this.type ? tree.types[this.type] : {},\n            });\n            if (res !== undefined) {\n                return res;\n            }\n        }\n        // If this node has an explicit local setting, use it:\n        if (this[name] !== undefined) {\n            return this[name];\n        }\n        // Use value from type definition if defined\n        const typeInfo = this.type ? tree.types[this.type] : undefined;\n        const res = typeInfo ? typeInfo[name] : undefined;\n        if (res !== undefined) {\n            return res;\n        }\n        // Use value from value options dict, fallback do default\n        return value !== null && value !== void 0 ? value : defaultValue;\n    }\n    /** Make sure that this node is visible in the viewport.\n     * @see {@link Wunderbaum.scrollTo|Wunderbaum.scrollTo}\n     */\n    async scrollIntoView(options) {\n        const opts = Object.assign({ node: this }, options);\n        return this.tree.scrollTo(opts);\n    }\n    /**\n     * Activate this node, deactivate previous, send events, activate column and\n     * scroll into viewport.\n     */\n    async setActive(flag = true, options) {\n        const tree = this.tree;\n        const prev = tree.getActiveNode();\n        const retrigger = options === null || options === void 0 ? void 0 : options.retrigger; // Default: false\n        const focusTree = options === null || options === void 0 ? void 0 : options.focusTree; // Default: false\n        // const focusNode = options?.focusNode !== false; // Default: true\n        const noEvents = options === null || options === void 0 ? void 0 : options.noEvents; // Default: false\n        const orgEvent = options === null || options === void 0 ? void 0 : options.event; // Default: null\n        const colIdx = options === null || options === void 0 ? void 0 : options.colIdx; // Default: null\n        const edit = options === null || options === void 0 ? void 0 : options.edit; // Default: false\n        // util.assert(!colIdx || tree.isCellNav(), \"colIdx requires cellNav\");\n        assert(!edit || colIdx != null, \"edit requires colIdx\");\n        if (!noEvents) {\n            if (flag) {\n                if (prev !== this || retrigger) {\n                    if ((prev === null || prev === void 0 ? void 0 : prev._callEvent(\"deactivate\", {\n                        nextNode: this,\n                        event: orgEvent,\n                    })) === false ||\n                        this._callEvent(\"beforeActivate\", {\n                            prevNode: prev,\n                            event: orgEvent,\n                        }) === false) {\n                        return;\n                    }\n                    tree._setActiveNode(null);\n                    prev === null || prev === void 0 ? void 0 : prev.update(ChangeType.status);\n                }\n            }\n            else if (prev === this || retrigger) {\n                this._callEvent(\"deactivate\", { nextNode: null, event: orgEvent });\n            }\n        }\n        if (prev !== this) {\n            if (flag) {\n                tree._setActiveNode(this);\n            }\n            prev === null || prev === void 0 ? void 0 : prev.update(ChangeType.status);\n            this.update(ChangeType.status);\n        }\n        return this.makeVisible().then(() => {\n            if (flag) {\n                if (focusTree || edit) {\n                    tree.setFocus();\n                    tree._setFocusNode(this);\n                    tree.focusNode.setFocus();\n                }\n                // if (focusNode || edit) {\n                //   tree.focusNode = this;\n                //   tree.focusNode.setFocus();\n                // }\n                if (colIdx != null && tree.isCellNav()) {\n                    tree.setColumn(colIdx, { edit: edit });\n                }\n                if (!noEvents) {\n                    this._callEvent(\"activate\", { prevNode: prev, event: orgEvent });\n                }\n            }\n        });\n    }\n    /**\n     * Expand or collapse this node.\n     */\n    async setExpanded(flag = true, options) {\n        const { force, scrollIntoView, immediate, resetLazy } = options !== null && options !== void 0 ? options : {};\n        const sendEvents = !(options === null || options === void 0 ? void 0 : options.noEvents); // Default: send events\n        if (!flag &&\n            this.isExpanded() &&\n            this.getLevel() <= this.tree.getOption(\"minExpandLevel\") &&\n            !force) {\n            this.logDebug(\"Ignored collapse request below minExpandLevel.\");\n            return;\n        }\n        if (!flag === !this.expanded) {\n            return; // Nothing to do\n        }\n        if (sendEvents &&\n            this._callEvent(\"beforeExpand\", { flag: flag }) === false) {\n            return;\n        }\n        // this.log(\"setExpanded()\");\n        if (flag && this.getOption(\"autoCollapse\")) {\n            this.collapseSiblings(options);\n        }\n        if (flag && this.lazy && this.children == null) {\n            await this.loadLazy();\n        }\n        else if (!flag && resetLazy && this.lazy && this.children) {\n            this.resetLazy();\n        }\n        this.expanded = flag;\n        const updateOpts = { immediate: immediate };\n        // const updateOpts = { immediate: !!util.getOption(options, \"immediate\") };\n        this.tree.update(ChangeType.structure, updateOpts);\n        if (flag && scrollIntoView) {\n            const lastChild = this.getLastChild();\n            if (lastChild) {\n                this.tree.updatePendingModifications();\n                lastChild.scrollIntoView({ topNode: this });\n            }\n        }\n        if (sendEvents) {\n            this._callEvent(\"expand\", { flag: flag });\n        }\n    }\n    /**\n     * Set keyboard focus here.\n     * @see {@link setActive}\n     */\n    setFocus(flag = true) {\n        assert(!!flag, \"Blur is not yet implemented\");\n        const prev = this.tree.focusNode;\n        this.tree._setFocusNode(this);\n        prev === null || prev === void 0 ? void 0 : prev.update();\n        this.update();\n    }\n    /** Set a new icon path or class. */\n    setIcon(icon) {\n        this.icon = icon;\n        this.update();\n    }\n    /** Change node's {@link key} and/or {@link refKey}.  */\n    setKey(key, refKey) {\n        throw new Error(\"Not yet implemented\");\n    }\n    // /**\n    //  * Calculate a *stable*, unique key for this node from its refKey (or title).\n    //  * We also add information from the parent, because a refKey may occur multiple\n    //  * times in a tree.\n    //  */\n    // calcUniqueKey() {\n    //   // Assuming that the parent's key was calculated the same way, we implicitly\n    //   // involve the whole refKey-path:\n    //   const s = this.key + (this.refKey || this.title);\n    //   // 32-bit has a high probability of collisions, so we pump up to 64-bit\n    //   // https://security.stackexchange.com/q/209882/207588\n    //   const h1 = util.murmurHash3(s, true);\n    //   return \"id_\" + h1 + util.murmurHash3(h1 + s, true);\n    //   // const l = [];\n    //   // // eslint-disable-next-line  @typescript-eslint/no-this-alias\n    //   // let node: WunderbaumNode = this;\n    //   // while (node.parent) {\n    //   //   l.unshift(node.refKey || node.key);\n    //   //   node = node.parent;\n    //   // }\n    //   // const path = l.join(\"/\");\n    //   // 32-bit has a high probability of collisions, so we pump up to 64-bit\n    //   // https://security.stackexchange.com/q/209882/207588\n    //   // const h1 = util.murmurHash3(path, true);\n    //   // return \"id_\" + h1 + util.murmurHash3(h1 + path, true);\n    // }\n    /**\n     * Trigger a repaint, typically after a status or data change.\n     *\n     * `change` defaults to 'data', which handles modifcations of title, icon,\n     * and column content. It can be reduced to 'ChangeType.status' if only\n     * active/focus/selected state has changed.\n     *\n     * This method will eventually call  {@link WunderbaumNode._render} with\n     * default options, but may be more consistent with the tree's\n     * {@link Wunderbaum.update} API.\n     */\n    update(change = ChangeType.data) {\n        assert(change === ChangeType.status || change === ChangeType.data, `Invalid change type ${change}`);\n        this.tree.update(change, this);\n    }\n    /**\n     * Return an array of selected nodes.\n     * @param stopOnParents only return the topmost selected node (useful with selectMode 'hier')\n     */\n    getSelectedNodes(stopOnParents = false) {\n        const nodeList = [];\n        this.visit((node) => {\n            if (node.selected) {\n                nodeList.push(node);\n                if (stopOnParents === true) {\n                    return \"skip\"; // stop processing this branch\n                }\n            }\n        });\n        return nodeList;\n    }\n    /**\n     * Return an array of refKey values.\n     *\n     * RefKeys are unique identifiers for a node data, and are used to identify\n     * clones.\n     * If more than one node has the same refKey, it is only returned once.\n     * @param selected if true, only return refKeys of selected nodes.\n     */\n    getRefKeys(selected = false) {\n        const refKeys = new Set();\n        this.visit((node) => {\n            if (node.refKey != null && (!selected || node.selected)) {\n                refKeys.add(node.refKey);\n            }\n        });\n        return Array.from(refKeys);\n    }\n    /** Toggle the check/uncheck state. */\n    toggleSelected(options) {\n        let flag = this.isSelected();\n        if (flag === undefined && !this.isRadio()) {\n            flag = this._anySelectable();\n        }\n        else {\n            flag = !flag;\n        }\n        return this.setSelected(flag, options);\n    }\n    /** Return true if at least on selectable descendant end-node is unselected. @internal */\n    _anySelectable() {\n        let found = false;\n        this.visit((node) => {\n            if (node.selected === false &&\n                !node.unselectable &&\n                !node.hasChildren() &&\n                !node.parent.radiogroup) {\n                found = true;\n                return false; // Stop iteration\n            }\n        });\n        return found;\n    }\n    /* Apply selection state to a single node. */\n    _changeSelectStatusProps(state) {\n        let changed = false;\n        switch (state) {\n            case false:\n                changed = this.selected || this._partsel;\n                this.selected = false;\n                this._partsel = false;\n                break;\n            case true:\n                changed = !this.selected || !this._partsel;\n                this.selected = true;\n                this._partsel = true;\n                break;\n            case undefined:\n                changed = this.selected || !this._partsel;\n                this.selected = false;\n                // #110: end nodess cannot have a `_partsel` flag\n                this._partsel = this.hasChildren() ? true : false;\n                break;\n            default:\n                error(`Invalid state: ${state}`);\n        }\n        if (changed) {\n            this.update();\n        }\n        return changed;\n    }\n    /**\n     * Fix selection status, after this node was (de)selected in `selectMode: 'hier'`.\n     * This includes (de)selecting all descendants.\n     */\n    fixSelection3AfterClick(opts) {\n        const force = !!(opts === null || opts === void 0 ? void 0 : opts.force);\n        const flag = this.isSelected();\n        this.visit((node) => {\n            if (node.radiogroup) {\n                return \"skip\"; // Don't (de)select this branch\n            }\n            if (force || !node.getOption(\"unselectable\")) {\n                node._changeSelectStatusProps(flag);\n            }\n        });\n        this.fixSelection3FromEndNodes();\n    }\n    /**\n     * Fix selection status for multi-hier mode.\n     * Only end-nodes are considered to update the descendants branch and parents.\n     * Should be called after this node has loaded new children or after\n     * children have been modified using the API.\n     */\n    fixSelection3FromEndNodes(opts) {\n        const force = !!(opts === null || opts === void 0 ? void 0 : opts.force);\n        assert(this.tree.options.selectMode === \"hier\", \"expected selectMode 'hier'\");\n        // Visit all end nodes and adjust their parent's `selected` and `_partsel`\n        // attributes. Return selection state true, false, or undefined.\n        const _walk = (node) => {\n            let state;\n            const children = node.children;\n            if (children && children.length) {\n                // check all children recursively\n                let allSelected = true;\n                let someSelected = false;\n                for (let i = 0, l = children.length; i < l; i++) {\n                    const child = children[i];\n                    // the selection state of a node is not relevant; we need the end-nodes\n                    const s = _walk(child);\n                    if (s !== false) {\n                        someSelected = true;\n                    }\n                    if (s !== true) {\n                        allSelected = false;\n                    }\n                }\n                state = allSelected ? true : someSelected ? undefined : false;\n            }\n            else {\n                // This is an end-node: simply report the status\n                state = !!node.selected;\n            }\n            // #939: Keep a `_partsel` flag that was explicitly set on a lazy node\n            if (node._partsel &&\n                !node.selected &&\n                node.lazy &&\n                node.children == null) {\n                state = undefined;\n            }\n            if (force || !node.getOption(\"unselectable\")) {\n                node._changeSelectStatusProps(state);\n            }\n            return state;\n        };\n        _walk(this);\n        // Update parent's state\n        this.visitParents((node) => {\n            let state;\n            const children = node.children;\n            let allSelected = true;\n            let someSelected = false;\n            for (let i = 0, l = children.length; i < l; i++) {\n                const child = children[i];\n                state = !!child.selected;\n                // When fixing the parents, we trust the sibling status (i.e. we don't recurse)\n                if (state || child._partsel) {\n                    someSelected = true;\n                }\n                if (!state) {\n                    allSelected = false;\n                }\n            }\n            state = allSelected ? true : someSelected ? undefined : false;\n            node._changeSelectStatusProps(state);\n        });\n    }\n    /** Modify the check/uncheck state. */\n    setSelected(flag = true, options) {\n        const tree = this.tree;\n        const sendEvents = !(options === null || options === void 0 ? void 0 : options.noEvents); // Default: send events\n        const prev = this.isSelected();\n        const isRadio = this.parent && this.parent.radiogroup;\n        const selectMode = tree.options.selectMode;\n        const canSelect = (options === null || options === void 0 ? void 0 : options.force) || !this.getOption(\"unselectable\");\n        flag = !!flag;\n        // this.logDebug(`setSelected(${flag})`, this);\n        if (!canSelect) {\n            return prev;\n        }\n        if ((options === null || options === void 0 ? void 0 : options.propagateDown) && selectMode === \"multi\") {\n            tree.runWithDeferredUpdate(() => {\n                this.visit((node) => {\n                    node.setSelected(flag);\n                });\n            });\n            return prev;\n        }\n        if (flag === prev ||\n            (sendEvents && this._callEvent(\"beforeSelect\", { flag: flag }) === false)) {\n            return prev;\n        }\n        tree.runWithDeferredUpdate(() => {\n            if (isRadio) {\n                // Radiobutton Group\n                if (!flag && !(options === null || options === void 0 ? void 0 : options.force)) {\n                    return prev; // don't uncheck radio buttons\n                }\n                for (const sibling of this.parent.children) {\n                    sibling.selected = sibling === this;\n                }\n            }\n            else {\n                this.selected = flag;\n                if (selectMode === \"hier\") {\n                    this.fixSelection3AfterClick();\n                }\n                else if (selectMode === \"single\" && flag) {\n                    tree.visit((n) => {\n                        if (n !== this) {\n                            n.selected = false;\n                        }\n                    });\n                }\n            }\n        });\n        if (sendEvents) {\n            this._callEvent(\"select\", { flag: flag });\n        }\n        return prev;\n    }\n    /** Display node status (ok, loading, error, noData) using styles and a dummy child node. */\n    setStatus(status, options) {\n        const tree = this.tree;\n        const message = options === null || options === void 0 ? void 0 : options.message;\n        const details = options === null || options === void 0 ? void 0 : options.details;\n        let statusNode = null;\n        const _clearStatusNode = () => {\n            // Remove dedicated dummy node, if any\n            const children = this.children;\n            if (children && children.length && children[0].isStatusNode()) {\n                children[0].remove();\n            }\n        };\n        const _setStatusNode = (data) => {\n            // Create/modify the dedicated dummy node for 'loading...' or\n            // 'error!' status. (only called for direct child of the invisible\n            // system root)\n            const children = this.children;\n            const firstChild = children ? children[0] : null;\n            assert(data.statusNodeType, \"Not a status node\");\n            assert(!firstChild || !firstChild.isStatusNode(), \"Child must not be a status node\");\n            statusNode = this.addNode(data, \"prependChild\");\n            statusNode.match = -1; // Mark as 'match' to avoid hiding\n            tree.update(ChangeType.structure);\n            return statusNode;\n        };\n        _clearStatusNode();\n        switch (status) {\n            case \"ok\":\n                this._isLoading = false;\n                this._errorInfo = null;\n                break;\n            case \"loading\":\n                this._isLoading = true;\n                this._errorInfo = null;\n                if (this.parent) {\n                    this.update(ChangeType.status);\n                }\n                else {\n                    // If this is the invisible root, add a visible top-level node\n                    _setStatusNode({\n                        statusNodeType: status,\n                        title: tree.options.strings.loading +\n                            (message ? \" (\" + message + \")\" : \"\"),\n                        checkbox: false,\n                        colspan: true,\n                        tooltip: details,\n                    });\n                }\n                // this.update();\n                break;\n            case \"error\":\n                _setStatusNode({\n                    statusNodeType: status,\n                    title: tree.options.strings.loadError +\n                        (message ? \" (\" + message + \")\" : \"\"),\n                    checkbox: false,\n                    colspan: true,\n                    // classes: \"wb-center\",\n                    tooltip: details,\n                });\n                this._isLoading = false;\n                this._errorInfo = { message: message, details: details };\n                break;\n            case \"noData\":\n                _setStatusNode({\n                    statusNodeType: status,\n                    title: message || tree.options.strings.noData,\n                    checkbox: false,\n                    colspan: true,\n                    tooltip: details,\n                });\n                this._isLoading = false;\n                this._errorInfo = null;\n                break;\n            default:\n                error(\"invalid node status \" + status);\n        }\n        tree.update(ChangeType.structure);\n        return statusNode;\n    }\n    /** Rename this node. */\n    setTitle(title) {\n        this.title = title;\n        this.update();\n        // this.triggerModify(\"rename\"); // TODO\n    }\n    /** Set the node tooltip. */\n    setTooltip(tooltip) {\n        this.tooltip = tooltip;\n        this.update();\n    }\n    /**\n     * Sort child list by title or custom criteria.\n     * @param {function} cmp custom compare function(a, b) that returns -1, 0, or 1\n     *    (defaults to sorting by title).\n     * @param {boolean} deep pass true to sort all descendant nodes recursively\n     * @deprecated use {@link sort}\n     */\n    sortChildren(cmp = nodeTitleSorter, deep = false) {\n        this.tree.logDeprecate(\"node.sortChildren()\", { since: \"0.14.0\" });\n        return this.sort({ cmp: cmp ? cmp : undefined, deep: deep });\n    }\n    /**\n     * Renumber nodes `_nativeIndex`. This is useful to allow to restore the\n     * order after sorting a column.\n     * This method is automatically called after loading new child nodes.\n     * @since 0.11.0\n     */\n    resetNativeChildOrder(options) {\n        const { recursive = true, propName = \"_nativeIndex\" } = options !== null && options !== void 0 ? options : {};\n        if (this.children) {\n            this.children.forEach((child, i) => {\n                child.data[propName] = i;\n                if (recursive && child.children) {\n                    child.resetNativeChildOrder(options);\n                }\n            });\n        }\n    }\n    /**\n     * Convenience method to implement column sorting.\n     * @since 0.11.0\n     * @deprecated use {@link sort}\n     */\n    sortByProperty(options) {\n        this.tree.logDeprecate(\"node.sortByProperty()\", { since: \"0.14.0\" });\n        return this.sort(options);\n    }\n    /**\n     * Implement column sorting.\n     * @since 0.14.0\n     */\n    sort(options) {\n        const tree = this.tree;\n        let { propName = undefined, deep = true, key = undefined, order = undefined, caseInsensitive = true, cmp = undefined, \n        // Support click on column sort header:\n        updateColInfo = false, nativeOrderPropName = \"_nativeIndex\", colId = undefined, } = options;\n        propName !== null && propName !== void 0 ? propName : (propName = colId);\n        if (propName === \"*\") {\n            propName = \"title\";\n        }\n        const isFolder = tree.options.sortFoldersFirst === true\n            ? (node) => node.hasChildren() !== false || node.type === NODE_TYPE_FOLDER\n            : tree.options.sortFoldersFirst;\n        if (updateColInfo) {\n            const colDef = this.tree[\"_columnsById\"][options.colId];\n            assert(colDef, `Invalid colId specified: ${options.colId}`);\n            order !== null && order !== void 0 ? order : (order = rotate(colDef.sortOrder, [\"asc\", \"desc\", undefined]));\n            for (const col of this.tree.columns) {\n                col.sortOrder = col === colDef ? order : undefined;\n            }\n            if (order === undefined) {\n                propName = nativeOrderPropName;\n                order = \"asc\";\n            }\n            this.tree.update(ChangeType.colStructure);\n        }\n        else {\n            propName !== null && propName !== void 0 ? propName : (propName = \"title\");\n            order !== null && order !== void 0 ? order : (order = \"asc\");\n        }\n        this.logDebug(`sort(), propName=${propName}, ${order}`, options);\n        assert(propName || cmp || key, \"No `propName` or `key` specified\");\n        // Define a key callback from the parameters we have\n        if (key == null && cmp == null) {\n            key = (node) => {\n                let val;\n                if (NODE_DICT_PROPS.has(propName)) {\n                    val = node[propName];\n                }\n                else {\n                    val = node.data[propName];\n                }\n                if (caseInsensitive && typeof val === \"string\") {\n                    val = val.toLowerCase();\n                }\n                return val;\n            };\n        }\n        // Define a compare callback that uses the key callback\n        if (cmp) {\n            assert(!key, \"`key` and `cmp` are mutually exclusive\");\n            tree.logDeprecate(\"SortOptions.cmp\", {\n                since: \"0.14.0\",\n                hint: \"use the `key` callback instead\",\n            });\n        }\n        else {\n            if (options.propName || options.caseInsensitive) {\n                tree.logWarn(\"sort(): ignoring propName, caseInsensitive\");\n            }\n            cmp = (a, b) => {\n                if (isFolder) {\n                    const isFolderA = isFolder(a);\n                    if (isFolderA !== isFolder(b)) {\n                        return isFolderA ? -1 : 1;\n                    }\n                }\n                let x = key(a);\n                let y = key(b);\n                // Assure we have reasonable comparisons with null values:\n                if (x == null) {\n                    x = typeof y === \"string\" ? \"\" : 0;\n                }\n                else if (typeof x === \"boolean\") {\n                    x = x ? 1 : 0;\n                }\n                if (y == null) {\n                    y = typeof x === \"string\" ? \"\" : 0;\n                }\n                else if (typeof y === \"boolean\") {\n                    y = y ? 1 : 0;\n                }\n                if (order === \"desc\") {\n                    return x === y ? 0 : x > y ? -1 : 1;\n                }\n                return x === y ? 0 : x > y ? 1 : -1;\n            };\n        }\n        function _sortChildren(cl) {\n            if (!cl) {\n                return;\n            }\n            cl.sort(cmp);\n            if (deep) {\n                for (let i = 0, l = cl.length; i < l; i++) {\n                    if (cl[i].children) {\n                        _sortChildren(cl[i].children);\n                    }\n                }\n            }\n        }\n        if (this.children) {\n            _sortChildren(this.children);\n        }\n        this.tree.update(ChangeType.structure);\n        // this.triggerModify(\"sort\"); // TODO\n    }\n    /**\n     * Re-apply current sorting if any (use after lazy load).\n     * Example:\n     * ```js\n     * load: function (e) {\n     *   // Whe loading a lazy branch, apply current sort order if any\n     *   e.node.resort();\n     * },\n     * ```\n     * @since 0.14.0\n     */\n    resort(options = {}) {\n        for (const colDef of this.tree.columns) {\n            if (colDef.sortOrder) {\n                options.colId = colDef.id;\n                options.order = colDef.sortOrder;\n                this.sort(options);\n                break;\n            }\n        }\n    }\n    /**\n     * Trigger `modifyChild` event on a parent to signal that a child was modified.\n     * @param {string} operation Type of change: 'add', 'remove', 'rename', 'move', 'data', ...\n     */\n    triggerModifyChild(operation, child, extra) {\n        this.logDebug(`modifyChild(${operation})`, extra, child);\n        if (!this.tree.options.modifyChild) {\n            return;\n        }\n        if (child && child.parent !== this) {\n            error(\"child \" + child + \" is not a child of \" + this);\n        }\n        this._callEvent(\"modifyChild\", extend({ operation: operation, child: child }, extra));\n    }\n    /**\n     * Trigger `modifyChild` event on node.parent(!).\n     * @param {string} operation Type of change: 'add', 'remove', 'rename', 'move', 'data', ...\n     * @param {object} [extra]\n     */\n    triggerModify(operation, extra) {\n        // if (!this.parent) {\n        //   return;\n        // }\n        this.parent.triggerModifyChild(operation, this, extra);\n    }\n    /**\n     * Call `callback(node)` for all descendant nodes in hierarchical order (depth-first, pre-order).\n     *\n     * Stop iteration, if fn() returns false. Skip current branch, if fn()\n     * returns \"skip\".<br>\n     * Return false if iteration was stopped.\n     *\n     * @param {function} callback the callback function.\n     *     Return false to stop iteration, return \"skip\" to skip this node and\n     *     its children only.\n     * @see `wb_node.WunderbaumNode.IterableIterator<WunderbaumNode>`\n     * @see {@link Wunderbaum.visit}.\n     */\n    visit(callback, includeSelf = false) {\n        let res = true;\n        const children = this.children;\n        if (includeSelf === true) {\n            res = callback(this);\n            if (res === false || res === \"skip\") {\n                return res;\n            }\n        }\n        if (children) {\n            for (let i = 0, l = children.length; i < l; i++) {\n                res = children[i].visit(callback, true);\n                if (res === false) {\n                    break;\n                }\n            }\n        }\n        return res;\n    }\n    /** Call fn(node) for all parent nodes, bottom-up, including invisible system root.<br>\n     * Stop iteration, if callback() returns false.<br>\n     * Return false if iteration was stopped.\n     *\n     * @param callback the callback function. Return false to stop iteration\n     */\n    visitParents(callback, includeSelf = false) {\n        if (includeSelf && callback(this) === false) {\n            return false;\n        }\n        let p = this.parent;\n        while (p) {\n            if (callback(p) === false) {\n                return false;\n            }\n            p = p.parent;\n        }\n        return true;\n    }\n    /**\n     * Call fn(node) for all sibling nodes.<br>\n     * Stop iteration, if fn() returns false.<br>\n     * Return false if iteration was stopped.\n     *\n     * @param callback the callback function.\n     *     Return false to stop iteration.\n     * @param includeSelf include this node in the iteration.\n     */\n    visitSiblings(callback, includeSelf = false) {\n        const ac = this.parent.children;\n        for (let i = 0, l = ac.length; i < l; i++) {\n            const n = ac[i];\n            if (includeSelf || n !== this) {\n                if (callback(n) === false) {\n                    return false;\n                }\n            }\n        }\n        return true;\n    }\n    /**\n     * [ext-filter] Return true if this node is matched by current filter (or no filter is active).\n     */\n    isMatched() {\n        return !(this.tree.filterMode && !this.match);\n    }\n}\nWunderbaumNode.sequence = 0;\n\n/*!\n * Wunderbaum - ext-edit\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n */\n// const START_MARKER = \"\\uFFF7\";\nclass EditExtension extends WunderbaumExtension {\n    constructor(tree) {\n        super(tree, \"edit\", {\n            debounce: 100,\n            minlength: 1,\n            maxlength: null,\n            trigger: [], //[\"clickActive\", \"F2\", \"macEnter\"],\n            trim: true,\n            select: true,\n            slowClickDelay: 1000, // Handle 'clickActive' only if last click is less than this old (0: always)\n            validity: true, //\"Please enter a title\",\n            // --- Events ---\n            // (note: there is also the `tree.change` event.)\n            beforeEdit: null,\n            edit: null,\n            apply: null,\n        });\n        this.curEditNode = null;\n        this.relatedNode = null;\n        this.debouncedOnChange = debounce(this._onChange.bind(this), this.getPluginOption(\"debounce\"));\n    }\n    /*\n     * Call an event handler, while marking the current node cell 'busy'.\n     * Deal with returned promises and ValidationError.\n     * Convert a ValidationError into a input.setCustomValidity() call and vice versa.\n     */\n    async _applyChange(eventName, node, colElem, inputElem, extra) {\n        node.log(`_applyChange(${eventName})`, extra);\n        colElem.classList.add(\"wb-busy\");\n        colElem.classList.remove(\"wb-error\", \"wb-invalid\");\n        inputElem.setCustomValidity(\"\");\n        // Call event handler either ('change' or 'edit.appy'), which may return a\n        // promise or a scalar value or throw a ValidationError.\n        return new Promise((resolve, reject) => {\n            const res = node._callEvent(eventName, extra);\n            // normalize to promise, even if a scalar value was returned and await it\n            Promise.resolve(res)\n                .then((res) => {\n                resolve(res);\n            })\n                .catch((err) => {\n                reject(err);\n            });\n        })\n            .then((res) => {\n            if (!inputElem.checkValidity()) {\n                // Native validation failed or handler called 'inputElem.setCustomValidity()'\n                node.logWarn(\"inputElem.checkValidity() failed: throwing....\");\n                throw new ValidationError(inputElem.validationMessage);\n            }\n            return res;\n        })\n            .catch((err) => {\n            if (err instanceof ValidationError) {\n                node.logWarn(\"catched \", err);\n                colElem.classList.add(\"wb-invalid\");\n                if (inputElem.setCustomValidity && !inputElem.validationMessage) {\n                    inputElem.setCustomValidity(err.message);\n                }\n                if (inputElem.validationMessage) {\n                    inputElem.reportValidity();\n                }\n                // throw err;\n            }\n            else {\n                node.logError(`Error in ${eventName} event handler (throw e.util.ValidationError instead if this was intended)`, err);\n                colElem.classList.add(\"wb-error\");\n                throw err;\n            }\n        })\n            .finally(() => {\n            colElem.classList.remove(\"wb-busy\");\n        });\n    }\n    /*\n     * Called for when a control that is embedded in a cell fires a `change` event.\n     */\n    _onChange(e) {\n        const info = Wunderbaum.getEventInfo(e);\n        const node = info.node;\n        const colElem = info.colElem;\n        if (!node || info.colIdx === 0) {\n            this.tree.log(\"Ignored change event for removed element or node title\");\n            return;\n        }\n        // See also WbChangeEventType\n        this._applyChange(\"change\", node, colElem, e.target, {\n            info: info,\n            event: e,\n            inputElem: e.target,\n            inputValue: Wunderbaum.util.getValueFromElem(e.target),\n            inputValid: e.target.checkValidity(),\n        });\n    }\n    init() {\n        super.init();\n        onEvent(this.tree.element, \"change\", //\"change input\",\n        \".contenteditable,input,textarea,select\", \n        // #61: we must not debounce the `change`, event.target may be reset to null\n        // when the debounced handler is called.\n        // (e) => {\n        //   this.debouncedOnChange(e);\n        // }\n        (e) => this._onChange(e));\n    }\n    /* Called by ext_keynav to pre-process input. */\n    _preprocessKeyEvent(data) {\n        const event = data.event;\n        const eventName = eventToString(event);\n        const tree = this.tree;\n        const trigger = this.getPluginOption(\"trigger\");\n        // const inputElem =\n        //   event.target && event.target.closest(\"input,[contenteditable]\");\n        // tree.logDebug(`_preprocessKeyEvent: ${eventName}, editing:${this.isEditingTitle()}`);\n        // --- Title editing: apply/discard ---\n        // if (inputElem) {\n        if (this.isEditingTitle()) {\n            switch (eventName) {\n                case \"Enter\":\n                    this._stopEditTitle(true, { event: event });\n                    return false;\n                case \"Escape\":\n                    this._stopEditTitle(false, { event: event });\n                    return false;\n            }\n            // If the event target is an input element or `contenteditable=\"true\"`,\n            // we ignore it as navigation command\n            return false;\n        }\n        // --- Trigger title editing\n        if (tree.isRowNav() || tree.activeColIdx === 0) {\n            switch (eventName) {\n                case \"Enter\":\n                    if (trigger.indexOf(\"macEnter\") >= 0 && isMac) {\n                        this.startEditTitle();\n                        return false;\n                    }\n                    break;\n                case \"F2\":\n                    if (trigger.indexOf(\"F2\") >= 0) {\n                        this.startEditTitle();\n                        return false;\n                    }\n                    break;\n            }\n            return true;\n        }\n        return true;\n    }\n    /** Return true if a title is currently being edited. */\n    isEditingTitle(node) {\n        return node ? this.curEditNode === node : !!this.curEditNode;\n    }\n    /** Start renaming, i.e. replace the title with an embedded `<input>`. */\n    startEditTitle(node) {\n        node = node !== null && node !== void 0 ? node : this.tree.getActiveNode();\n        const validity = this.getPluginOption(\"validity\");\n        const select = this.getPluginOption(\"select\");\n        if (!node) {\n            return;\n        }\n        if (node.isStatusNode()) {\n            node.logWarn(\"Cannot edit status node.\");\n            return;\n        }\n        this.tree.logDebug(`startEditTitle(node=${node})`);\n        let inputHtml = node._callEvent(\"edit.beforeEdit\");\n        if (inputHtml === false) {\n            node.logDebug(\"beforeEdit canceled operation.\");\n            return;\n        }\n        // `beforeEdit(e)` may return an input HTML string. Otherwise use a default\n        // (we also treat a `true` return value as 'use default'):\n        if (inputHtml === true || !inputHtml) {\n            const title = escapeHtml(node.title);\n            let opt = this.getPluginOption(\"maxlength\");\n            const maxlength = opt ? ` maxlength=\"${opt}\"` : \"\";\n            opt = this.getPluginOption(\"minlength\");\n            const minlength = opt ? ` minlength=\"${opt}\"` : \"\";\n            const required = opt > 0 ? \" required\" : \"\";\n            inputHtml =\n                `<input type=text class=\"wb-input-edit\" tabindex=-1 value=\"${title}\" ` +\n                    `autocorrect=\"off\"${required}${minlength}${maxlength} >`;\n        }\n        const titleSpan = node\n            .getColElem(0)\n            .querySelector(\".wb-title\");\n        titleSpan.innerHTML = inputHtml;\n        const inputElem = titleSpan.firstElementChild;\n        if (validity) {\n            // Permanently apply input validations (CSS and tooltip)\n            inputElem.addEventListener(\"keydown\", (e) => {\n                inputElem.setCustomValidity(\"\");\n                if (!inputElem.reportValidity()) {\n                    node.logWarn(`Invalid input: '${inputElem.value}'`);\n                }\n            });\n        }\n        inputElem.focus();\n        if (select) {\n            inputElem.select();\n        }\n        this.curEditNode = node;\n        node._callEvent(\"edit.edit\", {\n            inputElem: inputElem,\n        });\n    }\n    /**\n     *\n     * @param apply\n     * @returns\n     */\n    stopEditTitle(apply) {\n        return this._stopEditTitle(apply, {});\n    }\n    /*\n     *\n     * @param apply\n     * @param opts.canKeepOpen\n     */\n    _stopEditTitle(apply, options) {\n        var _a;\n        options !== null && options !== void 0 ? options : (options = {});\n        const focusElem = document.activeElement;\n        let newValue = focusElem ? getValueFromElem(focusElem) : null;\n        const node = this.curEditNode;\n        const forceClose = !!options.forceClose;\n        const validity = this.getPluginOption(\"validity\");\n        if (newValue && this.getPluginOption(\"trim\")) {\n            newValue = newValue.trim();\n        }\n        if (!node) {\n            // this.tree.logDebug(\"stopEditTitle: not in edit mode.\");\n            return;\n        }\n        node.logDebug(`stopEditTitle(${apply})`, options, focusElem, newValue);\n        if (apply && newValue !== null && newValue !== node.title) {\n            const errMsg = focusElem.validationMessage;\n            if (errMsg) {\n                // input element's native validation failed\n                throw new Error(`Input validation failed for \"${newValue}\": ${errMsg}.`);\n            }\n            const colElem = node.getColElem(0);\n            this._applyChange(\"edit.apply\", node, colElem, focusElem, {\n                oldValue: node.title,\n                newValue: newValue,\n                inputElem: focusElem,\n                inputValid: focusElem.checkValidity(),\n            }).then((value) => {\n                var _a;\n                const errMsg = focusElem.validationMessage;\n                if (validity && errMsg && value !== false) {\n                    // Handler called 'inputElem.setCustomValidity()' to signal error\n                    throw new Error(`Edit apply validation failed for \"${newValue}\": ${errMsg}.`);\n                }\n                // Discard the embedded `<input>`\n                // node.logDebug(\"applyChange:\", value, forceClose)\n                if (!forceClose && value === false) {\n                    // Keep open\n                    return;\n                }\n                node === null || node === void 0 ? void 0 : node.setTitle(newValue);\n                // NOTE: At least on Safari, this render call triggers a scroll event\n                // probably because the focused input is replaced.\n                (_a = this.curEditNode) === null || _a === void 0 ? void 0 : _a._render({ preventScroll: true });\n                this.curEditNode = null;\n                this.relatedNode = null;\n                this.tree.setFocus(); // restore focus that was in the input element\n            });\n            // .catch((err) => {\n            //   node.logError(err);\n            // });\n            // Trigger 'change' event for embedded `<input>`\n            // focusElem.blur();\n        }\n        else {\n            // Discard the embedded `<input>`\n            // NOTE: At least on Safari, this render call triggers a scroll event\n            // probably because the focused input is replaced.\n            (_a = this.curEditNode) === null || _a === void 0 ? void 0 : _a._render({ preventScroll: true });\n            this.curEditNode = null;\n            this.relatedNode = null;\n            // We discarded the <input>, so we have to acquire keyboard focus again\n            this.tree.setFocus();\n        }\n    }\n    /**\n     * Create a new child or sibling node and start edit mode.\n     */\n    createNode(mode = \"after\", node, init) {\n        const tree = this.tree;\n        node = node !== null && node !== void 0 ? node : tree.getActiveNode();\n        assert(node, \"No node was passed, or no node is currently active.\");\n        // const validity = this.getPluginOption(\"validity\");\n        mode = mode || \"prependChild\";\n        if (init == null) {\n            init = { title: \"\" };\n        }\n        else if (typeof init === \"string\") {\n            init = { title: init };\n        }\n        else {\n            assert(isPlainObject(init), `Expected a plain object: ${init}`);\n        }\n        // Make sure node is expanded (and loaded) in 'child' mode\n        if ((mode === \"prependChild\" || mode === \"appendChild\") &&\n            (node === null || node === void 0 ? void 0 : node.isExpandable(true))) {\n            node.setExpanded().then(() => {\n                this.createNode(mode, node, init);\n            });\n            return;\n        }\n        const newNode = node.addNode(init, mode);\n        newNode.setClass(\"wb-edit-new\");\n        this.relatedNode = node;\n        // Don't filter new nodes:\n        newNode.match = -1;\n        newNode.makeVisible({ noAnimation: true }).then(() => {\n            this.startEditTitle(newNode);\n        });\n    }\n}\n\n/*!\n * wunderbaum.ts\n *\n * A treegrid control.\n *\n * Copyright (c) 2021-2025, Martin Wendt (https://wwWendt.de).\n * https://github.com/mar10/wunderbaum\n *\n * Released under the MIT license.\n * @version v0.14.1\n * @date Sun, 22 Mar 2026 05:52:05 GMT\n */\n// import \"./wunderbaum.scss\";\nclass WbSystemRoot extends WunderbaumNode {\n    constructor(tree) {\n        super(tree, null, {\n            key: \"__root__\",\n            title: tree.id,\n        });\n    }\n    toString() {\n        return `WbSystemRoot@${this.key}<'${this.tree.id}'>`;\n    }\n}\n/**\n * A persistent plain object or array.\n *\n * See also {@link WunderbaumOptions}.\n */\nclass Wunderbaum {\n    /** Currently active node if any.\n     * Use {@link WunderbaumNode.setActive|setActive} to modify.\n     */\n    get activeNode() {\n        var _a;\n        // Check for deleted node, i.e. node.tree === null\n        return ((_a = this._activeNode) === null || _a === void 0 ? void 0 : _a.tree) ? this._activeNode : null;\n    }\n    /** Current node hat has keyboard focus if any.\n     * Use {@link WunderbaumNode.setFocus|setFocus()} to modify.\n     */\n    get focusNode() {\n        var _a;\n        // Check for deleted node, i.e. node.tree === null\n        return ((_a = this._focusNode) === null || _a === void 0 ? void 0 : _a.tree) ? this._focusNode : null;\n    }\n    constructor(options) {\n        this.enabled = true;\n        /** Contains additional data that was sent as response to an Ajax source load request. */\n        this.data = {};\n        this.extensionList = [];\n        this.extensions = {};\n        this.keyMap = new Map();\n        this.refKeyMap = new Map();\n        this.treeRowCount = 0;\n        this._disableUpdateCount = 0;\n        this._disableUpdateIgnoreCount = 0;\n        this._activeNode = null;\n        this._focusNode = null;\n        this._initialSource = null;\n        /** Shared properties, referenced by `node.type`. */\n        this.types = {};\n        /** List of column definitions. */\n        this.columns = [];\n        this._columnsById = {};\n        // Modification Status\n        this.pendingChangeTypes = new Set();\n        /** Expose some useful methods of the util.ts module as `tree._util`. */\n        this._util = util;\n        // --- SELECT ---\n        // public selectRangeAnchor: WunderbaumNode | null = null;\n        // --- BREADCRUMB ---\n        /** Filter options (used as defaults for calls to {@link Wunderbaum.filterNodes} ) */\n        this.breadcrumb = null;\n        // --- FILTER ---\n        /** Filter options (used as defaults for calls to {@link Wunderbaum.filterNodes} ) */\n        this.filterMode = null;\n        // --- KEYNAV ---\n        /** @internal Use `setColumn()`/`getActiveColElem()` to access. */\n        this.activeColIdx = 0;\n        /** @internal */\n        this._cellNavMode = false;\n        /** @internal */\n        this.lastQuicksearchTime = 0;\n        /** @internal */\n        this.lastQuicksearchTerm = \"\";\n        // --- EDIT ---\n        this.lastClickTime = 0;\n        // Set default options and merge with user options\n        const initOptions = Object.assign({\n            id: undefined,\n            source: [], // URL for GET/PUT, Ajax options, or callback\n            element: unsafeCast(null),\n            debugLevel: DEFAULT_DEBUGLEVEL, // 0:quiet, 1:errors, 2:warnings, 3:info, 4:verbose\n            header: null, // Show/hide header (pass bool or string)\n            rowHeightPx: DEFAULT_ROW_HEIGHT,\n            iconMap: \"bootstrap\",\n            columns: [], //util.unsafeCast<ColumnDefinitionList>(null),\n            types: {},\n            enabled: true,\n            fixedCol: false,\n            showSpinner: false,\n            checkbox: false,\n            minExpandLevel: 0,\n            emptyChildListExpandable: false,\n            skeleton: false,\n            autoCollapse: false,\n            adjustHeight: true,\n            connectTopBreadcrumb: null,\n            columnsFilterable: false,\n            columnsMenu: false,\n            columnsResizable: false,\n            columnsSortable: false,\n            selectMode: \"multi\", // SelectModeType\n            scrollIntoViewOnExpandClick: true,\n            // --- Extensions (actually set by exensions on init)\n            dnd: unsafeCast(null),\n            edit: unsafeCast(null),\n            filter: unsafeCast(null),\n            // --- KeyNav ---\n            navigationModeOption: unsafeCast(null),\n            quicksearch: true,\n            // --- Events ---\n            // iconBadge: null,\n            // change: null,\n            // ...\n            // --- Strings ---\n            strings: {\n                loadError: \"Error\",\n                loading: \"Loading...\",\n                noData: \"No data\",\n                breadcrumbDelimiter: \" » \",\n                queryResult: \"Found ${matches} of ${count}\",\n                noMatch: \"No results\",\n                matchIndex: \"${match} of ${matches}\",\n            },\n        }, options);\n        const opts = initOptions;\n        this.options = opts;\n        const readyDeferred = new Deferred();\n        this.ready = readyDeferred.promise();\n        let readyOk = false;\n        this.ready\n            .then(() => {\n            readyOk = true;\n            try {\n                this._callEvent(\"init\");\n            }\n            catch (error) {\n                // We re-raise in the reject handler, but Chrome resets the stack\n                // frame then, so we log it here:\n                this.logError(\"Exception inside `init(e)` event:\", error);\n            }\n        })\n            .catch((err) => {\n            if (readyOk) {\n                // Error occurred in `init` handler. We can re-raise, but Chrome\n                // resets the stack frame.\n                throw err;\n            }\n            else {\n                // Error in load process\n                this._callEvent(\"init\", { error: err });\n            }\n        });\n        this.id = initOptions.id || \"wb_\" + ++Wunderbaum.sequence;\n        delete initOptions.id;\n        this.root = new WbSystemRoot(this);\n        this._registerExtension(new KeynavExtension(this));\n        this._registerExtension(new EditExtension(this));\n        this._registerExtension(new FilterExtension(this));\n        this._registerExtension(new DndExtension(this));\n        this._registerExtension(new GridExtension(this));\n        this._registerExtension(new LoggerExtension(this));\n        this._updateViewportThrottled = adaptiveThrottle(this._updateViewportImmediately.bind(this), {});\n        // --- Evaluate options\n        this.columns = initOptions.columns || [];\n        delete initOptions.columns;\n        if (!this.columns || !this.columns.length) {\n            const title = typeof opts.header === \"string\" ? opts.header : this.id;\n            this.columns = [{ id: \"*\", title: title, width: \"*\" }];\n        }\n        if (initOptions.types) {\n            this.setTypes(initOptions.types, true);\n        }\n        delete initOptions.types;\n        // --- Create Markup\n        this.element = elemFromSelector(initOptions.element);\n        assert(!!this.element, `Invalid 'element' option: ${initOptions.element}`);\n        delete initOptions.element;\n        this.element.classList.add(\"wunderbaum\");\n        if (!this.element.getAttribute(\"tabindex\")) {\n            this.element.tabIndex = 0;\n        }\n        if (opts.rowHeightPx !== DEFAULT_ROW_HEIGHT) {\n            this.element.style.setProperty(\"--wb-row-outer-height\", opts.rowHeightPx + \"px\");\n            this.element.style.setProperty(\"--wb-row-inner-height\", opts.rowHeightPx - 2 + \"px\");\n        }\n        // Attach tree instance to <div>\n        this.element._wb_tree = this;\n        // Create header markup, or take it from the existing html\n        this.headerElement =\n            this.element.querySelector(\"div.wb-header\");\n        const wantHeader = opts.header == null ? this.columns.length > 1 : !!opts.header;\n        if (this.headerElement) {\n            // User existing header markup to define `this.columns`\n            assert(!this.columns, \"`opts.columns` must not be set if table markup already contains a header\");\n            this.columns = [];\n            const rowElement = this.headerElement.querySelector(\"div.wb-row\");\n            for (const colDiv of rowElement.querySelectorAll(\"div\")) {\n                this.columns.push({\n                    id: colDiv.dataset.id || `col_${this.columns.length}`,\n                    // id: colDiv.dataset.id || null,\n                    title: \"\" + colDiv.textContent,\n                    // text: \"\" + colDiv.textContent,\n                    width: \"*\", // TODO: read from header span\n                });\n            }\n        }\n        else {\n            // We need a row div, the rest will be computed from `this.columns`\n            const coldivs = \"<span class='wb-col'></span>\".repeat(this.columns.length);\n            this.element.innerHTML = `\n        <div class='wb-header'>\n          <div class='wb-row'>\n            ${coldivs}\n          </div>\n        </div>`;\n            if (!wantHeader) {\n                const he = this.element.querySelector(\"div.wb-header\");\n                he.style.display = \"none\";\n            }\n        }\n        //\n        this.element.innerHTML += `\n      <div class=\"wb-list-container\">\n        <div class=\"wb-node-list\"></div>\n      </div>`;\n        this.listContainerElement = this.element.querySelector(\"div.wb-list-container\");\n        this.nodeListElement =\n            this.listContainerElement.querySelector(\"div.wb-node-list\");\n        this.headerElement =\n            this.element.querySelector(\"div.wb-header\");\n        this.element.classList.toggle(\"wb-grid\", this.columns.length > 1);\n        if (this.options.connectTopBreadcrumb) {\n            this.breadcrumb = elemFromSelector(this.options.connectTopBreadcrumb);\n            assert(!this.breadcrumb || this.breadcrumb.innerHTML != null, `Invalid 'connectTopBreadcrumb' option: ${this.breadcrumb}.`);\n            this.breadcrumb.addEventListener(\"click\", (e) => {\n                // const node = Wunderbaum.getNode(e)!;\n                const elem = e.target;\n                if (elem && elem.matches(\"a.wb-breadcrumb\")) {\n                    const node = this.keyMap.get(elem.dataset.key);\n                    node === null || node === void 0 ? void 0 : node.setActive();\n                    e.preventDefault();\n                }\n            });\n        }\n        this._initExtensions();\n        // --- apply initial options\n        [\"enabled\", \"fixedCol\"].forEach((optName) => {\n            if (opts[optName] != null) {\n                this.setOption(optName, opts[optName]);\n            }\n        });\n        // --- Load initial data\n        if (initOptions.source) {\n            if (opts.showSpinner) {\n                this.nodeListElement.innerHTML = `<progress class='spinner'>${opts.strings.loading}</progress>`;\n            }\n            this.load(initOptions.source)\n                .then(() => {\n                // The source may have defined columns, so we may adjust the nav mode\n                if (opts.navigationModeOption == null) {\n                    if (this.isGrid()) {\n                        this.setNavigationOption(NavModeEnum.cell);\n                    }\n                    else {\n                        this.setNavigationOption(NavModeEnum.row);\n                    }\n                }\n                else {\n                    this.setNavigationOption(opts.navigationModeOption);\n                }\n                this.update(ChangeType.structure, { immediate: true });\n                readyDeferred.resolve();\n            })\n                .catch((error) => {\n                readyDeferred.reject(error);\n            })\n                .finally(() => {\n                var _a;\n                (_a = this.element.querySelector(\"progress.spinner\")) === null || _a === void 0 ? void 0 : _a.remove();\n                this.element.classList.remove(\"wb-initializing\");\n            });\n        }\n        else {\n            readyDeferred.resolve();\n        }\n        // Async mode is sometimes required, because this.element.clientWidth\n        // has a wrong value at start???\n        this.update(ChangeType.any);\n        // --- Bind listeners\n        this._registerEventHandlers();\n        this.resizeObserver = new ResizeObserver((entries) => {\n            // this.log(\"ResizeObserver: Size changed\", entries);\n            this.update(ChangeType.resize);\n        });\n        this.resizeObserver.observe(this.element);\n    }\n    _registerEventHandlers() {\n        this.element.addEventListener(\"scroll\", (e) => {\n            // this.log(`scroll, scrollTop:${e.target.scrollTop}`, e);\n            this.update(ChangeType.scroll);\n        });\n        onEvent(this.element, \"click\", \".wb-button,.wb-col-icon\", (e) => {\n            var _a, _b;\n            const info = Wunderbaum.getEventInfo(e);\n            const command = (_b = (_a = e.target) === null || _a === void 0 ? void 0 : _a.dataset) === null || _b === void 0 ? void 0 : _b.command;\n            this._callEvent(\"buttonClick\", {\n                event: e,\n                info: info,\n                command: command,\n            });\n        });\n        onEvent(this.nodeListElement, \"click\", \"div.wb-row\", (e) => {\n            const info = Wunderbaum.getEventInfo(e);\n            const node = info.node;\n            const mouseEvent = e;\n            // this.log(\"click\", info);\n            if (this._callEvent(\"click\", { event: e, node: node, info: info }) === false) {\n                this.lastClickTime = Date.now();\n                return false;\n            }\n            if (node) {\n                if (mouseEvent.ctrlKey) {\n                    node.toggleSelected();\n                    return;\n                }\n                // Edit title if 'clickActive' is triggered:\n                const trigger = this.getOption(\"edit.trigger\");\n                const slowClickDelay = this.getOption(\"edit.slowClickDelay\");\n                if (trigger.indexOf(\"clickActive\") >= 0 &&\n                    info.region === \"title\" &&\n                    node.isActive() &&\n                    (!slowClickDelay || Date.now() - this.lastClickTime < slowClickDelay)) {\n                    node.startEditTitle();\n                }\n                if (info.region === NodeRegion.expander) {\n                    node.setExpanded(!node.isExpanded(), {\n                        scrollIntoView: this.options.scrollIntoViewOnExpandClick !== false,\n                    });\n                }\n                else if (info.region === NodeRegion.checkbox) {\n                    node.toggleSelected();\n                }\n                else {\n                    if (info.colIdx >= 0) {\n                        node.setActive(true, { colIdx: info.colIdx, event: e });\n                    }\n                    else {\n                        node.setActive(true, { event: e });\n                    }\n                }\n            }\n            this.lastClickTime = Date.now();\n        });\n        onEvent(this.nodeListElement, \"dblclick\", \"div.wb-row\", (e) => {\n            const info = Wunderbaum.getEventInfo(e);\n            const node = info.node;\n            // this.log(\"dblclick\", info, e);\n            if (this._callEvent(\"dblclick\", { event: e, node: node, info: info }) ===\n                false) {\n                return false;\n            }\n            if (node &&\n                info.colIdx === 0 &&\n                node.isExpandable() &&\n                info.region !== NodeRegion.expander) {\n                this._callMethod(\"edit._stopEditTitle\");\n                node.setExpanded(!node.isExpanded());\n            }\n        });\n        onEvent(this.element, \"keydown\", (e) => {\n            const info = Wunderbaum.getEventInfo(e);\n            const eventName = eventToString(e);\n            const node = info.node || this.getFocusNode();\n            this._callHook(\"onKeyEvent\", {\n                event: e,\n                node: node,\n                info: info,\n                eventName: eventName,\n            });\n        });\n        onEvent(this.element, \"focusin focusout\", (e) => {\n            const flag = e.type === \"focusin\";\n            const targetNode = Wunderbaum.getNode(e);\n            this._callEvent(\"focus\", { flag: flag, event: e });\n            if (flag && this.isRowNav() && !this.isEditingTitle()) {\n                if (this.options.navigationModeOption === NavModeEnum.row) {\n                    targetNode === null || targetNode === void 0 ? void 0 : targetNode.setActive();\n                }\n                else {\n                    this.setCellNav();\n                }\n            }\n            if (!flag) {\n                this._callMethod(\"edit._stopEditTitle\", true, {\n                    event: e,\n                    forceClose: true,\n                });\n            }\n        });\n    }\n    /**\n     * Return a Wunderbaum instance, from element, id, index, or event.\n     *\n     * ```js\n     * getTree();         // Get first Wunderbaum instance on page\n     * getTree(1);        // Get second Wunderbaum instance on page\n     * getTree(event);    // Get tree for this mouse- or keyboard event\n     * getTree(\"foo\");    // Get tree for this `tree.options.id`\n     * getTree(\"#tree\");  // Get tree for first matching element selector\n     * ```\n     */\n    static getTree(el) {\n        if (el instanceof Wunderbaum) {\n            return el;\n        }\n        else if (el instanceof WunderbaumNode) {\n            return el.tree;\n        }\n        if (el === undefined) {\n            el = 0; // get first tree\n        }\n        if (typeof el === \"number\") {\n            el = document.querySelectorAll(\".wunderbaum\")[el]; // el was an integer: return nth element\n        }\n        else if (typeof el === \"string\") {\n            // Search all trees for matching ID\n            for (const treeElem of document.querySelectorAll(\".wunderbaum\")) {\n                const tree = treeElem._wb_tree;\n                if (tree && tree.id === el) {\n                    return tree;\n                }\n            }\n            // Search by selector\n            el = document.querySelector(el);\n            if (!el) {\n                return null;\n            }\n        }\n        else if (el.target) {\n            el = el.target;\n        }\n        assert(el instanceof Element, `Invalid el type: ${el}`);\n        if (!el.matches(\".wunderbaum\")) {\n            el = el.closest(\".wunderbaum\");\n        }\n        if (el && el._wb_tree) {\n            return el._wb_tree;\n        }\n        return null;\n    }\n    /**\n     * Return the icon-function -> icon-definition mapping.\n     * @deprecated Use {@link Wunderbaum.iconMaps}\n     */\n    get iconMap() {\n        const map = this.options.iconMap;\n        if (typeof map === \"string\") {\n            return defaultIconMaps[map];\n        }\n        return map;\n    }\n    /**\n     * Return a WunderbaumNode instance from element or event.\n     */\n    static getNode(el) {\n        if (!el) {\n            return null;\n        }\n        else if (el instanceof WunderbaumNode) {\n            return el;\n        }\n        else if (el.target !== undefined) {\n            el = el.target; // el was an Event\n        }\n        // `el` is a DOM element\n        // let nodeElem = obj.closest(\"div.wb-row\");\n        while (el) {\n            if (el._wb_node) {\n                return el._wb_node;\n            }\n            el = el.parentElement; //.parentNode;\n        }\n        return null;\n    }\n    /**\n     * Iterate all descendant nodes depth-first, pre-order using `for ... of ...` syntax.\n     * More concise, but slightly slower than {@link Wunderbaum.visit}.\n     *\n     * Example:\n     * ```js\n     * for(const node of tree) {\n     *   ...\n     * }\n     * ```\n     */\n    *[Symbol.iterator]() {\n        yield* this.root;\n    }\n    /** @internal */\n    _registerExtension(extension) {\n        this.extensionList.push(extension);\n        this.extensions[extension.id] = extension;\n        // this.extensionMap.set(extension.id, extension);\n    }\n    /** Called on tree (re)init after markup is created, before loading. */\n    _initExtensions() {\n        for (const ext of this.extensionList) {\n            ext.init();\n        }\n    }\n    /**\n     * Calculate a *stable*, unique key for a node from its refKey (or title).\n     * We also add information from the parent, because a refKey may occur multiple\n     * times in a tree (but not as child of the same parent).\n     * @internal\n     */\n    _calculateKey(data, parent) {\n        if (data.key) {\n            // Always use an explicitly passed key\n            return data.key;\n        }\n        // Auto-keys are optional, use a monotonic counter by default:\n        if (!this.options.autoKeys) {\n            return \"\" + ++WunderbaumNode.sequence;\n        }\n        // Add the parent's key to the hash. Assuming this was generated by the\n        // same algorithm, this should incorporate the whole path:\n        const s = (parent ? parent.key : \"\") + (data.refKey || data.title);\n        // 32-bit has a high probability of collisions, so we pump up to 64-bit\n        // https://security.stackexchange.com/q/209882/207588\n        const h1 = murmurHash3(s, true);\n        let key = \"id_\" + h1 + murmurHash3(h1 + s, true);\n        // Check for collisions\n        // (Most likely if the same title occurs multiple in the same parent).\n        const existingNode = this.keyMap.get(key);\n        if (existingNode) {\n            key += \".\" + ++Wunderbaum.sequence;\n            this.logWarn(`Node with existing key: '${existingNode}', using ${key}.`, data);\n        }\n        return key;\n    }\n    /** Add node to tree's bookkeeping data structures. @internal */\n    _registerNode(node) {\n        const key = node.key;\n        assert(key != null, `Missing key: '${node}'.`);\n        assert(!this.keyMap.has(key), `Duplicate key: '${key}': ${node}.`);\n        this.keyMap.set(key, node);\n        const rk = node.refKey;\n        if (rk != null) {\n            const rks = this.refKeyMap.get(rk); // Set of nodes with this refKey\n            if (rks) {\n                rks.add(node);\n            }\n            else {\n                this.refKeyMap.set(rk, new Set([node]));\n            }\n        }\n    }\n    /** Remove node from tree's bookkeeping data structures. @internal  */\n    _unregisterNode(node) {\n        // Remove refKey reference from map (if any)\n        const rk = node.refKey;\n        if (rk != null) {\n            const rks = this.refKeyMap.get(rk);\n            if (rks && rks.delete(node) && !rks.size) {\n                // We just removed the last element\n                this.refKeyMap.delete(rk);\n            }\n        }\n        // Remove key reference from map\n        this.keyMap.delete(node.key);\n        // Mark as disposed\n        node.tree = null;\n        node.parent = null;\n        // Remove HTML markup\n        node.removeMarkup();\n    }\n    /** Call all hook methods of all registered extensions.*/\n    _callHook(hook, data = {}) {\n        let res;\n        const d = extend({}, { tree: this, options: this.options, result: undefined }, data);\n        for (const ext of this.extensionList) {\n            res = ext[hook].call(ext, d);\n            if (res === false) {\n                break;\n            }\n            if (d.result !== undefined) {\n                res = d.result;\n            }\n        }\n        return res;\n    }\n    /**\n     * Call tree method or extension method if defined.\n     *\n     * Example:\n     * ```js\n     * tree._callMethod(\"edit.startEdit\", \"arg1\", \"arg2\")\n     * ```\n     */\n    _callMethod(name, ...args) {\n        const [p, n] = name.split(\".\");\n        const obj = n ? this.extensions[p] : this;\n        const func = obj[n];\n        if (func) {\n            return func.apply(obj, args);\n        }\n        else {\n            this.logError(`Calling undefined method '${name}()'.`);\n        }\n    }\n    /**\n     * Call event handler if defined in tree or tree.EXTENSION options.\n     *\n     * Example:\n     * ```js\n     * tree._callEvent(\"edit.beforeEdit\", {foo: 42})\n     * ```\n     */\n    _callEvent(type, extra) {\n        const [p, n] = type.split(\".\");\n        const opts = this.options;\n        const func = n ? opts[p][n] : opts[p];\n        if (func) {\n            return func.call(this, extend({ type: type, tree: this, util: this._util }, extra));\n            // } else {\n            //   this.logError(`Triggering undefined event '${type}'.`)\n        }\n    }\n    /** Return the node for  given row index. */\n    _getNodeByRowIdx(idx) {\n        // TODO: start searching from active node (reverse)\n        let node = null;\n        this.visitRows((n) => {\n            if (n._rowIdx === idx) {\n                node = n;\n                return false;\n            }\n        });\n        return node;\n    }\n    /** Return the topmost visible node in the viewport.\n     * @param complete If `false`, the node is considered visible if at least one\n     * pixel is visible.\n     */\n    getTopmostVpNode(complete = true) {\n        const rowHeight = this.options.rowHeightPx;\n        const gracePx = 1; // ignore subpixel scrolling\n        const scrollParent = this.element;\n        // const headerHeight = this.headerElement.clientHeight;  // May be 0\n        const scrollTop = scrollParent.scrollTop; // + headerHeight;\n        let topIdx;\n        if (complete) {\n            topIdx = Math.ceil((scrollTop - gracePx) / rowHeight);\n        }\n        else {\n            topIdx = Math.floor(scrollTop / rowHeight);\n        }\n        return this._getNodeByRowIdx(topIdx);\n    }\n    /** Return the lowest visible node in the viewport. */\n    getLowestVpNode(complete = true) {\n        const rowHeight = this.options.rowHeightPx;\n        const scrollParent = this.element;\n        const headerHeight = this.headerElement.clientHeight; // May be 0\n        const scrollTop = scrollParent.scrollTop;\n        const clientHeight = scrollParent.clientHeight - headerHeight;\n        let bottomIdx;\n        if (complete) {\n            bottomIdx = Math.floor((scrollTop + clientHeight) / rowHeight) - 1;\n        }\n        else {\n            bottomIdx = Math.ceil((scrollTop + clientHeight) / rowHeight) - 1;\n        }\n        bottomIdx = Math.min(bottomIdx, this.count(true) - 1);\n        return this._getNodeByRowIdx(bottomIdx);\n    }\n    /** Return preceding visible node in the viewport. */\n    _getPrevNodeInView(node, ofs = 1) {\n        this.visitRows((n) => {\n            node = n;\n            if (ofs-- <= 0) {\n                return false;\n            }\n        }, { reverse: true, start: node || this.getActiveNode() });\n        return node;\n    }\n    /** Return following visible node in the viewport. */\n    _getNextNodeInView(node, options) {\n        let ofs = (options === null || options === void 0 ? void 0 : options.ofs) || 1;\n        const reverse = !!(options === null || options === void 0 ? void 0 : options.reverse);\n        this.visitRows((n) => {\n            node = n;\n            if ((options === null || options === void 0 ? void 0 : options.cb) && options.cb(n)) {\n                return false;\n            }\n            if (ofs-- <= 0) {\n                return false;\n            }\n        }, { reverse: reverse, start: node || this.getActiveNode() });\n        return node;\n    }\n    /**\n     * Append (or insert) a list of toplevel nodes.\n     *\n     * @see {@link WunderbaumNode.addChildren}\n     */\n    addChildren(nodeData, options) {\n        return this.root.addChildren(nodeData, options);\n    }\n    /**\n     * Apply a modification or navigation operation.\n     *\n     * Most of these commands simply map to a node or tree method.\n     * This method is especially useful when implementing keyboard mapping,\n     * context menus, or external buttons.\n     *\n     * Valid commands:\n     *   - 'moveUp', 'moveDown'\n     *   - 'indent', 'outdent'\n     *   - 'remove'\n     *   - 'edit', 'addChild', 'addSibling': (reqires ext-edit extension)\n     *   - 'cut', 'copy', 'paste': (use an internal singleton 'clipboard')\n     *   - 'down', 'first', 'last', 'left', 'parent', 'right', 'up': navigate\n     *\n     */\n    applyCommand(cmd, nodeOrOpts, options) {\n        let // clipboard,\n        node, refNode;\n        // options = $.extend(\n        // \t{ setActive: true, clipboard: CLIPBOARD },\n        // \toptions_\n        // );\n        if (nodeOrOpts instanceof WunderbaumNode) {\n            node = nodeOrOpts;\n        }\n        else {\n            node = this.getActiveNode();\n            assert(options === undefined, `Unexpected options: ${options}`);\n            options = nodeOrOpts;\n        }\n        // clipboard = options.clipboard;\n        switch (cmd) {\n            // Sorting and indentation:\n            case \"moveUp\":\n                refNode = node.getPrevSibling();\n                if (refNode) {\n                    node.moveTo(refNode, \"before\");\n                    node.setActive();\n                }\n                break;\n            case \"moveDown\":\n                refNode = node.getNextSibling();\n                if (refNode) {\n                    node.moveTo(refNode, \"after\");\n                    node.setActive();\n                }\n                break;\n            case \"indent\":\n                refNode = node.getPrevSibling();\n                if (refNode) {\n                    node.moveTo(refNode, \"appendChild\");\n                    refNode.setExpanded();\n                    node.setActive();\n                }\n                break;\n            case \"outdent\":\n                if (!node.isTopLevel()) {\n                    node.moveTo(node.getParent(), \"after\");\n                    node.setActive();\n                }\n                break;\n            // Remove:\n            case \"remove\":\n                refNode = node.getPrevSibling() || node.getParent();\n                node.remove();\n                if (refNode) {\n                    refNode.setActive();\n                }\n                break;\n            // Add, edit (requires ext-edit):\n            case \"addChild\":\n                this._callMethod(\"edit.createNode\", \"prependChild\");\n                break;\n            case \"addSibling\":\n                this._callMethod(\"edit.createNode\", \"after\");\n                break;\n            case \"rename\":\n                node.startEditTitle();\n                break;\n            // Simple clipboard simulation:\n            // case \"cut\":\n            // \tclipboard = { mode: cmd, data: node };\n            // \tbreak;\n            // case \"copy\":\n            // \tclipboard = {\n            // \t\tmode: cmd,\n            // \t\tdata: node.toDict(function(d, n) {\n            // \t\t\tdelete d.key;\n            // \t\t}),\n            // \t};\n            // \tbreak;\n            // case \"clear\":\n            // \tclipboard = null;\n            // \tbreak;\n            // case \"paste\":\n            // \tif (clipboard.mode === \"cut\") {\n            // \t\t// refNode = node.getPrevSibling();\n            // \t\tclipboard.data.moveTo(node, \"child\");\n            // \t\tclipboard.data.setActive();\n            // \t} else if (clipboard.mode === \"copy\") {\n            // \t\tnode.addChildren(clipboard.data).setActive();\n            // \t}\n            // \tbreak;\n            // Navigation commands:\n            case \"down\":\n            case \"first\":\n            case \"last\":\n            case \"left\":\n            case \"nextMatch\":\n            case \"pageDown\":\n            case \"pageUp\":\n            case \"parent\":\n            case \"prevMatch\":\n            case \"right\":\n            case \"up\":\n                return node.navigate(cmd);\n            default:\n                error(`Unhandled command: '${cmd}'`);\n        }\n    }\n    /** Delete all nodes. */\n    clear() {\n        this.root.removeChildren();\n        this.root.children = null;\n        this.keyMap.clear();\n        this.refKeyMap.clear();\n        this.treeRowCount = 0;\n        this._activeNode = null;\n        this._focusNode = null;\n        // this.types = {};\n        // this. columns =[];\n        // this._columnsById = {};\n        // Modification Status\n        // this.changedSince = 0;\n        // this.changes.clear();\n        // this.changedNodes.clear();\n        // // --- FILTER ---\n        // public filterMode: FilterModeType = null;\n        // // --- KEYNAV ---\n        // public activeColIdx = 0;\n        // public cellNavMode = false;\n        // public lastQuicksearchTime = 0;\n        // public lastQuicksearchTerm = \"\";\n        this.update(ChangeType.structure);\n    }\n    /**\n     * Clear nodes and markup and detach events and observers.\n     *\n     * This method may be useful to free up resources before re-creating a tree\n     * on an existing div, for example in unittest suites.\n     * Note that this Wunderbaum instance becomes unusable afterwards.\n     */\n    destroy() {\n        this.logInfo(\"destroy()...\");\n        this.clear();\n        this.resizeObserver.disconnect();\n        this.element.innerHTML = \"\";\n        // Remove all event handlers\n        this.element.outerHTML = this.element.outerHTML; // eslint-disable-line\n    }\n    /**\n     * Return `tree.option.NAME` (also resolving if this is a callback).\n     *\n     * See also {@link WunderbaumNode.getOption|WunderbaumNode.getOption()}\n     * to evaluate `node.NAME` setting and `tree.types[node.type].NAME`.\n     *\n     * @param name option name (use dot notation to access extension option, e.g.\n     * `filter.mode`)\n     */\n    getOption(name, defaultValue) {\n        let ext;\n        let opts = this.options;\n        // Lookup `name` in options dict\n        if (name.indexOf(\".\") >= 0) {\n            [ext, name] = name.split(\".\");\n            opts = opts[ext];\n        }\n        let value = opts[name];\n        // A callback resolver always takes precedence\n        if (typeof value === \"function\") {\n            value = value({ type: \"resolve\", tree: this });\n        }\n        // Use value from value options dict, fallback do default\n        // console.info(name, value, opts)\n        return value !== null && value !== void 0 ? value : defaultValue;\n    }\n    /**\n     * Set tree option.\n     * Use dot notation to set plugin option, e.g. \"filter.mode\".\n     */\n    setOption(name, value) {\n        // this.log(`setOption(${name}, ${value})`);\n        if (name.indexOf(\".\") >= 0) {\n            const parts = name.split(\".\");\n            const ext = this.extensions[parts[0]];\n            ext.setPluginOption(parts[1], value);\n            return;\n        }\n        this.options[name] = value;\n        switch (name) {\n            case \"checkbox\":\n                this.update(ChangeType.any);\n                break;\n            case \"enabled\":\n                this.setEnabled(!!value);\n                break;\n            case \"fixedCol\":\n                this.element.classList.toggle(\"wb-fixed-col\", !!value);\n                break;\n        }\n    }\n    /** Return true if the tree (or one of its nodes) has the input focus. */\n    hasFocus() {\n        return this.element.contains(document.activeElement);\n    }\n    /**\n     * Return true if the tree displays a header. Grids have a header unless the\n     * `header` option is set to `false`. Plain trees have a header if the `header`\n     * option is a string or `true`.\n     */\n    hasHeader() {\n        const header = this.options.header;\n        return this.isGrid() ? header !== false : !!header;\n    }\n    /** Run code, but defer rendering of viewport until done.\n     *\n     * ```js\n     * const res = tree.runWithDeferredUpdate(() => {\n     *   return someFunctionThatWouldUpdateManyNodes();\n     * });\n     * ```\n     */\n    runWithDeferredUpdate(func) {\n        try {\n            this.enableUpdate(false);\n            const res = func();\n            assert(!(res instanceof Promise), `Promise return not allowed (see 'runWithDeferredUpdateAsync()'): ${res}`);\n            return res;\n        }\n        finally {\n            this.enableUpdate(true);\n        }\n    }\n    /** Run code, but defer rendering of viewport until done.\n     *\n     * ```js\n     * const res = await tree.runWithDeferredUpdate(async () => {\n     *   return someAsyncFunctionThatWouldUpdateManyNodes();\n     * });\n     * ```\n     */\n    async runWithDeferredUpdateAsync(func) {\n        try {\n            this.enableUpdate(false);\n            return await func();\n        }\n        finally {\n            this.enableUpdate(true);\n        }\n    }\n    /** Recursively expand all expandable nodes (triggers lazy load if needed). */\n    async expandAll(flag = true, options) {\n        await this.root.expandAll(flag, options);\n    }\n    /** Recursively select all nodes. */\n    selectAll(flag = true) {\n        return this.root.setSelected(flag, { propagateDown: true });\n    }\n    /** Toggle select all nodes. */\n    toggleSelect() {\n        this.selectAll(this.root._anySelectable());\n    }\n    /**\n     * Return an array of selected nodes.\n     * @param stopOnParents only return the topmost selected node (useful with selectMode 'hier')\n     */\n    getSelectedNodes(stopOnParents = false) {\n        return this.root.getSelectedNodes(stopOnParents);\n    }\n    /**\n     * Return an array of refKey values.\n     *\n     * RefKeys are unique identifiers for a node data, and are used to identify\n     * clones.\n     * If more than one node has the same refKey, it is only returned once.\n     * @param selected if true, only return refKeys of selected nodes.\n     */\n    getRefKeys(selected = false) {\n        return this.root.getRefKeys(selected);\n    }\n    /*\n     * Return an array of selected nodes.\n     */\n    _selectRange(eventInfo) {\n        this.logDebug(\"_selectRange\", eventInfo);\n        error(\"Not yet implemented.\");\n        // const mode = this.options.selectMode!;\n        // if (mode !== \"multi\") {\n        //   this.logDebug(`Range selection only available for selectMode 'multi'`);\n        //   return;\n        // }\n        // if (eventInfo.canonicalName === \"Meta+click\") {\n        //   eventInfo.node?.toggleSelected();\n        //   return false; // don't\n        // } else if (eventInfo.canonicalName === \"Shift+click\") {\n        //   let from = this.activeNode;\n        //   let to = eventInfo.node;\n        //   if (!from || !to || from === to) {\n        //     return;\n        //   }\n        //   this.runWithDeferredUpdate(() => {\n        //     this.visitRows(\n        //       (node) => {\n        //         node.setSelected();\n        //       },\n        //       {\n        //         includeHidden: true,\n        //         includeSelf: false,\n        //         start: from,\n        //         reverse: from!._rowIdx! > to!._rowIdx!,\n        //       }\n        //     );\n        //   });\n        //   return false;\n        // }\n    }\n    /** Return the number of nodes in the data model.\n     * @param visible if true, nodes that are hidden due to collapsed parents are ignored.\n     */\n    count(visible = false) {\n        return visible ? this.treeRowCount : this.keyMap.size;\n    }\n    /** Return the number of *unique* nodes in the data model, i.e. unique `node.refKey`.\n     */\n    countUnique() {\n        return this.refKeyMap.size;\n    }\n    /** @internal sanity check. */\n    _check() {\n        let i = 0;\n        this.visit((n) => {\n            i++;\n        });\n        if (this.keyMap.size !== i) {\n            this.logWarn(`_check failed: ${this.keyMap.size} !== ${i}`);\n        }\n        // util.assert(this.keyMap.size === i);\n    }\n    /**\n     * Find all nodes that match condition.\n     *\n     * @param match title string to search for, or a\n     *     callback function that returns `true` if a node is matched.\n     * @see {@link WunderbaumNode.findAll}\n     */\n    findAll(match) {\n        return this.root.findAll(match);\n    }\n    /**\n     * Find all nodes with a given _refKey_ (aka a list of clones).\n     *\n     * @param refKey a `node.refKey` value to search for.\n     * @returns an array of matching nodes with at least two element or `[]`\n     * if nothing found.\n     *\n     * @see {@link WunderbaumNode.getCloneList}\n     */\n    findByRefKey(refKey) {\n        const clones = this.refKeyMap.get(refKey);\n        return clones ? Array.from(clones) : [];\n    }\n    /**\n     * Find first node that matches condition.\n     *\n     * @param match title string to search for, or a\n     *     callback function that returns `true` if a node is matched.\n     * @see {@link WunderbaumNode.findFirst}\n     */\n    findFirst(match) {\n        return this.root.findFirst(match);\n    }\n    /**\n     * Find first node that matches condition.\n     *\n     * @see {@link WunderbaumNode.findFirst}\n     *\n     */\n    findKey(key) {\n        return this.keyMap.get(key) || null;\n    }\n    /**\n     * Find the next visible node that starts with `match`, starting at `startNode`\n     * and wrap-around at the end.\n     * Used by quicksearch and keyboard navigation.\n     */\n    findNextNode(match, startNode, reverse = false) {\n        //, visibleOnly) {\n        let res = null;\n        const firstNode = this.getFirstChild();\n        // Last visible node (calculation is expensive, so do only if we need it):\n        const lastNode = reverse ? this.findRelatedNode(firstNode, \"last\") : null;\n        const matcher = typeof match === \"string\" ? makeNodeTitleStartMatcher(match) : match;\n        startNode = startNode || (reverse ? lastNode : firstNode);\n        function _checkNode(n) {\n            // console.log(\"_check \" + n)\n            if (matcher(n)) {\n                res = n;\n            }\n            if (res || n === startNode) {\n                return false;\n            }\n        }\n        this.visitRows(_checkNode, {\n            start: startNode,\n            includeSelf: false,\n            reverse: reverse,\n        });\n        // Wrap around search\n        if (!res && startNode !== firstNode) {\n            this.visitRows(_checkNode, {\n                start: reverse ? lastNode : firstNode,\n                includeSelf: true,\n                reverse: reverse,\n            });\n        }\n        return res;\n    }\n    /**\n     * Find a node relative to another node.\n     *\n     * @param node\n     * @param where 'down', 'first', 'last', 'left', 'parent', 'right', or 'up'.\n     *   (Alternatively the keyCode that would normally trigger this move,\n     *   e.g. `$.ui.keyCode.LEFT` = 'left'.\n     * @param includeHidden Not yet implemented\n     */\n    findRelatedNode(node, where, includeHidden = false) {\n        const rowHeight = this.options.rowHeightPx;\n        let res = null;\n        const pageSize = Math.floor(this.listContainerElement.clientHeight / rowHeight);\n        switch (where) {\n            case \"parent\":\n                if (node.parent && node.parent.parent) {\n                    res = node.parent;\n                }\n                break;\n            case \"first\":\n                // First visible node\n                this.visit((n) => {\n                    if (n.isVisible()) {\n                        res = n;\n                        return false;\n                    }\n                });\n                break;\n            case \"last\":\n                this.visit((n) => {\n                    // last visible node\n                    if (n.isVisible()) {\n                        res = n;\n                    }\n                });\n                break;\n            case \"left\":\n                if (node.parent && node.parent.parent) {\n                    res = node.parent;\n                }\n                // if (node.expanded) {\n                //   node.setExpanded(false);\n                // } else if (node.parent && node.parent.parent) {\n                //   res = node.parent;\n                // }\n                break;\n            case \"right\":\n                if (node.children && node.children.length) {\n                    res = node.children[0];\n                }\n                // if (this.cellNavMode) {\n                //   throw new Error(\"Not implemented\");\n                // } else {\n                //   if (!node.expanded && (node.children || node.lazy)) {\n                //     node.setExpanded();\n                //     res = node;\n                //   } else if (node.children && node.children.length) {\n                //     res = node.children[0];\n                //   }\n                // }\n                break;\n            case \"up\":\n                res = this._getNextNodeInView(node, { reverse: true });\n                break;\n            case \"down\":\n                res = this._getNextNodeInView(node);\n                break;\n            case \"pageDown\":\n                {\n                    const bottomNode = this.getLowestVpNode();\n                    // this.logDebug(`${where}(${node}) -> ${bottomNode}`);\n                    if (node._rowIdx < bottomNode._rowIdx) {\n                        res = bottomNode;\n                    }\n                    else {\n                        res = this._getNextNodeInView(node, {\n                            reverse: false,\n                            ofs: pageSize,\n                        });\n                    }\n                }\n                break;\n            case \"pageUp\":\n                if (node._rowIdx === 0) {\n                    res = node;\n                }\n                else {\n                    const topNode = this.getTopmostVpNode();\n                    // this.logDebug(`${where}(${node}) -> ${topNode}`);\n                    if (node._rowIdx > topNode._rowIdx) {\n                        res = topNode;\n                    }\n                    else {\n                        res = this._getNextNodeInView(node, {\n                            reverse: true,\n                            ofs: pageSize,\n                        });\n                    }\n                }\n                break;\n            case \"prevMatch\":\n            // fallthrough\n            case \"nextMatch\":\n                if (!this.isFilterActive) {\n                    this.logWarn(`${where}: Filter is not active.`);\n                    break;\n                }\n                res = this.findNextNode((n) => n.isMatched(), node, where === \"prevMatch\");\n                res === null || res === void 0 ? void 0 : res.setActive();\n                break;\n            default:\n                this.logWarn(\"Unknown relation '\" + where + \"'.\");\n        }\n        return res;\n    }\n    /**\n     * Iterator version of {@link Wunderbaum.format}.\n     */\n    *format_iter(name_cb, connectors) {\n        yield* this.root.format_iter(name_cb, connectors);\n    }\n    /**\n     * Return multiline string representation of the node hierarchy.\n     * Mostly useful for debugging.\n     *\n     * Example:\n     * ```js\n     * console.info(tree.format((n)=>n.title));\n     * ```\n     * logs\n     * ```\n     * Playground\n     * ├─ Books\n     * |   ├─ Art of War\n     * |   ╰─ Don Quixote\n     * ├─ Music\n     * ...\n     * ```\n     *\n     * @see {@link Wunderbaum.format_iter} and {@link WunderbaumNode.format}.\n     */\n    format(name_cb, connectors) {\n        return this.root.format(name_cb, connectors);\n    }\n    /**\n     * Always returns null (so a tree instance behaves as `tree.root`).\n     */\n    get parent() {\n        return null;\n    }\n    /**\n     * Return a list of top-level nodes.\n     */\n    get children() {\n        return this.root.children || [];\n    }\n    /**\n     * Return the active cell (`span.wb-col`) of the currently active node or null.\n     */\n    getActiveColElem() {\n        if (this.activeNode && this.activeColIdx >= 0) {\n            return this.activeNode.getColElem(this.activeColIdx);\n        }\n        return null;\n    }\n    /**\n     * Return the currently active node or null (alias for `tree.activeNode`).\n     * Alias for {@link Wunderbaum.activeNode}.\n     *\n     * @see {@link WunderbaumNode.setActive}\n     * @see {@link WunderbaumNode.isActive}\n     * @see {@link Wunderbaum.activeNode}\n     * @see {@link Wunderbaum.focusNode}\n     */\n    getActiveNode() {\n        return this.activeNode;\n    }\n    /**\n     * Return the first top level node if any (not the invisible root node).\n     */\n    getFirstChild() {\n        return this.root.getFirstChild();\n    }\n    /**\n     * Return the last top level node if any (not the invisible root node).\n     */\n    getLastChild() {\n        return this.root.getLastChild();\n    }\n    /**\n     * Return the node that currently has keyboard focus or null.\n     * Alias for {@link Wunderbaum.focusNode}.\n     * @see {@link WunderbaumNode.setFocus}\n     * @see {@link WunderbaumNode.hasFocus}\n     * @see {@link Wunderbaum.activeNode}\n     * @see {@link Wunderbaum.focusNode}\n     */\n    getFocusNode() {\n        return this.focusNode;\n    }\n    /** Return a {node: WunderbaumNode, region: TYPE} object for a mouse event.\n     *\n     * @param {Event} event Mouse event, e.g. click, ...\n     * @returns {object} Return a {node: WunderbaumNode, region: TYPE} object\n     *     TYPE: 'title' | 'prefix' | 'expander' | 'checkbox' | 'icon' | undefined\n     */\n    static getEventInfo(event) {\n        const target = event.target;\n        const cl = target.classList;\n        const parentCol = target.closest(\"span.wb-col\");\n        const node = Wunderbaum.getNode(target);\n        const tree = node ? node.tree : Wunderbaum.getTree(event);\n        const res = {\n            event: event,\n            canonicalName: eventToString(event),\n            tree: tree,\n            node: node,\n            region: NodeRegion.unknown,\n            colDef: undefined,\n            colIdx: -1,\n            colId: undefined,\n            colElem: parentCol,\n        };\n        if (cl.contains(\"wb-title\")) {\n            res.region = NodeRegion.title;\n        }\n        else if (cl.contains(\"wb-expander\")) {\n            res.region = node.isExpandable()\n                ? NodeRegion.expander\n                : NodeRegion.prefix;\n        }\n        else if (cl.contains(\"wb-checkbox\")) {\n            res.region = NodeRegion.checkbox;\n        }\n        else if (cl.contains(\"wb-icon\")) {\n            //|| cl.contains(\"wb-custom-icon\")) {\n            res.region = NodeRegion.icon;\n        }\n        else if (cl.contains(\"wb-node\")) {\n            res.region = NodeRegion.title;\n        }\n        else if (parentCol) {\n            res.region = NodeRegion.column;\n            const idx = Array.prototype.indexOf.call(parentCol.parentNode.children, parentCol);\n            res.colIdx = idx;\n        }\n        else if (cl.contains(\"wb-row\")) {\n            // Plain tree\n            res.region = NodeRegion.title;\n        }\n        else {\n            // Somewhere near the title\n            if (event.type !== \"mousemove\" && !(event instanceof KeyboardEvent)) {\n                tree === null || tree === void 0 ? void 0 : tree.logWarn(\"getEventInfo(): not found\", event, res);\n            }\n            return res;\n        }\n        if (res.colIdx === -1) {\n            res.colIdx = 0;\n        }\n        res.colDef = tree === null || tree === void 0 ? void 0 : tree.columns[res.colIdx];\n        res.colDef != null ? (res.colId = res.colDef.id) : 0;\n        // this.log(\"Event\", event, res);\n        return res;\n    }\n    /**\n     * Return readable string representation for this instance.\n     * @internal\n     */\n    toString() {\n        return `Wunderbaum<'${this.id}'>`;\n    }\n    /** Return true if any node title or grid cell is currently beeing edited.\n     *\n     * See also {@link isEditingTitle}.\n     */\n    isEditing() {\n        const focusElem = this.nodeListElement.querySelector(\"input:focus,select:focus\");\n        return !!focusElem;\n    }\n    /** Return true if any node is currently in edit-title mode.\n     *\n     * See also {@link WunderbaumNode.isEditingTitle} and {@link isEditing}.\n     */\n    isEditingTitle() {\n        return this._callMethod(\"edit.isEditingTitle\");\n    }\n    /**\n     * Return true if any node is currently beeing loaded, i.e. a Ajax request is pending.\n     */\n    isLoading() {\n        let res = false;\n        this.root.visit((n) => {\n            // also visit rootNode\n            if (n._isLoading || n._requestId) {\n                res = true;\n                return false;\n            }\n        }, true);\n        return res;\n    }\n    /** Write to `console.log` with tree name as prefix if opts.debugLevel >= 4.\n     * @see {@link logDebug}\n     */\n    log(...args) {\n        if (this.options.debugLevel >= 4) {\n            console.log(this.toString(), ...args); // eslint-disable-line no-console\n        }\n    }\n    /** Write to `console.debug`  with tree name as prefix if opts.debugLevel >= 4.\n     * and browser console level includes debug/verbose messages.\n     * @see {@link log}\n     */\n    logDebug(...args) {\n        if (this.options.debugLevel >= 4) {\n            console.debug(this.toString(), ...args); // eslint-disable-line no-console\n        }\n    }\n    /** Write to `console.error` with tree name as prefix. */\n    logError(...args) {\n        if (this.options.debugLevel >= 1) {\n            console.error(this.toString(), ...args); // eslint-disable-line no-console\n        }\n    }\n    /** Write to `console.info`  with tree name as prefix if opts.debugLevel >= 3. */\n    logInfo(...args) {\n        if (this.options.debugLevel >= 3) {\n            console.info(this.toString(), ...args); // eslint-disable-line no-console\n        }\n    }\n    /** @internal */\n    logTime(label) {\n        if (this.options.debugLevel >= 4) {\n            console.time(this + \": \" + label); // eslint-disable-line no-console\n        }\n        return label;\n    }\n    /** @internal */\n    logTimeEnd(label) {\n        if (this.options.debugLevel >= 4) {\n            console.timeEnd(this + \": \" + label); // eslint-disable-line no-console\n        }\n    }\n    /** Write to `console.warn` with tree name as prefix with if opts.debugLevel >= 2. */\n    logWarn(...args) {\n        if (this.options.debugLevel >= 2) {\n            console.warn(this.toString(), ...args); // eslint-disable-line no-console\n        }\n    }\n    /** Emit a warning for deprecated methods. @internal */\n    logDeprecate(method, options) {\n        if (this.options.debugLevel >= 2) {\n            let msg = `${this}: ${method} is deprecated`;\n            if (options === null || options === void 0 ? void 0 : options.since) {\n                msg += ` since ${options.since}`;\n            }\n            if (options === null || options === void 0 ? void 0 : options.hint) {\n                msg += ` (${options.since})`;\n            }\n            console.warn(msg + \".\"); // eslint-disable-line no-console\n        }\n    }\n    /** Reset column widths to default. @since 0.10.0 */\n    resetColumns() {\n        this.columns.forEach((col) => {\n            delete col.customWidthPx;\n        });\n        this.update(ChangeType.colStructure);\n    }\n    // /** Renumber nodes `_nativeIndex`. @see {@link WunderbaumNode.resetNativeChildOrder} */\n    // resetNativeChildOrder(options?: ResetOrderOptions) {\n    //   this.root.resetNativeChildOrder(options);\n    // }\n    /**\n     * Make sure that this node is vertically scrolled into the viewport.\n     *\n     * Nodes that are above the visible area become the top row, nodes that are\n     * below the viewport become the bottom row.\n     */\n    scrollTo(nodeOrOpts) {\n        const PADDING = 2; // leave some pixels between viewport bounds\n        let node;\n        // WunderbaumNode;\n        let options;\n        if (nodeOrOpts instanceof WunderbaumNode) {\n            node = nodeOrOpts;\n        }\n        else {\n            options = nodeOrOpts;\n            node = options.node;\n        }\n        assert(node && node._rowIdx != null, `Invalid node: ${node}`);\n        const rowHeight = this.options.rowHeightPx;\n        const scrollParent = this.element;\n        const headerHeight = this.headerElement.clientHeight; // May be 0\n        const scrollTop = scrollParent.scrollTop;\n        const vpHeight = scrollParent.clientHeight;\n        const rowTop = node._rowIdx * rowHeight + headerHeight;\n        const vpTop = headerHeight;\n        const vpRowTop = rowTop - scrollTop;\n        const vpRowBottom = vpRowTop + rowHeight;\n        const topNode = options === null || options === void 0 ? void 0 : options.topNode;\n        // this.log( `scrollTo(${node.title}), vpTop:${vpTop}px, scrollTop:${scrollTop}, vpHeight:${vpHeight}, rowTop:${rowTop}, vpRowTop:${vpRowTop}`, nodeOrOpts , options);\n        let newScrollTop = null;\n        if (vpRowTop >= vpTop) {\n            if (vpRowBottom <= vpHeight) ;\n            else {\n                // Node is below viewport\n                // this.log(\"Below viewport\");\n                newScrollTop = rowTop + rowHeight - vpHeight + PADDING; // leave some pixels between viewport bounds\n            }\n        }\n        else {\n            // Node is above viewport\n            // this.log(\"Above viewport\");\n            newScrollTop = rowTop - vpTop - PADDING; // leave some pixels between viewport bounds\n        }\n        if (newScrollTop != null) {\n            this.log(`scrollTo(${rowTop}): ${scrollTop} => ${newScrollTop}`);\n            scrollParent.scrollTop = newScrollTop;\n            if (topNode) {\n                // Make sure the topNode is always visible\n                this.scrollTo(topNode);\n            }\n            // this.update(ChangeType.scroll);\n        }\n    }\n    /**\n     * Make sure that this node is horizontally scrolled into the viewport.\n     * Called by {@link setColumn}.\n     */\n    scrollToHorz() {\n        // const PADDING = 1;\n        const fixedWidth = this.columns[0]._widthPx;\n        const vpWidth = this.element.clientWidth;\n        const scrollLeft = this.element.scrollLeft;\n        const colElem = this.getActiveColElem();\n        const colLeft = Number.parseInt(colElem === null || colElem === void 0 ? void 0 : colElem.style.left, 10);\n        const colRight = colLeft + Number.parseInt(colElem === null || colElem === void 0 ? void 0 : colElem.style.width, 10);\n        let newLeft = scrollLeft;\n        if (colLeft - scrollLeft < fixedWidth) {\n            // The current column is scrolled behind the left fixed column\n            newLeft = colLeft - fixedWidth;\n        }\n        else if (colRight - scrollLeft > vpWidth) {\n            // The current column is scrolled outside the right side\n            newLeft = colRight - vpWidth;\n        }\n        newLeft = Math.max(0, newLeft);\n        // util.assert(node._rowIdx != null);\n        this.log(`scrollToHorz(${this.activeColIdx}): ${colLeft}..${colRight}, fixedOfs=${fixedWidth}, vpWidth=${vpWidth}, curLeft=${scrollLeft} -> ${newLeft}`);\n        this.element.scrollLeft = newLeft;\n        // this.update(ChangeType.scroll);\n    }\n    /**\n     * Set column #colIdx to 'active'.\n     *\n     * This higlights the column header and -cells by adding the `wb-active`\n     * class to all grid cells of the active column. <br>\n     * Available in cell-nav mode only.\n     *\n     * If _options.edit_ is true, the embedded input element is focused, or if\n     * colIdx is 0, the node title is put into edit mode.\n     */\n    setColumn(colIdx, options) {\n        var _a, _b, _c;\n        const edit = options === null || options === void 0 ? void 0 : options.edit;\n        const scroll = (options === null || options === void 0 ? void 0 : options.scrollIntoView) !== false;\n        assert(this.isCellNav(), \"Expected cellNav mode\");\n        if (typeof colIdx === \"string\") {\n            const cid = colIdx;\n            colIdx = this.columns.findIndex((c) => c.id === colIdx);\n            assert(colIdx >= 0, `Invalid colId: ${cid}`);\n        }\n        assert(0 <= colIdx && colIdx < this.columns.length, `Invalid colIdx: ${colIdx}`);\n        this.activeColIdx = colIdx;\n        // Update `wb-active` class for all headers\n        if (this.hasHeader()) {\n            for (const rowDiv of this.headerElement.children) {\n                let i = 0;\n                for (const colDiv of rowDiv.children) {\n                    colDiv.classList.toggle(\"wb-active\", i++ === colIdx);\n                }\n            }\n        }\n        (_a = this.activeNode) === null || _a === void 0 ? void 0 : _a.update(ChangeType.status);\n        // Update `wb-active` class for all cell spans\n        for (const rowDiv of this.nodeListElement.children) {\n            let i = 0;\n            for (const colDiv of rowDiv.children) {\n                colDiv.classList.toggle(\"wb-active\", i++ === colIdx);\n            }\n        }\n        // Horizontically scroll into view\n        if (scroll || edit) {\n            this.scrollToHorz();\n        }\n        if (edit && this.activeNode) {\n            // this.activeNode.setFocus(); // Blur prev. input if any\n            if (colIdx === 0) {\n                this.activeNode.startEditTitle();\n            }\n            else {\n                (_c = (_b = this.getActiveColElem()) === null || _b === void 0 ? void 0 : _b.querySelector(\"input,select\")) === null || _c === void 0 ? void 0 : _c.focus();\n            }\n        }\n    }\n    /* Set or remove keyboard focus to the tree container. @internal */\n    _setActiveNode(node) {\n        this._activeNode = node;\n    }\n    /** Set or remove keyboard focus to the tree container. */\n    setActiveNode(key, flag = true, options) {\n        var _a;\n        (_a = this.findKey(key)) === null || _a === void 0 ? void 0 : _a.setActive(flag, options);\n    }\n    /** Set or remove keyboard focus to the tree container. */\n    setFocus(flag = true) {\n        if (flag) {\n            this.element.focus();\n        }\n        else {\n            this.element.blur();\n        }\n    }\n    /* Set or remove keyboard focus to the tree container. @internal */\n    _setFocusNode(node) {\n        this._focusNode = node;\n    }\n    /** Return the current selection/expansion/activation status. @experimental */\n    getState(options = {}) {\n        var _a, _b;\n        const { activeKey = true, expandedKeys = false, selectedKeys = false, } = options;\n        const expandSet = new Set();\n        if (expandedKeys) {\n            for (const node of this) {\n                if (node.isExpanded() && node.hasChildren()) {\n                    expandSet.add(node.key);\n                }\n            }\n        }\n        // Parents of active node are always expanded\n        if (activeKey && this.activeNode) {\n            this.activeNode.visitParents((n) => {\n                if (n.parent) {\n                    expandSet.add(n.key);\n                }\n            }, false);\n        }\n        const state = {\n            expandedKeys: expandSet.size ? Array.from(expandSet) : undefined,\n            activeKey: (_b = (_a = this.activeNode) === null || _a === void 0 ? void 0 : _a.key) !== null && _b !== void 0 ? _b : null,\n            activeColIdx: this.activeColIdx,\n            selectedKeys: selectedKeys\n                ? this.getSelectedNodes().flatMap((n) => n.key)\n                : undefined,\n        };\n        return state;\n    }\n    /** Apply selection/expansion/activation status. @experimental */\n    async setState(state, options = {}) {\n        const { expandLazy = true } = options;\n        return this.runWithDeferredUpdateAsync(async () => {\n            var _a, _b;\n            if (state.expandedKeys && state.expandedKeys.length) {\n                if (expandLazy) {\n                    // Expand all keys recursively, even if they are not in the tree yet\n                    await this._loadLazyNodes(state.expandedKeys, {\n                        expand: true,\n                        noEvents: true,\n                    });\n                }\n                else {\n                    for (const key of state.expandedKeys) {\n                        (_a = this.findKey(key)) === null || _a === void 0 ? void 0 : _a.setExpanded(true);\n                    }\n                }\n            }\n            if (state.activeKey) {\n                this.setActiveNode(state.activeKey);\n            }\n            if (state.selectedKeys) {\n                this.selectAll(false);\n                for (const key of state.selectedKeys) {\n                    (_b = this.findKey(key)) === null || _b === void 0 ? void 0 : _b.setSelected(true);\n                }\n            }\n            if (this.isCellNav() && state.activeColIdx != null) {\n                this.setColumn(state.activeColIdx);\n            }\n        });\n    }\n    update(change, node, options) {\n        // this.log(`update(${change}) node=${node}`);\n        if (!(node instanceof WunderbaumNode)) {\n            options = node;\n            node = undefined;\n        }\n        const immediate = !!getOption(options, \"immediate\");\n        const RF = RenderFlag;\n        const pending = this.pendingChangeTypes;\n        if (this._disableUpdateCount) {\n            // Assuming that we redraw all when enableUpdate() is re-enabled.\n            // this.log(\n            //   `IGNORED update(${change}) node=${node} (disable level ${this._disableUpdateCount})`\n            // );\n            this._disableUpdateIgnoreCount++;\n            return;\n        }\n        switch (change) {\n            case ChangeType.any:\n            case ChangeType.colStructure:\n                pending.add(RF.header);\n                pending.add(RF.clearMarkup);\n                pending.add(RF.redraw);\n                pending.add(RF.scroll);\n                break;\n            case ChangeType.resize:\n                // case ChangeType.colWidth:\n                pending.add(RF.header);\n                pending.add(RF.redraw);\n                break;\n            case ChangeType.structure:\n                pending.add(RF.redraw);\n                break;\n            case ChangeType.scroll:\n                pending.add(RF.scroll);\n                break;\n            case ChangeType.row:\n            case ChangeType.data:\n            case ChangeType.status:\n                assert(node, `Option '${change}' requires a node.`);\n                // Single nodes are immediately updated if already inside the viewport\n                // (otherwise we can ignore)\n                if (node._rowElem) {\n                    node._render({ change: change });\n                }\n                break;\n            default:\n                error(`Invalid change type '${change}'.`);\n        }\n        if (change === ChangeType.colStructure) {\n            const isGrid = this.isGrid();\n            this.element.classList.toggle(\"wb-grid\", isGrid);\n            if (!isGrid && this.isCellNav()) {\n                this.setCellNav(false);\n            }\n        }\n        if (pending.size > 0) {\n            if (immediate) {\n                this._updateViewportImmediately();\n            }\n            else {\n                this._updateViewportThrottled();\n            }\n        }\n    }\n    /** Disable mouse and keyboard interaction (return prev. state). */\n    setEnabled(flag = true) {\n        const prev = this.enabled;\n        this.enabled = !!flag;\n        this.element.classList.toggle(\"wb-disabled\", !flag);\n        return prev;\n    }\n    /** Return false if tree is disabled. */\n    isEnabled() {\n        return this.enabled;\n    }\n    /** Return true if tree has more than one column, i.e. has additional data columns. */\n    isGrid() {\n        return this.columns && this.columns.length > 1;\n    }\n    /** Return true if cell-navigation mode is active. */\n    isCellNav() {\n        return !!this._cellNavMode;\n    }\n    /** Return true if row-navigation mode is active. */\n    isRowNav() {\n        return !this._cellNavMode;\n    }\n    /** Set the tree's navigation mode. */\n    setCellNav(flag = true) {\n        var _a;\n        const prev = this._cellNavMode;\n        // if (flag === prev) {\n        //   return;\n        // }\n        this._cellNavMode = !!flag;\n        if (flag && !prev) {\n            // switch from row to cell mode\n            this.setColumn(0);\n        }\n        this.element.classList.toggle(\"wb-cell-mode\", flag);\n        (_a = this.activeNode) === null || _a === void 0 ? void 0 : _a.update(ChangeType.status);\n    }\n    /** Set the tree's navigation mode option. */\n    setNavigationOption(mode, reset = false) {\n        if (!this.isGrid() && mode !== NavModeEnum.row) {\n            this.logWarn(\"Plain trees only support row navigation mode.\");\n            return;\n        }\n        this.options.navigationModeOption = mode;\n        switch (mode) {\n            case NavModeEnum.cell:\n                this.setCellNav(true);\n                break;\n            case NavModeEnum.row:\n                this.setCellNav(false);\n                break;\n            case NavModeEnum.startCell:\n                if (reset) {\n                    this.setCellNav(true);\n                }\n                break;\n            case NavModeEnum.startRow:\n                if (reset) {\n                    this.setCellNav(false);\n                }\n                break;\n            default:\n                error(`Invalid mode '${mode}'.`);\n        }\n    }\n    /** Display tree status (ok, loading, error, noData) using styles and a dummy root node. */\n    setStatus(status, options) {\n        return this.root.setStatus(status, options);\n    }\n    /** Add or redefine node type definitions. */\n    setTypes(types, replace = true) {\n        assert(isPlainObject(types), `Expected plain objext: ${types}`);\n        if (replace) {\n            this.types = types;\n        }\n        else {\n            extend(this.types, types);\n        }\n        // Convert `TYPE.classes` to a Set\n        for (const t of Object.values(this.types)) {\n            if (t.classes) {\n                t.classes = toSet(t.classes);\n            }\n        }\n    }\n    /**\n     * Sort nodes list by title or custom criteria.\n     * @param {function} cmp custom compare function(a, b) that returns -1, 0, or 1\n     *    (defaults to sorting by title).\n     * @param {boolean} deep pass true to sort all descendant nodes recursively\n     * @deprecated use {@link sort}\n     */\n    sortChildren(cmp = nodeTitleSorter, deep = false) {\n        this.logDeprecate(\"sortChildren()\", { since: \"0.14.0\" });\n        return this.sort({\n            cmp: cmp ? cmp : undefined,\n            deep: deep,\n            propName: \"title\",\n        });\n    }\n    /**\n     * Convenience method to implement column sorting.\n     * @see {@link WunderbaumNode.sortByProperty}.\n     * @since 0.11.0\n     * @deprecated use {@link sort}\n     */\n    sortByProperty(options) {\n        this.logDeprecate(\"sortByProperty()\", { since: \"0.14.0\" });\n        this.root.sortByProperty(options);\n    }\n    /**\n     * Sort nodes list by title or custom criteria.\n     * @since 0.14.0\n     */\n    sort(options) {\n        this.root.sort(options);\n    }\n    /** Convert tree to an array of plain objects.\n     *\n     * @param callback is called for every node, in order to allow\n     *     modifications.\n     *     Return `false` to ignore this node or `\"skip\"` to include this node\n     *     without its children.\n     * @see {@link WunderbaumNode.toDict}.\n     */\n    toDictArray(callback) {\n        var _a;\n        const res = this.root.toDict(true, callback);\n        return (_a = res.children) !== null && _a !== void 0 ? _a : [];\n    }\n    /**\n     * Update column headers and column width.\n     * Return true if at least one column width changed.\n     */\n    // _updateColumnWidths(options?: UpdateColumnsOptions): boolean {\n    _updateColumnWidths() {\n        // options = Object.assign({ updateRows: true, renderMarkup: false }, options);\n        const defaultMinWidth = 4;\n        const vpWidth = this.element.clientWidth;\n        // Shorten last column width to avoid h-scrollbar\n        // (otherwise resizbing the demo would display a void scrollbar?)\n        const FIX_ADJUST_LAST_COL = 1;\n        const columns = this.columns;\n        const col0 = columns[0];\n        let totalWidth = 0;\n        let totalWeight = 0;\n        let fixedWidth = 0;\n        let modified = false;\n        // this.element.classList.toggle(\"wb-grid\", isGrid);\n        // if (!isGrid && this.isCellNav()) {\n        //   this.setCellNav(false);\n        // }\n        // if (options.calculateCols) {\n        if (col0.id !== \"*\") {\n            throw new Error(`First column must have  id '*': got '${col0.id}'.`);\n        }\n        // Gather width definitions\n        this._columnsById = {};\n        for (const col of columns) {\n            this._columnsById[col.id] = col;\n            const cw = col.customWidthPx ? `${col.customWidthPx}px` : col.width;\n            if (col.id === \"*\" && col !== col0) {\n                throw new Error(`Column id '*' must be defined only once: '${col.title}'.`);\n            }\n            if (!cw || cw === \"*\") {\n                col._weight = 1.0;\n                totalWeight += 1.0;\n            }\n            else if (typeof cw === \"number\") {\n                col._weight = cw;\n                totalWeight += cw;\n            }\n            else if (typeof cw === \"string\" && cw.endsWith(\"px\")) {\n                col._weight = 0;\n                const px = parseFloat(cw.slice(0, -2));\n                if (col._widthPx != px) {\n                    modified = true;\n                    col._widthPx = px;\n                }\n                fixedWidth += px;\n            }\n            else {\n                error(`Invalid column width: ${cw} (expected string ending with 'px' or number, e.g. \"<num>px\" or <int>).`);\n            }\n        }\n        // Share remaining space between non-fixed columns\n        const restPx = Math.max(0, vpWidth - fixedWidth);\n        let ofsPx = 0;\n        for (const col of columns) {\n            let minWidth;\n            if (col._weight) {\n                const cmw = col.minWidth;\n                if (typeof cmw === \"number\") {\n                    minWidth = cmw;\n                }\n                else if (typeof cmw === \"string\" && cmw.endsWith(\"px\")) {\n                    minWidth = parseFloat(cmw.slice(0, -2));\n                }\n                else {\n                    minWidth = defaultMinWidth;\n                }\n                const px = Math.max(minWidth, (restPx * col._weight) / totalWeight);\n                if (col._widthPx != px) {\n                    modified = true;\n                    col._widthPx = px;\n                }\n            }\n            col._ofsPx = ofsPx;\n            ofsPx += col._widthPx;\n        }\n        columns[columns.length - 1]._widthPx -= FIX_ADJUST_LAST_COL;\n        totalWidth = ofsPx - FIX_ADJUST_LAST_COL;\n        const tw = `${totalWidth}px`;\n        this.headerElement.style.width = tw;\n        this.listContainerElement.style.width = tw;\n        // }\n        // Every column has now a calculated `_ofsPx` and `_widthPx`\n        // this.logInfo(\"UC\", this.columns, vpWidth, this.element.clientWidth, this.element);\n        // console.trace();\n        // util.error(\"BREAK\");\n        // if (modified) {\n        //   this._renderHeaderMarkup();\n        //   if (options.renderMarkup) {\n        //     this.update(ChangeType.header, { removeMarkup: true });\n        //   } else if (options.updateRows) {\n        //     this._updateRows();\n        //   }\n        // }\n        return modified;\n    }\n    // protected _insertIcon(icon: string, elem: HTMLElement) {\n    //   const iconElem = document.createElement(\"i\");\n    //   iconElem.className = icon;\n    //   elem.appendChild(iconElem);\n    // }\n    /** Create/update header markup from `this.columns` definition.\n     * @internal\n     */\n    _renderHeaderMarkup() {\n        assert(this.headerElement, \"Expected a headerElement\");\n        const wantHeader = this.hasHeader();\n        setElemDisplay(this.headerElement, wantHeader);\n        if (!wantHeader) {\n            return;\n        }\n        const iconMap = this.iconMap;\n        const colCount = this.columns.length;\n        const headerRow = this.headerElement.querySelector(\".wb-row\");\n        assert(headerRow, \"Expected a row in header element\");\n        headerRow.innerHTML = \"<span class='wb-col'></span>\".repeat(colCount);\n        for (let i = 0; i < colCount; i++) {\n            const col = this.columns[i];\n            const colElem = headerRow.children[i];\n            colElem.style.left = col._ofsPx + \"px\";\n            colElem.style.width = col._widthPx + \"px\";\n            // Add classes from `columns` definition to `<div.wb-col>` cells\n            if (typeof col.headerClasses === \"string\") {\n                col.headerClasses\n                    ? colElem.classList.add(...col.headerClasses.split(\" \"))\n                    : 0;\n            }\n            else {\n                col.classes ? colElem.classList.add(...col.classes.split(\" \")) : 0;\n            }\n            // Add tooltip to column title\n            let tooltip = \"\";\n            if (col.tooltip) {\n                tooltip = escapeTooltip(col.tooltip);\n                tooltip = ` title=\"${tooltip}\"`;\n            }\n            // Add column header icons\n            let addMarkup = \"\";\n            // NOTE: we use CSS float: right to align icons, so they must be added in\n            // reverse order\n            if (toBool(col.menu, this.options.columnsMenu, false)) {\n                const iconClass = \"wb-col-icon-menu \" + iconMap.colMenu;\n                const icon = `<i data-command=menu class=\"wb-col-icon ${iconClass}\"></i>`;\n                addMarkup += icon;\n            }\n            if (toBool(col.sortable, this.options.columnsSortable, false)) {\n                let iconClass = \"wb-col-icon-sort \" + iconMap.colSortable;\n                if (col.sortOrder) {\n                    iconClass += `wb-col-sort-${col.sortOrder}`;\n                    iconClass +=\n                        col.sortOrder === \"asc\" ? iconMap.colSortAsc : iconMap.colSortDesc;\n                }\n                const icon = `<i data-command=sort class=\"wb-col-icon ${iconClass}\"></i>`;\n                addMarkup += icon;\n            }\n            if (toBool(col.filterable, this.options.columnsFilterable, false)) {\n                colElem.classList.toggle(\"wb-col-filter\", !!col.filterActive);\n                let iconClass = \"wb-col-icon-filter \" + iconMap.colFilter;\n                if (col.filterActive) {\n                    iconClass += iconMap.colFilterActive;\n                }\n                const icon = `<i data-command=filter class=\"wb-col-icon ${iconClass}\"></i>`;\n                addMarkup += icon;\n            }\n            // Add resizer to all but the last column\n            if (i < colCount - 1) {\n                if (toBool(col.resizable, this.options.columnsResizable, false)) {\n                    addMarkup +=\n                        '<span class=\"wb-col-resizer wb-col-resizer-active\"></span>';\n                }\n                else {\n                    addMarkup += '<span class=\"wb-col-resizer\"></span>';\n                }\n            }\n            // Create column header\n            const title = escapeHtml(col.title || col.id);\n            colElem.innerHTML = `<span class=\"wb-col-title\"${tooltip}>${title}</span>${addMarkup}`;\n            // Highlight active column\n            if (this.isCellNav()) {\n                colElem.classList.toggle(\"wb-active\", i === this.activeColIdx);\n            }\n        }\n    }\n    /**\n     * Render pending changes that were scheduled using {@link WunderbaumNode.update} if any.\n     *\n     * This is hardly ever neccessary, since we normally either\n     * - call `update(ChangeType.TYPE)` (async, throttled), or\n     * - call `update(ChangeType.TYPE, {immediate: true})` (synchronous)\n     *\n     * `updatePendingModifications()` will only force immediate execution of\n     * pending async changes if any.\n     */\n    updatePendingModifications() {\n        if (this.pendingChangeTypes.size > 0) {\n            this._updateViewportImmediately();\n        }\n    }\n    /** @internal */\n    _createNodeIcon(node, showLoading, showBadge) {\n        const iconMap = this.iconMap;\n        let iconElem;\n        let icon = node.getOption(\"icon\");\n        if (node._errorInfo) {\n            icon = iconMap.error;\n        }\n        else if (node._isLoading && showLoading) {\n            // Status nodes, or nodes without expander (< minExpandLevel) should\n            // display the 'loading' status with the i.wb-icon span\n            icon = iconMap.loading;\n        }\n        if (icon === false) {\n            return null; // explicitly disabled: don't try default icons\n        }\n        if (typeof icon === \"string\") ;\n        else if (node.statusNodeType) {\n            icon = iconMap[node.statusNodeType];\n        }\n        else if (node.expanded) {\n            icon = iconMap.folderOpen;\n        }\n        else if (node.children) {\n            icon = iconMap.folder;\n        }\n        else if (node.lazy) {\n            icon = iconMap.folderLazy;\n        }\n        else {\n            icon = iconMap.doc;\n        }\n        if (!icon) {\n            iconElem = document.createElement(\"i\");\n            iconElem.className = \"wb-icon\";\n        }\n        else if (TEST_HTML.test(icon)) {\n            iconElem = elemFromHtml(icon);\n        }\n        else if (TEST_FILE_PATH.test(icon)) {\n            iconElem = elemFromHtml(`<i class=\"wb-icon\" style=\"background-image: url('${icon}');\">`);\n        }\n        else {\n            // Class name\n            iconElem = document.createElement(\"i\");\n            iconElem.className = \"wb-icon \" + icon;\n        }\n        // Event handler `tree.iconBadge` can return a badge text or HTMLSpanElement\n        const cbRes = showBadge && node._callEvent(\"iconBadge\", { iconSpan: iconElem });\n        let badge = null;\n        if (cbRes != null && cbRes !== false) {\n            let classes = \"\";\n            let tooltip = \"\";\n            if (isPlainObject(cbRes)) {\n                badge = \"\" + cbRes.badge;\n                classes = cbRes.badgeClass ? \" \" + cbRes.badgeClass : \"\";\n                tooltip = cbRes.badgeTooltip ? ` title=\"${cbRes.badgeTooltip}\"` : \"\";\n            }\n            else if (typeof cbRes === \"number\") {\n                badge = \"\" + cbRes;\n            }\n            else {\n                badge = cbRes; // string or HTMLSpanElement\n            }\n            if (typeof badge === \"string\") {\n                badge = elemFromHtml(`<span class=\"wb-badge${classes}\"${tooltip}>${escapeHtml(badge)}</span>`);\n            }\n            if (badge) {\n                iconElem.append(badge);\n            }\n        }\n        return iconElem;\n    }\n    _updateTopBreadcrumb() {\n        const breadcrumb = this.breadcrumb;\n        const topmost = this.getTopmostVpNode(true);\n        const parentList = topmost === null || topmost === void 0 ? void 0 : topmost.getParentList(false, false);\n        if (parentList === null || parentList === void 0 ? void 0 : parentList.length) {\n            breadcrumb.innerHTML = \"\";\n            for (const n of topmost.getParentList(false, false)) {\n                const icon = this._createNodeIcon(n, false, false);\n                if (icon) {\n                    breadcrumb.append(icon, \" \");\n                }\n                const part = document.createElement(\"a\");\n                part.textContent = n.title;\n                part.href = \"#\";\n                part.classList.add(\"wb-breadcrumb\");\n                part.dataset.key = n.key;\n                breadcrumb.append(part, this.options.strings.breadcrumbDelimiter);\n            }\n        }\n        else {\n            breadcrumb.innerHTML = \"&nbsp;\";\n        }\n    }\n    /**\n     * This is the actual update method, which is wrapped inside a throttle method.\n     * It calls `updateColumns()` and `_updateRows()`.\n     *\n     * This protected method should not be called directly but via\n     * {@link WunderbaumNode.update}`, {@link Wunderbaum.update},\n     * or {@link Wunderbaum.updatePendingModifications}.\n     * @internal\n     */\n    _updateViewportImmediately() {\n        if (this._disableUpdateCount) {\n            this.log(`_updateViewportImmediately() IGNORED (disable level: ${this._disableUpdateCount}).`);\n            this._disableUpdateIgnoreCount++;\n            return;\n        }\n        if (this._updateViewportThrottled.pending()) {\n            // this.logWarn(`_updateViewportImmediately() cancel pending timer.`);\n            this._updateViewportThrottled.cancel();\n        }\n        // Shorten container height to avoid v-scrollbar\n        const FIX_ADJUST_HEIGHT = 1;\n        const RF = RenderFlag;\n        const pending = new Set(this.pendingChangeTypes);\n        this.pendingChangeTypes.clear();\n        const scrollOnly = pending.has(RF.scroll) && pending.size === 1;\n        if (scrollOnly) {\n            this._updateRows({ newNodesOnly: true });\n            // this.log(\"_updateViewportImmediately(): scroll only.\");\n        }\n        else {\n            this.log(\"_updateViewportImmediately():\", pending);\n            if (this.options.adjustHeight !== false) {\n                let height = this.listContainerElement.clientHeight;\n                const headerHeight = this.headerElement.clientHeight; // May be 0\n                const wantHeight = this.element.clientHeight - headerHeight - FIX_ADJUST_HEIGHT;\n                if (Math.abs(height - wantHeight) > 1.0) {\n                    // this.log(\"resize\", height, wantHeight);\n                    this.listContainerElement.style.height = wantHeight + \"px\";\n                    height = wantHeight;\n                }\n            }\n            // console.profile(`_updateViewportImmediately()`)\n            if (pending.has(RF.clearMarkup)) {\n                this.visit((n) => {\n                    n.removeMarkup();\n                });\n            }\n            // let widthModified = false;\n            if (pending.has(RF.header)) {\n                // widthModified = this._updateColumnWidths();\n                this._updateColumnWidths();\n                this._renderHeaderMarkup();\n            }\n            this._updateRows();\n            // console.profileEnd(`_updateViewportImmediately()`)\n        }\n        if (this.breadcrumb) {\n            this._updateTopBreadcrumb();\n        }\n        this._callEvent(\"update\");\n    }\n    // /**\n    //  * Assert that TR order matches the natural node order\n    //  * @internal\n    //  */\n    // protected _validateRows(): boolean {\n    //   let trs = this.nodeListElement.childNodes;\n    //   let i = 0;\n    //   let prev = -1;\n    //   let ok = true;\n    //   trs.forEach((element) => {\n    //     const tr = element as HTMLTableRowElement;\n    //     const top = Number.parseInt(tr.style.top);\n    //     const n = (<any>tr)._wb_node;\n    //     // if (i < 4) {\n    //     //   console.info(\n    //     //     `TR#${i}, rowIdx=${n._rowIdx} , top=${top}px: '${n.title}'`\n    //     //   );\n    //     // }\n    //     if (prev >= 0 && top !== prev + ROW_HEIGHT) {\n    //       n.logWarn(\n    //         `TR order mismatch at index ${i}: top=${top}px != ${\n    //           prev + ROW_HEIGHT\n    //         }`\n    //       );\n    //       // throw new Error(\"fault\");\n    //       ok = false;\n    //     }\n    //     prev = top;\n    //     i++;\n    //   });\n    //   return ok;\n    // }\n    /*\n     * - Traverse all *visible* nodes of the whole tree, i.e. skip collapsed nodes.\n     * - Store count of rows to `tree.treeRowCount`.\n     * - Renumber `node._rowIdx` for all visible nodes.\n     * - Calculate the index range that must be rendered to fill the viewport\n     *   (including upper and lower prefetch)\n     * -\n     */\n    _updateRows(options) {\n        // const label = this.logTime(\"_updateRows\");\n        // this.log(\"_updateRows\", opts)\n        options = Object.assign({ newNodesOnly: false }, options);\n        const newNodesOnly = !!options.newNodesOnly;\n        const rowHeight = this.options.rowHeightPx;\n        const vpHeight = this.element.clientHeight;\n        const prefetch = RENDER_MAX_PREFETCH;\n        // const grace_prefetch = RENDER_MAX_PREFETCH - RENDER_MIN_PREFETCH;\n        const ofs = this.element.scrollTop;\n        let startIdx = Math.max(0, ofs / rowHeight - prefetch);\n        startIdx = Math.floor(startIdx);\n        // Make sure start is always even, so the alternating row colors don't\n        // change when scrolling:\n        if (startIdx % 2) {\n            startIdx--;\n        }\n        let endIdx = Math.max(0, (ofs + vpHeight) / rowHeight + prefetch);\n        endIdx = Math.ceil(endIdx);\n        // this.debug(\"render\", opts);\n        const obsoleteNodes = new Set();\n        this.nodeListElement.childNodes.forEach((elem) => {\n            if (elem._wb_node) {\n                obsoleteNodes.add(elem._wb_node);\n            }\n        });\n        let idx = 0;\n        let top = 0;\n        let modified = false;\n        let prevElem = \"first\";\n        this.visitRows(function (node) {\n            // node.log(\"visit\")\n            const rowDiv = node._rowElem;\n            // Renumber all expanded nodes\n            if (node._rowIdx !== idx) {\n                node._rowIdx = idx;\n                modified = true;\n            }\n            if (idx < startIdx || idx > endIdx) {\n                // row is outside viewport bounds\n                if (rowDiv) {\n                    prevElem = rowDiv;\n                }\n            }\n            else if (rowDiv && newNodesOnly) {\n                obsoleteNodes.delete(node);\n                // no need to update existing node markup\n                rowDiv.style.top = idx * rowHeight + \"px\";\n                prevElem = rowDiv;\n            }\n            else {\n                obsoleteNodes.delete(node);\n                // Create new markup\n                if (rowDiv) {\n                    rowDiv.style.top = idx * rowHeight + \"px\";\n                }\n                node._render({ top: top, after: prevElem });\n                // node.log(\"render\", top, prevElem, \"=>\", node._rowElem);\n                prevElem = node._rowElem;\n            }\n            idx++;\n            top += rowHeight;\n        });\n        this.treeRowCount = idx;\n        for (const n of obsoleteNodes) {\n            n._callEvent(\"discard\");\n            n.removeMarkup();\n        }\n        // Resize tree container\n        this.nodeListElement.style.height = `${top}px`;\n        // this.log(\n        //   `_updateRows(scrollOfs:${ofs}, ${startIdx}..${endIdx})`,\n        //   this.nodeListElement.style.height\n        // );\n        // this.logTimeEnd(label);\n        // this._validateRows();\n        return modified;\n    }\n    /**\n     * Call `callback(node)` for all nodes in hierarchical order (depth-first, pre-order).\n     * @see `wb_node.WunderbaumNode.IterableIterator<WunderbaumNode>`\n     * @see {@link WunderbaumNode.visit}.\n     *\n     * @param {function} callback the callback function.\n     *     Return false to stop iteration, return \"skip\" to skip this node and\n     *     children only.\n     * @returns {boolean} false, if the iterator was stopped.\n     */\n    visit(callback) {\n        return this.root.visit(callback, false);\n    }\n    /**\n     * Call callback(node) for all nodes in vertical order, top down (or bottom up).\n     *\n     * Note that this considers expansion state, i.e. filtered nodes and children\n     * of collapsed nodes are skipped, unless `includeHidden` is set.\n     *\n     * Stop iteration if callback() returns false.<br>\n     * Return false if iteration was stopped.\n     *\n     * @returns {boolean} false if iteration was canceled\n     */\n    visitRows(callback, options) {\n        if (!this.root.hasChildren()) {\n            return false;\n        }\n        if (options && options.reverse) {\n            delete options.reverse;\n            return this._visitRowsUp(callback, options);\n        }\n        options = options || {};\n        let i, nextIdx, parent, res, siblings, stopNode, siblingOfs = 0, skipFirstNode = options.includeSelf === false, node = options.start || this.root.children[0];\n        const includeHidden = !!options.includeHidden;\n        const checkFilter = !includeHidden && this.filterMode === \"hide\";\n        parent = node.parent;\n        while (parent) {\n            // visit siblings\n            siblings = parent.children;\n            nextIdx = siblings.indexOf(node) + siblingOfs;\n            assert(nextIdx >= 0, `Could not find ${node} in parent's children: ${parent}`);\n            for (i = nextIdx; i < siblings.length; i++) {\n                node = siblings[i];\n                if (node === stopNode) {\n                    return false;\n                }\n                if (checkFilter &&\n                    !node.statusNodeType &&\n                    !node.match &&\n                    !node.subMatchCount) {\n                    continue;\n                }\n                if (!skipFirstNode && callback(node) === false) {\n                    return false;\n                }\n                skipFirstNode = false;\n                // Dive into node's child nodes\n                if (node.children &&\n                    node.children.length &&\n                    (includeHidden || node.expanded)) {\n                    res = node.visit((n) => {\n                        if (n === stopNode) {\n                            return false;\n                        }\n                        if (checkFilter && !n.match && !n.subMatchCount) {\n                            return \"skip\";\n                        }\n                        if (callback(n) === false) {\n                            return false;\n                        }\n                        if (!includeHidden && n.children && !n.expanded) {\n                            return \"skip\";\n                        }\n                    }, false);\n                    if (res === false) {\n                        return false;\n                    }\n                }\n            }\n            // Visit parent nodes (bottom up)\n            node = parent;\n            parent = parent.parent;\n            siblingOfs = 1; //\n            if (!parent && options.wrap) {\n                this.logDebug(\"visitRows(): wrap around\");\n                assert(options.start, \"`wrap` option requires `start`\");\n                stopNode = options.start;\n                options.wrap = false;\n                parent = this.root;\n                siblingOfs = 0;\n            }\n        }\n        return true;\n    }\n    /**\n     * Call fn(node) for all nodes in vertical order, bottom up.\n     * @internal\n     */\n    _visitRowsUp(callback, options) {\n        let children, idx, parent, node = options.start || this.root.children[0];\n        const includeHidden = !!options.includeHidden;\n        if (options.includeSelf !== false) {\n            if (callback(node) === false) {\n                return false;\n            }\n        }\n        while (true) {\n            parent = node.parent;\n            children = parent.children;\n            if (children[0] === node) {\n                // If this is already the first sibling, goto parent\n                node = parent;\n                if (!node.parent) {\n                    break; // first node of the tree\n                }\n                children = parent.children;\n            }\n            else {\n                // Otherwise, goto prev. sibling\n                idx = children.indexOf(node);\n                node = children[idx - 1];\n                // If the prev. sibling has children, follow down to last descendant\n                while ((includeHidden || node.expanded) &&\n                    node.children &&\n                    node.children.length) {\n                    children = node.children;\n                    parent = node;\n                    node = children[children.length - 1];\n                }\n            }\n            // Skip invisible\n            if (!includeHidden && !node.isVisible()) {\n                continue;\n            }\n            if (callback(node) === false) {\n                return false;\n            }\n        }\n        return true;\n    }\n    /**\n     * Reload the tree with a new source.\n     *\n     * Previous data is cleared. Note that also column- and type defintions may\n     * be passed with the `source` object.\n     * @see {@link Wunderbaum.reload} for a shortcut to reload the last ajax request\n     * and restore the previous state.\n     */\n    async load(source) {\n        this.clear();\n        this._initialSource = source;\n        return this.root.load(source);\n    }\n    /** Reload the tree and optionally restore state.\n     * Source defaults to last ajax url if any.\n     * Restoring the active node requires stable keys\n     * @see {@link WunderbaumOptions.autoKeys}\n     * @see {@link Wunderbaum.load}\n     * @experimental\n     */\n    async reload(options = {}) {\n        const { source = this._initialSource, reactivate = true } = options;\n        if (!source) {\n            this.logWarn(\"No previous ajax source to reload.\");\n            return;\n        }\n        if (!reactivate) {\n            return this.load(source);\n        }\n        const state = this.getState();\n        await this.load(source);\n        return this.setState(state);\n    }\n    /**\n     * Make sure that all nodes in the given keyList are accessible.\n     * This may include loading lazy parent nodes.\n     * Recursively load (and optionally expand) all requested node paths.\n     */\n    async _loadLazyNodes(keyList, options = {}) {\n        const { expand = true } = options;\n        const keySet = new Set(keyList);\n        // Make sure that all parent nodes are loaded (and expand if requested)\n        while (keySet.size > 0) {\n            const pendingNodes = [];\n            const curSet = new Set(keySet);\n            for (const key of curSet) {\n                const node = this.findKey(key);\n                if (!node) {\n                    continue; // key not yet found (need to load lazy parent?)\n                }\n                keySet.delete(key);\n                if (expand) {\n                    pendingNodes.push(node.setExpanded(true));\n                }\n                else if (node.isUnloaded()) {\n                    pendingNodes.push(node.loadLazy());\n                }\n                if (node._rowElem) {\n                    node._render(); // show spinner even is update is suppressed\n                }\n            }\n            if (pendingNodes.length === 0) {\n                // will not load any more nodes, so if if there are still keys\n                // left in the set, we will never find them\n                this.logWarn(`Could not expand ${keySet.size} nodes:`, keySet);\n                break;\n            }\n            await Promise.allSettled(pendingNodes);\n        }\n    }\n    /**\n     * Disable render requests during operations that would trigger many updates.\n     *\n     * ```js\n     * try {\n     *   tree.enableUpdate(false);\n     *   // ... (long running operation that would trigger many updates)\n     *   foo();\n     *   // ... NOTE: make sure that async operations have finished, e.g.\n     *   await foo();\n     * } finally {\n     *   tree.enableUpdate(true);\n     * }\n     * ```\n     */\n    enableUpdate(flag) {\n        /*\n            5  7  9                20       25   30\n        1   >-------------------------------------<\n        2      >--------------------<\n        3         >--------------------------<\n        */\n        if (flag) {\n            assert(this._disableUpdateCount > 0, \"enableUpdate(true) was called too often\");\n            this._disableUpdateCount--;\n            // this.logDebug(\n            //   `enableUpdate(${flag}): count -> ${this._disableUpdateCount}...`\n            // );\n            if (this._disableUpdateCount === 0) {\n                this.logDebug(`enableUpdate(): active again. Re-painting to catch up with ${this._disableUpdateIgnoreCount} ignored update requests...`);\n                this._disableUpdateIgnoreCount = 0;\n                this.update(ChangeType.any, { immediate: true });\n            }\n        }\n        else {\n            this._disableUpdateCount++;\n            // this.logDebug(\n            //   `enableUpdate(${flag}): count -> ${this._disableUpdateCount}...`\n            // );\n            // this._disableUpdate = Date.now();\n        }\n        // return !flag; // return previous value\n    }\n    /* ---------------------------------------------------------------------------\n     * FILTER\n     * -------------------------------------------------------------------------*/\n    /**\n     * Dim or hide unmatched nodes.\n     * @param filter a string to match against node titles, or a callback function.\n     * @param options filter options. Defaults to the `tree.options.filter` settings.\n     * @returns the number of nodes that match the filter.\n     * @example\n     * ```ts\n     * tree.filterNodes(\"foo\", {mode: 'dim', fuzzy: true});\n     * // or pass a callback\n     * tree.filterNodes((node) => { return node.data.foo === true }, {mode: 'hide'});\n     * ```\n     */\n    filterNodes(filter, options) {\n        return this.extensions.filter.filterNodes(filter, options);\n    }\n    /**\n     * Return the number of nodes that match the current filter.\n     * @see {@link Wunderbaum.filterNodes}\n     * @since 0.9.0\n     */\n    countMatches() {\n        return this.extensions.filter.countMatches();\n    }\n    /**\n     * Dim or hide whole branches.\n     * @deprecated Use {@link filterNodes} instead and set `options.matchBranch: true`.\n     */\n    filterBranches(filter, options) {\n        return this.extensions.filter.filterBranches(filter, options);\n    }\n    /**\n     * Reset the filter.\n     */\n    clearFilter() {\n        return this.extensions.filter.clearFilter();\n    }\n    /**\n     * Return true if a filter is currently applied.\n     */\n    isFilterActive() {\n        return !!this.filterMode;\n    }\n    /**\n     * Re-apply current filter.\n     */\n    updateFilter() {\n        return this.extensions.filter.updateFilter();\n    }\n}\nWunderbaum.sequence = 0;\n/** Wunderbaum release version number \"MAJOR.MINOR.PATCH\". */\nWunderbaum.version = \"v0.14.1\"; // Set to semver by 'grunt release'\n/** Expose some useful methods of the util.ts module as `Wunderbaum.util`. */\nWunderbaum.util = util;\n/** A map of default iconMaps.\n * May be used as default, when passing partial icon definition maps:\n * ```js\n * const tree = new mar10.Wunderbaum({\n *   ...\n *   iconMap: Object.assign(Wunderbaum.iconMaps.bootstrap, {\n *     folder: \"bi bi-archive\",\n *   }),\n * });\n * ```\n */\nWunderbaum.iconMaps = defaultIconMaps;\n\nexport { Wunderbaum };\n"
  },
  {
    "path": "dist/wunderbaum.umd.js",
    "content": "(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    typeof define === 'function' && define.amd ? define(['exports'], factory) :\n    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.mar10 = {}));\n})(this, (function (exports) { 'use strict';\n\n    /*!\n     * Wunderbaum - debounce.ts\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n     */\n    /*\n     * debounce & throttle, taken from https://github.com/lodash/lodash v4.17.21\n     * MIT License: https://raw.githubusercontent.com/lodash/lodash/4.17.21-npm/LICENSE\n     * Modified for TypeScript type annotations.\n     */\n    /* --- */\n    /** Detect free variable `global` from Node.js. */\n    const freeGlobal = typeof global === \"object\" &&\n        global !== null &&\n        global.Object === Object &&\n        global;\n    /** Detect free variable `globalThis` */\n    const freeGlobalThis = typeof globalThis === \"object\" &&\n        globalThis !== null &&\n        globalThis.Object == Object &&\n        globalThis;\n    /** Detect free variable `self`. */\n    const freeSelf = typeof self === \"object\" && self !== null && self.Object === Object && self;\n    /** Used as a reference to the global object. */\n    const root = freeGlobalThis || freeGlobal || freeSelf || Function(\"return this\")();\n    /**\n     * Checks if `value` is the\n     * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n     * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n     *\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n     * @example\n     *\n     * isObject({})\n     * // => true\n     *\n     * isObject([1, 2, 3])\n     * // => true\n     *\n     * isObject(Function)\n     * // => true\n     *\n     * isObject(null)\n     * // => false\n     */\n    function isObject(value) {\n        const type = typeof value;\n        return value != null && (type === \"object\" || type === \"function\");\n    }\n    /**\n     * Creates a debounced function that delays invoking `func` until after `wait`\n     * milliseconds have elapsed since the last time the debounced function was\n     * invoked, or until the next browser frame is drawn. The debounced function\n     * comes with a `cancel` method to cancel delayed `func` invocations and a\n     * `flush` method to immediately invoke them. Provide `options` to indicate\n     * whether `func` should be invoked on the leading and/or trailing edge of the\n     * `wait` timeout. The `func` is invoked with the last arguments provided to the\n     * debounced function. Subsequent calls to the debounced function return the\n     * result of the last `func` invocation.\n     *\n     * **Note:** If `leading` and `trailing` options are `true`, `func` is\n     * invoked on the trailing edge of the timeout only if the debounced function\n     * is invoked more than once during the `wait` timeout.\n     *\n     * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n     * until the next tick, similar to `setTimeout` with a timeout of `0`.\n     *\n     * If `wait` is omitted in an environment with `requestAnimationFrame`, `func`\n     * invocation will be deferred until the next frame is drawn (typically about\n     * 16ms).\n     *\n     * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n     * for details over the differences between `debounce` and `throttle`.\n     *\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to debounce.\n     * @param {number} [wait=0]\n     *  The number of milliseconds to delay; if omitted, `requestAnimationFrame` is\n     *  used (if available).\n     * @param [options={}] The options object.\n     * @returns {Function} Returns the new debounced function.\n     * @example\n     *\n     * // Avoid costly calculations while the window size is in flux.\n     * jQuery(window).on('resize', debounce(calculateLayout, 150))\n     *\n     * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n     * jQuery(element).on('click', debounce(sendMail, 300, {\n     *   'leading': true,\n     *   'trailing': false\n     * }))\n     *\n     * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n     * const debounced = debounce(batchLog, 250, { 'maxWait': 1000 })\n     * const source = new EventSource('/stream')\n     * jQuery(source).on('message', debounced)\n     *\n     * // Cancel the trailing debounced invocation.\n     * jQuery(window).on('popstate', debounced.cancel)\n     *\n     * // Check for pending invocations.\n     * const status = debounced.pending() ? \"Pending...\" : \"Ready\"\n     */\n    function debounce(func, wait = 0, options = {}) {\n        let lastArgs, lastThis, maxWait, result, timerId, lastCallTime;\n        let lastInvokeTime = 0;\n        let leading = false;\n        let maxing = false;\n        let trailing = true;\n        // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n        const useRAF = !wait && wait !== 0 && typeof root.requestAnimationFrame === \"function\";\n        if (typeof func !== \"function\") {\n            throw new TypeError(\"Expected a function\");\n        }\n        wait = +wait || 0;\n        if (isObject(options)) {\n            leading = !!options.leading;\n            maxing = \"maxWait\" in options;\n            maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : maxWait;\n            trailing = \"trailing\" in options ? !!options.trailing : trailing;\n        }\n        function invokeFunc(time) {\n            const args = lastArgs;\n            const thisArg = lastThis;\n            lastArgs = lastThis = undefined;\n            lastInvokeTime = time;\n            result = func.apply(thisArg, args);\n            return result;\n        }\n        function startTimer(pendingFunc, wait) {\n            if (useRAF) {\n                root.cancelAnimationFrame(timerId);\n                return root.requestAnimationFrame(pendingFunc);\n            }\n            return setTimeout(pendingFunc, wait);\n        }\n        function cancelTimer(id) {\n            if (useRAF) {\n                return root.cancelAnimationFrame(id);\n            }\n            clearTimeout(id);\n        }\n        function leadingEdge(time) {\n            // Reset any `maxWait` timer.\n            lastInvokeTime = time;\n            // Start the timer for the trailing edge.\n            timerId = startTimer(timerExpired, wait);\n            // Invoke the leading edge.\n            return leading ? invokeFunc(time) : result;\n        }\n        function remainingWait(time) {\n            const timeSinceLastCall = time - lastCallTime;\n            const timeSinceLastInvoke = time - lastInvokeTime;\n            const timeWaiting = wait - timeSinceLastCall;\n            return maxing\n                ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke)\n                : timeWaiting;\n        }\n        function shouldInvoke(time) {\n            const timeSinceLastCall = time - lastCallTime;\n            const timeSinceLastInvoke = time - lastInvokeTime;\n            // Either this is the first call, activity has stopped and we're at the\n            // trailing edge, the system time has gone backwards and we're treating\n            // it as the trailing edge, or we've hit the `maxWait` limit.\n            return (lastCallTime === undefined ||\n                timeSinceLastCall >= wait ||\n                timeSinceLastCall < 0 ||\n                (maxing && timeSinceLastInvoke >= maxWait));\n        }\n        function timerExpired() {\n            const time = Date.now();\n            if (shouldInvoke(time)) {\n                return trailingEdge(time);\n            }\n            // Restart the timer.\n            timerId = startTimer(timerExpired, remainingWait(time));\n        }\n        function trailingEdge(time) {\n            timerId = undefined;\n            // Only invoke if we have `lastArgs` which means `func` has been\n            // debounced at least once.\n            if (trailing && lastArgs) {\n                return invokeFunc(time);\n            }\n            lastArgs = lastThis = undefined;\n            return result;\n        }\n        function cancel() {\n            if (timerId !== undefined) {\n                cancelTimer(timerId);\n            }\n            lastInvokeTime = 0;\n            lastArgs = lastCallTime = lastThis = timerId = undefined;\n        }\n        function flush() {\n            return timerId === undefined ? result : trailingEdge(Date.now());\n        }\n        function pending() {\n            return timerId !== undefined;\n        }\n        function debounced(...args) {\n            const time = Date.now();\n            const isInvoking = shouldInvoke(time);\n            lastArgs = args;\n            // eslint-disable-next-line  @typescript-eslint/no-this-alias\n            lastThis = this;\n            lastCallTime = time;\n            if (isInvoking) {\n                if (timerId === undefined) {\n                    return leadingEdge(lastCallTime);\n                }\n                if (maxing) {\n                    // Handle invocations in a tight loop.\n                    timerId = startTimer(timerExpired, wait);\n                    return invokeFunc(lastCallTime);\n                }\n            }\n            if (timerId === undefined) {\n                timerId = startTimer(timerExpired, wait);\n            }\n            return result;\n        }\n        debounced.cancel = cancel;\n        debounced.flush = flush;\n        debounced.pending = pending;\n        return debounced;\n    }\n    /**\n     * Creates a throttled function that only invokes `func` at most once per\n     * every `wait` milliseconds (or once per browser frame). The throttled function\n     * comes with a `cancel` method to cancel delayed `func` invocations and a\n     * `flush` method to immediately invoke them. Provide `options` to indicate\n     * whether `func` should be invoked on the leading and/or trailing edge of the\n     * `wait` timeout. The `func` is invoked with the last arguments provided to the\n     * throttled function. Subsequent calls to the throttled function return the\n     * result of the last `func` invocation.\n     *\n     * **Note:** If `leading` and `trailing` options are `true`, `func` is\n     * invoked on the trailing edge of the timeout only if the throttled function\n     * is invoked more than once during the `wait` timeout.\n     *\n     * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n     * until the next tick, similar to `setTimeout` with a timeout of `0`.\n     *\n     * If `wait` is omitted in an environment with `requestAnimationFrame`, `func`\n     * invocation will be deferred until the next frame is drawn (typically about\n     * 16ms).\n     *\n     * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n     * for details over the differences between `throttle` and `debounce`.\n     *\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to throttle.\n     * @param {number} [wait=0]\n     *  The number of milliseconds to throttle invocations to; if omitted,\n     *  `requestAnimationFrame` is used (if available).\n     * @param [options={}] The options object.\n     * @returns {Function} Returns the new throttled function.\n     * @example\n     *\n     * // Avoid excessively updating the position while scrolling.\n     * jQuery(window).on('scroll', throttle(updatePosition, 100))\n     *\n     * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n     * const throttled = throttle(renewToken, 300000, { 'trailing': false })\n     * jQuery(element).on('click', throttled)\n     *\n     * // Cancel the trailing throttled invocation.\n     * jQuery(window).on('popstate', throttled.cancel)\n     */\n    function throttle(func, wait = 0, options = {}) {\n        let leading = true;\n        let trailing = true;\n        if (typeof func !== \"function\") {\n            throw new TypeError(\"Expected a function\");\n        }\n        if (isObject(options)) {\n            leading = \"leading\" in options ? !!options.leading : leading;\n            trailing = \"trailing\" in options ? !!options.trailing : trailing;\n        }\n        return debounce(func, wait, {\n            leading,\n            trailing,\n            maxWait: wait,\n        });\n    }\n\n    /*!\n     * Wunderbaum - util\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n     */\n    /** @module util */\n    /** Readable names for `MouseEvent.button` */\n    const MOUSE_BUTTONS = {\n        0: \"\",\n        1: \"left\",\n        2: \"middle\",\n        3: \"right\",\n        4: \"back\",\n        5: \"forward\",\n    };\n    const MAX_INT = 9007199254740991;\n    const userInfo = _getUserInfo();\n    /**True if the client is using a macOS platform. */\n    const isMac = userInfo.isMac;\n    const REX_HTML = /[&<>\"'/]/g; // Escape those characters\n    const REX_TOOLTIP = /[<>\"'/]/g; // Don't escape `&` in tooltips\n    const ENTITY_MAP = {\n        \"&\": \"&amp;\",\n        \"<\": \"&lt;\",\n        \">\": \"&gt;\",\n        '\"': \"&quot;\",\n        \"'\": \"&#39;\",\n        \"/\": \"&#x2F;\",\n    };\n    /** A generic error that can be thrown to indicate a validation error when\n     * handling the `apply` event for a node title or the `change` event for a\n     * grid cell.\n     */\n    class ValidationError extends Error {\n        constructor(message) {\n            super(message);\n            this.name = \"ValidationError\";\n        }\n    }\n    /**\n     * A ES6 Promise, that exposes the resolve()/reject() methods.\n     *\n     * TODO: See [Promise.withResolvers()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers#description)\n     * , a proposed standard, but not yet implemented in any browser.\n     */\n    let Deferred$1 = class Deferred {\n        constructor() {\n            this.thens = [];\n            this.catches = [];\n            this.status = \"\";\n        }\n        resolve(value) {\n            if (this.status) {\n                throw new Error(\"already settled\");\n            }\n            this.status = \"resolved\";\n            this.resolvedValue = value;\n            this.thens.forEach((t) => t(value));\n            this.thens = []; // Avoid memleaks.\n        }\n        reject(error) {\n            if (this.status) {\n                throw new Error(\"already settled\");\n            }\n            this.status = \"rejected\";\n            this.rejectedError = error;\n            this.catches.forEach((c) => c(error));\n            this.catches = []; // Avoid memleaks.\n        }\n        then(cb) {\n            if (status === \"resolved\") {\n                cb(this.resolvedValue);\n            }\n            else {\n                this.thens.unshift(cb);\n            }\n        }\n        catch(cb) {\n            if (this.status === \"rejected\") {\n                cb(this.rejectedError);\n            }\n            else {\n                this.catches.unshift(cb);\n            }\n        }\n        promise() {\n            return {\n                then: this.then,\n                catch: this.catch,\n            };\n        }\n    };\n    /**Throw an `Error` if `cond` is falsey. */\n    function assert(cond, msg) {\n        if (!cond) {\n            msg = msg || \"Assertion failed.\";\n            throw new Error(msg);\n        }\n    }\n    function _getUserInfo() {\n        const nav = navigator;\n        // const ua = nav.userAgentData;\n        const res = {\n            isMac: /Mac/.test(nav.platform),\n        };\n        return res;\n    }\n    /** Run `callback` when document was loaded. */\n    function documentReady(callback) {\n        if (document.readyState === \"loading\") {\n            document.addEventListener(\"DOMContentLoaded\", callback);\n        }\n        else {\n            callback();\n        }\n    }\n    /** Resolve when document was loaded. */\n    function documentReadyPromise() {\n        return new Promise((resolve) => {\n            documentReady(resolve);\n        });\n    }\n    /**\n     * Iterate over Object properties or array elements.\n     *\n     * @param obj `Object`, `Array` or null\n     * @param callback called for every item.\n     *  `this` also contains the item.\n     *  Return `false` to stop the iteration.\n     */\n    function each(obj, callback) {\n        if (obj == null) {\n            // accept `null` or `undefined`\n            return obj;\n        }\n        const length = obj.length;\n        let i = 0;\n        if (typeof length === \"number\") {\n            for (; i < length; i++) {\n                if (callback.call(obj[i], i, obj[i]) === false) {\n                    break;\n                }\n            }\n        }\n        else {\n            for (const k in obj) {\n                if (callback.call(obj[i], k, obj[k]) === false) {\n                    break;\n                }\n            }\n        }\n        return obj;\n    }\n    /** Shortcut for `throw new Error(msg)`. */\n    function error(msg) {\n        throw new Error(msg);\n    }\n    /** Convert `<`, `>`, `&`, `\"`, `'`, and `/` to the equivalent entities. */\n    function escapeHtml(s) {\n        return (\"\" + s).replace(REX_HTML, function (s) {\n            return ENTITY_MAP[s];\n        });\n    }\n    // export function escapeRegExp(s: string) {\n    //   return s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\n    // }\n    /**Convert a regular expression string by escaping special characters (e.g. `\"$\"` -> `\"\\$\"`) */\n    function escapeRegex(s) {\n        return (\"\" + s).replace(/([.?*+^$[\\]\\\\(){}|-])/g, \"\\\\$1\");\n    }\n    /** Convert `<`, `>`, `\"`, `'`, and `/` (but not `&`) to the equivalent entities. */\n    function escapeTooltip(s) {\n        return (\"\" + s).replace(REX_TOOLTIP, function (s) {\n            return ENTITY_MAP[s];\n        });\n    }\n    /** TODO */\n    function extractHtmlText(s) {\n        if (s.indexOf(\">\") >= 0) {\n            error(\"Not implemented\");\n            // return $(\"<div/>\").html(s).text();\n        }\n        return s;\n    }\n    /**\n     * Read the value from an HTML input element.\n     *\n     * If a `<span class=\"wb-col\">` is passed, the first child input is used.\n     * Depending on the target element type, `value` is interpreted accordingly.\n     * For example for a checkbox, a value of true, false, or null is returned if\n     * the element is checked, unchecked, or indeterminate.\n     * For datetime input control a numerical value is assumed, etc.\n     *\n     * Common use case: store the new user input in a `change` event handler:\n     *\n     * ```ts\n     *   change: (e) => {\n     *     const tree = e.tree;\n     *     const node = e.node;\n     *     // Read the value from the input control that triggered the change event:\n     *     let value = tree.getValueFromElem(e.element);\n     *     // and store it to the node model (assuming the column id matches the property name)\n     *     node.data[e.info.colId] = value;\n     *   },\n     * ```\n     * @param elem `<input>` or `<select>` element. Also a parent `span.wb-col` is accepted.\n     * @param coerce pass true to convert date/time inputs to `Date`.\n     * @returns the value\n     */\n    function getValueFromElem(elem, coerce = false) {\n        const tag = elem.tagName;\n        let value = null;\n        if (tag === \"SPAN\" && elem.classList.contains(\"wb-col\")) {\n            const span = elem;\n            const embeddedInput = span.querySelector(\"input,select\");\n            if (embeddedInput) {\n                return getValueFromElem(embeddedInput, coerce);\n            }\n            span.innerText = \"\" + value;\n        }\n        else if (tag === \"INPUT\") {\n            const input = elem;\n            const type = input.type;\n            switch (type) {\n                case \"button\":\n                case \"reset\":\n                case \"submit\":\n                case \"image\":\n                    break;\n                case \"checkbox\":\n                    value = input.indeterminate ? null : input.checked;\n                    break;\n                case \"date\":\n                case \"datetime\":\n                case \"datetime-local\":\n                case \"month\":\n                case \"time\":\n                case \"week\":\n                    value = coerce ? input.valueAsDate : input.value;\n                    break;\n                case \"number\":\n                case \"range\":\n                    value = input.valueAsNumber;\n                    break;\n                case \"radio\":\n                    {\n                        const name = input.name;\n                        const checked = input.parentElement.querySelector(`input[name=\"${name}\"]:checked`);\n                        value = checked ? checked.value : undefined;\n                    }\n                    break;\n                case \"text\":\n                default:\n                    value = input.value;\n            }\n        }\n        else if (tag === \"SELECT\") {\n            const select = elem;\n            value = select.value;\n        }\n        return value;\n    }\n    /**\n     * Set the value of an HTML input element.\n     *\n     * If a `<span class=\"wb-col\">` is passed, the first child input is used.\n     * Depending on the target element type, `value` is interpreted accordingly.\n     * For example a checkbox is set to checked, unchecked, or indeterminate if the\n     * value is truethy, falsy, or `null`.\n     * For datetime input control a numerical value is assumed, etc.\n     *\n     * Common use case: update embedded input controls in a `render` event handler:\n     *\n     * ```ts\n     *   render: (e) => {\n     *     // e.node.log(e.type, e, e.node.data);\n     *\n     *     for (const col of Object.values(e.renderColInfosById)) {\n     *       switch (col.id) {\n     *         default:\n     *           // Assumption: we named column.id === node.data.NAME\n     *           util.setValueToElem(col.elem, e.node.data[col.id]);\n     *           break;\n     *       }\n     *     }\n     *   },\n     * ```\n     *\n     * @param elem `<input>` or `<select>` element Also a parent `span.wb-col` is accepted.\n     * @param value a value that matches the target element.\n     */\n    function setValueToElem(elem, value) {\n        const tag = elem.tagName;\n        if (tag === \"SPAN\" && elem.classList.contains(\"wb-col\")) {\n            const span = elem;\n            const embeddedInput = span.querySelector(\"input,select\");\n            if (embeddedInput) {\n                return setValueToElem(embeddedInput, value);\n            }\n            // No embedded input: simply write as escaped html\n            span.innerText = \"\" + value;\n        }\n        else if (tag === \"INPUT\") {\n            const input = elem;\n            const type = input.type;\n            switch (type) {\n                case \"checkbox\":\n                    // An explicit `null` value is interpreted as 'indeterminate'.\n                    // `undefined` is interpreted as 'unchecked'\n                    input.indeterminate = value === null;\n                    input.checked = !!value;\n                    break;\n                case \"date\":\n                case \"month\":\n                case \"time\":\n                case \"week\":\n                case \"datetime\":\n                case \"datetime-local\":\n                    input.valueAsDate = new Date(value);\n                    break;\n                case \"number\":\n                case \"range\":\n                    if (value == null) {\n                        input.value = value;\n                    }\n                    else {\n                        input.valueAsNumber = value;\n                    }\n                    break;\n                case \"radio\":\n                    error(`Not yet implemented: ${type}`);\n                    // const name = input.name;\n                    // const checked = input.parentElement!.querySelector(\n                    //   `input[name=\"${name}\"]:checked`\n                    // );\n                    // value = checked ? (<HTMLInputElement>checked).value : undefined;\n                    break;\n                case \"button\":\n                case \"reset\":\n                case \"submit\":\n                case \"image\":\n                    break;\n                case \"text\":\n                default:\n                    input.value = value !== null && value !== void 0 ? value : \"\";\n            }\n        }\n        else if (tag === \"SELECT\") {\n            const select = elem;\n            if (value == null) {\n                select.selectedIndex = -1;\n            }\n            else {\n                select.value = value;\n            }\n        }\n    }\n    /** Show/hide element by setting the `display` style to 'none'. */\n    function setElemDisplay(elem, flag) {\n        const style = elemFromSelector(elem).style;\n        if (flag) {\n            if (style.display === \"none\") {\n                style.display = \"\";\n            }\n        }\n        else if (style.display === \"\") {\n            style.display = \"none\";\n        }\n    }\n    /** Create and return an unconnected `HTMLElement` from a HTML string. */\n    function elemFromHtml(html) {\n        const t = document.createElement(\"template\");\n        t.innerHTML = html.trim();\n        return t.content.firstElementChild;\n    }\n    const _IGNORE_KEYS = new Set([\"Alt\", \"Control\", \"Meta\", \"Shift\"]);\n    /** Return a HtmlElement from selector or cast an existing element. */\n    function elemFromSelector(obj) {\n        if (!obj) {\n            return null; //(null as unknown) as HTMLElement;\n        }\n        if (typeof obj === \"string\") {\n            return document.querySelector(obj);\n        }\n        return obj;\n    }\n    /**\n     * Return a canonical descriptive string for a keyboard or mouse event.\n     *\n     * The result also contains a prefix for modifiers if any, for example\n     * `\"x\"`, `\"F2\"`, `\"Control+Home\"`, or `\"Shift+clickright\"`.\n     * This is especially useful in `switch` statements, to make sure that modifier\n     * keys are considered and handled correctly:\n     * ```ts\n     *   const eventName = util.eventToString(e);\n     *   switch (eventName) {\n     *     case \"+\":\n     *     case \"Add\":\n     *       ...\n     *       break;\n     *     case \"Enter\":\n     *     case \"End\":\n     *     case \"Control+End\":\n     *     case \"Meta+ArrowDown\":\n     *     case \"PageDown\":\n     *       ...\n     *       break;\n     *   }\n     * ```\n     */\n    function eventToString(event) {\n        const key = event.key;\n        const et = event.type;\n        const s = [];\n        if (event.altKey) {\n            s.push(\"Alt\");\n        }\n        if (event.ctrlKey) {\n            s.push(\"Control\");\n        }\n        if (event.metaKey) {\n            s.push(\"Meta\");\n        }\n        if (event.shiftKey) {\n            s.push(\"Shift\");\n        }\n        if (et === \"click\" || et === \"dblclick\") {\n            s.push(MOUSE_BUTTONS[event.button] + et);\n        }\n        else if (et === \"wheel\") {\n            s.push(et);\n            // } else if (!IGNORE_KEYCODES[key]) {\n            //   s.push(\n            //     SPECIAL_KEYCODES[key] ||\n            //     String.fromCharCode(key).toLowerCase()\n            //   );\n        }\n        else if (!_IGNORE_KEYS.has(key)) {\n            s.push(key);\n        }\n        return s.join(\"+\");\n    }\n    /**\n     * Copy allproperties from one or more source objects to a target object.\n     *\n     * @returns the modified target object.\n     */\n    // TODO: use Object.assign()? --> https://stackoverflow.com/a/42740894\n    // TODO: support deep merge --> https://stackoverflow.com/a/42740894\n    function extend(...args) {\n        for (let i = 1; i < args.length; i++) {\n            const arg = args[i];\n            if (arg == null) {\n                continue;\n            }\n            for (const key in arg) {\n                if (Object.prototype.hasOwnProperty.call(arg, key)) {\n                    args[0][key] = arg[key];\n                }\n            }\n        }\n        return args[0];\n    }\n    /** Return true if `obj` is of type `array`. */\n    function isArray(obj) {\n        return Array.isArray(obj);\n    }\n    /** Return true if `obj` is of type `Object` and has no properties. */\n    function isEmptyObject(obj) {\n        return Object.keys(obj).length === 0 && obj.constructor === Object;\n    }\n    /** Return true if `obj` is of type `function`. */\n    function isFunction(obj) {\n        return typeof obj === \"function\";\n    }\n    /** Return true if `obj` is of type `Object`. */\n    function isPlainObject(obj) {\n        return Object.prototype.toString.call(obj) === \"[object Object]\";\n    }\n    /** A dummy function that does nothing ('no operation'). */\n    function noop(...args) { }\n    function onEvent(rootTarget, eventNames, selectorOrHandler, handlerOrNone) {\n        let selector, handler;\n        rootTarget = elemFromSelector(rootTarget);\n        // rootTarget = eventTargetFromSelector<EventTarget>(rootTarget)!;\n        if (handlerOrNone) {\n            selector = selectorOrHandler;\n            handler = handlerOrNone;\n        }\n        else {\n            selector = \"\";\n            handler = selectorOrHandler;\n        }\n        eventNames.split(\" \").forEach((evn) => {\n            rootTarget.addEventListener(evn, function (e) {\n                if (!selector) {\n                    return handler(e); // no event delegation\n                }\n                else if (e.target) {\n                    let elem = e.target;\n                    if (elem.matches(selector)) {\n                        return handler(e);\n                    }\n                    elem = elem.closest(selector);\n                    if (elem) {\n                        return handler(e);\n                    }\n                }\n            });\n        });\n    }\n    /** Return a wrapped handler method, that provides `this._super` and `this._superApply`.\n     *\n     * ```ts\n      // Implement `opts.createNode` event to add the 'draggable' attribute\n      overrideMethod(ctx.options, \"createNode\", (event, data) => {\n        // Default processing if any\n        this._super.apply(this, event, data);\n        // Add 'draggable' attribute\n        data.node.span.draggable = true;\n      });\n      ```\n      */\n    function overrideMethod(instance, methodName, handler, ctx) {\n        let prevSuper, prevSuperApply;\n        const self = ctx || instance;\n        const prevFunc = instance[methodName];\n        const _super = (...args) => {\n            return prevFunc.apply(self, args);\n        };\n        const _superApply = (argsArray) => {\n            return prevFunc.apply(self, argsArray);\n        };\n        const wrapper = (...args) => {\n            try {\n                prevSuper = self._super;\n                prevSuperApply = self._superApply;\n                self._super = _super;\n                self._superApply = _superApply;\n                return handler.apply(self, args);\n            }\n            finally {\n                self._super = prevSuper;\n                self._superApply = prevSuperApply;\n            }\n        };\n        instance[methodName] = wrapper;\n    }\n    /** Run function after ms milliseconds and return a promise that resolves when done. */\n    function setTimeoutPromise(callback, ms) {\n        return new Promise((resolve, reject) => {\n            setTimeout(() => {\n                try {\n                    resolve(callback.apply(this));\n                }\n                catch (err) {\n                    reject(err);\n                }\n            }, ms);\n        });\n    }\n    /**\n     * Wait `ms` microseconds.\n     *\n     * Example:\n     * ```js\n     * await sleep(1000);\n     * ```\n     * @param ms duration\n     * @returns\n     */\n    async function sleep(ms) {\n        return new Promise((resolve) => setTimeout(resolve, ms));\n    }\n    /**\n     * Set or rotate checkbox status with support for tri-state.\n     *\n     * An initial 'indeterminate' state becomes 'checked' on the first call.\n     *\n     * If the input element has the class 'wb-tristate' assigned, the sequence is:<br>\n     * 'indeterminate' -> 'checked' -> 'unchecked' -> 'indeterminate' -> ...<br>\n     * Otherwise we toggle like <br>\n     * 'checked' -> 'unchecked' -> 'checked' -> ...\n     */\n    function toggleCheckbox(element, value, tristate) {\n        const input = elemFromSelector(element);\n        assert(input.type === \"checkbox\", `Expected a checkbox: ${input.type}`);\n        tristate !== null && tristate !== void 0 ? tristate : (tristate = input.classList.contains(\"wb-tristate\") || input.indeterminate);\n        if (value === undefined) {\n            const curValue = input.indeterminate ? null : input.checked;\n            switch (curValue) {\n                case true:\n                    value = false;\n                    break;\n                case false:\n                    value = tristate ? null : true;\n                    break;\n                case null:\n                    value = true;\n                    break;\n            }\n        }\n        input.indeterminate = value == null;\n        input.checked = !!value;\n    }\n    /**\n     * Return `opts.NAME` if opts is valid and\n     *\n     * @param opts dict, object, or null\n     * @param name option name (use dot notation to access extension option, e.g. `filter.mode`)\n     * @param defaultValue returned when `opts` is not an object, or does not have a NAME property\n     */\n    function getOption(opts, name, defaultValue = undefined) {\n        let ext;\n        // Lookup `name` in options dict\n        if (opts && name.indexOf(\".\") >= 0) {\n            [ext, name] = name.split(\".\");\n            opts = opts[ext];\n        }\n        const value = opts ? opts[name] : null;\n        // Use value from value options dict, fallback do default\n        return value !== null && value !== void 0 ? value : defaultValue;\n    }\n    /** Return the next value from a list of values (rotating). @since 0.11 */\n    function rotate(value, values) {\n        const idx = values.indexOf(value);\n        return values[(idx + 1) % values.length];\n    }\n    /** Convert an Array or space-separated string to a Set. */\n    function toSet(val) {\n        if (val instanceof Set) {\n            return val;\n        }\n        if (typeof val === \"string\") {\n            const set = new Set();\n            for (const c of val.split(\" \")) {\n                set.add(c.trim());\n            }\n            return set;\n        }\n        if (Array.isArray(val)) {\n            return new Set(val);\n        }\n        throw new Error(\"Cannot convert to Set<string>: \" + val);\n    }\n    /** Convert a pixel string to number.\n     * We accept a number or a string like '123px'. If undefined, the first default\n     * value that is a number or a string ending with 'px' is returned.\n     *\n     * Example:\n     * ```js\n     * let x = undefined;\n     * let y = \"123px\";\n     * const width = util.toPixel(x, y, 100);  // returns 123\n     * ```\n     */\n    function toPixel(...defaults) {\n        for (const d of defaults) {\n            if (typeof d === \"number\") {\n                return d;\n            }\n            if (typeof d === \"string\" && d.endsWith(\"px\")) {\n                return parseInt(d, 10);\n            }\n            assert(d == null, `Expected a number or string like '123px': ${d}`);\n        }\n        throw new Error(`Expected a string like '123px': ${defaults}`);\n    }\n    /** Cast any value to <T>. */\n    function unsafeCast(value) {\n        return value;\n    }\n    /** Return the the boolean value of the first non-null element.\n     * Example:\n     * ```js\n     * const opts = { flag: true };\n     * const value = util.toBool(opts.foo, opts.flag, false);  // returns true\n     * ```\n     */\n    function toBool(...boolDefaults) {\n        for (const d of boolDefaults) {\n            if (d != null) {\n                return !!d;\n            }\n        }\n        throw new Error(\"No default boolean value provided\");\n    }\n    /**\n     * Return `val` unless `val` is a number in which case we convert to boolean.\n     * This is useful when a boolean value is stored as a 0/1 (e.g. in JSON) and\n     * we still want to maintain string values. null and undefined are returned as\n     * is. E.g. `checkbox` may be boolean or 'radio'.\n     */\n    function intToBool(val) {\n        return typeof val === \"number\" ? !!val : val;\n    }\n    // /** Check if a string is contained in an Array or Set. */\n    // export function isAnyOf(s: string, items: Array<string>|Set<string>): boolean {\n    //   return Array.prototype.includes.call(items, s)\n    // }\n    // /** Check if an Array or Set has at least one matching entry. */\n    // export function hasAnyOf(container: Array<string>|Set<string>, items: Array<string>): boolean {\n    //   if (Array.isArray(container)) {\n    //     return container.some(v => )\n    //   }\n    //   return container.some(v => {})\n    //   // const container = toSet(items);\n    //   // const itemSet = toSet(items);\n    //   // Array.prototype.includes\n    //   // throw new Error(\"Cannot convert to Set<string>: \" + val);\n    // }\n    /** Return a canonical string representation for an object's type (e.g. 'array', 'number', ...). */\n    function type(obj) {\n        return Object.prototype.toString\n            .call(obj)\n            .replace(/^\\[object (.+)\\]$/, \"$1\")\n            .toLowerCase();\n    }\n    /**\n     * Return a function that can be called instead of `callback`, but guarantees\n     * a limited execution rate.\n     * The execution rate is calculated based on the runtime duration of the\n     * previous call.\n     * Example:\n     * ```js\n     * throttledFoo = util.adaptiveThrottle(foo.bind(this), {});\n     * throttledFoo();\n     * throttledFoo();\n     * ```\n     */\n    function adaptiveThrottle(callback, options) {\n        const opts = Object.assign({\n            minDelay: 16,\n            defaultDelay: 200,\n            maxDelay: 5000,\n            delayFactor: 2.0,\n        }, options);\n        const minDelay = Math.max(16, +opts.minDelay);\n        const maxDelay = +opts.maxDelay;\n        let waiting = 0; // Initially, we're not waiting\n        let pendingArgs = null;\n        let pendingTimer = null;\n        const throttledFn = (...args) => {\n            if (waiting) {\n                pendingArgs = args;\n                // console.log(`adaptiveThrottle() queueing request #${waiting}...`, args);\n                waiting += 1;\n            }\n            else {\n                // Prevent invocations while running or blocking\n                waiting = 1;\n                const useArgs = args; // pendingArgs || args;\n                pendingArgs = null;\n                // console.log(`adaptiveThrottle() execute...`, useArgs);\n                const start = Date.now();\n                try {\n                    callback.apply(this, useArgs);\n                }\n                catch (error) {\n                    console.error(error); // eslint-disable-line no-console\n                }\n                const elap = Date.now() - start;\n                const curDelay = Math.min(Math.max(minDelay, elap * opts.delayFactor), maxDelay);\n                const useDelay = Math.max(minDelay, curDelay - elap);\n                // console.log(\n                //   `adaptiveThrottle() calling worker took ${elap}ms. delay = ${curDelay}ms, using ${useDelay}ms`,\n                //   pendingArgs\n                // );\n                pendingTimer = setTimeout(() => {\n                    // Unblock, and trigger pending requests if any\n                    // const skipped = waiting - 1;\n                    pendingTimer = null;\n                    waiting = 0; // And allow future invocations\n                    if (pendingArgs != null) {\n                        // There was another request while running or waiting\n                        // console.log(\n                        //   `adaptiveThrottle() re-trigger (missed ${skipped})...`,\n                        //   pendingArgs\n                        // );\n                        throttledFn.apply(this, pendingArgs);\n                    }\n                }, useDelay);\n            }\n        };\n        throttledFn.cancel = () => {\n            if (pendingTimer) {\n                clearTimeout(pendingTimer);\n                pendingTimer = null;\n            }\n            pendingArgs = null;\n            waiting = 0;\n        };\n        throttledFn.pending = () => {\n            return !!pendingTimer;\n        };\n        throttledFn.flush = () => {\n            throw new Error(\"Not implemented\");\n        };\n        return throttledFn;\n    }\n    /**\n     * MurmurHash3 implementation for strings.\n     * @param key The input string to hash.\n     * @param asString Optional convert result to zero-padded string of 8 characters.\n     * @param seed Optional seed value.\n     * @returns A 32-bit hash as a number or string.\n     */\n    function murmurHash3(key, asString = true, seed = 0) {\n        let h1 = seed;\n        const remainder = key.length & 3; // key.length % 4\n        const bytes = key.length - remainder;\n        const c1 = 0xcc9e2d51;\n        const c2 = 0x1b873593;\n        let i = 0;\n        while (i < bytes) {\n            let k1 = (key.charCodeAt(i) & 0xff) |\n                ((key.charCodeAt(++i) & 0xff) << 8) |\n                ((key.charCodeAt(++i) & 0xff) << 16) |\n                ((key.charCodeAt(++i) & 0xff) << 24);\n            ++i;\n            k1 = Math.imul(k1, c1);\n            k1 = (k1 << 15) | (k1 >>> 17);\n            k1 = Math.imul(k1, c2);\n            h1 ^= k1;\n            h1 = (h1 << 13) | (h1 >>> 19);\n            h1 = Math.imul(h1, 5) + 0xe6546b64;\n        }\n        let k1 = 0;\n        switch (remainder) {\n            case 3:\n                k1 ^= (key.charCodeAt(i + 2) & 0xff) << 16;\n            // fall through\n            case 2:\n                k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8;\n            // fall through\n            case 1:\n                k1 ^= key.charCodeAt(i) & 0xff;\n                k1 = Math.imul(k1, c1);\n                k1 = (k1 << 15) | (k1 >>> 17);\n                k1 = Math.imul(k1, c2);\n                h1 ^= k1;\n        }\n        h1 ^= key.length;\n        h1 ^= h1 >>> 16;\n        h1 = Math.imul(h1, 0x85ebca6b);\n        h1 ^= h1 >>> 13;\n        h1 = Math.imul(h1, 0xc2b2ae35);\n        h1 ^= h1 >>> 16;\n        if (asString) {\n            // Convert to 8 digit hex string\n            return (h1 >>> 0).toString(16).padStart(8, \"0\");\n        }\n        return h1 >>> 0; // Convert to unsigned 32-bit integer\n    }\n\n    var util = /*#__PURE__*/Object.freeze({\n        __proto__: null,\n        Deferred: Deferred$1,\n        MAX_INT: MAX_INT,\n        MOUSE_BUTTONS: MOUSE_BUTTONS,\n        ValidationError: ValidationError,\n        adaptiveThrottle: adaptiveThrottle,\n        assert: assert,\n        debounce: debounce,\n        documentReady: documentReady,\n        documentReadyPromise: documentReadyPromise,\n        each: each,\n        elemFromHtml: elemFromHtml,\n        elemFromSelector: elemFromSelector,\n        error: error,\n        escapeHtml: escapeHtml,\n        escapeRegex: escapeRegex,\n        escapeTooltip: escapeTooltip,\n        eventToString: eventToString,\n        extend: extend,\n        extractHtmlText: extractHtmlText,\n        getOption: getOption,\n        getValueFromElem: getValueFromElem,\n        intToBool: intToBool,\n        isArray: isArray,\n        isEmptyObject: isEmptyObject,\n        isFunction: isFunction,\n        isMac: isMac,\n        isPlainObject: isPlainObject,\n        murmurHash3: murmurHash3,\n        noop: noop,\n        onEvent: onEvent,\n        overrideMethod: overrideMethod,\n        rotate: rotate,\n        setElemDisplay: setElemDisplay,\n        setTimeoutPromise: setTimeoutPromise,\n        setValueToElem: setValueToElem,\n        sleep: sleep,\n        throttle: throttle,\n        toBool: toBool,\n        toPixel: toPixel,\n        toSet: toSet,\n        toggleCheckbox: toggleCheckbox,\n        type: type,\n        unsafeCast: unsafeCast\n    });\n\n    /*!\n     * Wunderbaum - types\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n     */\n    /**\n     * Possible values for {@link WunderbaumNode.update} and {@link Wunderbaum.update}.\n     */\n    var ChangeType;\n    (function (ChangeType) {\n        /** Re-render the whole viewport, headers, and all rows. */\n        ChangeType[\"any\"] = \"any\";\n        /** A node's title, icon, columns, or status have changed. Update the existing row markup. */\n        ChangeType[\"data\"] = \"data\";\n        /** The `tree.columns` definition has changed beyond simple width adjustments. */\n        ChangeType[\"colStructure\"] = \"colStructure\";\n        /** The viewport/window was resized. Adjust layout attributes for all elements. */\n        ChangeType[\"resize\"] = \"resize\";\n        /** A node's definition has changed beyond status and data. Re-render the whole row's markup. */\n        ChangeType[\"row\"] = \"row\";\n        /** Nodes have been added, removed, etc. Update markup. */\n        ChangeType[\"structure\"] = \"structure\";\n        /** A node's status has changed. Update current row's classes, to reflect active, selected, ... */\n        ChangeType[\"status\"] = \"status\";\n        /** Vertical scroll event. Update the 'top' property of all rows. */\n        ChangeType[\"scroll\"] = \"scroll\";\n    })(ChangeType || (ChangeType = {}));\n    /** @internal */\n    var RenderFlag;\n    (function (RenderFlag) {\n        RenderFlag[\"clearMarkup\"] = \"clearMarkup\";\n        RenderFlag[\"header\"] = \"header\";\n        RenderFlag[\"redraw\"] = \"redraw\";\n        RenderFlag[\"scroll\"] = \"scroll\";\n    })(RenderFlag || (RenderFlag = {}));\n    /** Possible values for {@link WunderbaumNode.setStatus}. */\n    var NodeStatusType;\n    (function (NodeStatusType) {\n        NodeStatusType[\"ok\"] = \"ok\";\n        NodeStatusType[\"loading\"] = \"loading\";\n        NodeStatusType[\"error\"] = \"error\";\n        NodeStatusType[\"noData\"] = \"noData\";\n        NodeStatusType[\"paging\"] = \"paging\";\n    })(NodeStatusType || (NodeStatusType = {}));\n    /** Define the subregion of a node, where an event occurred. */\n    var NodeRegion;\n    (function (NodeRegion) {\n        NodeRegion[\"unknown\"] = \"\";\n        NodeRegion[\"checkbox\"] = \"checkbox\";\n        NodeRegion[\"column\"] = \"column\";\n        NodeRegion[\"expander\"] = \"expander\";\n        NodeRegion[\"icon\"] = \"icon\";\n        NodeRegion[\"prefix\"] = \"prefix\";\n        NodeRegion[\"title\"] = \"title\";\n    })(NodeRegion || (NodeRegion = {}));\n    /** Initial navigation mode and possible transition. */\n    var NavModeEnum;\n    (function (NavModeEnum) {\n        /** Start with row mode, but allow cell-nav mode */\n        NavModeEnum[\"startRow\"] = \"startRow\";\n        /** Cell-nav mode only */\n        NavModeEnum[\"cell\"] = \"cell\";\n        /** Start in cell-nav mode, but allow row mode */\n        NavModeEnum[\"startCell\"] = \"startCell\";\n        /** Row mode only */\n        NavModeEnum[\"row\"] = \"row\";\n    })(NavModeEnum || (NavModeEnum = {}));\n\n    /*!\n     * Wunderbaum - wb_extension_base\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n     */\n    class WunderbaumExtension {\n        constructor(tree, id, defaults) {\n            this.enabled = true;\n            this.tree = tree;\n            this.id = id;\n            this.treeOpts = tree.options;\n            const opts = tree.options;\n            if (this.treeOpts[id] === undefined) {\n                opts[id] = this.extensionOpts = extend({}, defaults);\n            }\n            else {\n                // TODO: do we break existing object instance references here?\n                this.extensionOpts = extend({}, defaults, opts[id]);\n                opts[id] = this.extensionOpts;\n            }\n            this.enabled = this.getPluginOption(\"enabled\", true);\n        }\n        /** Called on tree (re)init after all extensions are added, but before loading.*/\n        init() {\n            this.tree.element.classList.add(\"wb-ext-\" + this.id);\n        }\n        // protected callEvent(type: string, extra?: any): any {\n        //   let func = this.extensionOpts[type];\n        //   if (func) {\n        //     return func.call(\n        //       this.tree,\n        //       util.extend(\n        //         {\n        //           event: this.id + \".\" + type,\n        //         },\n        //         extra\n        //       )\n        //     );\n        //   }\n        // }\n        getPluginOption(name, defaultValue) {\n            var _a;\n            return (_a = this.extensionOpts[name]) !== null && _a !== void 0 ? _a : defaultValue;\n        }\n        setPluginOption(name, value) {\n            this.extensionOpts[name] = value;\n        }\n        setEnabled(flag = true) {\n            return this.setPluginOption(\"enabled\", !!flag);\n            // this.enabled = !!flag;\n        }\n        onKeyEvent(data) {\n            return;\n        }\n        onRender(data) {\n            return;\n        }\n    }\n\n    /*!\n     * Wunderbaum - ext-filter\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n     */\n    const START_MARKER = \"\\uFFF7\";\n    const END_MARKER = \"\\uFFF8\";\n    const RE_START_MARKER = new RegExp(escapeRegex(START_MARKER), \"g\");\n    const RE_END_MARTKER = new RegExp(escapeRegex(END_MARKER), \"g\");\n    class FilterExtension extends WunderbaumExtension {\n        constructor(tree) {\n            super(tree, \"filter\", {\n                autoApply: true, // Re-apply last filter if lazy data is loaded\n                autoExpand: false, // Expand all branches that contain matches while filtered\n                matchBranch: false, // Whether to implicitly match all children of matched nodes\n                connect: null, // Element or selector of an input control for filter query strings\n                fuzzy: false, // Match single characters in order, e.g. 'fb' will match 'FooBar'\n                hideExpanders: false, // Hide expanders if all child nodes are hidden by filter\n                highlight: true, // Highlight matches by wrapping inside <mark> tags\n                leavesOnly: false, // Match end nodes only\n                mode: \"dim\", // Grayout unmatched nodes (pass \"hide\" to remove unmatched node instead)\n                noData: true, // Display a 'no data' status node if result is empty\n            });\n            this.queryInput = null;\n            this.prevButton = null;\n            this.nextButton = null;\n            this.modeButton = null;\n            this.matchInfoElem = null;\n            this.lastFilterArgs = null;\n        }\n        init() {\n            super.init();\n            const connect = this.getPluginOption(\"connect\");\n            if (connect) {\n                this._connectControls();\n            }\n        }\n        setPluginOption(name, value) {\n            super.setPluginOption(name, value);\n            switch (name) {\n                case \"mode\":\n                    this.tree.filterMode =\n                        value === \"hide\" ? \"hide\" : value === \"mark\" ? \"mark\" : \"dim\";\n                    this.tree.updateFilter();\n                    break;\n            }\n        }\n        _updatedConnectedControls() {\n            var _a;\n            const filterActive = this.tree.filterMode !== null;\n            const activeNode = this.tree.getActiveNode();\n            const matchCount = filterActive ? this.countMatches() : 0;\n            const strings = this.treeOpts.strings;\n            let matchIdx = \"?\";\n            if (this.matchInfoElem) {\n                if (filterActive) {\n                    let info;\n                    if (matchCount === 0) {\n                        info = strings.noMatch;\n                    }\n                    else if (activeNode && activeNode.match >= 1) {\n                        matchIdx = (_a = activeNode.match) !== null && _a !== void 0 ? _a : \"?\";\n                        info = strings.matchIndex;\n                    }\n                    else {\n                        info = strings.queryResult;\n                    }\n                    info = info\n                        .replace(\"${count}\", this.tree.count().toLocaleString())\n                        .replace(\"${match}\", \"\" + matchIdx)\n                        .replace(\"${matches}\", matchCount.toLocaleString());\n                    this.matchInfoElem.textContent = info;\n                }\n                else {\n                    this.matchInfoElem.textContent = \"\";\n                }\n            }\n            if (this.nextButton instanceof HTMLButtonElement) {\n                this.nextButton.disabled = !matchCount;\n            }\n            if (this.prevButton instanceof HTMLButtonElement) {\n                this.prevButton.disabled = !matchCount;\n            }\n            if (this.modeButton) {\n                this.modeButton.disabled = !filterActive;\n                this.modeButton.classList.toggle(\"wb-filter-hide\", this.tree.filterMode === \"hide\");\n            }\n        }\n        _connectControls() {\n            const tree = this.tree;\n            const connect = this.getPluginOption(\"connect\");\n            if (!connect) {\n                return;\n            }\n            this.queryInput = elemFromSelector(connect.inputElem);\n            if (!this.queryInput) {\n                throw new Error(`Invalid 'filter.connect' option: ${connect.inputElem}.`);\n            }\n            this.prevButton = elemFromSelector(connect.prevButton);\n            this.nextButton = elemFromSelector(connect.nextButton);\n            this.modeButton = elemFromSelector(connect.modeButton);\n            this.matchInfoElem = elemFromSelector(connect.matchInfoElem);\n            if (this.prevButton) {\n                onEvent(this.prevButton, \"click\", () => {\n                    tree.findRelatedNode(tree.getActiveNode() || tree.getFirstChild(), \"prevMatch\");\n                    this._updatedConnectedControls();\n                });\n            }\n            if (this.nextButton) {\n                onEvent(this.nextButton, \"click\", () => {\n                    tree.findRelatedNode(tree.getActiveNode() || tree.getFirstChild(), \"nextMatch\");\n                    this._updatedConnectedControls();\n                });\n            }\n            if (this.modeButton) {\n                onEvent(this.modeButton, \"click\", (e) => {\n                    if (!this.tree.filterMode) {\n                        return;\n                    }\n                    this.setPluginOption(\"mode\", tree.filterMode === \"dim\" ? \"hide\" : \"dim\");\n                });\n            }\n            onEvent(this.queryInput, \"input\", debounce((e) => {\n                this.filterNodes(this.queryInput.value.trim(), {});\n            }, 700));\n            this._updatedConnectedControls();\n        }\n        _applyFilterNoUpdate(filter, _opts) {\n            return this.tree.runWithDeferredUpdate(() => {\n                return this._applyFilterImpl(filter, _opts);\n            });\n        }\n        _applyFilterImpl(filter, _opts) {\n            var _a;\n            let //temp,\n            count = 0;\n            const start = Date.now();\n            const tree = this.tree;\n            const treeOpts = tree.options;\n            const prevAutoCollapse = treeOpts.autoCollapse;\n            // Use default options from `tree.options.filter`, but allow to override them\n            const opts = extend({}, treeOpts.filter, _opts);\n            const hideMode = opts.mode === \"hide\";\n            const matchBranch = !!opts.matchBranch;\n            const leavesOnly = !!opts.leavesOnly && !matchBranch;\n            let filterRegExp;\n            let highlightRegExp;\n            // Default to 'match title substring (case insensitive)'\n            if (typeof filter === \"string\" || filter instanceof RegExp) {\n                if (filter === \"\") {\n                    tree.logInfo(\"Passing an empty string as a filter is handled as clearFilter().\");\n                    this.clearFilter();\n                    return 0;\n                }\n                if (opts.fuzzy) {\n                    assert(typeof filter === \"string\", \"fuzzy filter must be a string\");\n                    // See https://codereview.stackexchange.com/questions/23899/faster-javascript-fuzzy-string-matching-function/23905#23905\n                    // and http://www.quora.com/How-is-the-fuzzy-search-algorithm-in-Sublime-Text-designed\n                    // and http://www.dustindiaz.com/autocomplete-fuzzy-matching\n                    const matchReString = filter\n                        .split(\"\")\n                        // Escaping the `filter` will not work because,\n                        // it gets further split into individual characters. So,\n                        // escape each character after splitting\n                        .map(escapeRegex)\n                        .reduce(function (a, b) {\n                        // create capture groups for parts that comes before\n                        // the character\n                        return a + \"([^\" + b + \"]*)\" + b;\n                    }, \"\");\n                    filterRegExp = new RegExp(matchReString, \"i\");\n                    // highlightRegExp = new RegExp(escapeRegex(filter), \"gi\");\n                }\n                else if (filter instanceof RegExp) {\n                    filterRegExp = filter;\n                    highlightRegExp = filter;\n                }\n                else {\n                    const matchReString = escapeRegex(filter); // make sure a '.' is treated literally\n                    filterRegExp = new RegExp(matchReString, \"i\");\n                    highlightRegExp = new RegExp(matchReString, \"gi\");\n                }\n                tree.logDebug(`Filtering nodes by '${filterRegExp}'`);\n                // const re = new RegExp(match, \"i\");\n                // const reHighlight = new RegExp(escapeRegex(filter), \"gi\");\n                filter = (node) => {\n                    if (!node.title) {\n                        return false;\n                    }\n                    // let text = escapeTitles ? node.title : extractHtmlText(node.title);\n                    const text = node.title;\n                    // `.match` instead of `.test` to get the capture groups\n                    // const res = text.match(filterRegExp);\n                    const res = filterRegExp.exec(text);\n                    if (res && opts.highlight) {\n                        let highlightString;\n                        if (opts.fuzzy) {\n                            highlightString = _markFuzzyMatchedChars(text, res, true);\n                        }\n                        else {\n                            // #740: we must not apply the marks to escaped entity names, e.g. `&quot;`\n                            // Use some exotic characters to mark matches:\n                            highlightString = text.replace(highlightRegExp, function (s) {\n                                return START_MARKER + s + END_MARKER;\n                            });\n                        }\n                        // now we can escape the title...\n                        node.titleWithHighlight = escapeHtml(highlightString)\n                            // ... and finally insert the desired `<mark>` tags\n                            .replace(RE_START_MARKER, \"<mark>\")\n                            .replace(RE_END_MARTKER, \"</mark>\");\n                    }\n                    return !!res;\n                };\n            }\n            tree.filterMode = (_a = opts.mode) !== null && _a !== void 0 ? _a : \"dim\";\n            // eslint-disable-next-line prefer-rest-params\n            this.lastFilterArgs = arguments;\n            tree.element.classList.toggle(\"wb-ext-filter-hide\", !!hideMode);\n            tree.element.classList.toggle(\"wb-ext-filter-dim\", opts.mode === \"dim\");\n            tree.element.classList.toggle(\"wb-ext-filter-hide-expanders\", !!opts.hideExpanders);\n            // Reset current filter\n            tree.root.subMatchCount = 0;\n            tree.visit((node) => {\n                delete node.match;\n                delete node.titleWithHighlight;\n                node.subMatchCount = 0;\n            });\n            tree.setStatus(NodeStatusType.ok);\n            // Adjust node.hide, .match, and .subMatchCount properties\n            treeOpts.autoCollapse = false; // #528\n            tree.visit((node) => {\n                if (leavesOnly && node.children != null) {\n                    return;\n                }\n                let res = filter(node);\n                if (res === \"skip\") {\n                    node.visit(function (c) {\n                        c.match = undefined;\n                    }, true);\n                    return \"skip\";\n                }\n                let matchedByBranch = false;\n                if ((matchBranch || res === \"branch\") && node.parent.match) {\n                    res = true;\n                    matchedByBranch = true;\n                }\n                if (res) {\n                    count++;\n                    node.match = count;\n                    node.visitParents((p) => {\n                        if (p !== node) {\n                            p.subMatchCount += 1;\n                        }\n                        // Expand match (unless this is no real match, but only a node in a matched branch)\n                        if (opts.autoExpand && !matchedByBranch && !p.expanded) {\n                            p.setExpanded(true, {\n                                noAnimation: true,\n                                noEvents: true,\n                            });\n                            p._filterAutoExpanded = true;\n                        }\n                    }, true);\n                }\n            });\n            treeOpts.autoCollapse = prevAutoCollapse;\n            if (count === 0 && opts.noData && hideMode) {\n                if (typeof opts.noData === \"string\") {\n                    tree.root.setStatus(NodeStatusType.noData, { message: opts.noData });\n                }\n                else {\n                    tree.root.setStatus(NodeStatusType.noData);\n                }\n            }\n            // Redraw whole tree\n            tree.logDebug(`Filter '${filter}' found ${count} nodes in ${Date.now() - start} ms.`);\n            this._updatedConnectedControls();\n            return count;\n        }\n        /**\n         * [ext-filter] Dim or hide nodes.\n         */\n        filterNodes(filter, options) {\n            return this._applyFilterNoUpdate(filter, options);\n        }\n        /**\n         * [ext-filter] Dim or hide whole branches.\n         * @deprecated Use {@link filterNodes} instead and set `options.matchBranch: true`.\n         */\n        filterBranches(filter, options) {\n            assert(options.matchBranch === undefined, \"filterBranches() is deprecated.\");\n            this.tree.logDeprecate(\"filterBranches()\", {\n                since: \"0.9.0\",\n                hint: \"Use `filterNodes` instead and set `options.matchBranch: true`\",\n            });\n            options.matchBranch = true;\n            return this._applyFilterNoUpdate(filter, options);\n        }\n        /**\n         * [ext-filter] Return the number of matched nodes.\n         */\n        countMatches() {\n            let n = 0;\n            this.tree.visit((node) => {\n                if (node.match && !node.statusNodeType) {\n                    n++;\n                }\n            });\n            return n;\n        }\n        /**\n         * [ext-filter] Re-apply current filter.\n         */\n        updateFilter() {\n            var _a;\n            const tree = this.tree;\n            if (tree.filterMode &&\n                this.lastFilterArgs &&\n                ((_a = tree.options.filter) === null || _a === void 0 ? void 0 : _a.autoApply)) {\n                // eslint-disable-next-line prefer-spread\n                this._applyFilterNoUpdate.apply(this, this.lastFilterArgs);\n            }\n            else {\n                tree.logWarn(\"updateFilter(): no filter active.\");\n            }\n            this._updatedConnectedControls();\n        }\n        /**\n         * [ext-filter] Reset the filter.\n         */\n        clearFilter() {\n            const tree = this.tree;\n            tree.enableUpdate(false);\n            tree.setStatus(NodeStatusType.ok);\n            // we also counted root node's subMatchCount\n            delete tree.root.match;\n            delete tree.root.subMatchCount;\n            tree.visit((node) => {\n                delete node.match;\n                delete node.subMatchCount;\n                delete node.titleWithHighlight;\n                if (node._filterAutoExpanded && node.expanded) {\n                    node.setExpanded(false, {\n                        noAnimation: true,\n                        noEvents: true,\n                    });\n                }\n                delete node._filterAutoExpanded;\n            });\n            tree.filterMode = null;\n            this.lastFilterArgs = null;\n            tree.element.classList.remove(\n            // \"wb-ext-filter\",\n            \"wb-ext-filter-dim\", \"wb-ext-filter-hide\");\n            this._updatedConnectedControls();\n            tree.enableUpdate(true);\n        }\n    }\n    /**\n     * @description Marks the matching characters of `text` either by `mark` or\n     * by exotic*Chars (if `escapeTitles` is `true`) based on `matches`\n     * which is an array of matching groups.\n     * @param {string} text\n     * @param {RegExpMatchArray} matches\n     */\n    function _markFuzzyMatchedChars(text, matches, escapeTitles = true) {\n        const matchingIndices = [];\n        // get the indices of matched characters (Iterate through `RegExpMatchArray`)\n        for (let _matchingArrIdx = 1; _matchingArrIdx < matches.length; _matchingArrIdx++) {\n            const _mIdx = \n            // get matching char index by cumulatively adding\n            // the matched group length\n            matches[_matchingArrIdx].length +\n                (_matchingArrIdx === 1 ? 0 : 1) +\n                (matchingIndices[matchingIndices.length - 1] || 0);\n            matchingIndices.push(_mIdx);\n        }\n        // Map each `text` char to its position and store in `textPoses`.\n        const textPoses = text.split(\"\");\n        if (escapeTitles) {\n            // If escaping the title, then wrap the matching char within exotic chars\n            matchingIndices.forEach(function (v) {\n                textPoses[v] = START_MARKER + textPoses[v] + END_MARKER;\n            });\n        }\n        else {\n            // Otherwise, Wrap the matching chars within `mark`.\n            matchingIndices.forEach(function (v) {\n                textPoses[v] = \"<mark>\" + textPoses[v] + \"</mark>\";\n            });\n        }\n        // Join back the modified `textPoses` to create final highlight markup.\n        return textPoses.join(\"\");\n    }\n\n    /*!\n     * Wunderbaum - ext-keynav\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n     */\n    const QUICKSEARCH_DELAY = 500;\n    class KeynavExtension extends WunderbaumExtension {\n        constructor(tree) {\n            super(tree, \"keynav\", {});\n        }\n        _getEmbeddedInputElem(elem) {\n            var _a;\n            let input = null;\n            if (elem && elem.type != null) {\n                input = elem;\n            }\n            else {\n                // ,[contenteditable]\n                const ace = (_a = this.tree.getActiveColElem()) === null || _a === void 0 ? void 0 : _a.querySelector(\"input,select\");\n                if (ace) {\n                    input = ace;\n                }\n            }\n            return input;\n        }\n        // /* Return the current cell's embedded input that has keyboard focus. */\n        // protected _getFocusedInputElem(): HTMLInputElement | null {\n        //   const ace = this.tree\n        //     .getActiveColElem()\n        //     ?.querySelector<HTMLInputElement>(\"input:focus,select:focus\");\n        //   return ace || null;\n        // }\n        /* Return true if the current cell's embedded input has keyboard focus. */\n        _isCurInputFocused() {\n            var _a;\n            const ace = (_a = this.tree\n                .getActiveColElem()) === null || _a === void 0 ? void 0 : _a.querySelector(\"input:focus,select:focus\");\n            return !!ace;\n        }\n        onKeyEvent(data) {\n            const event = data.event;\n            const tree = this.tree;\n            const opts = data.options;\n            const activate = !event.ctrlKey || opts.autoActivate;\n            const curInput = this._getEmbeddedInputElem(event.target);\n            const inputHasFocus = curInput && this._isCurInputFocused();\n            const navModeOption = opts.navigationModeOption;\n            let focusNode, eventName = eventToString(event), node = data.node, handled = true;\n            // tree.log(`onKeyEvent: ${eventName}, curInput`, curInput);\n            if (!tree.isEnabled()) {\n                // tree.logDebug(`onKeyEvent ignored for disabled tree: ${eventName}`);\n                return false;\n            }\n            // Let callback prevent default processing\n            if (tree._callEvent(\"keydown\", data) === false) {\n                return false;\n            }\n            // Let ext-edit trigger editing\n            if (tree._callMethod(\"edit._preprocessKeyEvent\", data) === false) {\n                return false;\n            }\n            // Set focus to active (or first node) if no other node has the focus yet\n            if (!node) {\n                const currentNode = tree.getFocusNode() || tree.getActiveNode();\n                const firstNode = tree.getFirstChild();\n                if (!currentNode && firstNode && eventName === \"ArrowDown\") {\n                    firstNode.logInfo(\"Keydown: activate first node.\");\n                    firstNode.setActive();\n                    return;\n                }\n                focusNode = currentNode || firstNode;\n                if (focusNode) {\n                    focusNode.setFocus();\n                    node = tree.getFocusNode();\n                    node.logInfo(\"Keydown: force focus on active node.\");\n                }\n            }\n            const isColspan = node.isColspan();\n            if (tree.isRowNav()) {\n                // -----------------------------------------------------------------------\n                // --- Row Mode ---\n                // -----------------------------------------------------------------------\n                if (inputHasFocus) {\n                    // If editing an embedded input control, let the control handle all\n                    // keys. Only Enter and Escape should apply / discard, but keep the\n                    // keyboard focus.\n                    switch (eventName) {\n                        case \"Enter\":\n                            curInput.blur();\n                            tree.setFocus();\n                            break;\n                        case \"Escape\":\n                            node._render();\n                            tree.setFocus();\n                            break;\n                    }\n                    return;\n                }\n                // --- Quick-Search\n                if (opts.quicksearch &&\n                    eventName.length === 1 &&\n                    /^\\w$/.test(eventName) &&\n                    !curInput) {\n                    // Allow to search for longer streaks if typed in quickly\n                    const stamp = Date.now();\n                    if (stamp - tree.lastQuicksearchTime > QUICKSEARCH_DELAY) {\n                        tree.lastQuicksearchTerm = \"\";\n                    }\n                    tree.lastQuicksearchTime = stamp;\n                    tree.lastQuicksearchTerm += eventName;\n                    const matchNode = tree.findNextNode(tree.lastQuicksearchTerm, tree.getActiveNode());\n                    if (matchNode) {\n                        matchNode.setActive(true, { event: event });\n                    }\n                    event.preventDefault();\n                    return;\n                }\n                // Pre-Evaluate expand/collapse action for LEFT/RIGHT\n                switch (eventName) {\n                    case \"Enter\":\n                        if (node.isActive()) {\n                            if (node.isExpanded()) {\n                                eventName = \"Subtract\"; // callapse\n                            }\n                            else if (node.isExpandable(true)) {\n                                eventName = \"Add\"; // expand\n                            }\n                        }\n                        break;\n                    case \"ArrowLeft\":\n                        if (node.expanded) {\n                            eventName = \"Subtract\"; // collapse\n                        }\n                        break;\n                    case \"ArrowRight\":\n                        if (!node.expanded && node.isExpandable(true)) {\n                            eventName = \"Add\"; // expand\n                        }\n                        else if (navModeOption === NavModeEnum.startCell ||\n                            navModeOption === NavModeEnum.startRow) {\n                            event.preventDefault();\n                            tree.setCellNav();\n                            return false;\n                        }\n                        break;\n                }\n                // Standard navigation (row mode)\n                switch (eventName) {\n                    case \"+\":\n                    case \"Add\":\n                        // case \"=\": // 187: '+' @ Chrome, Safari\n                        node.setExpanded(true);\n                        break;\n                    case \"-\":\n                    case \"Subtract\":\n                        node.setExpanded(false);\n                        break;\n                    case \" \": // Space\n                        // if (node.isPagingNode()) {\n                        //   tree._triggerNodeEvent(\"clickPaging\", ctx, event);\n                        // } else\n                        if (node.getOption(\"checkbox\")) {\n                            node.toggleSelected();\n                        }\n                        else {\n                            node.setActive(true, { event: event });\n                        }\n                        break;\n                    case \"Enter\":\n                        node.setActive(true, { event: event });\n                        break;\n                    case \"ArrowDown\":\n                    case \"ArrowLeft\":\n                    case \"ArrowRight\":\n                    case \"ArrowUp\":\n                    case \"Backspace\":\n                    case \"End\":\n                    case \"Home\":\n                    case \"Control+End\":\n                    case \"Control+Home\":\n                    case \"Meta+ArrowDown\":\n                    case \"Meta+ArrowUp\":\n                    case \"PageDown\":\n                    case \"PageUp\":\n                        node.navigate(eventName, { activate: activate, event: event });\n                        break;\n                    default:\n                        handled = false;\n                }\n            }\n            else {\n                // -----------------------------------------------------------------------\n                // --- Cell Mode ---\n                // -----------------------------------------------------------------------\n                // // Standard navigation (cell mode)\n                // if (isCellEditMode && INPUT_BREAKOUT_KEYS.has(eventName)) {\n                // }\n                // const curInput = this._getEmbeddedInputElem(null);\n                const curInputType = curInput ? curInput.type || curInput.tagName : \"\";\n                // const inputHasFocus = curInput && this._isCurInputFocused();\n                const inputCanFocus = curInput && curInputType !== \"checkbox\";\n                if (inputHasFocus) {\n                    if (eventName === \"Escape\") {\n                        node.logDebug(`Reset focused input on Escape`);\n                        // Discard changes and reset input validation state\n                        curInput.setCustomValidity(\"\");\n                        node._render();\n                        // Keep cell-nav mode\n                        tree.setFocus();\n                        tree.setColumn(tree.activeColIdx);\n                        return;\n                        // } else if (!INPUT_BREAKOUT_KEYS.has(eventName)) {\n                    }\n                    else if (eventName !== \"Enter\") {\n                        if (curInput && curInput.checkValidity && !curInput.checkValidity()) {\n                            // Invalid input: ignore all keys except Enter and Escape\n                            node.logDebug(`Ignored ${eventName} inside invalid input`);\n                            return false;\n                        }\n                        // Let current `<input>` handle it\n                        node.logDebug(`Ignored ${eventName} inside focused input`);\n                        return;\n                    }\n                    // const curInputType = curInput.type || curInput.tagName;\n                    // const breakoutKeys = INPUT_KEYS[curInputType];\n                    // if (!breakoutKeys.includes(eventName)) {\n                    //   node.logDebug(`Ignored ${eventName} inside ${curInputType} input`);\n                    //   return;\n                    // }\n                }\n                else if (curInput) {\n                    // On a cell that has an embedded, unfocused <input>\n                    if (eventName.length === 1 && inputCanFocus) {\n                        // Typing a single char\n                        curInput.focus();\n                        curInput.value = \"\";\n                        node.logDebug(`Focus input: ${eventName}`);\n                        return false;\n                    }\n                }\n                if (eventName === \"Tab\") {\n                    eventName = \"ArrowRight\";\n                    handled = true;\n                }\n                else if (eventName === \"Shift+Tab\") {\n                    eventName = tree.activeColIdx > 0 ? \"ArrowLeft\" : \"\";\n                    handled = true;\n                }\n                switch (eventName) {\n                    case \"+\":\n                    case \"Add\":\n                        // case \"=\": // 187: '+' @ Chrome, Safari\n                        node.setExpanded(true);\n                        break;\n                    case \"-\":\n                    case \"Subtract\":\n                        node.setExpanded(false);\n                        break;\n                    case \" \": // Space\n                        if (tree.activeColIdx === 0 && node.getOption(\"checkbox\")) {\n                            node.toggleSelected();\n                            handled = true;\n                        }\n                        else if (curInput && curInputType === \"checkbox\") {\n                            curInput.click();\n                            // toggleCheckbox(curInput)\n                            // new Event(\"change\")\n                            // curInput.change\n                            handled = true;\n                        }\n                        break;\n                    case \"F2\":\n                        if (curInput && !inputHasFocus && inputCanFocus) {\n                            curInput.focus();\n                            handled = true;\n                        }\n                        break;\n                    case \"Enter\":\n                        tree.setFocus(); // Blur prev. input if any\n                        if ((tree.activeColIdx === 0 || isColspan) && node.isExpandable()) {\n                            node.setExpanded(!node.isExpanded());\n                            handled = true;\n                        }\n                        else if (curInput && !inputHasFocus && inputCanFocus) {\n                            curInput.focus();\n                            handled = true;\n                        }\n                        break;\n                    case \"Escape\":\n                        tree.setFocus(); // Blur prev. input if any\n                        node.log(`keynav: focus tree...`);\n                        if (tree.isCellNav() && navModeOption !== NavModeEnum.cell) {\n                            node.log(`keynav: setCellNav(false)`);\n                            tree.setCellNav(false); // row-nav mode\n                            tree.setFocus(); //\n                            handled = true;\n                        }\n                        break;\n                    case \"ArrowLeft\":\n                        tree.setFocus(); // Blur prev. input if any\n                        if (isColspan && node.isExpanded()) {\n                            node.setExpanded(false);\n                        }\n                        else if (!isColspan && tree.activeColIdx > 0) {\n                            tree.setColumn(tree.activeColIdx - 1);\n                        }\n                        else if (navModeOption !== NavModeEnum.cell) {\n                            tree.setCellNav(false); // row-nav mode\n                        }\n                        handled = true;\n                        break;\n                    case \"ArrowRight\":\n                        tree.setFocus(); // Blur prev. input if any\n                        if (isColspan && !node.isExpanded()) {\n                            node.setExpanded();\n                        }\n                        else if (!isColspan &&\n                            tree.activeColIdx < tree.columns.length - 1) {\n                            tree.setColumn(tree.activeColIdx + 1);\n                        }\n                        handled = true;\n                        break;\n                    case \"Home\": // Generated by [Fn] + ArrowLeft on Mac\n                        // case \"Meta+ArrowLeft\":\n                        tree.setFocus(); // Blur prev. input if any\n                        if (!isColspan && tree.activeColIdx > 0) {\n                            tree.setColumn(0);\n                        }\n                        handled = true;\n                        break;\n                    case \"End\": // Generated by [Fn] + ArrowRight on Mac\n                        // case \"Meta+ArrowRight\":\n                        tree.setFocus(); // Blur prev. input if any\n                        if (!isColspan && tree.activeColIdx < tree.columns.length - 1) {\n                            tree.setColumn(tree.columns.length - 1);\n                        }\n                        handled = true;\n                        break;\n                    case \"ArrowDown\":\n                    case \"ArrowUp\":\n                    case \"Backspace\":\n                    case \"Control+End\": // Generated by Control + [Fn] + ArrowRight on Mac\n                    case \"Control+Home\": // Generated by Control + [Fn] + Arrowleft on Mac\n                    case \"Meta+ArrowDown\": // [⌘] + ArrowDown on Mac\n                    case \"Meta+ArrowUp\": // [⌘] + ArrowUp on Mac\n                    case \"PageDown\": // Generated by [Fn] + ArrowDown on Mac\n                    case \"PageUp\": // Generated by [Fn] + ArrowUp on Mac\n                        node.navigate(eventName, { activate: activate, event: event });\n                        // if (isCellEditMode) {\n                        //   this._getEmbeddedInputElem(null, true); // set focus to input\n                        // }\n                        handled = true;\n                        break;\n                    default:\n                        handled = false;\n                }\n            }\n            if (handled) {\n                event.preventDefault();\n            }\n            return;\n        }\n    }\n\n    /*!\n     * Wunderbaum - ext-logger\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n     */\n    class LoggerExtension extends WunderbaumExtension {\n        constructor(tree) {\n            super(tree, \"logger\", {});\n            this.ignoreEvents = new Set([\n                \"iconBadge\",\n                // \"enhanceTitle\",\n                \"render\",\n                \"discard\",\n            ]);\n            this.prefix = tree + \".ext-logger\";\n        }\n        init() {\n            const tree = this.tree;\n            // this.ignoreEvents.add();\n            if (tree.getOption(\"debugLevel\") >= 4) {\n                // const self = this;\n                const ignoreEvents = this.ignoreEvents;\n                const prefix = this.prefix;\n                overrideMethod(tree, \"callEvent\", function (name, extra) {\n                    /* eslint-disable prefer-rest-params */\n                    if (ignoreEvents.has(name)) {\n                        return tree._superApply(arguments);\n                    }\n                    const start = Date.now();\n                    const res = tree._superApply(arguments);\n                    tree.logDebug(`${prefix}: callEvent('${name}') took ${Date.now() - start} ms.`, arguments[1]);\n                    return res;\n                });\n            }\n        }\n        onKeyEvent(data) {\n            // this.tree.logInfo(\"onKeyEvent\", eventToString(data.event), data);\n            this.tree.logDebug(`${this.prefix}: onKeyEvent()`, data);\n            return;\n        }\n    }\n\n    /*!\n     * Wunderbaum - ext-dnd\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n     */\n    const nodeMimeType = \"application/x-wunderbaum-node\";\n    class DndExtension extends WunderbaumExtension {\n        constructor(tree) {\n            super(tree, \"dnd\", {\n                autoExpandMS: 1500, // Expand nodes after n milliseconds of hovering\n                // dropMarkerInsertOffsetX: -16, // Additional offset for drop-marker with hitMode = \"before\"/\"after\"\n                // dropMarkerOffsetX: -24, // Absolute position offset for .fancytree-drop-marker relatively to ..fancytree-title (icon/img near a node accepting drop)\n                // #1021 `document.body` is not available yet\n                // dropMarkerParent: \"body\", // Root Container used for drop marker (could be a shadow root)\n                multiSource: false, // true: Drag multiple (i.e. selected) nodes. Also a callback() is allowed\n                effectAllowed: \"all\", // Restrict the possible cursor shapes and modifier operations (can also be set in the dragStart event)\n                dropEffectDefault: \"move\", // Default dropEffect ('copy', 'link', or 'move') when no modifier is pressed (override in drag, dragOver).\n                guessDropEffect: true, // Calculate from `effectAllowed` and modifier keys)\n                preventForeignNodes: false, // Prevent dropping nodes from different Wunderbaum trees\n                preventLazyParents: true, // Prevent dropping items on unloaded lazy Wunderbaum tree nodes\n                preventNonNodes: false, // Prevent dropping items other than Wunderbaum tree nodes\n                preventRecursion: true, // Prevent dropping nodes on own descendants\n                preventSameParent: false, // Prevent dropping nodes under same direct parent\n                preventVoidMoves: true, // Prevent dropping nodes 'before self', etc. (move only)\n                serializeClipboardData: true, // Serialize node data to dataTransfer object\n                scroll: true, // Enable auto-scrolling while dragging\n                scrollSensitivity: 20, // Active top/bottom margin in pixel\n                // scrollnterval: 50, // Generate event every 50 ms\n                scrollSpeed: 5, // Scroll pixel per 50 ms\n                // setTextTypeJson: false, // Allow dragging of nodes to different IE windows\n                sourceCopyHook: null, // Optional callback passed to `toDict` on dragStart @since 2.38\n                // Events (drag support)\n                dragStart: null, // Callback(sourceNode, data), return true, to enable dnd drag\n                drag: null, // Callback(sourceNode, data)\n                dragEnd: null, // Callback(sourceNode, data)\n                // Events (drop support)\n                dragEnter: null, // Callback(targetNode, data), return true, to enable dnd drop\n                dragOver: null, // Callback(targetNode, data)\n                dragExpand: null, // Callback(targetNode, data), return false to prevent autoExpand\n                drop: null, // Callback(targetNode, data)\n                dragLeave: null, // Callback(targetNode, data)\n            });\n            // public dropMarkerElem?: HTMLElement;\n            this.srcNode = null;\n            this.lastTargetNode = null;\n            this.lastEnterStamp = 0;\n            this.lastAllowedDropRegions = null;\n            this.lastDropEffect = null;\n            this.lastDropRegion = false;\n            this.currentScrollDir = 0;\n            this.applyScrollDirThrottled = throttle(this._applyScrollDir, 50);\n        }\n        init() {\n            super.init();\n            // Store the current scroll parent, which may be the tree\n            // container, any enclosing div, or the document.\n            // #761: scrollParent() always needs a container child\n            // $temp = $(\"<span>\").appendTo(this.$container);\n            // this.$scrollParent = $temp.scrollParent();\n            // $temp.remove();\n            const tree = this.tree;\n            const dndOpts = tree.options.dnd;\n            // Enable drag support if dragStart() is specified:\n            if (dndOpts.dragStart) {\n                onEvent(tree.element, \"dragstart drag dragend\", this.onDragEvent.bind(this));\n            }\n            // Enable drop support if dragEnter() is specified:\n            if (dndOpts.dragEnter) {\n                onEvent(tree.element, \"dragenter dragover dragleave drop\", this.onDropEvent.bind(this));\n            }\n        }\n        /** Cleanup classes after target node is no longer hovered. */\n        _leaveNode() {\n            // We remove the marker on dragenter from the previous target:\n            const ltn = this.lastTargetNode;\n            this.lastEnterStamp = 0;\n            if (ltn) {\n                ltn.setClass(\"wb-drop-target wb-drop-over wb-drop-after wb-drop-before\", false);\n                this.lastTargetNode = null;\n            }\n        }\n        /** */\n        unifyDragover(res) {\n            if (res === false) {\n                return false;\n            }\n            else if (res instanceof Set) {\n                return res.size > 0 ? res : false;\n            }\n            else if (res === true) {\n                return new Set([\"over\", \"before\", \"after\"]);\n            }\n            else if (typeof res === \"string\" || isArray(res)) {\n                res = toSet(res);\n                return res.size > 0 ? res : false;\n            }\n            throw new Error(\"Unsupported drop region definition: \" + res);\n        }\n        /**\n         * Calculates the drop region based on the drag event and the allowed drop regions.\n         */\n        _calcDropRegion(e, allowed) {\n            const rowHeight = this.tree.options.rowHeightPx;\n            const dy = e.offsetY;\n            if (!allowed) {\n                return false;\n            }\n            else if (allowed.size === 3) {\n                return dy < 0.25 * rowHeight\n                    ? \"before\"\n                    : dy > 0.75 * rowHeight\n                        ? \"after\"\n                        : \"over\";\n            }\n            else if (allowed.size === 1 && allowed.has(\"over\")) {\n                return \"over\";\n            }\n            else {\n                // Only 'before' and 'after':\n                return dy > rowHeight / 2 ? \"after\" : \"before\";\n            }\n            // return \"over\";\n        }\n        /**\n         * Guess drop effect (copy/link/move) using opinionated conventions.\n         *\n         * Default: dnd.dropEffectDefault\n         */\n        _guessDropEffect(e) {\n            // const nativeDropEffect = e.dataTransfer?.dropEffect;\n            var _a;\n            // if (nativeDropEffect && nativeDropEffect !== \"none\") {\n            //   return nativeDropEffect;\n            // }\n            const dndOpts = this.treeOpts.dnd;\n            const ea = (_a = dndOpts.effectAllowed) !== null && _a !== void 0 ? _a : \"all\";\n            const canCopy = [\"all\", \"copy\", \"copyLink\", \"copyMove\"].includes(ea);\n            const canLink = [\"all\", \"link\", \"copyLink\", \"linkMove\"].includes(ea);\n            const canMove = [\"all\", \"move\", \"copyMove\", \"linkMove\"].includes(ea);\n            let res = dndOpts.dropEffectDefault;\n            if (dndOpts.guessDropEffect) {\n                if (isMac) {\n                    if (e.altKey && canCopy) {\n                        res = \"copy\";\n                    }\n                    if (e.metaKey && canMove) {\n                        res = \"move\"; // command key\n                    }\n                    if (e.altKey && e.metaKey && canLink) {\n                        res = \"link\";\n                    }\n                }\n                else {\n                    if (e.ctrlKey && canCopy) {\n                        res = \"copy\";\n                    }\n                    if (e.shiftKey && canMove) {\n                        res = \"move\";\n                    }\n                    if (e.altKey && canLink) {\n                        res = \"link\";\n                    }\n                }\n            }\n            return res;\n        }\n        /** Don't allow void operation ('drop on self').*/\n        _isVoidDrop(targetNode, srcNode, dropRegion) {\n            // this.tree.logDebug(\n            //   `_isVoidDrop: ${srcNode} -> ${dropRegion} ${targetNode}`\n            // );\n            // TODO: should be checked on  move only\n            if (!this.treeOpts.dnd.preventVoidMoves || !srcNode) {\n                return false;\n            }\n            if ((dropRegion === \"before\" && targetNode === srcNode.getNextSibling()) ||\n                (dropRegion === \"after\" && targetNode === srcNode.getPrevSibling())) {\n                // this.tree.logDebug(\"Prevented before/after self\");\n                return true;\n            }\n            // Don't allow dropping nodes on own parent (or self)\n            return srcNode === targetNode || srcNode.parent === targetNode;\n        }\n        /* Implement auto scrolling when drag cursor is in top/bottom area of scroll parent. */\n        _applyScrollDir() {\n            if (this.isDragging() && this.currentScrollDir) {\n                const dndOpts = this.tree.options.dnd;\n                const sp = this.tree.element; // scroll parent\n                const scrollTop = sp.scrollTop;\n                if (this.currentScrollDir < 0) {\n                    sp.scrollTop = Math.max(0, scrollTop - dndOpts.scrollSpeed);\n                }\n                else if (this.currentScrollDir > 0) {\n                    sp.scrollTop = scrollTop + dndOpts.scrollSpeed;\n                }\n            }\n        }\n        /* Implement auto scrolling when drag cursor is in top/bottom area of scroll parent. */\n        _autoScroll(viewportY) {\n            const tree = this.tree;\n            const dndOpts = tree.options.dnd;\n            const sensitivity = dndOpts.scrollSensitivity;\n            const sp = tree.element; // scroll parent\n            const headerHeight = tree.headerElement.clientHeight; // May be 0\n            // const height = sp.clientHeight - headerHeight;\n            // const height = sp.offsetHeight + headerHeight;\n            const height = sp.offsetHeight;\n            const scrollTop = sp.scrollTop;\n            // tree.logDebug(\n            //   `autoScroll: height=${height}, scrollTop=${scrollTop}, viewportY=${viewportY}`\n            // );\n            this.currentScrollDir = 0;\n            if (scrollTop > 0 &&\n                viewportY > 0 &&\n                viewportY <= sensitivity + headerHeight) {\n                // Mouse in top 20px area: scroll up\n                // sp.scrollTop = Math.max(0, scrollTop - dndOpts.scrollSpeed);\n                this.currentScrollDir = -1;\n            }\n            else if (scrollTop < sp.scrollHeight - height &&\n                viewportY >= height - sensitivity) {\n                // Mouse in bottom 20px area: scroll down\n                // sp.scrollTop = scrollTop + dndOpts.scrollSpeed;\n                this.currentScrollDir = 1;\n            }\n            if (this.currentScrollDir) {\n                this.applyScrollDirThrottled();\n            }\n            return sp.scrollTop - scrollTop;\n        }\n        /** Return true if a drag operation currently in progress. */\n        isDragging() {\n            return !!this.srcNode;\n        }\n        /**\n         * Handle dragstart, drag and dragend events for the source node.\n         */\n        onDragEvent(e) {\n            var _a;\n            const dndOpts = this.treeOpts.dnd;\n            const srcNode = Wunderbaum.getNode(e);\n            if (!srcNode) {\n                this.tree.logWarn(`onDragEvent.${e.type}: no node`);\n                return;\n            }\n            if ([\"dragstart\", \"dragend\"].includes(e.type)) {\n                this.tree.logDebug(`onDragEvent.${e.type} srcNode: ${srcNode}`, e);\n            }\n            // --- dragstart ---\n            if (e.type === \"dragstart\") {\n                // Set a default definition of allowed effects\n                e.dataTransfer.effectAllowed = dndOpts.effectAllowed; //\"copyMove\"; // \"all\";\n                if (srcNode.isEditingTitle()) {\n                    srcNode.logDebug(\"Prevented dragging node in edit mode.\");\n                    e.preventDefault();\n                    return false;\n                }\n                // Let user cancel the drag operation, override effectAllowed, etc.:\n                const res = srcNode._callEvent(\"dnd.dragStart\", { event: e });\n                if (!res) {\n                    e.preventDefault();\n                    return false;\n                }\n                const nodeData = srcNode.toDict(true, (n) => {\n                    // We don't want to reuse the key on drop:\n                    n._orgKey = n.key;\n                    delete n.key;\n                });\n                nodeData._treeId = srcNode.tree.id;\n                if (dndOpts.serializeClipboardData) {\n                    if (typeof dndOpts.serializeClipboardData === \"function\") {\n                        e.dataTransfer.setData(nodeMimeType, dndOpts.serializeClipboardData(nodeData, srcNode));\n                    }\n                    else {\n                        e.dataTransfer.setData(nodeMimeType, JSON.stringify(nodeData));\n                    }\n                }\n                // e.dataTransfer!.setData(\"text/html\", $(node.span).html());\n                if (!((_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.types.includes(\"text/plain\"))) {\n                    e.dataTransfer.setData(\"text/plain\", srcNode.title);\n                }\n                this.srcNode = srcNode;\n                setTimeout(() => {\n                    // Decouple this call, so the CSS is applied to the node, but not to\n                    // the system generated drag image\n                    srcNode.setClass(\"wb-drag-source\");\n                }, 0);\n                // --- drag ---\n            }\n            else if (e.type === \"drag\") {\n                if (dndOpts.drag) {\n                    srcNode._callEvent(\"dnd.drag\", { event: e });\n                }\n                // --- dragend ---\n            }\n            else if (e.type === \"dragend\") {\n                srcNode.setClass(\"wb-drag-source\", false);\n                this.srcNode = null;\n                if (this.lastTargetNode) {\n                    this._leaveNode();\n                }\n                srcNode._callEvent(\"dnd.dragEnd\", { event: e });\n            }\n            return true;\n        }\n        /**\n         * Handle dragenter, dragover, dragleave, drop events.\n         */\n        onDropEvent(e) {\n            var _a;\n            // const isLink = event.dataTransfer.types.includes(\"text/uri-list\");\n            const srcNode = this.srcNode;\n            const srcTree = srcNode ? srcNode.tree : null;\n            const targetNode = Wunderbaum.getNode(e);\n            const dndOpts = this.treeOpts.dnd;\n            const dt = e.dataTransfer;\n            const dropRegion = this._calcDropRegion(e, this.lastAllowedDropRegions);\n            /** Helper to log a message if predicate is false. */\n            const _t = (pred, msg) => {\n                if (pred) {\n                    this.tree.log(`Prevented drop operation (${msg}).`);\n                }\n                return pred;\n            };\n            if (!targetNode) {\n                this._leaveNode();\n                e.preventDefault(); // Don't open file in browser when dropped in empty area\n                return;\n            }\n            if ([\"drop\"].includes(e.type)) {\n                this.tree.logDebug(`onDropEvent.${e.type} targetNode: ${targetNode}, ea: ${dt === null || dt === void 0 ? void 0 : dt.effectAllowed}, ` +\n                    `de: ${dt === null || dt === void 0 ? void 0 : dt.dropEffect}, cy: ${e.offsetY}, r: ${dropRegion}, srcNode: ${srcNode}`, e);\n            }\n            // --- dragenter ---\n            if (e.type === \"dragenter\") {\n                // this.tree.logWarn(` onDropEvent.${e.type} targetNode: ${targetNode}`, e);\n                this.lastAllowedDropRegions = null;\n                // `dragleave` is not reliable with event delegation, so we generate it\n                // from dragenter:\n                if (this.lastTargetNode && this.lastTargetNode !== targetNode) {\n                    this._leaveNode();\n                }\n                this.lastTargetNode = targetNode;\n                this.lastEnterStamp = Date.now();\n                if (\n                // Don't drop on status node:\n                _t(targetNode.isStatusNode(), \"is status node\") ||\n                    // Prevent dropping nodes from different Wunderbaum trees:\n                    _t(dndOpts.preventForeignNodes && targetNode.tree !== srcTree, \"preventForeignNodes\") ||\n                    // Prevent dropping items on unloaded lazy Wunderbaum tree nodes:\n                    _t(dndOpts.preventLazyParents && !targetNode.isLoaded(), \"preventLazyParents\") ||\n                    // Prevent dropping items other than Wunderbaum tree nodes:\n                    _t(dndOpts.preventNonNodes && !srcNode, \"preventNonNodes\") ||\n                    // Prevent dropping nodes on own descendants:\n                    _t(dndOpts.preventRecursion && (srcNode === null || srcNode === void 0 ? void 0 : srcNode.isAncestorOf(targetNode)), \"preventRecursion\") ||\n                    // Prevent dropping nodes under same direct parent:\n                    _t(dndOpts.preventSameParent &&\n                        srcNode &&\n                        targetNode.parent === srcNode.parent, \"preventSameParent\") ||\n                    // Don't allow void operation ('drop on self'): TODO: should be checked on  move only\n                    _t(dndOpts.preventVoidMoves && targetNode === srcNode, \"preventVoidMoves\")) {\n                    dt.dropEffect = \"none\";\n                    // this.tree.log(\"Prevented drop operation\");\n                    return true; // Prevent drop operation\n                }\n                // User may return a set of regions (or `false` to prevent drop)\n                // Figure out a drop effect (copy/link/move) using opinated conventions.\n                dt.dropEffect = this._guessDropEffect(e) || \"none\";\n                let regionSet = targetNode._callEvent(\"dnd.dragEnter\", {\n                    event: e,\n                    sourceNode: srcNode,\n                });\n                //\n                regionSet = this.unifyDragover(regionSet);\n                if (!regionSet) {\n                    dt.dropEffect = \"none\";\n                    return true; // Prevent drop operation\n                }\n                this.lastAllowedDropRegions = regionSet;\n                this.lastDropEffect = dt.dropEffect;\n                const region = this._calcDropRegion(e, this.lastAllowedDropRegions);\n                targetNode.setClass(\"wb-drop-target\");\n                targetNode.setClass(\"wb-drop-over\", region === \"over\");\n                targetNode.setClass(\"wb-drop-before\", region === \"before\");\n                targetNode.setClass(\"wb-drop-after\", region === \"after\");\n                e.preventDefault(); // Allow drop (Drop operation is denied by default)\n                return false;\n                // --- dragover ---\n            }\n            else if (e.type === \"dragover\") {\n                const viewportY = e.clientY - this.tree.element.offsetTop;\n                this._autoScroll(viewportY);\n                dt.dropEffect = this._guessDropEffect(e) || \"none\";\n                targetNode._callEvent(\"dnd.dragOver\", { event: e, sourceNode: srcNode });\n                const region = this._calcDropRegion(e, this.lastAllowedDropRegions);\n                this.lastDropRegion = region;\n                this.lastDropEffect = dt.dropEffect;\n                if (dndOpts.autoExpandMS > 0 &&\n                    targetNode.isExpandable(true) &&\n                    !targetNode._isLoading &&\n                    Date.now() - this.lastEnterStamp > dndOpts.autoExpandMS &&\n                    targetNode._callEvent(\"dnd.dragExpand\", {\n                        event: e,\n                        sourceNode: srcNode,\n                    }) !== false) {\n                    targetNode.setExpanded();\n                }\n                if (!region || this._isVoidDrop(targetNode, srcNode, region)) {\n                    return; // We already rejected in dragenter\n                }\n                targetNode.setClass(\"wb-drop-over\", region === \"over\");\n                targetNode.setClass(\"wb-drop-before\", region === \"before\");\n                targetNode.setClass(\"wb-drop-after\", region === \"after\");\n                e.preventDefault(); // Allow drop (Drop operation is denied by default)\n                return false;\n                // --- dragleave ---\n            }\n            else if (e.type === \"dragleave\") {\n                // NOTE: we cannot trust this event, since it is always fired,\n                // Instead we remove the marker on dragenter\n                targetNode._callEvent(\"dnd.dragLeave\", { event: e, sourceNode: srcNode });\n                // --- drop ---\n            }\n            else if (e.type === \"drop\") {\n                e.stopPropagation(); // prevent browser from opening links?\n                e.preventDefault(); // #69 prevent iOS browser from opening links\n                this._leaveNode();\n                const region = this.lastDropRegion;\n                let nodeData = (_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.getData(nodeMimeType);\n                nodeData = nodeData ? JSON.parse(nodeData) : null;\n                const srcNode = this.srcNode;\n                const lastDropEffect = this.lastDropEffect;\n                /* Before v0.14.0, we decoupled `_callEvent` like so:\n                     Decouple this call, because drop actions may prevent the dragend\n                     event from being fired on some browsers.\n                     setTimeout(() => {...}, 10);\n                  however this made e.dataTransfer.items inaccessible */\n                targetNode._callEvent(\"dnd.drop\", {\n                    event: e,\n                    region: region,\n                    suggestedDropMode: region === \"over\" ? \"appendChild\" : region,\n                    suggestedDropEffect: lastDropEffect,\n                    sourceNode: srcNode,\n                    sourceNodeData: nodeData,\n                    dataTransfer: e.dataTransfer,\n                });\n            }\n            return false;\n        }\n    }\n\n    /*!\n     * Wunderbaum - drag_observer\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n     */\n    /**\n     * Convert mouse- and touch events to 'dragstart', 'drag', and 'dragstop'.\n     */\n    class DragObserver {\n        constructor(opts) {\n            this.start = {\n                event: null,\n                x: 0,\n                y: 0,\n                altKey: false,\n                ctrlKey: false,\n                metaKey: false,\n                shiftKey: false,\n            };\n            this.dragElem = null;\n            this.dragging = false;\n            this.customData = {};\n            // TODO: touch events\n            this.events = [\"mousedown\", \"mouseup\", \"mousemove\", \"keydown\"];\n            if (!opts.root) {\n                throw new Error(\"Missing `root` option.\");\n            }\n            this.opts = Object.assign({ thresh: 5 }, opts);\n            this.root = opts.root;\n            this._handler = this.handleEvent.bind(this);\n            this.events.forEach((type) => {\n                this.root.addEventListener(type, this._handler);\n            });\n        }\n        /** Unregister all event listeners. */\n        disconnect() {\n            this.events.forEach((type) => {\n                this.root.removeEventListener(type, this._handler);\n            });\n        }\n        getDragElem() {\n            return this.dragElem;\n        }\n        isDragging() {\n            return this.dragging;\n        }\n        stopDrag(cb_event) {\n            if (this.dragging && this.opts.dragstop && cb_event) {\n                cb_event.type = \"dragstop\";\n                try {\n                    this.opts.dragstop(cb_event);\n                }\n                catch (err) {\n                    console.error(\"dragstop error\", err); // eslint-disable-line no-console\n                }\n            }\n            this.dragElem = null;\n            this.dragging = false;\n            this.start.event = null;\n            this.customData = {};\n        }\n        handleEvent(e) {\n            const type = e.type;\n            const opts = this.opts;\n            const cb_event = {\n                type: e.type,\n                startEvent: type === \"mousedown\" ? e : this.start.event,\n                event: e,\n                customData: this.customData,\n                dragElem: this.dragElem,\n                dx: e.pageX - this.start.x,\n                dy: e.pageY - this.start.y,\n                apply: undefined,\n            };\n            // console.log(\"handleEvent\", type, cb_event);\n            switch (type) {\n                case \"keydown\":\n                    this.stopDrag(cb_event);\n                    break;\n                case \"mousedown\":\n                    if (this.dragElem) {\n                        this.stopDrag(cb_event);\n                        break;\n                    }\n                    if (opts.selector) {\n                        let elem = e.target;\n                        if (elem.matches(opts.selector)) {\n                            this.dragElem = elem;\n                        }\n                        else {\n                            elem = elem.closest(opts.selector);\n                            if (elem) {\n                                this.dragElem = elem;\n                            }\n                            else {\n                                break; // no event delegation selector matched\n                            }\n                        }\n                    }\n                    this.start.event = e;\n                    this.start.x = e.pageX;\n                    this.start.y = e.pageY;\n                    this.start.altKey = e.altKey;\n                    this.start.ctrlKey = e.ctrlKey;\n                    this.start.metaKey = e.metaKey;\n                    this.start.shiftKey = e.shiftKey;\n                    break;\n                case \"mousemove\":\n                    // TODO: debounce/throttle?\n                    // TODO: horizontal mode: ignore if dx unchanged\n                    if (!this.dragElem) {\n                        break;\n                    }\n                    if (!this.dragging) {\n                        if (opts.thresh) {\n                            const dist2 = cb_event.dx * cb_event.dx + cb_event.dy * cb_event.dy;\n                            if (dist2 < opts.thresh * opts.thresh) {\n                                break;\n                            }\n                        }\n                        cb_event.type = \"dragstart\";\n                        if (opts.dragstart(cb_event) === false) {\n                            this.stopDrag(cb_event);\n                            break;\n                        }\n                        this.dragging = true;\n                    }\n                    if (this.dragging && this.opts.drag) {\n                        cb_event.type = \"drag\";\n                        this.opts.drag(cb_event);\n                    }\n                    break;\n                case \"mouseup\":\n                    if (!this.dragging) {\n                        this.stopDrag(cb_event);\n                        break;\n                    }\n                    if (e.button === 0) {\n                        cb_event.apply = true;\n                    }\n                    else {\n                        cb_event.apply = false;\n                    }\n                    this.stopDrag(cb_event);\n                    break;\n            }\n        }\n    }\n\n    /*!\n     * Wunderbaum - common\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n     */\n    const DEFAULT_DEBUGLEVEL = 3; // Replaced by rollup script\n    /**\n     * Fixed height of a row in pixel. Must match the SCSS variable `$row-outer-height`.\n     */\n    const DEFAULT_ROW_HEIGHT = 22;\n    /**\n     * Fixed width of node icons in pixel. Must match the SCSS variable `$icon-outer-width`.\n     */\n    const ICON_WIDTH = 20;\n    /**\n     * Adjust the width of the title span, so overflow ellipsis work.\n     * (2 x `$col-padding-x` + 3px rounding errors).\n     */\n    const TITLE_SPAN_PAD_Y = 7;\n    /** Render row markup for N nodes above and below the visible viewport. */\n    const RENDER_MAX_PREFETCH = 5;\n    /** Minimum column width if not set otherwise. */\n    const DEFAULT_MIN_COL_WIDTH = 4;\n    /**\n     * A value for `node.type` that by convention may be used to mark a node as directory.\n     * It may be used to sort 'directories' to the top.\n     */\n    const NODE_TYPE_FOLDER = \"folder\";\n    /** Regular expression to detect if a string describes an image URL (in contrast\n     * to a class name). Strings are considered image urls if they contain '.' or '/'.\n     * `<` is ignored, because it is probably an html tag.\n     */\n    const TEST_FILE_PATH = /^(?!.*<).*[/.]/;\n    /** Regular expression to detect if a string describes an HTML element. */\n    const TEST_HTML = /</;\n    /**\n     * Default node icons for icon libraries\n     *\n     *  - 'bootstrap': {@link https://icons.getbootstrap.com}\n     *  - 'fontawesome6' {@link https://fontawesome.com/icons}\n     *\n     */\n    const defaultIconMaps = {\n        bootstrap: {\n            error: \"bi bi-exclamation-triangle\",\n            // loading: \"bi bi-hourglass-split wb-busy\",\n            loading: \"bi bi-chevron-right wb-busy\",\n            // loading: \"bi bi-arrow-repeat wb-spin\",\n            // loading: '<div class=\"spinner-border spinner-border-sm\" role=\"status\"> <span class=\"visually-hidden\">Loading...</span> </div>',\n            // noData: \"bi bi-search\",\n            noData: \"bi bi-question-circle\",\n            expanderExpanded: \"bi bi-chevron-down\",\n            // expanderExpanded: \"bi bi-dash-square\",\n            expanderCollapsed: \"bi bi-chevron-right\",\n            // expanderCollapsed: \"bi bi-plus-square\",\n            expanderLazy: \"bi bi-chevron-right wb-helper-lazy-expander\",\n            // expanderLazy: \"bi bi-chevron-bar-right\",\n            checkChecked: \"bi bi-check-square\",\n            checkUnchecked: \"bi bi-square\",\n            checkUnknown: \"bi bi-dash-square-dotted\",\n            radioChecked: \"bi bi-circle-fill\",\n            radioUnchecked: \"bi bi-circle\",\n            radioUnknown: \"bi bi-record-circle\",\n            folder: \"bi bi-folder2\",\n            folderOpen: \"bi bi-folder2-open\",\n            folderLazy: \"bi bi-folder-symlink\",\n            doc: \"bi bi-file-earmark\",\n            colSortable: \"bi bi-chevron-expand\",\n            // colSortable: \"bi bi-arrow-down-up\",\n            // colSortAsc: \"bi bi-chevron-down\",\n            // colSortDesc: \"bi bi-chevron-up\",\n            colSortAsc: \"bi bi-arrow-down\",\n            colSortDesc: \"bi bi-arrow-up\",\n            colFilter: \"bi bi-filter-circle\",\n            colFilterActive: \"bi bi-filter-circle-fill wb-helper-invalid\",\n            colMenu: \"bi bi-three-dots-vertical\",\n        },\n        fontawesome6: {\n            error: \"fa-solid fa-triangle-exclamation\",\n            loading: \"fa-solid fa-chevron-right fa-beat\",\n            noData: \"fa-solid fa-circle-question\",\n            expanderExpanded: \"fa-solid fa-chevron-down\",\n            expanderCollapsed: \"fa-solid fa-chevron-right\",\n            expanderLazy: \"fa-solid fa-chevron-right wb-helper-lazy-expander\",\n            checkChecked: \"fa-regular fa-square-check\",\n            checkUnchecked: \"fa-regular fa-square\",\n            checkUnknown: \"fa-regular fa-square-minus\",\n            radioChecked: \"fa-solid fa-circle\",\n            radioUnchecked: \"fa-regular fa-circle\",\n            radioUnknown: \"fa-regular fa-circle-question\",\n            folder: \"fa-regular fa-folder-closed\",\n            folderOpen: \"fa-regular fa-folder-open\",\n            folderLazy: \"fa-solid fa-folder-plus\",\n            doc: \"fa-regular fa-file\",\n            colSortable: \"fa-solid fa-fw fa-sort\",\n            colSortAsc: \"fa-solid fa-fw fa-sort-up\",\n            colSortDesc: \"fa-solid fa-fw fa-sort-down\",\n            colFilter: \"fa-solid fa-fw fa-filter\",\n            colFilterActive: \"fa-solid fa-fw fa-filter wb-helper-invalid\",\n            colMenu: \"fa-solid fa-fw fa-ellipsis-v\",\n        },\n    };\n    /** Dict keys that are evaluated by source loader (others are added to `tree.data` instead). */\n    const RESERVED_TREE_SOURCE_KEYS = new Set([\n        \"_format\", // reserved for future use\n        \"_keyMap\", // Used for compressed data format\n        \"_positional\", // Used for compressed data format\n        \"_typeList\", // Used for compressed data format @deprecated\n        \"_valueMap\", // Used for compressed data format\n        \"_version\", // reserved for future use\n        \"children\",\n        \"columns\",\n        \"types\",\n    ]);\n    // /** Key codes that trigger grid navigation, even when inside an input element. */\n    // export const INPUT_BREAKOUT_KEYS: Set<string> = new Set([\n    //   // \"ArrowDown\",\n    //   // \"ArrowUp\",\n    //   \"Enter\",\n    //   \"Escape\",\n    // ]);\n    /** Map `KeyEvent.key` to navigation action. */\n    const KEY_TO_NAVIGATION_MAP = {\n        ArrowDown: \"down\",\n        ArrowLeft: \"left\",\n        ArrowRight: \"right\",\n        ArrowUp: \"up\",\n        Backspace: \"parent\",\n        End: \"lastCol\",\n        Home: \"firstCol\",\n        \"Control+End\": \"last\",\n        \"Control+Home\": \"first\",\n        \"Meta+ArrowDown\": \"last\", // macOs\n        \"Meta+ArrowUp\": \"first\", // macOs\n        PageDown: \"pageDown\",\n        PageUp: \"pageUp\",\n    };\n    /** Return a callback that returns true if the node title matches the string\n     * or regular expression.\n     * @see {@link WunderbaumNode.findAll}\n     */\n    function makeNodeTitleMatcher(match) {\n        if (match instanceof RegExp) {\n            return function (node) {\n                return match.test(node.title);\n            };\n        }\n        assert(typeof match === \"string\", `Expected a string or RegExp: ${match}`);\n        // s = escapeRegex(s.toLowerCase());\n        return function (node) {\n            return node.title === match;\n            // console.log(\"match \" + node, node.title.toLowerCase().indexOf(match))\n            // return node.title.toLowerCase().indexOf(match) >= 0;\n        };\n    }\n    /** Return a callback that returns true if the node title starts with a string (case-insensitive). */\n    function makeNodeTitleStartMatcher(s) {\n        s = escapeRegex(s);\n        const reMatch = new RegExp(\"^\" + s, \"i\");\n        return function (node) {\n            return reMatch.test(node.title);\n        };\n    }\n    /** Compare two nodes by title (case-insensitive).\n     * @deprecated Use `key` option instead of `cmp` in sort methods.\n     */\n    function nodeTitleSorter(a, b) {\n        const x = a.title.toLowerCase();\n        const y = b.title.toLowerCase();\n        return x === y ? 0 : x > y ? 1 : -1;\n    }\n    // /** Compare nodes by title (case-insensitive). */\n    // export function nodeTitleKeyGetter(\n    //   node: WunderbaumNode\n    // ): string | number | Array<any> {\n    //   return node.title.toLowerCase();\n    // }\n    /**\n     * Convert 'flat' to 'nested' format.\n     *\n     * Flat node entry format:\n     *    [PARENT_IDX, {KEY_VALUE_ARGS}]\n     * or, if N _positional re defined:\n     *    [PARENT_IDX, POSITIONAL_ARG_1, POSITIONAL_ARG_2, ..., POSITIONAL_ARG_N]\n     * Even if _positional additional are defined, KEY_VALUE_ARGS can be appended:\n     *    [PARENT_IDX, POSITIONAL_ARG_1, ..., {KEY_VALUE_ARGS}]\n     *\n     * 1. Parent-referencing list is converted to a list of nested dicts with\n     *    optional `children` properties.\n     * 2. `[POSITIONAL_ARGS]` are added as dict attributes.\n     */\n    function unflattenSource(source) {\n        var _a, _b, _c;\n        const { _format, _keyMap = {}, _positional = [], children } = source;\n        const _positionalCount = _positional.length;\n        if (_format !== \"flat\") {\n            throw new Error(`Expected source._format: \"flat\", but got ${_format}`);\n        }\n        if (_positionalCount && _positional.includes(\"children\")) {\n            throw new Error(`source._positional must not include \"children\": ${_positional}`);\n        }\n        let longToShort = _keyMap;\n        if (_keyMap.t) {\n            // Inverse keyMap was used (pre 0.7.0)\n            // TODO: raise Error on final 1.x release\n            const msg = `source._keyMap maps from long to short since v0.7.0. Flip key/value!`;\n            console.warn(msg); // eslint-disable-line no-console\n            longToShort = {};\n            for (const [key, value] of Object.entries(_keyMap)) {\n                longToShort[value] = key;\n            }\n        }\n        const positionalShort = _positional.map((e) => { var _a; return (_a = longToShort[e]) !== null && _a !== void 0 ? _a : e; });\n        const newChildren = [];\n        const keyToNodeMap = {};\n        const indexToNodeMap = {};\n        const keyAttrName = (_a = longToShort[\"key\"]) !== null && _a !== void 0 ? _a : \"key\";\n        const childrenAttrName = (_b = longToShort[\"children\"]) !== null && _b !== void 0 ? _b : \"children\";\n        for (const [index, nodeTuple] of children.entries()) {\n            // Node entry format:\n            //   [PARENT_ID, [POSITIONAL_ARGS]]\n            // or\n            //   [PARENT_ID, POSITIONAL_ARG_1, POSITIONAL_ARG_2, ..., {KEY_VALUE_ARGS}]\n            let kwargs;\n            const [parentId, ...args] = nodeTuple;\n            if (args.length === _positionalCount) {\n                kwargs = {};\n            }\n            else if (args.length === _positionalCount + 1) {\n                kwargs = args.pop();\n                if (typeof kwargs !== \"object\") {\n                    throw new Error(`unflattenSource: Expected dict as last tuple element: ${nodeTuple}`);\n                }\n            }\n            else {\n                throw new Error(`unflattenSource: unexpected tuple length: ${nodeTuple}`);\n            }\n            // Free up some memory as we go\n            nodeTuple[1] = null;\n            if (nodeTuple[2] != null) {\n                nodeTuple[2] = null;\n            }\n            // We keep `kwargs` as our new node definition. Then we add all positional\n            // values to this object:\n            args.forEach((val, positionalIdx) => {\n                kwargs[positionalShort[positionalIdx]] = val;\n            });\n            args.length = 0;\n            // Find the parent node. `null` means 'toplevel'. PARENT_ID may be the numeric\n            // index of the source.children list. If PARENT_ID is a string, we search\n            // a parent with node.key of this value.\n            indexToNodeMap[index] = kwargs;\n            const key = kwargs[keyAttrName];\n            if (key != null) {\n                keyToNodeMap[key] = kwargs;\n            }\n            let parentNode = null;\n            if (parentId === null) ;\n            else if (typeof parentId === \"number\") {\n                parentNode = indexToNodeMap[parentId];\n                if (parentNode === undefined) {\n                    throw new Error(`unflattenSource: Could not find parent node by index: ${parentId}.`);\n                }\n            }\n            else {\n                parentNode = keyToNodeMap[parentId];\n                if (parentNode === undefined) {\n                    throw new Error(`unflattenSource: Could not find parent node by key: ${parentId}`);\n                }\n            }\n            if (parentNode) {\n                (_c = parentNode[childrenAttrName]) !== null && _c !== void 0 ? _c : (parentNode[childrenAttrName] = []);\n                parentNode[childrenAttrName].push(kwargs);\n            }\n            else {\n                newChildren.push(kwargs);\n            }\n        }\n        source.children = newChildren;\n    }\n    /**\n     * Decompresses the source data by\n     * - converting from 'flat' to 'nested' format\n     * - expanding short alias names to long names (if defined in _keyMap)\n     * - resolving value indexes to value strings (if defined in _valueMap)\n     *\n     * @param source - The source object to be decompressed.\n     * @returns void\n     */\n    function decompressSourceData(source) {\n        let { _format, _version = 1, _keyMap, _valueMap } = source;\n        assert(_version === 1, `Expected file version 1 instead of ${_version}`);\n        let longToShort = _keyMap;\n        let shortToLong = {};\n        if (longToShort) {\n            for (const [key, value] of Object.entries(longToShort)) {\n                shortToLong[value] = key;\n            }\n        }\n        // Fallback for old format (pre 0.7.0, using _keyMap in reverse direction)\n        // TODO: raise Error on final 1.x release\n        if (longToShort && longToShort.t) {\n            const msg = `source._keyMap maps from long to short since v0.7.0. Flip key/value!`;\n            console.warn(msg); // eslint-disable-line no-console\n            [longToShort, shortToLong] = [shortToLong, longToShort];\n        }\n        // Fallback for old format (pre 0.7.0, using _typeList instead of _valueMap)\n        // TODO: raise Error on final 1.x release\n        if (source._typeList != null) {\n            const msg = `source._typeList is deprecated since v0.7.0: use source._valueMap: {\"type\": [...]} instead.`;\n            if (_valueMap != null) {\n                throw new Error(msg);\n            }\n            else {\n                console.warn(msg); // eslint-disable-line no-console\n                _valueMap = { type: source._typeList };\n                delete source._typeList;\n            }\n        }\n        if (_format === \"flat\") {\n            unflattenSource(source);\n        }\n        delete source._format;\n        delete source._version;\n        delete source._keyMap;\n        delete source._valueMap;\n        delete source._positional;\n        function _iter(childList) {\n            for (const node of childList) {\n                // Iterate over a list of names, because we modify inside the loop\n                // (for ... of ... does not allow this)\n                Object.getOwnPropertyNames(node).forEach((propName) => {\n                    const value = node[propName];\n                    // Replace short names with long names if defined in _keyMap\n                    let longName = propName;\n                    if (_keyMap && shortToLong[propName] != null) {\n                        longName = shortToLong[propName];\n                        if (longName !== propName) {\n                            node[longName] = value;\n                            delete node[propName];\n                        }\n                    }\n                    // Replace type index with type name if defined in _valueMap\n                    if (_valueMap &&\n                        typeof value === \"number\" &&\n                        _valueMap[longName] != null) {\n                        const newValue = _valueMap[longName][value];\n                        if (newValue == null) {\n                            throw new Error(`Expected valueMap[${longName}][${value}] entry in [${_valueMap[longName]}]`);\n                        }\n                        node[longName] = newValue;\n                    }\n                });\n                // Recursion\n                if (node.children) {\n                    _iter(node.children);\n                }\n            }\n        }\n        if (_keyMap || _valueMap) {\n            _iter(source.children);\n        }\n    }\n\n    /*!\n     * Wunderbaum - ext-grid\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n     */\n    class GridExtension extends WunderbaumExtension {\n        constructor(tree) {\n            super(tree, \"grid\", {\n            // throttle: 200,\n            });\n            this.observer = new DragObserver({\n                root: window.document,\n                selector: \"span.wb-col-resizer-active\",\n                thresh: 4,\n                // throttle: 400,\n                dragstart: (e) => {\n                    const info = Wunderbaum.getEventInfo(e.startEvent);\n                    const colDef = info.colDef;\n                    const allow = colDef &&\n                        this.tree.element.contains(e.dragElem) &&\n                        toBool(colDef.resizable, tree.options.columnsResizable, false);\n                    // this.tree.log(\"dragstart\", colDef, e, info);\n                    this.tree.element.classList.toggle(\"wb-col-resizing\", !!allow);\n                    info.colElem.classList.toggle(\"wb-col-resizing\", !!allow);\n                    // We start dagging, so we remember the actual width in *pixels*\n                    // (which may be 'auto' or '100%').\n                    // Since we we re-create the markup on each update, we also cannot store\n                    // the original event or DOM element, but only the colDef object.\n                    if (allow) {\n                        // Store initial target column infos in customData\n                        e.customData.colDef = colDef;\n                        e.customData.orgCustomWidthPx = colDef.customWidthPx;\n                        const curWidthPx = Number.parseInt(info.colElem.style.width, 10);\n                        e.customData.orgWidthPx = curWidthPx;\n                        // Set custom width to current width, so that we can modify it\n                        colDef.customWidthPx = curWidthPx;\n                        // this.tree.log(\n                        //   `dragstart customWidthPx=${colDef.customWidthPx}`,\n                        //   e,\n                        //   info\n                        // );\n                        this.tree.update(ChangeType.colStructure);\n                        // this.tree.log(\n                        //   `dragstart 2 customWidthPx=${colDef.customWidthPx}`,\n                        //   e,\n                        //   info\n                        // );\n                    }\n                    return allow;\n                },\n                drag: (e) => {\n                    // TODO: throttle\n                    return this.handleDrag(e);\n                },\n                dragstop: (e) => {\n                    return this.handleDrag(e);\n                },\n            });\n        }\n        init() {\n            super.init();\n        }\n        /**\n         * Handles drag and sragstop events for column resizing.\n         */\n        handleDrag(e) {\n            const custom = e.customData;\n            const colDef = custom.colDef;\n            // this.tree.log(`${e.type} (dx=${e.dx})`, e, info);\n            if (e.type === \"dragstop\" || e.type === \"drag\") {\n                this.tree.element.classList.remove(\"wb-col-resizing\");\n                // info.colElem!.classList.remove(\"wb-col-resizing\");\n                if (e.apply || e.type === \"drag\") {\n                    const minWidth = toPixel(colDef.minWidth, DEFAULT_MIN_COL_WIDTH);\n                    const newWidth = Math.max(minWidth, custom.orgWidthPx + e.dx);\n                    colDef.customWidthPx = newWidth;\n                    // this.tree.log(\n                    //   `${e.type} minWidth=${minWidth}, newWidth=${newWidth}`,\n                    //   colDef\n                    // );\n                }\n                else {\n                    // Drag was cancelled\n                    this.tree.log(\"Column resize cancelled\", e);\n                    colDef.customWidthPx = custom.orgCustomWidthPx; // Restore original width or undefined\n                }\n                this.tree.update(ChangeType.colStructure);\n            }\n        }\n    }\n\n    /*!\n     * Wunderbaum - deferred\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n     */\n    /**\n     * Implement a ES6 Promise, that exposes a resolve() and reject() method.\n     *\n     * Loosely mimics {@link https://api.jquery.com/category/deferred-object/ | jQuery.Deferred}.\n     * Example:\n     * ```js\n     * function foo() {\n     *   let dfd = new Deferred(),\n     *   ...\n     *   dfd.resolve('foo')\n     *   ...\n     *   return dfd.promise();\n     * }\n     * ```\n     */\n    class Deferred {\n        constructor() {\n            this._promise = new Promise((resolve, reject) => {\n                this._resolve = resolve;\n                this._reject = reject;\n            });\n        }\n        /** Resolve the Promise. */\n        resolve(value) {\n            this._resolve(value);\n        }\n        /** Reject the Promise. */\n        reject(reason) {\n            this._reject(reason);\n        }\n        /** Return the native Promise instance.*/\n        promise() {\n            return this._promise;\n        }\n        /** Call Promise.then on the embedded promise instance.*/\n        then(cb) {\n            return this._promise.then(cb);\n        }\n        /** Call Promise.catch on the embedded promise instance.*/\n        catch(cb) {\n            return this._promise.catch(cb);\n        }\n        /** Call Promise.finally on the embedded promise instance.*/\n        finally(cb) {\n            return this._promise.finally(cb);\n        }\n    }\n\n    /*!\n     * Wunderbaum - wunderbaum_node\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n     */\n    /** WunderbaumNode properties that can be passed with source data.\n     * (Any other source properties will be stored as `node.data.PROP`.)\n     */\n    const NODE_PROPS = new Set([\n        \"checkbox\",\n        \"classes\",\n        \"expanded\",\n        \"icon\",\n        \"iconTooltip\",\n        \"key\",\n        \"lazy\",\n        \"_partsel\",\n        \"radiogroup\",\n        \"refKey\",\n        \"selected\",\n        \"statusNodeType\",\n        \"title\",\n        \"tooltip\",\n        \"type\",\n        \"unselectable\",\n    ]);\n    /** WunderbaumNode properties that will be returned by `node.toDict()`.)\n     */\n    const NODE_DICT_PROPS = new Set(NODE_PROPS);\n    NODE_DICT_PROPS.delete(\"_partsel\");\n    NODE_DICT_PROPS.delete(\"unselectable\");\n    // /** Node properties that are of type bool (or boolean & string).\n    //  *  When parsing, we accept 0 for false and 1 for true for better JSON compression.\n    //  */\n    // export const NODE_BOOL_PROPS: Set<string> = new Set([\n    //   \"checkbox\",\n    //   \"colspan\",\n    //   \"expanded\",\n    //   \"icon\",\n    //   \"iconTooltip\",\n    //   \"radiogroup\",\n    //   \"selected\",\n    //   \"tooltip\",\n    //   \"unselectable\",\n    // ]);\n    /**\n     * A single tree node.\n     *\n     * **NOTE:** <br>\n     * Generally you should not modify properties directly, since this may break\n     * the internal bookkeeping.\n     */\n    class WunderbaumNode {\n        constructor(tree, parent, data) {\n            var _a;\n            /** Reference key. Unlike {@link key}, a `refKey` may occur multiple\n             * times within a tree (in this case we have 'clone nodes').\n             * @see Use {@link setKey} to modify.\n             */\n            this.refKey = undefined;\n            /**\n             * Array of child nodes (null for leaf nodes).\n             * For lazy nodes, this is `null` or ùndefined` until the children are loaded\n             * and leaf nodes may be `[]` (empty array).\n             * @see {@link hasChildren}, {@link addChildren}, {@link lazy}.\n             */\n            this.children = null;\n            /** Additional classes added to `div.wb-row`.\n             * @see {@link hasClass}, {@link setClass}. */\n            this.classes = null; //new Set<string>();\n            /** Custom data that was passed to the constructor */\n            this.data = {};\n            this._isLoading = false;\n            this._requestId = 0;\n            this._errorInfo = null;\n            this._partsel = false;\n            this._partload = false;\n            this.subMatchCount = 0;\n            this._rowIdx = 0;\n            this._rowElem = undefined;\n            assert(!parent || parent.tree === tree, `Invalid parent: ${parent}`);\n            assert(!data.children, \"'children' not allowed here\");\n            this.tree = tree;\n            this.parent = parent;\n            this.key = tree._calculateKey(data, parent);\n            this.title = \"\" + ((_a = data.title) !== null && _a !== void 0 ? _a : \"<\" + this.key + \">\");\n            this.expanded = !!data.expanded;\n            this.lazy = !!data.lazy;\n            // We set the following node properties only if a matching data value is\n            // passed\n            data.refKey != null ? (this.refKey = \"\" + data.refKey) : 0;\n            data.type != null ? (this.type = \"\" + data.type) : 0;\n            data.icon != null ? (this.icon = intToBool(data.icon)) : 0;\n            data.tooltip != null ? (this.tooltip = intToBool(data.tooltip)) : 0;\n            data.iconTooltip != null\n                ? (this.iconTooltip = intToBool(data.iconTooltip))\n                : 0;\n            data.statusNodeType != null\n                ? (this.statusNodeType = (\"\" + data.statusNodeType))\n                : 0;\n            data.colspan != null ? (this.colspan = !!data.colspan) : 0;\n            // Selection\n            data.checkbox != null\n                ? (this.checkbox = intToBool(data.checkbox))\n                : 0;\n            data.radiogroup != null ? (this.radiogroup = !!data.radiogroup) : 0;\n            data.selected != null ? (this.selected = !!data.selected) : 0;\n            data.unselectable != null ? (this.unselectable = !!data.unselectable) : 0;\n            if (data.classes) {\n                this.setClass(data.classes);\n            }\n            // Store custom fields as `node.data`\n            for (const [key, value] of Object.entries(data)) {\n                if (!NODE_PROPS.has(key)) {\n                    this.data[key] = value;\n                }\n            }\n            if (parent && !this.statusNodeType) {\n                // Don't register root node or status nodes\n                tree._registerNode(this);\n            }\n        }\n        /**\n         * Return readable string representation for this instance.\n         * @internal\n         */\n        toString() {\n            return `WunderbaumNode@${this.key}<'${this.title}'>`;\n        }\n        /**\n         * Iterate all descendant nodes depth-first, pre-order using `for ... of ...` syntax.\n         * More concise, but slightly slower than {@link WunderbaumNode.visit}.\n         *\n         * Example:\n         * ```js\n         * for(const n of node) {\n         *   ...\n         * }\n         * ```\n         */\n        *[Symbol.iterator]() {\n            // let node: WunderbaumNode | null = this;\n            const cl = this.children;\n            if (cl) {\n                for (let i = 0, l = cl.length; i < l; i++) {\n                    const n = cl[i];\n                    yield n;\n                    if (n.children) {\n                        yield* n;\n                    }\n                }\n                // Slower:\n                // for (let node of this.children) {\n                //   yield node;\n                //   yield* node : 0;\n                // }\n            }\n        }\n        // /** Return an option value. */\n        // protected _getOpt(\n        //   name: string,\n        //   nodeObject: any = null,\n        //   treeOptions: any = null,\n        //   defaultValue: any = null\n        // ): any {\n        //   return evalOption(\n        //     name,\n        //     this,\n        //     nodeObject || this,\n        //     treeOptions || this.tree.options,\n        //     defaultValue\n        //   );\n        // }\n        /** Call event handler if defined in tree.options.\n         * Example:\n         * ```js\n         * node._callEvent(\"edit.beforeEdit\", {foo: 42})\n         * ```\n         */\n        _callEvent(type, extra) {\n            var _a;\n            return (_a = this.tree) === null || _a === void 0 ? void 0 : _a._callEvent(type, extend({\n                node: this,\n                typeInfo: this.type ? this.tree.types[this.type] : {},\n            }, extra));\n        }\n        /**\n         * Append (or insert) a list of child nodes.\n         *\n         * Tip: pass `{ before: 0 }` to prepend new nodes as first children.\n         *\n         * @returns first child added\n         */\n        addChildren(nodeData, options) {\n            const tree = this.tree;\n            let { before = null, applyMinExpanLevel = true, _level } = options !== null && options !== void 0 ? options : {};\n            // let { before, loadLazy=true, _level } = options ?? {};\n            // const isTopCall = _level == null;\n            _level !== null && _level !== void 0 ? _level : (_level = this.getLevel());\n            const nodeList = [];\n            try {\n                tree.enableUpdate(false);\n                if (isPlainObject(nodeData)) {\n                    nodeData = [nodeData];\n                }\n                const forceExpand = applyMinExpanLevel && _level < tree.options.minExpandLevel;\n                for (const child of nodeData) {\n                    const subChildren = child.children;\n                    // Remove children property from source data because it should not be\n                    // passed to the constructor of WunderbaumNode:\n                    delete child.children;\n                    const n = new WunderbaumNode(tree, this, child);\n                    // Set `children` property again, so it can be used in `reload()`\n                    if (subChildren != null) {\n                        child.children = subChildren;\n                    }\n                    if (forceExpand && !n.isUnloaded()) {\n                        n.expanded = true;\n                    }\n                    nodeList.push(n);\n                    if (subChildren) {\n                        n.addChildren(subChildren, { _level: _level + 1 });\n                    }\n                }\n                if (!this.children) {\n                    this.children = nodeList;\n                }\n                else if (before == null || this.children.length === 0) {\n                    this.children = this.children.concat(nodeList);\n                }\n                else {\n                    // Returns null if before is not a direct child:\n                    before = this.findDirectChild(before);\n                    const pos = this.children.indexOf(before);\n                    assert(pos >= 0, `options.before must be a direct child of ${this}`);\n                    // insert nodeList after children[pos]\n                    this.children.splice(pos, 0, ...nodeList);\n                }\n                // this.triggerModifyChild(\"add\", nodeList.length === 1 ? nodeList[0] : null);\n                tree.update(ChangeType.structure);\n            }\n            finally {\n                // if (tree.options.selectMode === \"hier\") {\n                //   if (this.parent && this.parent.children) {\n                //     this.fixSelection3FromEndNodes();\n                //   } else {\n                //     // may happen when loading __root__;\n                //   }\n                // }\n                tree.enableUpdate(true);\n            }\n            // if(isTopCall && loadLazy){\n            //   this.logWarn(\"addChildren(): loadLazy is not yet implemented.\")\n            // }\n            return nodeList[0];\n        }\n        /**\n         * Append or prepend a node, or append a child node.\n         *\n         * This a convenience function that calls addChildren()\n         *\n         * @param nodeData node definition\n         * @param [mode=child] 'before', 'after', 'firstChild', or 'child' ('over' is a synonym for 'child')\n         * @returns new node\n         */\n        addNode(nodeData, mode = \"appendChild\") {\n            if (mode === \"over\") {\n                mode = \"appendChild\"; // compatible with drop region\n            }\n            switch (mode) {\n                case \"after\":\n                    return this.parent.addChildren(nodeData, {\n                        before: this.getNextSibling(),\n                    });\n                case \"before\":\n                    return this.parent.addChildren(nodeData, { before: this });\n                case \"prependChild\":\n                    // Insert before the first child if any\n                    // let insertBefore = this.children ? this.children[0] : undefined;\n                    return this.addChildren(nodeData, { before: 0 });\n                case \"appendChild\":\n                    return this.addChildren(nodeData);\n            }\n            assert(false, `Invalid mode: ${mode}`);\n            return undefined;\n        }\n        /**\n         * Apply a modification (or navigation) operation.\n         *\n         * @see {@link Wunderbaum.applyCommand}\n         */\n        applyCommand(cmd, options) {\n            return this.tree.applyCommand(cmd, this, options);\n        }\n        /**\n         * Collapse all expanded sibling nodes if any.\n         * (Automatically called when `autoCollapse` is true.)\n         */\n        collapseSiblings(options) {\n            for (const node of this.parent.children) {\n                if (node !== this && node.expanded) {\n                    node.setExpanded(false, options);\n                }\n            }\n        }\n        /**\n         * Add/remove one or more classes to `<div class='wb-row'>`.\n         *\n         * This also maintains `node.classes`, so the class will survive a re-render.\n         *\n         * @param className one or more class names. Multiple classes can be passed\n         *     as space-separated string, array of strings, or set of strings.\n         */\n        setClass(className, flag = true) {\n            const cnSet = toSet(className);\n            if (flag) {\n                if (this.classes === null) {\n                    this.classes = new Set();\n                }\n                cnSet.forEach((cn) => {\n                    var _a;\n                    this.classes.add(cn);\n                    (_a = this._rowElem) === null || _a === void 0 ? void 0 : _a.classList.toggle(cn, flag);\n                });\n            }\n            else {\n                if (this.classes === null) {\n                    return;\n                }\n                cnSet.forEach((cn) => {\n                    var _a;\n                    this.classes.delete(cn);\n                    (_a = this._rowElem) === null || _a === void 0 ? void 0 : _a.classList.toggle(cn, flag);\n                });\n                if (this.classes.size === 0) {\n                    this.classes = null;\n                }\n            }\n        }\n        /** Start editing this node's title. */\n        startEditTitle() {\n            this.tree._callMethod(\"edit.startEditTitle\", this);\n        }\n        /**\n         * Call `setExpanded()` on all descendant nodes.\n         *\n         * @param flag true to expand, false to collapse.\n         * @param options Additional options.\n         * @see {@link Wunderbaum.expandAll}\n         * @see {@link WunderbaumNode.setExpanded}\n         */\n        async expandAll(flag = true, options) {\n            const tree = this.tree;\n            const { collapseOthers, deep, depth, force, keepActiveNodeVisible = true, loadLazy, resetLazy, } = options !== null && options !== void 0 ? options : {};\n            // limit expansion level to `depth` (or tree.minExpandLevel). Default: unlimited\n            const treeLevel = this.tree.options.minExpandLevel || null; // 0 -> null\n            const minLevel = depth !== null && depth !== void 0 ? depth : (force ? null : treeLevel);\n            const expandOpts = {\n                deep: deep,\n                force: force,\n                loadLazy: loadLazy,\n                resetLazy: resetLazy,\n                scrollIntoView: false, // don't scroll every node while iterating\n            };\n            this.logInfo(`expandAll(${flag}, depth=${depth}, minLevel=${minLevel})`);\n            assert(!(flag && deep != null && !collapseOthers), \"Expanding with `deep` option is not supported (implied by the `depth` option).\");\n            // Expand all direct children in parallel:\n            async function _iter(n, level) {\n                var _a;\n                // n.logInfo(`  _iter(level=${level})`);\n                const promises = [];\n                (_a = n.children) === null || _a === void 0 ? void 0 : _a.forEach((cn) => {\n                    if (flag) {\n                        if (!cn.expanded &&\n                            (minLevel == null || level < minLevel) &&\n                            (cn.children || (loadLazy && cn.lazy))) {\n                            // Node is collapsed and may be expanded (i.e. has children or is lazy)\n                            // Expanding may be async, so we store the promise.\n                            // Also the recursion is delayed until expansion finished.\n                            const p = cn.setExpanded(true, expandOpts);\n                            promises.push(p);\n                            if (depth == null) {\n                                p.then(async () => {\n                                    await _iter(cn, level + 1);\n                                });\n                            }\n                        }\n                        else {\n                            // We don't expand the node, but still visit descendants.\n                            // There we may find lazy nodes, so we\n                            promises.push(_iter(cn, level + 1));\n                        }\n                    }\n                    else {\n                        // Collapsing is always synchronous, so no promises required\n                        // Do not collapse until minExpandLevel\n                        if (minLevel == null || level >= minLevel) {\n                            cn.setExpanded(false, expandOpts);\n                        }\n                        if ((minLevel != null && level < minLevel) || deep) {\n                            _iter(cn, level + 1); // recursion, even if cn was already collapsed\n                        }\n                    }\n                });\n                return new Promise((resolve) => {\n                    Promise.all(promises).then(() => {\n                        resolve(true);\n                    });\n                });\n            }\n            const tag = tree.logTime(`${this}.expandAll(${flag}, depth=${depth})`);\n            try {\n                tree.enableUpdate(false);\n                await _iter(this, 0);\n                if (collapseOthers) {\n                    assert(flag, \"Option `collapseOthers` requires flag=true\");\n                    assert(minLevel != null, \"Option `collapseOthers` requires `depth` or `minExpandLevel`\");\n                    this.expandAll(false, { depth: minLevel });\n                }\n            }\n            finally {\n                tree.enableUpdate(true);\n                tree.logTimeEnd(tag);\n            }\n            if (tree.activeNode && keepActiveNodeVisible) {\n                tree.activeNode.scrollIntoView();\n            }\n        }\n        /**\n         * Find all descendant nodes that match condition (excluding self).\n         *\n         * If `match` is a string, search for exact node title.\n         * If `match` is a RegExp expression, apply it to node.title, using\n         * [RegExp.test()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test).\n         * If `match` is a callback, match all nodes for that the callback(node) returns true.\n         *\n         * Returns an empty array if no nodes were found.\n         *\n         * Examples:\n         * ```js\n         * // Match all node titles that match exactly 'Joe':\n         * nodeList = node.findAll(\"Joe\")\n         * // Match all node titles that start with 'Joe' case sensitive:\n         * nodeList = node.findAll(/^Joe/)\n         * // Match all node titles that contain 'oe', case insensitive:\n         * nodeList = node.findAll(/oe/i)\n         * // Match all nodes with `data.price` >= 99:\n         * nodeList = node.findAll((n) => {\n         *   return n.data.price >= 99;\n         * })\n         * ```\n         */\n        findAll(match) {\n            const matcher = typeof match === \"function\" ? match : makeNodeTitleMatcher(match);\n            const res = [];\n            this.visit((n) => {\n                if (matcher(n)) {\n                    res.push(n);\n                }\n            });\n            return res;\n        }\n        /** Return the direct child with a given key, index or null. */\n        findDirectChild(ptr) {\n            const cl = this.children;\n            if (!cl) {\n                return null;\n            }\n            if (typeof ptr === \"string\") {\n                for (let i = 0, l = cl.length; i < l; i++) {\n                    if (cl[i].key === ptr) {\n                        return cl[i];\n                    }\n                }\n            }\n            else if (typeof ptr === \"number\") {\n                return cl[ptr];\n            }\n            else if (ptr.parent === this) {\n                // Return null if `ptr` is not a direct child\n                return ptr;\n            }\n            return null;\n        }\n        /**\n         * Find first descendant node that matches condition (excluding self) or null.\n         *\n         * @see {@link WunderbaumNode.findAll} for examples.\n         */\n        findFirst(match) {\n            const matcher = typeof match === \"function\" ? match : makeNodeTitleMatcher(match);\n            let res = null;\n            this.visit((n) => {\n                if (matcher(n)) {\n                    res = n;\n                    return false;\n                }\n            });\n            return res;\n        }\n        /** Find a node relative to self.\n         *\n         * @see {@link Wunderbaum.findRelatedNode|tree.findRelatedNode()}\n         */\n        findRelatedNode(where, includeHidden = false) {\n            return this.tree.findRelatedNode(this, where, includeHidden);\n        }\n        /**\n         * Iterator version of {@link WunderbaumNode.format}.\n         */\n        *format_iter(name_cb, connectors) {\n            connectors !== null && connectors !== void 0 ? connectors : (connectors = [\"    \", \" |  \", \" ╰─ \", \" ├─ \"]);\n            name_cb !== null && name_cb !== void 0 ? name_cb : (name_cb = (node) => \"\" + node);\n            function _is_last(node) {\n                const ca = node.parent.children;\n                return node === ca[ca.length - 1];\n            }\n            const _format_line = (node) => {\n                // https://www.measurethat.net/Benchmarks/Show/12196/0/arr-unshift-vs-push-reverse-small-array\n                const parts = [name_cb(node)];\n                parts.unshift(connectors[_is_last(node) ? 2 : 3]);\n                let p = node.parent;\n                while (p && p !== this) {\n                    // `this` is the top node\n                    parts.unshift(connectors[_is_last(p) ? 0 : 1]);\n                    p = p.parent;\n                }\n                return parts.join(\"\");\n            };\n            yield name_cb(this);\n            for (const node of this) {\n                yield _format_line(node);\n            }\n        }\n        /**\n         * Return a multiline string representation of a node/subnode hierarchy.\n         * Mostly useful for debugging.\n         *\n         * Example:\n         * ```js\n         * console.info(tree.getActiveNode().format((n)=>n.title));\n         * ```\n         * logs\n         * ```\n         * Books\n         *  ├─ Art of War\n         *  ╰─ Don Quixote\n         * ```\n         * @see {@link WunderbaumNode.format_iter}\n         */\n        format(name_cb, connectors) {\n            const a = [];\n            for (const line of this.format_iter(name_cb, connectors)) {\n                a.push(line);\n            }\n            return a.join(\"\\n\");\n        }\n        /** Return the `<span class='wb-col'>` element with a given index or id.\n         * @returns {WunderbaumNode | null}\n         */\n        getColElem(colIdx) {\n            var _a;\n            if (typeof colIdx === \"string\") {\n                colIdx = this.tree.columns.findIndex((value) => value.id === colIdx);\n            }\n            const colElems = (_a = this._rowElem) === null || _a === void 0 ? void 0 : _a.querySelectorAll(\"span.wb-col\");\n            return colElems ? colElems[colIdx] : null;\n        }\n        /**\n         * Return all nodes with the same refKey.\n         *\n         * @param includeSelf Include this node itself.\n         * @see {@link Wunderbaum.findByRefKey}\n         */\n        getCloneList(includeSelf = false) {\n            if (!this.refKey) {\n                return [];\n            }\n            const clones = this.tree.findByRefKey(this.refKey);\n            if (includeSelf) {\n                return clones;\n            }\n            return [...clones].filter((n) => n !== this);\n        }\n        /** Return the first child node or null.\n         * @returns {WunderbaumNode | null}\n         */\n        getFirstChild() {\n            return this.children ? this.children[0] : null;\n        }\n        /** Return the last child node or null.\n         * @returns {WunderbaumNode | null}\n         */\n        getLastChild() {\n            return this.children ? this.children[this.children.length - 1] : null;\n        }\n        /** Return node depth (starting with 1 for top level nodes). */\n        getLevel() {\n            let i = 0, p = this.parent;\n            while (p) {\n                i++;\n                p = p.parent;\n            }\n            return i;\n        }\n        /** Return the successive node (under the same parent) or null. */\n        getNextSibling() {\n            const ac = this.parent.children;\n            const idx = ac.indexOf(this);\n            return ac[idx + 1] || null;\n        }\n        /** Return the parent node (null for the system root node). */\n        getParent() {\n            // TODO: return null for top-level nodes?\n            return this.parent;\n        }\n        /** Return an array of all parent nodes (top-down).\n         * @param includeRoot Include the invisible system root node.\n         * @param includeSelf Include the node itself.\n         */\n        getParentList(includeRoot = false, includeSelf = false) {\n            const l = [];\n            let dtn = includeSelf ? this : this.parent;\n            while (dtn) {\n                if (includeRoot || dtn.parent) {\n                    l.unshift(dtn);\n                }\n                dtn = dtn.parent;\n            }\n            return l;\n        }\n        /** Return a string representing the hierarchical node path, e.g. \"a/b/c\".\n         * @param includeSelf\n         * @param part property name or callback\n         * @param separator\n         */\n        getPath(includeSelf = true, part = \"title\", separator = \"/\") {\n            let val;\n            const path = [];\n            const isFunc = typeof part === \"function\";\n            this.visitParents((n) => {\n                if (n.parent) {\n                    val = isFunc\n                        ? part(n)\n                        : n[part];\n                    path.unshift(val);\n                }\n                return undefined; // TODO remove this line\n            }, includeSelf);\n            return path.join(separator);\n        }\n        /** Return the preceding node (under the same parent) or null. */\n        getPrevSibling() {\n            const ac = this.parent.children;\n            const idx = ac.indexOf(this);\n            return ac[idx - 1] || null;\n        }\n        /** Return true if node has children.\n         * Return undefined if not sure, i.e. the node is lazy and not yet loaded.\n         */\n        hasChildren() {\n            if (this.lazy) {\n                if (this.children == null) {\n                    return undefined; // null or undefined: Not yet loaded\n                }\n                else if (this.children.length === 0) {\n                    return false; // Loaded, but response was empty\n                }\n                else if (this.children.length === 1 &&\n                    this.children[0].isStatusNode()) {\n                    return undefined; // Currently loading or load error\n                }\n                return true; // One or more child nodes\n            }\n            return !!(this.children && this.children.length);\n        }\n        /** Return true if node has className set. */\n        hasClass(className) {\n            return this.classes ? this.classes.has(className) : false;\n        }\n        /** Return true if node is the currently focused node. @since 0.9.0 */\n        hasFocus() {\n            return this.tree.focusNode === this;\n        }\n        /** Return true if this node is the currently active tree node. */\n        isActive() {\n            return this.tree.activeNode === this;\n        }\n        /** Return true if this node is a direct or indirect parent of `other`.\n         * @see {@link WunderbaumNode.isParentOf}\n         */\n        isAncestorOf(other) {\n            return other && other.isDescendantOf(this);\n        }\n        /** Return true if this node is a **direct** subnode of `other`.\n         * @see {@link WunderbaumNode.isDescendantOf}\n         */\n        isChildOf(other) {\n            return other && this.parent === other;\n        }\n        /** Return true if this node's refKey is used by at least one other node.\n         */\n        isClone() {\n            return !!this.refKey && this.tree.findByRefKey(this.refKey).length > 1;\n        }\n        /** Return true if this node's title spans all columns, i.e. the node has no\n         * grid cells.\n         */\n        isColspan() {\n            return !!this.getOption(\"colspan\");\n        }\n        /** Return true if this node is a direct or indirect subnode of `other`.\n         * @see {@link WunderbaumNode.isChildOf}\n         */\n        isDescendantOf(other) {\n            if (!other || other.tree !== this.tree) {\n                return false;\n            }\n            let p = this.parent;\n            while (p) {\n                if (p === other) {\n                    return true;\n                }\n                if (p === p.parent) {\n                    error(`Recursive parent link: ${p}`);\n                }\n                p = p.parent;\n            }\n            return false;\n        }\n        /** Return true if this node has children, i.e. the node is generally expandable.\n         * If `andCollapsed` is set, we also check if this node is collapsed, i.e.\n         * an expand operation is currently possible.\n         */\n        isExpandable(andCollapsed = false) {\n            // `false` is never expandable (unofficial)\n            if ((andCollapsed && this.expanded) || this.children === false) {\n                return false;\n            }\n            if (this.children == null) {\n                return !!this.lazy; // null or undefined can trigger lazy load\n            }\n            if (this.children.length === 0) {\n                return !!this.tree.options.emptyChildListExpandable;\n            }\n            return true;\n        }\n        /** Return true if _this_ node is currently in edit-title mode.\n         *\n         * See {@link WunderbaumNode.startEditTitle}.\n         */\n        isEditingTitle() {\n            return this.tree._callMethod(\"edit.isEditingTitle\", this);\n        }\n        /** Return true if this node is currently expanded. */\n        isExpanded() {\n            return !!this.expanded;\n        }\n        /** Return true if this node is the first node of its parent's children. */\n        isFirstSibling() {\n            const p = this.parent;\n            return !p || p.children[0] === this;\n        }\n        /** Return true if this node is the last node of its parent's children. */\n        isLastSibling() {\n            const p = this.parent;\n            return !p || p.children[p.children.length - 1] === this;\n        }\n        /** Return true if this node is lazy (even if data was already loaded) */\n        isLazy() {\n            return !!this.lazy;\n        }\n        /** Return true if node is lazy and loaded. For non-lazy nodes always return true. */\n        isLoaded() {\n            return !this.lazy || this.hasChildren() !== undefined; // Also checks if the only child is a status node\n        }\n        /** Return true if node is currently loading, i.e. a GET request is pending. */\n        isLoading() {\n            return this._isLoading;\n        }\n        /** Return true if this node is a temporarily generated status node of type 'paging'. */\n        isPagingNode() {\n            return this.statusNodeType === \"paging\";\n        }\n        /** Return true if this node is a **direct** parent of `other`.\n         * @see {@link WunderbaumNode.isAncestorOf}\n         */\n        isParentOf(other) {\n            return other && other.parent === this;\n        }\n        /** Return true if this node is partially loaded. @experimental  */\n        isPartload() {\n            return !!this._partload;\n        }\n        /** Return true if this node is partially selected (tri-state). */\n        isPartsel() {\n            return !this.selected && !!this._partsel;\n        }\n        /** Return true if this node has DOM representation, i.e. is displayed in the viewport. */\n        isRadio() {\n            return !!this.parent.radiogroup || this.getOption(\"checkbox\") === \"radio\";\n        }\n        /** Return true if this node has DOM representation, i.e. is displayed in the viewport. */\n        isRendered() {\n            return !!this._rowElem;\n        }\n        /** Return true if this node is the (invisible) system root node.\n         * @see {@link WunderbaumNode.isTopLevel}\n         */\n        isRootNode() {\n            return this.tree.root === this;\n        }\n        /** Return true if this node is selected, i.e. the checkbox is set.\n         * `undefined` if partly selected (tri-state), false otherwise.\n         */\n        isSelected() {\n            return this.selected ? true : this._partsel ? undefined : false;\n        }\n        /** Return true if this node is a temporarily generated system node like\n         * 'loading', 'paging', or 'error' (node.statusNodeType contains the type).\n         */\n        isStatusNode() {\n            return !!this.statusNodeType;\n        }\n        /** Return true if this a top level node, i.e. a direct child of the (invisible) system root node. */\n        isTopLevel() {\n            return this.tree.root === this.parent;\n        }\n        /** Return true if node is marked lazy but not yet loaded.\n         * For non-lazy nodes always return false.\n         */\n        isUnloaded() {\n            // Also checks if the only child is a status node:\n            return this.hasChildren() === undefined;\n        }\n        /** Return true if all parent nodes are expanded. Note: this does not check\n         * whether the node is scrolled into the visible part of the screen or viewport.\n         */\n        isVisible() {\n            const hasFilter = this.tree.filterMode === \"hide\";\n            const parents = this.getParentList(false, false);\n            // TODO: check $(n.span).is(\":visible\")\n            // i.e. return false for nodes (but not parents) that are hidden\n            // by a filter\n            if (hasFilter && !this.match && !this.subMatchCount) {\n                // this.debug( \"isVisible: HIDDEN (\" + hasFilter + \", \" + this.match + \", \" + this.match + \")\" );\n                return false;\n            }\n            for (let i = 0, l = parents.length; i < l; i++) {\n                const n = parents[i];\n                if (!n.expanded) {\n                    // this.debug(\"isVisible: HIDDEN (parent collapsed)\");\n                    return false;\n                }\n                // if (hasFilter && !n.match && !n.subMatchCount) {\n                // \tthis.debug(\"isVisible: HIDDEN (\" + hasFilter + \", \" + this.match + \", \" + this.match + \")\");\n                // \treturn false;\n                // }\n            }\n            // this.debug(\"isVisible: VISIBLE\");\n            return true;\n        }\n        _loadSourceObject(source, level) {\n            var _a;\n            const tree = this.tree;\n            level !== null && level !== void 0 ? level : (level = this.getLevel());\n            // Let caller modify the parsed JSON response:\n            const res = this._callEvent(\"receive\", { response: source });\n            if (res != null) {\n                source = res;\n            }\n            if (isArray(source)) {\n                source = { children: source };\n            }\n            assert(isPlainObject(source), `Expected an array or plain object: ${source}`);\n            const format = (_a = source.format) !== null && _a !== void 0 ? _a : \"nested\";\n            assert(format === \"nested\" || format === \"flat\", `Expected source.format = 'nested' or 'flat': ${format}`);\n            // Pre-rocess for 'nested' or 'flat' format\n            decompressSourceData(source);\n            assert(source.children, \"If `source` is an object, it must have a `children` property\");\n            if (source.types) {\n                tree.logInfo(\"Redefine types\", source.columns);\n                tree.setTypes(source.types, false);\n                delete source.types;\n            }\n            if (source.columns) {\n                tree.logInfo(\"Redefine columns\", source.columns);\n                tree.columns = source.columns;\n                delete source.columns;\n                tree.update(ChangeType.colStructure);\n            }\n            this.addChildren(source.children);\n            // Add extra data to `tree.data`\n            for (const [key, value] of Object.entries(source)) {\n                if (!RESERVED_TREE_SOURCE_KEYS.has(key)) {\n                    tree.data[key] = value;\n                    // tree.logDebug(`Add source.${key} to tree.data.${key}`);\n                }\n            }\n            if (tree.options.selectMode === \"hier\") {\n                this.fixSelection3FromEndNodes();\n            }\n            // Allow to un-sort nodes after sorting\n            this.resetNativeChildOrder();\n            this._callEvent(\"load\");\n        }\n        async _fetchWithOptions(source) {\n            var _a, _b;\n            // Either a URL string or an object with a `.url` property.\n            let url, params, body, options, rest;\n            let fetchOpts = {};\n            if (typeof source === \"string\") {\n                // source is a plain URL string: assume GET request\n                url = source;\n                fetchOpts.method = \"GET\";\n            }\n            else if (isPlainObject(source)) {\n                // source is a plain object with `.url` property.\n                ({ url, params, body, options, ...rest } = source);\n                assert(!rest || Object.keys(rest).length === 0, `Unexpected source properties: ${Object.keys(rest)}. Use 'options' instead.`);\n                assert(typeof url === \"string\", `expected source.url as string`);\n                if (isPlainObject(options)) {\n                    fetchOpts = options;\n                }\n                if (isPlainObject(body)) {\n                    // we also accept 'body' as object...\n                    assert(!fetchOpts.body, \"options.body should be passed as source.body\");\n                    fetchOpts.body = JSON.stringify(fetchOpts.body);\n                    (_a = fetchOpts.method) !== null && _a !== void 0 ? _a : (fetchOpts.method = \"POST\"); // set default\n                }\n                if (isPlainObject(params)) {\n                    url += \"?\" + new URLSearchParams(params);\n                    (_b = fetchOpts.method) !== null && _b !== void 0 ? _b : (fetchOpts.method = \"GET\"); // set default\n                }\n            }\n            else {\n                url = \"\"; // keep linter happy\n                error(`Unsupported source format: ${source}`);\n            }\n            this.setStatus(NodeStatusType.loading);\n            const response = await fetch(url, fetchOpts);\n            if (!response.ok) {\n                error(`GET ${url} returned ${response.status}, ${response}`);\n            }\n            return await response.json();\n        }\n        /** Download  data from the cloud, then call `.update()`. */\n        async load(source) {\n            const tree = this.tree;\n            const requestId = Date.now();\n            const prevParent = this.parent;\n            const start = Date.now();\n            let elap = 0, elapLoad = 0, elapProcess = 0;\n            // Check for overlapping requests\n            if (this._requestId) {\n                this.logWarn(`Recursive load request #${requestId} while #${this._requestId} is pending. ` +\n                    \"The previous request will be ignored.\");\n            }\n            this._requestId = requestId;\n            // const timerLabel = tree.logTime(this + \".load()\");\n            try {\n                const url = typeof source === \"string\" ? source : source.url;\n                if (!url) {\n                    // An array or a plain object (that does NOT contain a `.url` property)\n                    // will be treated as native Wunderbaum data\n                    if (typeof source.then === \"function\") {\n                        const msg = tree.logTime(`Resolve thenable ${source}`);\n                        source = await Promise.resolve(source);\n                        tree.logTimeEnd(msg);\n                    }\n                    this._loadSourceObject(source);\n                    elapProcess = Date.now() - start;\n                }\n                else {\n                    // Either a URL string or an object with a `.url` property.\n                    const data = await this._fetchWithOptions(source);\n                    elapLoad = Date.now() - start;\n                    if (this._requestId && this._requestId > requestId) {\n                        this.logWarn(`Ignored load response #${requestId} because #${this._requestId} is pending.`);\n                        return;\n                    }\n                    else {\n                        this.logDebug(`Received response for load request #${requestId}`);\n                    }\n                    if (this.parent === null && prevParent !== null) {\n                        this.logWarn(\"Lazy parent node was removed while loading: discarding response.\");\n                        return;\n                    }\n                    this.setStatus(NodeStatusType.ok);\n                    // if (data.columns) {\n                    //   tree.logInfo(\"Re-define columns\", data.columns);\n                    //   util.assert(!this.parent);\n                    //   tree.columns = data.columns;\n                    //   delete data.columns;\n                    //   tree.updateColumns({ calculateCols: false });\n                    // }\n                    const startProcess = Date.now();\n                    this._loadSourceObject(data);\n                    elapProcess = Date.now() - startProcess;\n                }\n            }\n            catch (error) {\n                this.logError(\"Error during load()\", source, error);\n                this._callEvent(\"error\", { error: error });\n                this.setStatus(NodeStatusType.error, { message: \"\" + error });\n                throw error;\n            }\n            finally {\n                this._requestId = 0;\n                elap = Date.now() - start;\n                if (tree.options.debugLevel >= 3) {\n                    tree.logInfo(`Load source took ${elap / 1000} seconds ` +\n                        `(transfer: ${elapLoad / 1000}s, ` +\n                        `processing: ${elapProcess / 1000}s)`);\n                }\n            }\n        }\n        /**\n         * Load content of a lazy node.\n         * If the node is already loaded, nothing happens.\n         * @param [forceReload=false] If true, reload even if already loaded.\n         */\n        async loadLazy(forceReload = false) {\n            const wasExpanded = this.expanded;\n            assert(this.lazy, \"load() requires a lazy node\");\n            if (!forceReload && !this.isUnloaded()) {\n                return; // Already loaded: nothing to do\n            }\n            if (this.isLoading()) {\n                this.logWarn(\"loadLazy() called while already loading: ignored.\");\n                return; // Already loading: prevent duplicate requests\n            }\n            if (this.isLoaded()) {\n                this.resetLazy(); // Also collapses if currently expanded\n            }\n            // `lazyLoad` may be long-running, so mark node as loading now. `this.load()`\n            // will reset the status later.\n            this.setStatus(NodeStatusType.loading);\n            try {\n                const source = await this._callEvent(\"lazyLoad\");\n                if (source === false) {\n                    this.setStatus(NodeStatusType.ok);\n                    return;\n                }\n                assert(isArray(source) || (source && source.url), \"The lazyLoad event must return a node list, `{url: ...}`, or false.\");\n                await this.load(source);\n                this.setStatus(NodeStatusType.ok); // Also resets `this._isLoading`\n                if (wasExpanded) {\n                    this.expanded = true;\n                    this.tree.update(ChangeType.structure);\n                }\n                else {\n                    this.update(); // Fix expander icon to 'loaded'\n                }\n            }\n            catch (e) {\n                this.logError(\"Error during loadLazy()\", e);\n                this._callEvent(\"error\", { error: e });\n                // Also resets `this._isLoading`:\n                this.setStatus(NodeStatusType.error, { message: \"\" + e });\n            }\n            return;\n        }\n        /** Write to `console.log` with node name as prefix if opts.debugLevel >= 4.\n         * @see {@link WunderbaumNode.logDebug}\n         */\n        log(...args) {\n            if (this.tree.options.debugLevel >= 4) {\n                console.log(this.toString(), ...args); // eslint-disable-line no-console\n            }\n        }\n        /** Write to `console.debug` with node name as prefix if opts.debugLevel >= 4\n         * and browser console level includes debug/verbose messages.\n         * @see {@link WunderbaumNode.log}\n         */\n        logDebug(...args) {\n            if (this.tree.options.debugLevel >= 4) {\n                console.debug(this.toString(), ...args); // eslint-disable-line no-console\n            }\n        }\n        /** Write to `console.error` with node name as prefix if opts.debugLevel >= 1. */\n        logError(...args) {\n            if (this.tree.options.debugLevel >= 1) {\n                console.error(this.toString(), ...args); // eslint-disable-line no-console\n            }\n        }\n        /** Write to `console.info` with node name as prefix if opts.debugLevel >= 3. */\n        logInfo(...args) {\n            if (this.tree.options.debugLevel >= 3) {\n                console.info(this.toString(), ...args); // eslint-disable-line no-console\n            }\n        }\n        /** Write to `console.warn` with node name as prefix if opts.debugLevel >= 2. */\n        logWarn(...args) {\n            if (this.tree.options.debugLevel >= 2) {\n                console.warn(this.toString(), ...args); // eslint-disable-line no-console\n            }\n        }\n        /** Expand all parents and optionally scroll into visible area as neccessary.\n         * Promise is resolved, when lazy loading and animations are done.\n         * @param {object} [options] passed to `setExpanded()`.\n         *     Defaults to {noAnimation: false, noEvents: false, scrollIntoView: true}\n         */\n        async makeVisible(options) {\n            let i;\n            const dfd = new Deferred();\n            const deferreds = [];\n            const parents = this.getParentList(false, false);\n            const len = parents.length;\n            const noAnimation = getOption(options, \"noAnimation\", false);\n            const scroll = getOption(options, \"scrollIntoView\", true);\n            // Expand bottom-up, so only the top node is animated\n            for (i = len - 1; i >= 0; i--) {\n                // self.debug(\"pushexpand\" + parents[i]);\n                const seOpts = { noAnimation: noAnimation };\n                deferreds.push(parents[i].setExpanded(true, seOpts));\n            }\n            Promise.all(deferreds).then(() => {\n                // All expands have finished\n                // self.debug(\"expand DONE\", scroll);\n                // Note: this.tree may be none when switching demo trees\n                if (scroll && this.tree) {\n                    // Make sure markup and _rowIdx is updated before we do the scroll calculations\n                    this.tree.updatePendingModifications();\n                    this.scrollIntoView().then(() => {\n                        // self.debug(\"scroll DONE\");\n                        dfd.resolve();\n                    });\n                }\n                else {\n                    dfd.resolve();\n                }\n            });\n            return dfd.promise();\n        }\n        /** Move this node to targetNode. */\n        moveTo(targetNode, mode = \"appendChild\", map) {\n            if (mode === \"over\") {\n                mode = \"appendChild\"; // compatible with drop region\n            }\n            if (mode === \"prependChild\") {\n                if (targetNode.children && targetNode.children.length) {\n                    mode = \"before\";\n                    targetNode = targetNode.children[0];\n                }\n                else {\n                    mode = \"appendChild\";\n                }\n            }\n            let pos;\n            const tree = this.tree;\n            const prevParent = this.parent;\n            const targetParent = mode === \"appendChild\" ? targetNode : targetNode.parent;\n            if (this === targetNode) {\n                return;\n            }\n            else if (!this.parent) {\n                error(\"Cannot move system root\");\n            }\n            else if (targetParent.isDescendantOf(this)) {\n                error(\"Cannot move a node to its own descendant\");\n            }\n            if (targetParent !== prevParent) {\n                prevParent.triggerModifyChild(\"remove\", this);\n            }\n            // Unlink this node from current parent\n            if (this.parent.children.length === 1) {\n                if (this.parent === targetParent) {\n                    return; // #258\n                }\n                this.parent.children = this.parent.lazy ? [] : null;\n                this.parent.expanded = false;\n            }\n            else {\n                pos = this.parent.children.indexOf(this);\n                assert(pos >= 0, \"invalid source parent\");\n                this.parent.children.splice(pos, 1);\n            }\n            // Insert this node to target parent's child list\n            this.parent = targetParent;\n            if (targetParent.hasChildren()) {\n                switch (mode) {\n                    case \"appendChild\":\n                        // Append to existing target children\n                        targetParent.children.push(this);\n                        break;\n                    case \"before\":\n                        // Insert this node before target node\n                        pos = targetParent.children.indexOf(targetNode);\n                        assert(pos >= 0, \"invalid target parent\");\n                        targetParent.children.splice(pos, 0, this);\n                        break;\n                    case \"after\":\n                        // Insert this node after target node\n                        pos = targetParent.children.indexOf(targetNode);\n                        assert(pos >= 0, \"invalid target parent\");\n                        targetParent.children.splice(pos + 1, 0, this);\n                        break;\n                    default:\n                        error(`Invalid mode '${mode}'.`);\n                }\n            }\n            else {\n                targetParent.children = [this];\n            }\n            // Let caller modify the nodes\n            if (map) {\n                targetNode.visit(map, true);\n            }\n            if (targetParent === prevParent) {\n                targetParent.triggerModifyChild(\"move\", this);\n            }\n            else {\n                // prevParent.triggerModifyChild(\"remove\", this);\n                targetParent.triggerModifyChild(\"add\", this);\n            }\n            // Handle cross-tree moves\n            if (tree !== targetNode.tree) {\n                // Fix node.tree for all source nodes\n                // \tutil.assert(false, \"Cross-tree move is not yet implemented.\");\n                this.logWarn(\"Cross-tree moveTo is experimental!\");\n                this.visit((n) => {\n                    // TODO: fix selection state and activation, ...\n                    n.tree = targetNode.tree;\n                }, true);\n            }\n            // Make sure we update async, because discarding the markup would prevent\n            // DragAndDrop to generate a dragend event on the source node\n            setTimeout(() => {\n                // Even indentation may have changed:\n                tree.update(ChangeType.any);\n            }, 0);\n            // TODO: fix selection state\n            // TODO: fix active state\n        }\n        /** Set focus relative to this node and optionally activate.\n         *\n         * 'left' collapses the node if it is expanded, or move to the parent\n         * otherwise.\n         * 'right' expands the node if it is collapsed, or move to the first\n         * child otherwise.\n         *\n         * @param where 'down', 'first', 'last', 'left', 'parent', 'right', or 'up'.\n         *   (Alternatively the `event.key` that would normally trigger this move,\n         *   e.g. `ArrowLeft` = 'left'.\n         * @param options\n         */\n        async navigate(where, options) {\n            var _a;\n            // Allow to pass 'ArrowLeft' instead of 'left'\n            const navType = ((_a = KEY_TO_NAVIGATION_MAP[where]) !== null && _a !== void 0 ? _a : where);\n            // Otherwise activate or focus the related node\n            const node = this.findRelatedNode(navType);\n            if (!node) {\n                this.logWarn(`Could not find related node '${where}'.`);\n                return Promise.resolve(this);\n            }\n            // setFocus/setActive will scroll later (if autoScroll is specified)\n            try {\n                node.makeVisible({ scrollIntoView: false });\n            }\n            catch (e) {\n                // ignore\n            }\n            node.setFocus();\n            if ((options === null || options === void 0 ? void 0 : options.activate) === false) {\n                return Promise.resolve(this);\n            }\n            return node.setActive(true, { event: options === null || options === void 0 ? void 0 : options.event });\n        }\n        /** Delete this node and all descendants. */\n        remove() {\n            const tree = this.tree;\n            const pos = this.parent.children.indexOf(this);\n            this.triggerModify(\"remove\");\n            this.parent.children.splice(pos, 1);\n            this.visit((n) => {\n                n.removeMarkup();\n                tree._unregisterNode(n);\n            }, true);\n            tree.update(ChangeType.structure);\n        }\n        /** Remove all descendants of this node. */\n        removeChildren() {\n            var _a, _b;\n            const tree = this.tree;\n            if (!this.children) {\n                return;\n            }\n            if ((_a = tree.activeNode) === null || _a === void 0 ? void 0 : _a.isDescendantOf(this)) {\n                tree.activeNode.setActive(false); // TODO: don't fire events\n            }\n            if ((_b = tree.focusNode) === null || _b === void 0 ? void 0 : _b.isDescendantOf(this)) {\n                tree._setFocusNode(null);\n            }\n            // TODO: persist must take care to clear select and expand cookies\n            // Unlink children to support GC\n            // TODO: also delete this.children (not possible using visit())\n            this.triggerModifyChild(\"remove\", null);\n            this.visit((n) => {\n                tree._unregisterNode(n);\n            });\n            if (this.lazy) {\n                // 'undefined' would be interpreted as 'not yet loaded' for lazy nodes\n                this.children = [];\n            }\n            else {\n                this.children = null;\n            }\n            // util.assert(this.parent); // don't call this for root node\n            if (!this.isRootNode()) {\n                this.expanded = false;\n            }\n            this.tree.update(ChangeType.structure);\n        }\n        /** Remove all HTML markup from the DOM. */\n        removeMarkup() {\n            if (this._rowElem) {\n                delete this._rowElem._wb_node;\n                this._rowElem.remove();\n                this._rowElem = undefined;\n            }\n        }\n        _getRenderInfo() {\n            const allColInfosById = {};\n            const renderColInfosById = {};\n            const isColspan = this.isColspan();\n            const colElems = this._rowElem\n                ? (this._rowElem.querySelectorAll(\"span.wb-col\"))\n                : null;\n            let idx = 0;\n            for (const col of this.tree.columns) {\n                allColInfosById[col.id] = {\n                    id: col.id,\n                    idx: idx,\n                    elem: colElems ? colElems[idx] : null,\n                    info: col,\n                };\n                // renderColInfosById only contains columns that need rendering:\n                if (!isColspan && col.id !== \"*\") {\n                    renderColInfosById[col.id] = allColInfosById[col.id];\n                }\n                idx++;\n            }\n            return {\n                allColInfosById: allColInfosById,\n                renderColInfosById: renderColInfosById,\n            };\n        }\n        _createIcon(parentElem, replaceChild, showLoading) {\n            const iconElem = this.tree._createNodeIcon(this, showLoading, true);\n            if (iconElem) {\n                if (replaceChild) {\n                    parentElem.replaceChild(iconElem, replaceChild);\n                }\n                else {\n                    parentElem.appendChild(iconElem);\n                }\n            }\n            return iconElem;\n        }\n        /**\n         * Create a whole new `<div class=\"wb-row\">` element.\n         * @see {@link WunderbaumNode._render}\n         */\n        _render_markup(opts) {\n            const tree = this.tree;\n            const treeOptions = tree.options;\n            const rowHeight = treeOptions.rowHeightPx;\n            const checkbox = this.getOption(\"checkbox\");\n            const columns = tree.columns;\n            const level = this.getLevel();\n            const activeColIdx = tree.isRowNav() ? null : tree.activeColIdx;\n            let elem;\n            let rowDiv = this._rowElem;\n            let checkboxSpan = null;\n            let expanderSpan = null;\n            const isNew = !rowDiv;\n            assert(isNew, \"Expected unrendered node\");\n            assert(!isNew || (opts && opts.after), \"opts.after expected, unless updating\");\n            assert(!this.isRootNode(), \"Root node not allowed\");\n            rowDiv = document.createElement(\"div\");\n            rowDiv.classList.add(\"wb-row\");\n            rowDiv.style.top = this._rowIdx * rowHeight + \"px\";\n            this._rowElem = rowDiv;\n            // Attach a node reference to the DOM Element:\n            rowDiv._wb_node = this;\n            const nodeElem = document.createElement(\"span\");\n            nodeElem.classList.add(\"wb-node\", \"wb-col\");\n            rowDiv.appendChild(nodeElem);\n            let ofsTitlePx = 0;\n            if (checkbox) {\n                checkboxSpan = document.createElement(\"i\");\n                checkboxSpan.classList.add(\"wb-checkbox\");\n                if (checkbox === \"radio\" || this.parent.radiogroup) {\n                    checkboxSpan.classList.add(\"wb-radio\");\n                }\n                nodeElem.appendChild(checkboxSpan);\n                ofsTitlePx += ICON_WIDTH;\n            }\n            for (let i = level - 1; i > 0; i--) {\n                elem = document.createElement(\"i\");\n                elem.classList.add(\"wb-indent\");\n                nodeElem.appendChild(elem);\n                ofsTitlePx += ICON_WIDTH;\n            }\n            if (!treeOptions.minExpandLevel || level > treeOptions.minExpandLevel) {\n                expanderSpan = document.createElement(\"i\");\n                expanderSpan.classList.add(\"wb-expander\");\n                nodeElem.appendChild(expanderSpan);\n                ofsTitlePx += ICON_WIDTH;\n            }\n            // Render the icon (show a 'loading' icon if we do not have an expander that\n            // we would prefer).\n            const iconSpan = this._createIcon(nodeElem, null, !expanderSpan);\n            if (iconSpan) {\n                ofsTitlePx += ICON_WIDTH;\n            }\n            const titleSpan = document.createElement(\"span\");\n            titleSpan.classList.add(\"wb-title\");\n            nodeElem.appendChild(titleSpan);\n            // this._callEvent(\"enhanceTitle\", { titleSpan: titleSpan });\n            // Store the width of leading icons with the node, so we can calculate\n            // the width of the embedded title span later\n            nodeElem._ofsTitlePx = ofsTitlePx;\n            // Support HTML5 drag-n-drop\n            if (tree.options.dnd.dragStart) {\n                nodeElem.draggable = true;\n            }\n            // Render columns\n            const isColspan = this.isColspan();\n            if (!isColspan && columns.length > 1) {\n                let colIdx = 0;\n                for (const col of columns) {\n                    colIdx++;\n                    let colElem;\n                    if (col.id === \"*\") {\n                        colElem = nodeElem;\n                    }\n                    else {\n                        colElem = document.createElement(\"span\");\n                        colElem.classList.add(\"wb-col\");\n                        rowDiv.appendChild(colElem);\n                    }\n                    if (colIdx === activeColIdx) {\n                        colElem.classList.add(\"wb-active\");\n                    }\n                    // Add classes from `columns` definition to `<div.wb-col>` cells\n                    col.classes ? colElem.classList.add(...col.classes.split(\" \")) : 0;\n                    colElem.style.left = col._ofsPx + \"px\";\n                    colElem.style.width = col._widthPx + \"px\";\n                    if (isNew && col.html) {\n                        if (typeof col.html === \"string\") {\n                            colElem.innerHTML = col.html;\n                        }\n                    }\n                }\n            }\n            // Attach to DOM as late as possible\n            const after = opts ? opts.after : \"last\";\n            switch (after) {\n                case \"first\":\n                    tree.nodeListElement.prepend(rowDiv);\n                    break;\n                case \"last\":\n                    tree.nodeListElement.appendChild(rowDiv);\n                    break;\n                default:\n                    opts.after.after(rowDiv);\n            }\n            // Now go on and fill in data and update classes\n            opts.isNew = true;\n            this._render_data(opts);\n        }\n        /**\n         * Render `node.title`, `.icon` into an existing row.\n         *\n         * @see {@link WunderbaumNode._render}\n         */\n        _render_data(opts) {\n            assert(this._rowElem, \"No _rowElem\");\n            const tree = this.tree;\n            const treeOptions = tree.options;\n            const rowDiv = this._rowElem;\n            const isNew = !!opts.isNew; // Called by _render_markup()?\n            const preventScroll = !!opts.preventScroll;\n            const columns = tree.columns;\n            const isColspan = this.isColspan();\n            // Row markup already exists\n            const nodeElem = rowDiv.querySelector(\"span.wb-node\");\n            const titleSpan = nodeElem.querySelector(\"span.wb-title\");\n            const scrollTop = tree.element.scrollTop;\n            if (this.titleWithHighlight) {\n                titleSpan.innerHTML = this.titleWithHighlight;\n            }\n            else {\n                titleSpan.textContent = this.title; // TODO: this triggers scroll events\n            }\n            const tooltip = this.getOption(\"tooltip\", false);\n            if (tooltip) {\n                titleSpan.title = tooltip === true ? this.title : tooltip;\n            }\n            // NOTE: At least on Safari, this render call triggers a scroll event\n            // probably when a focused input is replaced.\n            if (preventScroll) {\n                tree.element.scrollTop = scrollTop;\n            }\n            // Set the width of the title span, so overflow ellipsis work\n            if (!treeOptions.skeleton) {\n                if (isColspan) {\n                    const vpWidth = tree.element.clientWidth;\n                    titleSpan.style.width =\n                        vpWidth - nodeElem._ofsTitlePx - TITLE_SPAN_PAD_Y + \"px\";\n                }\n                else {\n                    titleSpan.style.width =\n                        columns[0]._widthPx -\n                            nodeElem._ofsTitlePx -\n                            TITLE_SPAN_PAD_Y +\n                            \"px\";\n                }\n            }\n            // Update row classes\n            opts.isDataChange = true;\n            this._render_status(opts);\n            // Let user modify the result\n            if (this.statusNodeType) {\n                this._callEvent(\"renderStatusNode\", {\n                    isNew: isNew,\n                    nodeElem: nodeElem,\n                    isColspan: isColspan,\n                });\n            }\n            else if (this.parent) {\n                // Skip root node\n                const renderInfo = this._getRenderInfo();\n                this._callEvent(\"render\", {\n                    isNew: isNew,\n                    nodeElem: nodeElem,\n                    isColspan: isColspan,\n                    allColInfosById: renderInfo.allColInfosById,\n                    renderColInfosById: renderInfo.renderColInfosById,\n                });\n            }\n        }\n        /**\n         * Update row classes to reflect active, focuses, etc.\n         * @see {@link WunderbaumNode._render}\n         */\n        _render_status(opts) {\n            // this.log(\"_render_status\", opts);\n            const tree = this.tree;\n            const iconMap = tree.iconMap;\n            const treeOptions = tree.options;\n            const typeInfo = this.type ? tree.types[this.type] : null;\n            const rowDiv = this._rowElem;\n            // Row markup already exists\n            const nodeSpan = rowDiv.querySelector(\"span.wb-node\");\n            const expanderElem = nodeSpan.querySelector(\"i.wb-expander\");\n            const checkboxElem = nodeSpan.querySelector(\"i.wb-checkbox\");\n            const rowClasses = [\"wb-row\"];\n            this.expanded ? rowClasses.push(\"wb-expanded\") : 0;\n            this.lazy ? rowClasses.push(\"wb-lazy\") : 0;\n            this.selected ? rowClasses.push(\"wb-selected\") : 0;\n            this._partsel ? rowClasses.push(\"wb-partsel\") : 0;\n            this === tree.activeNode ? rowClasses.push(\"wb-active\") : 0;\n            this === tree.focusNode ? rowClasses.push(\"wb-focus\") : 0;\n            this._errorInfo ? rowClasses.push(\"wb-error\") : 0;\n            this._isLoading ? rowClasses.push(\"wb-loading\") : 0;\n            this.isColspan() ? rowClasses.push(\"wb-colspan\") : 0;\n            this.statusNodeType\n                ? rowClasses.push(\"wb-status-\" + this.statusNodeType)\n                : 0;\n            this.match ? rowClasses.push(\"wb-match\") : 0;\n            this.subMatchCount ? rowClasses.push(\"wb-submatch\") : 0;\n            treeOptions.skeleton ? rowClasses.push(\"wb-skeleton\") : 0;\n            // Replace previous classes:\n            rowDiv.className = rowClasses.join(\" \");\n            // Add classes from `node.classes`\n            this.classes ? rowDiv.classList.add(...this.classes) : 0;\n            // Add classes from `tree.types[node.type]`\n            if (typeInfo && typeInfo.classes) {\n                rowDiv.classList.add(...typeInfo.classes);\n            }\n            if (expanderElem) {\n                let image = null;\n                if (this._isLoading) {\n                    image = iconMap.loading;\n                }\n                else if (this.isExpandable(false)) {\n                    if (this.expanded) {\n                        image = iconMap.expanderExpanded;\n                    }\n                    else {\n                        image = iconMap.expanderCollapsed;\n                    }\n                }\n                else if (this.lazy && this.children == null) {\n                    image = iconMap.expanderLazy;\n                }\n                if (image == null) {\n                    expanderElem.className = \"wb-expander\";\n                    expanderElem.classList.add(\"wb-indent\");\n                }\n                else if (TEST_HTML.test(image)) {\n                    expanderElem.replaceWith(elemFromHtml(image));\n                }\n                else if (TEST_FILE_PATH.test(image)) {\n                    expanderElem.style.backgroundImage = `url('${image}')`;\n                }\n                else {\n                    expanderElem.className = \"wb-expander \" + image;\n                }\n            }\n            if (checkboxElem) {\n                let cbclass = \"wb-checkbox \";\n                if (this.isRadio()) {\n                    cbclass += \"wb-radio \";\n                    if (this.selected) {\n                        cbclass += iconMap.radioChecked;\n                        // } else if (this._partsel) {\n                        //   cbclass += iconMap.radioUnknown;\n                    }\n                    else {\n                        cbclass += iconMap.radioUnchecked;\n                    }\n                }\n                else {\n                    if (this.selected) {\n                        cbclass += iconMap.checkChecked;\n                    }\n                    else if (this._partsel) {\n                        cbclass += iconMap.checkUnknown;\n                    }\n                    else {\n                        cbclass += iconMap.checkUnchecked;\n                    }\n                }\n                checkboxElem.className = cbclass;\n            }\n            // Fix active cell in cell-nav mode\n            if (!opts.isNew) {\n                let i = 0;\n                for (const colSpan of rowDiv.children) {\n                    colSpan.classList.toggle(\"wb-active\", i++ === tree.activeColIdx);\n                    colSpan.classList.remove(\"wb-error\", \"wb-invalid\");\n                }\n                // Update icon (if not opts.isNew, which would rebuild markup anyway)\n                const iconSpan = nodeSpan.querySelector(\"i.wb-icon\");\n                if (iconSpan) {\n                    this._createIcon(nodeSpan, iconSpan, !expanderElem);\n                }\n            }\n            // Adjust column width\n            if (opts.resizeCols !== false && !this.isColspan()) {\n                const colElems = rowDiv.querySelectorAll(\"span.wb-col\");\n                let idx = 0;\n                let ofs = 0;\n                for (const colDef of this.tree.columns) {\n                    const colElem = colElems[idx];\n                    colElem.style.left = `${ofs}px`;\n                    colElem.style.width = `${colDef._widthPx}px`;\n                    idx++;\n                    ofs += colDef._widthPx;\n                }\n            }\n        }\n        /*\n         * Create or update node's markup.\n         *\n         * `options.change` defaults to ChangeType.data, which updates the title,\n         * icon, and status. It also triggers the `render` event, that lets the user\n         * create or update the content of embeded cell elements.\n         *\n         * If only the status or other class-only modifications have changed,\n         * `options.change` should be set to ChangeType.status instead for best\n         * efficiency.\n         *\n         * Calling `update()` is almost always a better alternative.\n         * @see {@link WunderbaumNode.update}\n         */\n        _render(options) {\n            // this.log(\"render\", options);\n            const opts = Object.assign({ change: ChangeType.data }, options);\n            if (!this._rowElem) {\n                opts.change = ChangeType.row;\n            }\n            switch (opts.change) {\n                case \"status\":\n                    this._render_status(opts);\n                    break;\n                case \"data\":\n                    this._render_data(opts);\n                    break;\n                case \"row\":\n                    // _rowElem is not yet created (asserted in _render_markup)\n                    this._render_markup(opts);\n                    break;\n                default:\n                    error(`Invalid change type '${opts.change}'.`);\n            }\n        }\n        /**\n         * Remove all children, collapse, and set the lazy-flag, so that the lazyLoad\n         * event is triggered on next expand.\n         */\n        resetLazy() {\n            this.removeChildren();\n            this.expanded = false;\n            this.lazy = true;\n            this.children = null;\n            this.tree.update(ChangeType.structure);\n        }\n        /** Convert node (or whole branch) into a plain object.\n         *\n         * The result is compatible with node.addChildren().\n         *\n         * @param recursive include child nodes\n         * @param callback is called for every node, in order to allow\n         *     modifications.\n         *     Return `false` to ignore this node or `\"skip\"` to include this node\n         *     without its children.\n         * @see {@link Wunderbaum.toDictArray}.\n         */\n        toDict(recursive = false, callback) {\n            const dict = {};\n            NODE_DICT_PROPS.forEach((propName) => {\n                const val = this[propName];\n                if (val instanceof Set) {\n                    // Convert Set to string (or skip if set is empty)\n                    val.size\n                        ? (dict[propName] = Array.prototype.join.call(val.keys(), \" \"))\n                        : 0;\n                }\n                else if (val || val === false || val === 0) {\n                    dict[propName] = val;\n                }\n            });\n            if (!isEmptyObject(this.data)) {\n                dict.data = extend({}, this.data);\n                if (isEmptyObject(dict.data)) {\n                    delete dict.data;\n                }\n            }\n            if (callback) {\n                const res = callback(dict, this);\n                if (res === false) {\n                    // Note: a return value of `false` is only used internally\n                    return false; // Don't include this node nor its children\n                }\n                if (res === \"skip\") {\n                    recursive = false; // Include this node, but not the children\n                }\n            }\n            if (recursive) {\n                if (isArray(this.children)) {\n                    dict.children = [];\n                    for (let i = 0, l = this.children.length; i < l; i++) {\n                        const node = this.children[i];\n                        if (!node.isStatusNode()) {\n                            // Note: a return value of `false` is only used internally\n                            const res = node.toDict(true, callback);\n                            if (res !== false) {\n                                dict.children.push(res);\n                            }\n                        }\n                    }\n                }\n            }\n            return dict;\n        }\n        /** Return an option value that has a default, but may be overridden by a\n         * callback or a node instance attribute.\n         *\n         * Evaluation sequence:\n         *\n         * - If `tree.options.<name>` is a callback that returns something, use that.\n         * - Else if `node.<name>` is defined, use that.\n         * - Else if `tree.types[<node.type>]` is a value, use that.\n         * - Else if `tree.options.<name>` is a value, use that.\n         * - Else use `defaultValue`.\n         *\n         * @param name name of the option property (on node and tree)\n         * @param defaultValue return this if nothing else matched\n         * {@link Wunderbaum.getOption|Wunderbaum.getOption}\n         */\n        getOption(name, defaultValue) {\n            const tree = this.tree;\n            let opts = tree.options;\n            // Lookup `name` in options dict\n            if (name.indexOf(\".\") >= 0) {\n                [opts, name] = name.split(\".\");\n            }\n            const value = opts[name]; // ?? defaultValue;\n            // A callback resolver always takes precedence\n            if (typeof value === \"function\") {\n                const res = value.call(tree, {\n                    type: \"resolve\",\n                    tree: tree,\n                    node: this,\n                    // typeInfo: this.type ? tree.types[this.type] : {},\n                });\n                if (res !== undefined) {\n                    return res;\n                }\n            }\n            // If this node has an explicit local setting, use it:\n            if (this[name] !== undefined) {\n                return this[name];\n            }\n            // Use value from type definition if defined\n            const typeInfo = this.type ? tree.types[this.type] : undefined;\n            const res = typeInfo ? typeInfo[name] : undefined;\n            if (res !== undefined) {\n                return res;\n            }\n            // Use value from value options dict, fallback do default\n            return value !== null && value !== void 0 ? value : defaultValue;\n        }\n        /** Make sure that this node is visible in the viewport.\n         * @see {@link Wunderbaum.scrollTo|Wunderbaum.scrollTo}\n         */\n        async scrollIntoView(options) {\n            const opts = Object.assign({ node: this }, options);\n            return this.tree.scrollTo(opts);\n        }\n        /**\n         * Activate this node, deactivate previous, send events, activate column and\n         * scroll into viewport.\n         */\n        async setActive(flag = true, options) {\n            const tree = this.tree;\n            const prev = tree.getActiveNode();\n            const retrigger = options === null || options === void 0 ? void 0 : options.retrigger; // Default: false\n            const focusTree = options === null || options === void 0 ? void 0 : options.focusTree; // Default: false\n            // const focusNode = options?.focusNode !== false; // Default: true\n            const noEvents = options === null || options === void 0 ? void 0 : options.noEvents; // Default: false\n            const orgEvent = options === null || options === void 0 ? void 0 : options.event; // Default: null\n            const colIdx = options === null || options === void 0 ? void 0 : options.colIdx; // Default: null\n            const edit = options === null || options === void 0 ? void 0 : options.edit; // Default: false\n            // util.assert(!colIdx || tree.isCellNav(), \"colIdx requires cellNav\");\n            assert(!edit || colIdx != null, \"edit requires colIdx\");\n            if (!noEvents) {\n                if (flag) {\n                    if (prev !== this || retrigger) {\n                        if ((prev === null || prev === void 0 ? void 0 : prev._callEvent(\"deactivate\", {\n                            nextNode: this,\n                            event: orgEvent,\n                        })) === false ||\n                            this._callEvent(\"beforeActivate\", {\n                                prevNode: prev,\n                                event: orgEvent,\n                            }) === false) {\n                            return;\n                        }\n                        tree._setActiveNode(null);\n                        prev === null || prev === void 0 ? void 0 : prev.update(ChangeType.status);\n                    }\n                }\n                else if (prev === this || retrigger) {\n                    this._callEvent(\"deactivate\", { nextNode: null, event: orgEvent });\n                }\n            }\n            if (prev !== this) {\n                if (flag) {\n                    tree._setActiveNode(this);\n                }\n                prev === null || prev === void 0 ? void 0 : prev.update(ChangeType.status);\n                this.update(ChangeType.status);\n            }\n            return this.makeVisible().then(() => {\n                if (flag) {\n                    if (focusTree || edit) {\n                        tree.setFocus();\n                        tree._setFocusNode(this);\n                        tree.focusNode.setFocus();\n                    }\n                    // if (focusNode || edit) {\n                    //   tree.focusNode = this;\n                    //   tree.focusNode.setFocus();\n                    // }\n                    if (colIdx != null && tree.isCellNav()) {\n                        tree.setColumn(colIdx, { edit: edit });\n                    }\n                    if (!noEvents) {\n                        this._callEvent(\"activate\", { prevNode: prev, event: orgEvent });\n                    }\n                }\n            });\n        }\n        /**\n         * Expand or collapse this node.\n         */\n        async setExpanded(flag = true, options) {\n            const { force, scrollIntoView, immediate, resetLazy } = options !== null && options !== void 0 ? options : {};\n            const sendEvents = !(options === null || options === void 0 ? void 0 : options.noEvents); // Default: send events\n            if (!flag &&\n                this.isExpanded() &&\n                this.getLevel() <= this.tree.getOption(\"minExpandLevel\") &&\n                !force) {\n                this.logDebug(\"Ignored collapse request below minExpandLevel.\");\n                return;\n            }\n            if (!flag === !this.expanded) {\n                return; // Nothing to do\n            }\n            if (sendEvents &&\n                this._callEvent(\"beforeExpand\", { flag: flag }) === false) {\n                return;\n            }\n            // this.log(\"setExpanded()\");\n            if (flag && this.getOption(\"autoCollapse\")) {\n                this.collapseSiblings(options);\n            }\n            if (flag && this.lazy && this.children == null) {\n                await this.loadLazy();\n            }\n            else if (!flag && resetLazy && this.lazy && this.children) {\n                this.resetLazy();\n            }\n            this.expanded = flag;\n            const updateOpts = { immediate: immediate };\n            // const updateOpts = { immediate: !!util.getOption(options, \"immediate\") };\n            this.tree.update(ChangeType.structure, updateOpts);\n            if (flag && scrollIntoView) {\n                const lastChild = this.getLastChild();\n                if (lastChild) {\n                    this.tree.updatePendingModifications();\n                    lastChild.scrollIntoView({ topNode: this });\n                }\n            }\n            if (sendEvents) {\n                this._callEvent(\"expand\", { flag: flag });\n            }\n        }\n        /**\n         * Set keyboard focus here.\n         * @see {@link setActive}\n         */\n        setFocus(flag = true) {\n            assert(!!flag, \"Blur is not yet implemented\");\n            const prev = this.tree.focusNode;\n            this.tree._setFocusNode(this);\n            prev === null || prev === void 0 ? void 0 : prev.update();\n            this.update();\n        }\n        /** Set a new icon path or class. */\n        setIcon(icon) {\n            this.icon = icon;\n            this.update();\n        }\n        /** Change node's {@link key} and/or {@link refKey}.  */\n        setKey(key, refKey) {\n            throw new Error(\"Not yet implemented\");\n        }\n        // /**\n        //  * Calculate a *stable*, unique key for this node from its refKey (or title).\n        //  * We also add information from the parent, because a refKey may occur multiple\n        //  * times in a tree.\n        //  */\n        // calcUniqueKey() {\n        //   // Assuming that the parent's key was calculated the same way, we implicitly\n        //   // involve the whole refKey-path:\n        //   const s = this.key + (this.refKey || this.title);\n        //   // 32-bit has a high probability of collisions, so we pump up to 64-bit\n        //   // https://security.stackexchange.com/q/209882/207588\n        //   const h1 = util.murmurHash3(s, true);\n        //   return \"id_\" + h1 + util.murmurHash3(h1 + s, true);\n        //   // const l = [];\n        //   // // eslint-disable-next-line  @typescript-eslint/no-this-alias\n        //   // let node: WunderbaumNode = this;\n        //   // while (node.parent) {\n        //   //   l.unshift(node.refKey || node.key);\n        //   //   node = node.parent;\n        //   // }\n        //   // const path = l.join(\"/\");\n        //   // 32-bit has a high probability of collisions, so we pump up to 64-bit\n        //   // https://security.stackexchange.com/q/209882/207588\n        //   // const h1 = util.murmurHash3(path, true);\n        //   // return \"id_\" + h1 + util.murmurHash3(h1 + path, true);\n        // }\n        /**\n         * Trigger a repaint, typically after a status or data change.\n         *\n         * `change` defaults to 'data', which handles modifcations of title, icon,\n         * and column content. It can be reduced to 'ChangeType.status' if only\n         * active/focus/selected state has changed.\n         *\n         * This method will eventually call  {@link WunderbaumNode._render} with\n         * default options, but may be more consistent with the tree's\n         * {@link Wunderbaum.update} API.\n         */\n        update(change = ChangeType.data) {\n            assert(change === ChangeType.status || change === ChangeType.data, `Invalid change type ${change}`);\n            this.tree.update(change, this);\n        }\n        /**\n         * Return an array of selected nodes.\n         * @param stopOnParents only return the topmost selected node (useful with selectMode 'hier')\n         */\n        getSelectedNodes(stopOnParents = false) {\n            const nodeList = [];\n            this.visit((node) => {\n                if (node.selected) {\n                    nodeList.push(node);\n                    if (stopOnParents === true) {\n                        return \"skip\"; // stop processing this branch\n                    }\n                }\n            });\n            return nodeList;\n        }\n        /**\n         * Return an array of refKey values.\n         *\n         * RefKeys are unique identifiers for a node data, and are used to identify\n         * clones.\n         * If more than one node has the same refKey, it is only returned once.\n         * @param selected if true, only return refKeys of selected nodes.\n         */\n        getRefKeys(selected = false) {\n            const refKeys = new Set();\n            this.visit((node) => {\n                if (node.refKey != null && (!selected || node.selected)) {\n                    refKeys.add(node.refKey);\n                }\n            });\n            return Array.from(refKeys);\n        }\n        /** Toggle the check/uncheck state. */\n        toggleSelected(options) {\n            let flag = this.isSelected();\n            if (flag === undefined && !this.isRadio()) {\n                flag = this._anySelectable();\n            }\n            else {\n                flag = !flag;\n            }\n            return this.setSelected(flag, options);\n        }\n        /** Return true if at least on selectable descendant end-node is unselected. @internal */\n        _anySelectable() {\n            let found = false;\n            this.visit((node) => {\n                if (node.selected === false &&\n                    !node.unselectable &&\n                    !node.hasChildren() &&\n                    !node.parent.radiogroup) {\n                    found = true;\n                    return false; // Stop iteration\n                }\n            });\n            return found;\n        }\n        /* Apply selection state to a single node. */\n        _changeSelectStatusProps(state) {\n            let changed = false;\n            switch (state) {\n                case false:\n                    changed = this.selected || this._partsel;\n                    this.selected = false;\n                    this._partsel = false;\n                    break;\n                case true:\n                    changed = !this.selected || !this._partsel;\n                    this.selected = true;\n                    this._partsel = true;\n                    break;\n                case undefined:\n                    changed = this.selected || !this._partsel;\n                    this.selected = false;\n                    // #110: end nodess cannot have a `_partsel` flag\n                    this._partsel = this.hasChildren() ? true : false;\n                    break;\n                default:\n                    error(`Invalid state: ${state}`);\n            }\n            if (changed) {\n                this.update();\n            }\n            return changed;\n        }\n        /**\n         * Fix selection status, after this node was (de)selected in `selectMode: 'hier'`.\n         * This includes (de)selecting all descendants.\n         */\n        fixSelection3AfterClick(opts) {\n            const force = !!(opts === null || opts === void 0 ? void 0 : opts.force);\n            const flag = this.isSelected();\n            this.visit((node) => {\n                if (node.radiogroup) {\n                    return \"skip\"; // Don't (de)select this branch\n                }\n                if (force || !node.getOption(\"unselectable\")) {\n                    node._changeSelectStatusProps(flag);\n                }\n            });\n            this.fixSelection3FromEndNodes();\n        }\n        /**\n         * Fix selection status for multi-hier mode.\n         * Only end-nodes are considered to update the descendants branch and parents.\n         * Should be called after this node has loaded new children or after\n         * children have been modified using the API.\n         */\n        fixSelection3FromEndNodes(opts) {\n            const force = !!(opts === null || opts === void 0 ? void 0 : opts.force);\n            assert(this.tree.options.selectMode === \"hier\", \"expected selectMode 'hier'\");\n            // Visit all end nodes and adjust their parent's `selected` and `_partsel`\n            // attributes. Return selection state true, false, or undefined.\n            const _walk = (node) => {\n                let state;\n                const children = node.children;\n                if (children && children.length) {\n                    // check all children recursively\n                    let allSelected = true;\n                    let someSelected = false;\n                    for (let i = 0, l = children.length; i < l; i++) {\n                        const child = children[i];\n                        // the selection state of a node is not relevant; we need the end-nodes\n                        const s = _walk(child);\n                        if (s !== false) {\n                            someSelected = true;\n                        }\n                        if (s !== true) {\n                            allSelected = false;\n                        }\n                    }\n                    state = allSelected ? true : someSelected ? undefined : false;\n                }\n                else {\n                    // This is an end-node: simply report the status\n                    state = !!node.selected;\n                }\n                // #939: Keep a `_partsel` flag that was explicitly set on a lazy node\n                if (node._partsel &&\n                    !node.selected &&\n                    node.lazy &&\n                    node.children == null) {\n                    state = undefined;\n                }\n                if (force || !node.getOption(\"unselectable\")) {\n                    node._changeSelectStatusProps(state);\n                }\n                return state;\n            };\n            _walk(this);\n            // Update parent's state\n            this.visitParents((node) => {\n                let state;\n                const children = node.children;\n                let allSelected = true;\n                let someSelected = false;\n                for (let i = 0, l = children.length; i < l; i++) {\n                    const child = children[i];\n                    state = !!child.selected;\n                    // When fixing the parents, we trust the sibling status (i.e. we don't recurse)\n                    if (state || child._partsel) {\n                        someSelected = true;\n                    }\n                    if (!state) {\n                        allSelected = false;\n                    }\n                }\n                state = allSelected ? true : someSelected ? undefined : false;\n                node._changeSelectStatusProps(state);\n            });\n        }\n        /** Modify the check/uncheck state. */\n        setSelected(flag = true, options) {\n            const tree = this.tree;\n            const sendEvents = !(options === null || options === void 0 ? void 0 : options.noEvents); // Default: send events\n            const prev = this.isSelected();\n            const isRadio = this.parent && this.parent.radiogroup;\n            const selectMode = tree.options.selectMode;\n            const canSelect = (options === null || options === void 0 ? void 0 : options.force) || !this.getOption(\"unselectable\");\n            flag = !!flag;\n            // this.logDebug(`setSelected(${flag})`, this);\n            if (!canSelect) {\n                return prev;\n            }\n            if ((options === null || options === void 0 ? void 0 : options.propagateDown) && selectMode === \"multi\") {\n                tree.runWithDeferredUpdate(() => {\n                    this.visit((node) => {\n                        node.setSelected(flag);\n                    });\n                });\n                return prev;\n            }\n            if (flag === prev ||\n                (sendEvents && this._callEvent(\"beforeSelect\", { flag: flag }) === false)) {\n                return prev;\n            }\n            tree.runWithDeferredUpdate(() => {\n                if (isRadio) {\n                    // Radiobutton Group\n                    if (!flag && !(options === null || options === void 0 ? void 0 : options.force)) {\n                        return prev; // don't uncheck radio buttons\n                    }\n                    for (const sibling of this.parent.children) {\n                        sibling.selected = sibling === this;\n                    }\n                }\n                else {\n                    this.selected = flag;\n                    if (selectMode === \"hier\") {\n                        this.fixSelection3AfterClick();\n                    }\n                    else if (selectMode === \"single\" && flag) {\n                        tree.visit((n) => {\n                            if (n !== this) {\n                                n.selected = false;\n                            }\n                        });\n                    }\n                }\n            });\n            if (sendEvents) {\n                this._callEvent(\"select\", { flag: flag });\n            }\n            return prev;\n        }\n        /** Display node status (ok, loading, error, noData) using styles and a dummy child node. */\n        setStatus(status, options) {\n            const tree = this.tree;\n            const message = options === null || options === void 0 ? void 0 : options.message;\n            const details = options === null || options === void 0 ? void 0 : options.details;\n            let statusNode = null;\n            const _clearStatusNode = () => {\n                // Remove dedicated dummy node, if any\n                const children = this.children;\n                if (children && children.length && children[0].isStatusNode()) {\n                    children[0].remove();\n                }\n            };\n            const _setStatusNode = (data) => {\n                // Create/modify the dedicated dummy node for 'loading...' or\n                // 'error!' status. (only called for direct child of the invisible\n                // system root)\n                const children = this.children;\n                const firstChild = children ? children[0] : null;\n                assert(data.statusNodeType, \"Not a status node\");\n                assert(!firstChild || !firstChild.isStatusNode(), \"Child must not be a status node\");\n                statusNode = this.addNode(data, \"prependChild\");\n                statusNode.match = -1; // Mark as 'match' to avoid hiding\n                tree.update(ChangeType.structure);\n                return statusNode;\n            };\n            _clearStatusNode();\n            switch (status) {\n                case \"ok\":\n                    this._isLoading = false;\n                    this._errorInfo = null;\n                    break;\n                case \"loading\":\n                    this._isLoading = true;\n                    this._errorInfo = null;\n                    if (this.parent) {\n                        this.update(ChangeType.status);\n                    }\n                    else {\n                        // If this is the invisible root, add a visible top-level node\n                        _setStatusNode({\n                            statusNodeType: status,\n                            title: tree.options.strings.loading +\n                                (message ? \" (\" + message + \")\" : \"\"),\n                            checkbox: false,\n                            colspan: true,\n                            tooltip: details,\n                        });\n                    }\n                    // this.update();\n                    break;\n                case \"error\":\n                    _setStatusNode({\n                        statusNodeType: status,\n                        title: tree.options.strings.loadError +\n                            (message ? \" (\" + message + \")\" : \"\"),\n                        checkbox: false,\n                        colspan: true,\n                        // classes: \"wb-center\",\n                        tooltip: details,\n                    });\n                    this._isLoading = false;\n                    this._errorInfo = { message: message, details: details };\n                    break;\n                case \"noData\":\n                    _setStatusNode({\n                        statusNodeType: status,\n                        title: message || tree.options.strings.noData,\n                        checkbox: false,\n                        colspan: true,\n                        tooltip: details,\n                    });\n                    this._isLoading = false;\n                    this._errorInfo = null;\n                    break;\n                default:\n                    error(\"invalid node status \" + status);\n            }\n            tree.update(ChangeType.structure);\n            return statusNode;\n        }\n        /** Rename this node. */\n        setTitle(title) {\n            this.title = title;\n            this.update();\n            // this.triggerModify(\"rename\"); // TODO\n        }\n        /** Set the node tooltip. */\n        setTooltip(tooltip) {\n            this.tooltip = tooltip;\n            this.update();\n        }\n        /**\n         * Sort child list by title or custom criteria.\n         * @param {function} cmp custom compare function(a, b) that returns -1, 0, or 1\n         *    (defaults to sorting by title).\n         * @param {boolean} deep pass true to sort all descendant nodes recursively\n         * @deprecated use {@link sort}\n         */\n        sortChildren(cmp = nodeTitleSorter, deep = false) {\n            this.tree.logDeprecate(\"node.sortChildren()\", { since: \"0.14.0\" });\n            return this.sort({ cmp: cmp ? cmp : undefined, deep: deep });\n        }\n        /**\n         * Renumber nodes `_nativeIndex`. This is useful to allow to restore the\n         * order after sorting a column.\n         * This method is automatically called after loading new child nodes.\n         * @since 0.11.0\n         */\n        resetNativeChildOrder(options) {\n            const { recursive = true, propName = \"_nativeIndex\" } = options !== null && options !== void 0 ? options : {};\n            if (this.children) {\n                this.children.forEach((child, i) => {\n                    child.data[propName] = i;\n                    if (recursive && child.children) {\n                        child.resetNativeChildOrder(options);\n                    }\n                });\n            }\n        }\n        /**\n         * Convenience method to implement column sorting.\n         * @since 0.11.0\n         * @deprecated use {@link sort}\n         */\n        sortByProperty(options) {\n            this.tree.logDeprecate(\"node.sortByProperty()\", { since: \"0.14.0\" });\n            return this.sort(options);\n        }\n        /**\n         * Implement column sorting.\n         * @since 0.14.0\n         */\n        sort(options) {\n            const tree = this.tree;\n            let { propName = undefined, deep = true, key = undefined, order = undefined, caseInsensitive = true, cmp = undefined, \n            // Support click on column sort header:\n            updateColInfo = false, nativeOrderPropName = \"_nativeIndex\", colId = undefined, } = options;\n            propName !== null && propName !== void 0 ? propName : (propName = colId);\n            if (propName === \"*\") {\n                propName = \"title\";\n            }\n            const isFolder = tree.options.sortFoldersFirst === true\n                ? (node) => node.hasChildren() !== false || node.type === NODE_TYPE_FOLDER\n                : tree.options.sortFoldersFirst;\n            if (updateColInfo) {\n                const colDef = this.tree[\"_columnsById\"][options.colId];\n                assert(colDef, `Invalid colId specified: ${options.colId}`);\n                order !== null && order !== void 0 ? order : (order = rotate(colDef.sortOrder, [\"asc\", \"desc\", undefined]));\n                for (const col of this.tree.columns) {\n                    col.sortOrder = col === colDef ? order : undefined;\n                }\n                if (order === undefined) {\n                    propName = nativeOrderPropName;\n                    order = \"asc\";\n                }\n                this.tree.update(ChangeType.colStructure);\n            }\n            else {\n                propName !== null && propName !== void 0 ? propName : (propName = \"title\");\n                order !== null && order !== void 0 ? order : (order = \"asc\");\n            }\n            this.logDebug(`sort(), propName=${propName}, ${order}`, options);\n            assert(propName || cmp || key, \"No `propName` or `key` specified\");\n            // Define a key callback from the parameters we have\n            if (key == null && cmp == null) {\n                key = (node) => {\n                    let val;\n                    if (NODE_DICT_PROPS.has(propName)) {\n                        val = node[propName];\n                    }\n                    else {\n                        val = node.data[propName];\n                    }\n                    if (caseInsensitive && typeof val === \"string\") {\n                        val = val.toLowerCase();\n                    }\n                    return val;\n                };\n            }\n            // Define a compare callback that uses the key callback\n            if (cmp) {\n                assert(!key, \"`key` and `cmp` are mutually exclusive\");\n                tree.logDeprecate(\"SortOptions.cmp\", {\n                    since: \"0.14.0\",\n                    hint: \"use the `key` callback instead\",\n                });\n            }\n            else {\n                if (options.propName || options.caseInsensitive) {\n                    tree.logWarn(\"sort(): ignoring propName, caseInsensitive\");\n                }\n                cmp = (a, b) => {\n                    if (isFolder) {\n                        const isFolderA = isFolder(a);\n                        if (isFolderA !== isFolder(b)) {\n                            return isFolderA ? -1 : 1;\n                        }\n                    }\n                    let x = key(a);\n                    let y = key(b);\n                    // Assure we have reasonable comparisons with null values:\n                    if (x == null) {\n                        x = typeof y === \"string\" ? \"\" : 0;\n                    }\n                    else if (typeof x === \"boolean\") {\n                        x = x ? 1 : 0;\n                    }\n                    if (y == null) {\n                        y = typeof x === \"string\" ? \"\" : 0;\n                    }\n                    else if (typeof y === \"boolean\") {\n                        y = y ? 1 : 0;\n                    }\n                    if (order === \"desc\") {\n                        return x === y ? 0 : x > y ? -1 : 1;\n                    }\n                    return x === y ? 0 : x > y ? 1 : -1;\n                };\n            }\n            function _sortChildren(cl) {\n                if (!cl) {\n                    return;\n                }\n                cl.sort(cmp);\n                if (deep) {\n                    for (let i = 0, l = cl.length; i < l; i++) {\n                        if (cl[i].children) {\n                            _sortChildren(cl[i].children);\n                        }\n                    }\n                }\n            }\n            if (this.children) {\n                _sortChildren(this.children);\n            }\n            this.tree.update(ChangeType.structure);\n            // this.triggerModify(\"sort\"); // TODO\n        }\n        /**\n         * Re-apply current sorting if any (use after lazy load).\n         * Example:\n         * ```js\n         * load: function (e) {\n         *   // Whe loading a lazy branch, apply current sort order if any\n         *   e.node.resort();\n         * },\n         * ```\n         * @since 0.14.0\n         */\n        resort(options = {}) {\n            for (const colDef of this.tree.columns) {\n                if (colDef.sortOrder) {\n                    options.colId = colDef.id;\n                    options.order = colDef.sortOrder;\n                    this.sort(options);\n                    break;\n                }\n            }\n        }\n        /**\n         * Trigger `modifyChild` event on a parent to signal that a child was modified.\n         * @param {string} operation Type of change: 'add', 'remove', 'rename', 'move', 'data', ...\n         */\n        triggerModifyChild(operation, child, extra) {\n            this.logDebug(`modifyChild(${operation})`, extra, child);\n            if (!this.tree.options.modifyChild) {\n                return;\n            }\n            if (child && child.parent !== this) {\n                error(\"child \" + child + \" is not a child of \" + this);\n            }\n            this._callEvent(\"modifyChild\", extend({ operation: operation, child: child }, extra));\n        }\n        /**\n         * Trigger `modifyChild` event on node.parent(!).\n         * @param {string} operation Type of change: 'add', 'remove', 'rename', 'move', 'data', ...\n         * @param {object} [extra]\n         */\n        triggerModify(operation, extra) {\n            // if (!this.parent) {\n            //   return;\n            // }\n            this.parent.triggerModifyChild(operation, this, extra);\n        }\n        /**\n         * Call `callback(node)` for all descendant nodes in hierarchical order (depth-first, pre-order).\n         *\n         * Stop iteration, if fn() returns false. Skip current branch, if fn()\n         * returns \"skip\".<br>\n         * Return false if iteration was stopped.\n         *\n         * @param {function} callback the callback function.\n         *     Return false to stop iteration, return \"skip\" to skip this node and\n         *     its children only.\n         * @see `wb_node.WunderbaumNode.IterableIterator<WunderbaumNode>`\n         * @see {@link Wunderbaum.visit}.\n         */\n        visit(callback, includeSelf = false) {\n            let res = true;\n            const children = this.children;\n            if (includeSelf === true) {\n                res = callback(this);\n                if (res === false || res === \"skip\") {\n                    return res;\n                }\n            }\n            if (children) {\n                for (let i = 0, l = children.length; i < l; i++) {\n                    res = children[i].visit(callback, true);\n                    if (res === false) {\n                        break;\n                    }\n                }\n            }\n            return res;\n        }\n        /** Call fn(node) for all parent nodes, bottom-up, including invisible system root.<br>\n         * Stop iteration, if callback() returns false.<br>\n         * Return false if iteration was stopped.\n         *\n         * @param callback the callback function. Return false to stop iteration\n         */\n        visitParents(callback, includeSelf = false) {\n            if (includeSelf && callback(this) === false) {\n                return false;\n            }\n            let p = this.parent;\n            while (p) {\n                if (callback(p) === false) {\n                    return false;\n                }\n                p = p.parent;\n            }\n            return true;\n        }\n        /**\n         * Call fn(node) for all sibling nodes.<br>\n         * Stop iteration, if fn() returns false.<br>\n         * Return false if iteration was stopped.\n         *\n         * @param callback the callback function.\n         *     Return false to stop iteration.\n         * @param includeSelf include this node in the iteration.\n         */\n        visitSiblings(callback, includeSelf = false) {\n            const ac = this.parent.children;\n            for (let i = 0, l = ac.length; i < l; i++) {\n                const n = ac[i];\n                if (includeSelf || n !== this) {\n                    if (callback(n) === false) {\n                        return false;\n                    }\n                }\n            }\n            return true;\n        }\n        /**\n         * [ext-filter] Return true if this node is matched by current filter (or no filter is active).\n         */\n        isMatched() {\n            return !(this.tree.filterMode && !this.match);\n        }\n    }\n    WunderbaumNode.sequence = 0;\n\n    /*!\n     * Wunderbaum - ext-edit\n     * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n     * v0.14.1, Sun, 22 Mar 2026 05:52:05 GMT (https://github.com/mar10/wunderbaum)\n     */\n    // const START_MARKER = \"\\uFFF7\";\n    class EditExtension extends WunderbaumExtension {\n        constructor(tree) {\n            super(tree, \"edit\", {\n                debounce: 100,\n                minlength: 1,\n                maxlength: null,\n                trigger: [], //[\"clickActive\", \"F2\", \"macEnter\"],\n                trim: true,\n                select: true,\n                slowClickDelay: 1000, // Handle 'clickActive' only if last click is less than this old (0: always)\n                validity: true, //\"Please enter a title\",\n                // --- Events ---\n                // (note: there is also the `tree.change` event.)\n                beforeEdit: null,\n                edit: null,\n                apply: null,\n            });\n            this.curEditNode = null;\n            this.relatedNode = null;\n            this.debouncedOnChange = debounce(this._onChange.bind(this), this.getPluginOption(\"debounce\"));\n        }\n        /*\n         * Call an event handler, while marking the current node cell 'busy'.\n         * Deal with returned promises and ValidationError.\n         * Convert a ValidationError into a input.setCustomValidity() call and vice versa.\n         */\n        async _applyChange(eventName, node, colElem, inputElem, extra) {\n            node.log(`_applyChange(${eventName})`, extra);\n            colElem.classList.add(\"wb-busy\");\n            colElem.classList.remove(\"wb-error\", \"wb-invalid\");\n            inputElem.setCustomValidity(\"\");\n            // Call event handler either ('change' or 'edit.appy'), which may return a\n            // promise or a scalar value or throw a ValidationError.\n            return new Promise((resolve, reject) => {\n                const res = node._callEvent(eventName, extra);\n                // normalize to promise, even if a scalar value was returned and await it\n                Promise.resolve(res)\n                    .then((res) => {\n                    resolve(res);\n                })\n                    .catch((err) => {\n                    reject(err);\n                });\n            })\n                .then((res) => {\n                if (!inputElem.checkValidity()) {\n                    // Native validation failed or handler called 'inputElem.setCustomValidity()'\n                    node.logWarn(\"inputElem.checkValidity() failed: throwing....\");\n                    throw new ValidationError(inputElem.validationMessage);\n                }\n                return res;\n            })\n                .catch((err) => {\n                if (err instanceof ValidationError) {\n                    node.logWarn(\"catched \", err);\n                    colElem.classList.add(\"wb-invalid\");\n                    if (inputElem.setCustomValidity && !inputElem.validationMessage) {\n                        inputElem.setCustomValidity(err.message);\n                    }\n                    if (inputElem.validationMessage) {\n                        inputElem.reportValidity();\n                    }\n                    // throw err;\n                }\n                else {\n                    node.logError(`Error in ${eventName} event handler (throw e.util.ValidationError instead if this was intended)`, err);\n                    colElem.classList.add(\"wb-error\");\n                    throw err;\n                }\n            })\n                .finally(() => {\n                colElem.classList.remove(\"wb-busy\");\n            });\n        }\n        /*\n         * Called for when a control that is embedded in a cell fires a `change` event.\n         */\n        _onChange(e) {\n            const info = Wunderbaum.getEventInfo(e);\n            const node = info.node;\n            const colElem = info.colElem;\n            if (!node || info.colIdx === 0) {\n                this.tree.log(\"Ignored change event for removed element or node title\");\n                return;\n            }\n            // See also WbChangeEventType\n            this._applyChange(\"change\", node, colElem, e.target, {\n                info: info,\n                event: e,\n                inputElem: e.target,\n                inputValue: Wunderbaum.util.getValueFromElem(e.target),\n                inputValid: e.target.checkValidity(),\n            });\n        }\n        init() {\n            super.init();\n            onEvent(this.tree.element, \"change\", //\"change input\",\n            \".contenteditable,input,textarea,select\", \n            // #61: we must not debounce the `change`, event.target may be reset to null\n            // when the debounced handler is called.\n            // (e) => {\n            //   this.debouncedOnChange(e);\n            // }\n            (e) => this._onChange(e));\n        }\n        /* Called by ext_keynav to pre-process input. */\n        _preprocessKeyEvent(data) {\n            const event = data.event;\n            const eventName = eventToString(event);\n            const tree = this.tree;\n            const trigger = this.getPluginOption(\"trigger\");\n            // const inputElem =\n            //   event.target && event.target.closest(\"input,[contenteditable]\");\n            // tree.logDebug(`_preprocessKeyEvent: ${eventName}, editing:${this.isEditingTitle()}`);\n            // --- Title editing: apply/discard ---\n            // if (inputElem) {\n            if (this.isEditingTitle()) {\n                switch (eventName) {\n                    case \"Enter\":\n                        this._stopEditTitle(true, { event: event });\n                        return false;\n                    case \"Escape\":\n                        this._stopEditTitle(false, { event: event });\n                        return false;\n                }\n                // If the event target is an input element or `contenteditable=\"true\"`,\n                // we ignore it as navigation command\n                return false;\n            }\n            // --- Trigger title editing\n            if (tree.isRowNav() || tree.activeColIdx === 0) {\n                switch (eventName) {\n                    case \"Enter\":\n                        if (trigger.indexOf(\"macEnter\") >= 0 && isMac) {\n                            this.startEditTitle();\n                            return false;\n                        }\n                        break;\n                    case \"F2\":\n                        if (trigger.indexOf(\"F2\") >= 0) {\n                            this.startEditTitle();\n                            return false;\n                        }\n                        break;\n                }\n                return true;\n            }\n            return true;\n        }\n        /** Return true if a title is currently being edited. */\n        isEditingTitle(node) {\n            return node ? this.curEditNode === node : !!this.curEditNode;\n        }\n        /** Start renaming, i.e. replace the title with an embedded `<input>`. */\n        startEditTitle(node) {\n            node = node !== null && node !== void 0 ? node : this.tree.getActiveNode();\n            const validity = this.getPluginOption(\"validity\");\n            const select = this.getPluginOption(\"select\");\n            if (!node) {\n                return;\n            }\n            if (node.isStatusNode()) {\n                node.logWarn(\"Cannot edit status node.\");\n                return;\n            }\n            this.tree.logDebug(`startEditTitle(node=${node})`);\n            let inputHtml = node._callEvent(\"edit.beforeEdit\");\n            if (inputHtml === false) {\n                node.logDebug(\"beforeEdit canceled operation.\");\n                return;\n            }\n            // `beforeEdit(e)` may return an input HTML string. Otherwise use a default\n            // (we also treat a `true` return value as 'use default'):\n            if (inputHtml === true || !inputHtml) {\n                const title = escapeHtml(node.title);\n                let opt = this.getPluginOption(\"maxlength\");\n                const maxlength = opt ? ` maxlength=\"${opt}\"` : \"\";\n                opt = this.getPluginOption(\"minlength\");\n                const minlength = opt ? ` minlength=\"${opt}\"` : \"\";\n                const required = opt > 0 ? \" required\" : \"\";\n                inputHtml =\n                    `<input type=text class=\"wb-input-edit\" tabindex=-1 value=\"${title}\" ` +\n                        `autocorrect=\"off\"${required}${minlength}${maxlength} >`;\n            }\n            const titleSpan = node\n                .getColElem(0)\n                .querySelector(\".wb-title\");\n            titleSpan.innerHTML = inputHtml;\n            const inputElem = titleSpan.firstElementChild;\n            if (validity) {\n                // Permanently apply input validations (CSS and tooltip)\n                inputElem.addEventListener(\"keydown\", (e) => {\n                    inputElem.setCustomValidity(\"\");\n                    if (!inputElem.reportValidity()) {\n                        node.logWarn(`Invalid input: '${inputElem.value}'`);\n                    }\n                });\n            }\n            inputElem.focus();\n            if (select) {\n                inputElem.select();\n            }\n            this.curEditNode = node;\n            node._callEvent(\"edit.edit\", {\n                inputElem: inputElem,\n            });\n        }\n        /**\n         *\n         * @param apply\n         * @returns\n         */\n        stopEditTitle(apply) {\n            return this._stopEditTitle(apply, {});\n        }\n        /*\n         *\n         * @param apply\n         * @param opts.canKeepOpen\n         */\n        _stopEditTitle(apply, options) {\n            var _a;\n            options !== null && options !== void 0 ? options : (options = {});\n            const focusElem = document.activeElement;\n            let newValue = focusElem ? getValueFromElem(focusElem) : null;\n            const node = this.curEditNode;\n            const forceClose = !!options.forceClose;\n            const validity = this.getPluginOption(\"validity\");\n            if (newValue && this.getPluginOption(\"trim\")) {\n                newValue = newValue.trim();\n            }\n            if (!node) {\n                // this.tree.logDebug(\"stopEditTitle: not in edit mode.\");\n                return;\n            }\n            node.logDebug(`stopEditTitle(${apply})`, options, focusElem, newValue);\n            if (apply && newValue !== null && newValue !== node.title) {\n                const errMsg = focusElem.validationMessage;\n                if (errMsg) {\n                    // input element's native validation failed\n                    throw new Error(`Input validation failed for \"${newValue}\": ${errMsg}.`);\n                }\n                const colElem = node.getColElem(0);\n                this._applyChange(\"edit.apply\", node, colElem, focusElem, {\n                    oldValue: node.title,\n                    newValue: newValue,\n                    inputElem: focusElem,\n                    inputValid: focusElem.checkValidity(),\n                }).then((value) => {\n                    var _a;\n                    const errMsg = focusElem.validationMessage;\n                    if (validity && errMsg && value !== false) {\n                        // Handler called 'inputElem.setCustomValidity()' to signal error\n                        throw new Error(`Edit apply validation failed for \"${newValue}\": ${errMsg}.`);\n                    }\n                    // Discard the embedded `<input>`\n                    // node.logDebug(\"applyChange:\", value, forceClose)\n                    if (!forceClose && value === false) {\n                        // Keep open\n                        return;\n                    }\n                    node === null || node === void 0 ? void 0 : node.setTitle(newValue);\n                    // NOTE: At least on Safari, this render call triggers a scroll event\n                    // probably because the focused input is replaced.\n                    (_a = this.curEditNode) === null || _a === void 0 ? void 0 : _a._render({ preventScroll: true });\n                    this.curEditNode = null;\n                    this.relatedNode = null;\n                    this.tree.setFocus(); // restore focus that was in the input element\n                });\n                // .catch((err) => {\n                //   node.logError(err);\n                // });\n                // Trigger 'change' event for embedded `<input>`\n                // focusElem.blur();\n            }\n            else {\n                // Discard the embedded `<input>`\n                // NOTE: At least on Safari, this render call triggers a scroll event\n                // probably because the focused input is replaced.\n                (_a = this.curEditNode) === null || _a === void 0 ? void 0 : _a._render({ preventScroll: true });\n                this.curEditNode = null;\n                this.relatedNode = null;\n                // We discarded the <input>, so we have to acquire keyboard focus again\n                this.tree.setFocus();\n            }\n        }\n        /**\n         * Create a new child or sibling node and start edit mode.\n         */\n        createNode(mode = \"after\", node, init) {\n            const tree = this.tree;\n            node = node !== null && node !== void 0 ? node : tree.getActiveNode();\n            assert(node, \"No node was passed, or no node is currently active.\");\n            // const validity = this.getPluginOption(\"validity\");\n            mode = mode || \"prependChild\";\n            if (init == null) {\n                init = { title: \"\" };\n            }\n            else if (typeof init === \"string\") {\n                init = { title: init };\n            }\n            else {\n                assert(isPlainObject(init), `Expected a plain object: ${init}`);\n            }\n            // Make sure node is expanded (and loaded) in 'child' mode\n            if ((mode === \"prependChild\" || mode === \"appendChild\") &&\n                (node === null || node === void 0 ? void 0 : node.isExpandable(true))) {\n                node.setExpanded().then(() => {\n                    this.createNode(mode, node, init);\n                });\n                return;\n            }\n            const newNode = node.addNode(init, mode);\n            newNode.setClass(\"wb-edit-new\");\n            this.relatedNode = node;\n            // Don't filter new nodes:\n            newNode.match = -1;\n            newNode.makeVisible({ noAnimation: true }).then(() => {\n                this.startEditTitle(newNode);\n            });\n        }\n    }\n\n    /*!\n     * wunderbaum.ts\n     *\n     * A treegrid control.\n     *\n     * Copyright (c) 2021-2025, Martin Wendt (https://wwWendt.de).\n     * https://github.com/mar10/wunderbaum\n     *\n     * Released under the MIT license.\n     * @version v0.14.1\n     * @date Sun, 22 Mar 2026 05:52:05 GMT\n     */\n    // import \"./wunderbaum.scss\";\n    class WbSystemRoot extends WunderbaumNode {\n        constructor(tree) {\n            super(tree, null, {\n                key: \"__root__\",\n                title: tree.id,\n            });\n        }\n        toString() {\n            return `WbSystemRoot@${this.key}<'${this.tree.id}'>`;\n        }\n    }\n    /**\n     * A persistent plain object or array.\n     *\n     * See also {@link WunderbaumOptions}.\n     */\n    class Wunderbaum {\n        /** Currently active node if any.\n         * Use {@link WunderbaumNode.setActive|setActive} to modify.\n         */\n        get activeNode() {\n            var _a;\n            // Check for deleted node, i.e. node.tree === null\n            return ((_a = this._activeNode) === null || _a === void 0 ? void 0 : _a.tree) ? this._activeNode : null;\n        }\n        /** Current node hat has keyboard focus if any.\n         * Use {@link WunderbaumNode.setFocus|setFocus()} to modify.\n         */\n        get focusNode() {\n            var _a;\n            // Check for deleted node, i.e. node.tree === null\n            return ((_a = this._focusNode) === null || _a === void 0 ? void 0 : _a.tree) ? this._focusNode : null;\n        }\n        constructor(options) {\n            this.enabled = true;\n            /** Contains additional data that was sent as response to an Ajax source load request. */\n            this.data = {};\n            this.extensionList = [];\n            this.extensions = {};\n            this.keyMap = new Map();\n            this.refKeyMap = new Map();\n            this.treeRowCount = 0;\n            this._disableUpdateCount = 0;\n            this._disableUpdateIgnoreCount = 0;\n            this._activeNode = null;\n            this._focusNode = null;\n            this._initialSource = null;\n            /** Shared properties, referenced by `node.type`. */\n            this.types = {};\n            /** List of column definitions. */\n            this.columns = [];\n            this._columnsById = {};\n            // Modification Status\n            this.pendingChangeTypes = new Set();\n            /** Expose some useful methods of the util.ts module as `tree._util`. */\n            this._util = util;\n            // --- SELECT ---\n            // public selectRangeAnchor: WunderbaumNode | null = null;\n            // --- BREADCRUMB ---\n            /** Filter options (used as defaults for calls to {@link Wunderbaum.filterNodes} ) */\n            this.breadcrumb = null;\n            // --- FILTER ---\n            /** Filter options (used as defaults for calls to {@link Wunderbaum.filterNodes} ) */\n            this.filterMode = null;\n            // --- KEYNAV ---\n            /** @internal Use `setColumn()`/`getActiveColElem()` to access. */\n            this.activeColIdx = 0;\n            /** @internal */\n            this._cellNavMode = false;\n            /** @internal */\n            this.lastQuicksearchTime = 0;\n            /** @internal */\n            this.lastQuicksearchTerm = \"\";\n            // --- EDIT ---\n            this.lastClickTime = 0;\n            // Set default options and merge with user options\n            const initOptions = Object.assign({\n                id: undefined,\n                source: [], // URL for GET/PUT, Ajax options, or callback\n                element: unsafeCast(null),\n                debugLevel: DEFAULT_DEBUGLEVEL, // 0:quiet, 1:errors, 2:warnings, 3:info, 4:verbose\n                header: null, // Show/hide header (pass bool or string)\n                rowHeightPx: DEFAULT_ROW_HEIGHT,\n                iconMap: \"bootstrap\",\n                columns: [], //util.unsafeCast<ColumnDefinitionList>(null),\n                types: {},\n                enabled: true,\n                fixedCol: false,\n                showSpinner: false,\n                checkbox: false,\n                minExpandLevel: 0,\n                emptyChildListExpandable: false,\n                skeleton: false,\n                autoCollapse: false,\n                adjustHeight: true,\n                connectTopBreadcrumb: null,\n                columnsFilterable: false,\n                columnsMenu: false,\n                columnsResizable: false,\n                columnsSortable: false,\n                selectMode: \"multi\", // SelectModeType\n                scrollIntoViewOnExpandClick: true,\n                // --- Extensions (actually set by exensions on init)\n                dnd: unsafeCast(null),\n                edit: unsafeCast(null),\n                filter: unsafeCast(null),\n                // --- KeyNav ---\n                navigationModeOption: unsafeCast(null),\n                quicksearch: true,\n                // --- Events ---\n                // iconBadge: null,\n                // change: null,\n                // ...\n                // --- Strings ---\n                strings: {\n                    loadError: \"Error\",\n                    loading: \"Loading...\",\n                    noData: \"No data\",\n                    breadcrumbDelimiter: \" » \",\n                    queryResult: \"Found ${matches} of ${count}\",\n                    noMatch: \"No results\",\n                    matchIndex: \"${match} of ${matches}\",\n                },\n            }, options);\n            const opts = initOptions;\n            this.options = opts;\n            const readyDeferred = new Deferred();\n            this.ready = readyDeferred.promise();\n            let readyOk = false;\n            this.ready\n                .then(() => {\n                readyOk = true;\n                try {\n                    this._callEvent(\"init\");\n                }\n                catch (error) {\n                    // We re-raise in the reject handler, but Chrome resets the stack\n                    // frame then, so we log it here:\n                    this.logError(\"Exception inside `init(e)` event:\", error);\n                }\n            })\n                .catch((err) => {\n                if (readyOk) {\n                    // Error occurred in `init` handler. We can re-raise, but Chrome\n                    // resets the stack frame.\n                    throw err;\n                }\n                else {\n                    // Error in load process\n                    this._callEvent(\"init\", { error: err });\n                }\n            });\n            this.id = initOptions.id || \"wb_\" + ++Wunderbaum.sequence;\n            delete initOptions.id;\n            this.root = new WbSystemRoot(this);\n            this._registerExtension(new KeynavExtension(this));\n            this._registerExtension(new EditExtension(this));\n            this._registerExtension(new FilterExtension(this));\n            this._registerExtension(new DndExtension(this));\n            this._registerExtension(new GridExtension(this));\n            this._registerExtension(new LoggerExtension(this));\n            this._updateViewportThrottled = adaptiveThrottle(this._updateViewportImmediately.bind(this), {});\n            // --- Evaluate options\n            this.columns = initOptions.columns || [];\n            delete initOptions.columns;\n            if (!this.columns || !this.columns.length) {\n                const title = typeof opts.header === \"string\" ? opts.header : this.id;\n                this.columns = [{ id: \"*\", title: title, width: \"*\" }];\n            }\n            if (initOptions.types) {\n                this.setTypes(initOptions.types, true);\n            }\n            delete initOptions.types;\n            // --- Create Markup\n            this.element = elemFromSelector(initOptions.element);\n            assert(!!this.element, `Invalid 'element' option: ${initOptions.element}`);\n            delete initOptions.element;\n            this.element.classList.add(\"wunderbaum\");\n            if (!this.element.getAttribute(\"tabindex\")) {\n                this.element.tabIndex = 0;\n            }\n            if (opts.rowHeightPx !== DEFAULT_ROW_HEIGHT) {\n                this.element.style.setProperty(\"--wb-row-outer-height\", opts.rowHeightPx + \"px\");\n                this.element.style.setProperty(\"--wb-row-inner-height\", opts.rowHeightPx - 2 + \"px\");\n            }\n            // Attach tree instance to <div>\n            this.element._wb_tree = this;\n            // Create header markup, or take it from the existing html\n            this.headerElement =\n                this.element.querySelector(\"div.wb-header\");\n            const wantHeader = opts.header == null ? this.columns.length > 1 : !!opts.header;\n            if (this.headerElement) {\n                // User existing header markup to define `this.columns`\n                assert(!this.columns, \"`opts.columns` must not be set if table markup already contains a header\");\n                this.columns = [];\n                const rowElement = this.headerElement.querySelector(\"div.wb-row\");\n                for (const colDiv of rowElement.querySelectorAll(\"div\")) {\n                    this.columns.push({\n                        id: colDiv.dataset.id || `col_${this.columns.length}`,\n                        // id: colDiv.dataset.id || null,\n                        title: \"\" + colDiv.textContent,\n                        // text: \"\" + colDiv.textContent,\n                        width: \"*\", // TODO: read from header span\n                    });\n                }\n            }\n            else {\n                // We need a row div, the rest will be computed from `this.columns`\n                const coldivs = \"<span class='wb-col'></span>\".repeat(this.columns.length);\n                this.element.innerHTML = `\n        <div class='wb-header'>\n          <div class='wb-row'>\n            ${coldivs}\n          </div>\n        </div>`;\n                if (!wantHeader) {\n                    const he = this.element.querySelector(\"div.wb-header\");\n                    he.style.display = \"none\";\n                }\n            }\n            //\n            this.element.innerHTML += `\n      <div class=\"wb-list-container\">\n        <div class=\"wb-node-list\"></div>\n      </div>`;\n            this.listContainerElement = this.element.querySelector(\"div.wb-list-container\");\n            this.nodeListElement =\n                this.listContainerElement.querySelector(\"div.wb-node-list\");\n            this.headerElement =\n                this.element.querySelector(\"div.wb-header\");\n            this.element.classList.toggle(\"wb-grid\", this.columns.length > 1);\n            if (this.options.connectTopBreadcrumb) {\n                this.breadcrumb = elemFromSelector(this.options.connectTopBreadcrumb);\n                assert(!this.breadcrumb || this.breadcrumb.innerHTML != null, `Invalid 'connectTopBreadcrumb' option: ${this.breadcrumb}.`);\n                this.breadcrumb.addEventListener(\"click\", (e) => {\n                    // const node = Wunderbaum.getNode(e)!;\n                    const elem = e.target;\n                    if (elem && elem.matches(\"a.wb-breadcrumb\")) {\n                        const node = this.keyMap.get(elem.dataset.key);\n                        node === null || node === void 0 ? void 0 : node.setActive();\n                        e.preventDefault();\n                    }\n                });\n            }\n            this._initExtensions();\n            // --- apply initial options\n            [\"enabled\", \"fixedCol\"].forEach((optName) => {\n                if (opts[optName] != null) {\n                    this.setOption(optName, opts[optName]);\n                }\n            });\n            // --- Load initial data\n            if (initOptions.source) {\n                if (opts.showSpinner) {\n                    this.nodeListElement.innerHTML = `<progress class='spinner'>${opts.strings.loading}</progress>`;\n                }\n                this.load(initOptions.source)\n                    .then(() => {\n                    // The source may have defined columns, so we may adjust the nav mode\n                    if (opts.navigationModeOption == null) {\n                        if (this.isGrid()) {\n                            this.setNavigationOption(NavModeEnum.cell);\n                        }\n                        else {\n                            this.setNavigationOption(NavModeEnum.row);\n                        }\n                    }\n                    else {\n                        this.setNavigationOption(opts.navigationModeOption);\n                    }\n                    this.update(ChangeType.structure, { immediate: true });\n                    readyDeferred.resolve();\n                })\n                    .catch((error) => {\n                    readyDeferred.reject(error);\n                })\n                    .finally(() => {\n                    var _a;\n                    (_a = this.element.querySelector(\"progress.spinner\")) === null || _a === void 0 ? void 0 : _a.remove();\n                    this.element.classList.remove(\"wb-initializing\");\n                });\n            }\n            else {\n                readyDeferred.resolve();\n            }\n            // Async mode is sometimes required, because this.element.clientWidth\n            // has a wrong value at start???\n            this.update(ChangeType.any);\n            // --- Bind listeners\n            this._registerEventHandlers();\n            this.resizeObserver = new ResizeObserver((entries) => {\n                // this.log(\"ResizeObserver: Size changed\", entries);\n                this.update(ChangeType.resize);\n            });\n            this.resizeObserver.observe(this.element);\n        }\n        _registerEventHandlers() {\n            this.element.addEventListener(\"scroll\", (e) => {\n                // this.log(`scroll, scrollTop:${e.target.scrollTop}`, e);\n                this.update(ChangeType.scroll);\n            });\n            onEvent(this.element, \"click\", \".wb-button,.wb-col-icon\", (e) => {\n                var _a, _b;\n                const info = Wunderbaum.getEventInfo(e);\n                const command = (_b = (_a = e.target) === null || _a === void 0 ? void 0 : _a.dataset) === null || _b === void 0 ? void 0 : _b.command;\n                this._callEvent(\"buttonClick\", {\n                    event: e,\n                    info: info,\n                    command: command,\n                });\n            });\n            onEvent(this.nodeListElement, \"click\", \"div.wb-row\", (e) => {\n                const info = Wunderbaum.getEventInfo(e);\n                const node = info.node;\n                const mouseEvent = e;\n                // this.log(\"click\", info);\n                if (this._callEvent(\"click\", { event: e, node: node, info: info }) === false) {\n                    this.lastClickTime = Date.now();\n                    return false;\n                }\n                if (node) {\n                    if (mouseEvent.ctrlKey) {\n                        node.toggleSelected();\n                        return;\n                    }\n                    // Edit title if 'clickActive' is triggered:\n                    const trigger = this.getOption(\"edit.trigger\");\n                    const slowClickDelay = this.getOption(\"edit.slowClickDelay\");\n                    if (trigger.indexOf(\"clickActive\") >= 0 &&\n                        info.region === \"title\" &&\n                        node.isActive() &&\n                        (!slowClickDelay || Date.now() - this.lastClickTime < slowClickDelay)) {\n                        node.startEditTitle();\n                    }\n                    if (info.region === NodeRegion.expander) {\n                        node.setExpanded(!node.isExpanded(), {\n                            scrollIntoView: this.options.scrollIntoViewOnExpandClick !== false,\n                        });\n                    }\n                    else if (info.region === NodeRegion.checkbox) {\n                        node.toggleSelected();\n                    }\n                    else {\n                        if (info.colIdx >= 0) {\n                            node.setActive(true, { colIdx: info.colIdx, event: e });\n                        }\n                        else {\n                            node.setActive(true, { event: e });\n                        }\n                    }\n                }\n                this.lastClickTime = Date.now();\n            });\n            onEvent(this.nodeListElement, \"dblclick\", \"div.wb-row\", (e) => {\n                const info = Wunderbaum.getEventInfo(e);\n                const node = info.node;\n                // this.log(\"dblclick\", info, e);\n                if (this._callEvent(\"dblclick\", { event: e, node: node, info: info }) ===\n                    false) {\n                    return false;\n                }\n                if (node &&\n                    info.colIdx === 0 &&\n                    node.isExpandable() &&\n                    info.region !== NodeRegion.expander) {\n                    this._callMethod(\"edit._stopEditTitle\");\n                    node.setExpanded(!node.isExpanded());\n                }\n            });\n            onEvent(this.element, \"keydown\", (e) => {\n                const info = Wunderbaum.getEventInfo(e);\n                const eventName = eventToString(e);\n                const node = info.node || this.getFocusNode();\n                this._callHook(\"onKeyEvent\", {\n                    event: e,\n                    node: node,\n                    info: info,\n                    eventName: eventName,\n                });\n            });\n            onEvent(this.element, \"focusin focusout\", (e) => {\n                const flag = e.type === \"focusin\";\n                const targetNode = Wunderbaum.getNode(e);\n                this._callEvent(\"focus\", { flag: flag, event: e });\n                if (flag && this.isRowNav() && !this.isEditingTitle()) {\n                    if (this.options.navigationModeOption === NavModeEnum.row) {\n                        targetNode === null || targetNode === void 0 ? void 0 : targetNode.setActive();\n                    }\n                    else {\n                        this.setCellNav();\n                    }\n                }\n                if (!flag) {\n                    this._callMethod(\"edit._stopEditTitle\", true, {\n                        event: e,\n                        forceClose: true,\n                    });\n                }\n            });\n        }\n        /**\n         * Return a Wunderbaum instance, from element, id, index, or event.\n         *\n         * ```js\n         * getTree();         // Get first Wunderbaum instance on page\n         * getTree(1);        // Get second Wunderbaum instance on page\n         * getTree(event);    // Get tree for this mouse- or keyboard event\n         * getTree(\"foo\");    // Get tree for this `tree.options.id`\n         * getTree(\"#tree\");  // Get tree for first matching element selector\n         * ```\n         */\n        static getTree(el) {\n            if (el instanceof Wunderbaum) {\n                return el;\n            }\n            else if (el instanceof WunderbaumNode) {\n                return el.tree;\n            }\n            if (el === undefined) {\n                el = 0; // get first tree\n            }\n            if (typeof el === \"number\") {\n                el = document.querySelectorAll(\".wunderbaum\")[el]; // el was an integer: return nth element\n            }\n            else if (typeof el === \"string\") {\n                // Search all trees for matching ID\n                for (const treeElem of document.querySelectorAll(\".wunderbaum\")) {\n                    const tree = treeElem._wb_tree;\n                    if (tree && tree.id === el) {\n                        return tree;\n                    }\n                }\n                // Search by selector\n                el = document.querySelector(el);\n                if (!el) {\n                    return null;\n                }\n            }\n            else if (el.target) {\n                el = el.target;\n            }\n            assert(el instanceof Element, `Invalid el type: ${el}`);\n            if (!el.matches(\".wunderbaum\")) {\n                el = el.closest(\".wunderbaum\");\n            }\n            if (el && el._wb_tree) {\n                return el._wb_tree;\n            }\n            return null;\n        }\n        /**\n         * Return the icon-function -> icon-definition mapping.\n         * @deprecated Use {@link Wunderbaum.iconMaps}\n         */\n        get iconMap() {\n            const map = this.options.iconMap;\n            if (typeof map === \"string\") {\n                return defaultIconMaps[map];\n            }\n            return map;\n        }\n        /**\n         * Return a WunderbaumNode instance from element or event.\n         */\n        static getNode(el) {\n            if (!el) {\n                return null;\n            }\n            else if (el instanceof WunderbaumNode) {\n                return el;\n            }\n            else if (el.target !== undefined) {\n                el = el.target; // el was an Event\n            }\n            // `el` is a DOM element\n            // let nodeElem = obj.closest(\"div.wb-row\");\n            while (el) {\n                if (el._wb_node) {\n                    return el._wb_node;\n                }\n                el = el.parentElement; //.parentNode;\n            }\n            return null;\n        }\n        /**\n         * Iterate all descendant nodes depth-first, pre-order using `for ... of ...` syntax.\n         * More concise, but slightly slower than {@link Wunderbaum.visit}.\n         *\n         * Example:\n         * ```js\n         * for(const node of tree) {\n         *   ...\n         * }\n         * ```\n         */\n        *[Symbol.iterator]() {\n            yield* this.root;\n        }\n        /** @internal */\n        _registerExtension(extension) {\n            this.extensionList.push(extension);\n            this.extensions[extension.id] = extension;\n            // this.extensionMap.set(extension.id, extension);\n        }\n        /** Called on tree (re)init after markup is created, before loading. */\n        _initExtensions() {\n            for (const ext of this.extensionList) {\n                ext.init();\n            }\n        }\n        /**\n         * Calculate a *stable*, unique key for a node from its refKey (or title).\n         * We also add information from the parent, because a refKey may occur multiple\n         * times in a tree (but not as child of the same parent).\n         * @internal\n         */\n        _calculateKey(data, parent) {\n            if (data.key) {\n                // Always use an explicitly passed key\n                return data.key;\n            }\n            // Auto-keys are optional, use a monotonic counter by default:\n            if (!this.options.autoKeys) {\n                return \"\" + ++WunderbaumNode.sequence;\n            }\n            // Add the parent's key to the hash. Assuming this was generated by the\n            // same algorithm, this should incorporate the whole path:\n            const s = (parent ? parent.key : \"\") + (data.refKey || data.title);\n            // 32-bit has a high probability of collisions, so we pump up to 64-bit\n            // https://security.stackexchange.com/q/209882/207588\n            const h1 = murmurHash3(s, true);\n            let key = \"id_\" + h1 + murmurHash3(h1 + s, true);\n            // Check for collisions\n            // (Most likely if the same title occurs multiple in the same parent).\n            const existingNode = this.keyMap.get(key);\n            if (existingNode) {\n                key += \".\" + ++Wunderbaum.sequence;\n                this.logWarn(`Node with existing key: '${existingNode}', using ${key}.`, data);\n            }\n            return key;\n        }\n        /** Add node to tree's bookkeeping data structures. @internal */\n        _registerNode(node) {\n            const key = node.key;\n            assert(key != null, `Missing key: '${node}'.`);\n            assert(!this.keyMap.has(key), `Duplicate key: '${key}': ${node}.`);\n            this.keyMap.set(key, node);\n            const rk = node.refKey;\n            if (rk != null) {\n                const rks = this.refKeyMap.get(rk); // Set of nodes with this refKey\n                if (rks) {\n                    rks.add(node);\n                }\n                else {\n                    this.refKeyMap.set(rk, new Set([node]));\n                }\n            }\n        }\n        /** Remove node from tree's bookkeeping data structures. @internal  */\n        _unregisterNode(node) {\n            // Remove refKey reference from map (if any)\n            const rk = node.refKey;\n            if (rk != null) {\n                const rks = this.refKeyMap.get(rk);\n                if (rks && rks.delete(node) && !rks.size) {\n                    // We just removed the last element\n                    this.refKeyMap.delete(rk);\n                }\n            }\n            // Remove key reference from map\n            this.keyMap.delete(node.key);\n            // Mark as disposed\n            node.tree = null;\n            node.parent = null;\n            // Remove HTML markup\n            node.removeMarkup();\n        }\n        /** Call all hook methods of all registered extensions.*/\n        _callHook(hook, data = {}) {\n            let res;\n            const d = extend({}, { tree: this, options: this.options, result: undefined }, data);\n            for (const ext of this.extensionList) {\n                res = ext[hook].call(ext, d);\n                if (res === false) {\n                    break;\n                }\n                if (d.result !== undefined) {\n                    res = d.result;\n                }\n            }\n            return res;\n        }\n        /**\n         * Call tree method or extension method if defined.\n         *\n         * Example:\n         * ```js\n         * tree._callMethod(\"edit.startEdit\", \"arg1\", \"arg2\")\n         * ```\n         */\n        _callMethod(name, ...args) {\n            const [p, n] = name.split(\".\");\n            const obj = n ? this.extensions[p] : this;\n            const func = obj[n];\n            if (func) {\n                return func.apply(obj, args);\n            }\n            else {\n                this.logError(`Calling undefined method '${name}()'.`);\n            }\n        }\n        /**\n         * Call event handler if defined in tree or tree.EXTENSION options.\n         *\n         * Example:\n         * ```js\n         * tree._callEvent(\"edit.beforeEdit\", {foo: 42})\n         * ```\n         */\n        _callEvent(type, extra) {\n            const [p, n] = type.split(\".\");\n            const opts = this.options;\n            const func = n ? opts[p][n] : opts[p];\n            if (func) {\n                return func.call(this, extend({ type: type, tree: this, util: this._util }, extra));\n                // } else {\n                //   this.logError(`Triggering undefined event '${type}'.`)\n            }\n        }\n        /** Return the node for  given row index. */\n        _getNodeByRowIdx(idx) {\n            // TODO: start searching from active node (reverse)\n            let node = null;\n            this.visitRows((n) => {\n                if (n._rowIdx === idx) {\n                    node = n;\n                    return false;\n                }\n            });\n            return node;\n        }\n        /** Return the topmost visible node in the viewport.\n         * @param complete If `false`, the node is considered visible if at least one\n         * pixel is visible.\n         */\n        getTopmostVpNode(complete = true) {\n            const rowHeight = this.options.rowHeightPx;\n            const gracePx = 1; // ignore subpixel scrolling\n            const scrollParent = this.element;\n            // const headerHeight = this.headerElement.clientHeight;  // May be 0\n            const scrollTop = scrollParent.scrollTop; // + headerHeight;\n            let topIdx;\n            if (complete) {\n                topIdx = Math.ceil((scrollTop - gracePx) / rowHeight);\n            }\n            else {\n                topIdx = Math.floor(scrollTop / rowHeight);\n            }\n            return this._getNodeByRowIdx(topIdx);\n        }\n        /** Return the lowest visible node in the viewport. */\n        getLowestVpNode(complete = true) {\n            const rowHeight = this.options.rowHeightPx;\n            const scrollParent = this.element;\n            const headerHeight = this.headerElement.clientHeight; // May be 0\n            const scrollTop = scrollParent.scrollTop;\n            const clientHeight = scrollParent.clientHeight - headerHeight;\n            let bottomIdx;\n            if (complete) {\n                bottomIdx = Math.floor((scrollTop + clientHeight) / rowHeight) - 1;\n            }\n            else {\n                bottomIdx = Math.ceil((scrollTop + clientHeight) / rowHeight) - 1;\n            }\n            bottomIdx = Math.min(bottomIdx, this.count(true) - 1);\n            return this._getNodeByRowIdx(bottomIdx);\n        }\n        /** Return preceding visible node in the viewport. */\n        _getPrevNodeInView(node, ofs = 1) {\n            this.visitRows((n) => {\n                node = n;\n                if (ofs-- <= 0) {\n                    return false;\n                }\n            }, { reverse: true, start: node || this.getActiveNode() });\n            return node;\n        }\n        /** Return following visible node in the viewport. */\n        _getNextNodeInView(node, options) {\n            let ofs = (options === null || options === void 0 ? void 0 : options.ofs) || 1;\n            const reverse = !!(options === null || options === void 0 ? void 0 : options.reverse);\n            this.visitRows((n) => {\n                node = n;\n                if ((options === null || options === void 0 ? void 0 : options.cb) && options.cb(n)) {\n                    return false;\n                }\n                if (ofs-- <= 0) {\n                    return false;\n                }\n            }, { reverse: reverse, start: node || this.getActiveNode() });\n            return node;\n        }\n        /**\n         * Append (or insert) a list of toplevel nodes.\n         *\n         * @see {@link WunderbaumNode.addChildren}\n         */\n        addChildren(nodeData, options) {\n            return this.root.addChildren(nodeData, options);\n        }\n        /**\n         * Apply a modification or navigation operation.\n         *\n         * Most of these commands simply map to a node or tree method.\n         * This method is especially useful when implementing keyboard mapping,\n         * context menus, or external buttons.\n         *\n         * Valid commands:\n         *   - 'moveUp', 'moveDown'\n         *   - 'indent', 'outdent'\n         *   - 'remove'\n         *   - 'edit', 'addChild', 'addSibling': (reqires ext-edit extension)\n         *   - 'cut', 'copy', 'paste': (use an internal singleton 'clipboard')\n         *   - 'down', 'first', 'last', 'left', 'parent', 'right', 'up': navigate\n         *\n         */\n        applyCommand(cmd, nodeOrOpts, options) {\n            let // clipboard,\n            node, refNode;\n            // options = $.extend(\n            // \t{ setActive: true, clipboard: CLIPBOARD },\n            // \toptions_\n            // );\n            if (nodeOrOpts instanceof WunderbaumNode) {\n                node = nodeOrOpts;\n            }\n            else {\n                node = this.getActiveNode();\n                assert(options === undefined, `Unexpected options: ${options}`);\n                options = nodeOrOpts;\n            }\n            // clipboard = options.clipboard;\n            switch (cmd) {\n                // Sorting and indentation:\n                case \"moveUp\":\n                    refNode = node.getPrevSibling();\n                    if (refNode) {\n                        node.moveTo(refNode, \"before\");\n                        node.setActive();\n                    }\n                    break;\n                case \"moveDown\":\n                    refNode = node.getNextSibling();\n                    if (refNode) {\n                        node.moveTo(refNode, \"after\");\n                        node.setActive();\n                    }\n                    break;\n                case \"indent\":\n                    refNode = node.getPrevSibling();\n                    if (refNode) {\n                        node.moveTo(refNode, \"appendChild\");\n                        refNode.setExpanded();\n                        node.setActive();\n                    }\n                    break;\n                case \"outdent\":\n                    if (!node.isTopLevel()) {\n                        node.moveTo(node.getParent(), \"after\");\n                        node.setActive();\n                    }\n                    break;\n                // Remove:\n                case \"remove\":\n                    refNode = node.getPrevSibling() || node.getParent();\n                    node.remove();\n                    if (refNode) {\n                        refNode.setActive();\n                    }\n                    break;\n                // Add, edit (requires ext-edit):\n                case \"addChild\":\n                    this._callMethod(\"edit.createNode\", \"prependChild\");\n                    break;\n                case \"addSibling\":\n                    this._callMethod(\"edit.createNode\", \"after\");\n                    break;\n                case \"rename\":\n                    node.startEditTitle();\n                    break;\n                // Simple clipboard simulation:\n                // case \"cut\":\n                // \tclipboard = { mode: cmd, data: node };\n                // \tbreak;\n                // case \"copy\":\n                // \tclipboard = {\n                // \t\tmode: cmd,\n                // \t\tdata: node.toDict(function(d, n) {\n                // \t\t\tdelete d.key;\n                // \t\t}),\n                // \t};\n                // \tbreak;\n                // case \"clear\":\n                // \tclipboard = null;\n                // \tbreak;\n                // case \"paste\":\n                // \tif (clipboard.mode === \"cut\") {\n                // \t\t// refNode = node.getPrevSibling();\n                // \t\tclipboard.data.moveTo(node, \"child\");\n                // \t\tclipboard.data.setActive();\n                // \t} else if (clipboard.mode === \"copy\") {\n                // \t\tnode.addChildren(clipboard.data).setActive();\n                // \t}\n                // \tbreak;\n                // Navigation commands:\n                case \"down\":\n                case \"first\":\n                case \"last\":\n                case \"left\":\n                case \"nextMatch\":\n                case \"pageDown\":\n                case \"pageUp\":\n                case \"parent\":\n                case \"prevMatch\":\n                case \"right\":\n                case \"up\":\n                    return node.navigate(cmd);\n                default:\n                    error(`Unhandled command: '${cmd}'`);\n            }\n        }\n        /** Delete all nodes. */\n        clear() {\n            this.root.removeChildren();\n            this.root.children = null;\n            this.keyMap.clear();\n            this.refKeyMap.clear();\n            this.treeRowCount = 0;\n            this._activeNode = null;\n            this._focusNode = null;\n            // this.types = {};\n            // this. columns =[];\n            // this._columnsById = {};\n            // Modification Status\n            // this.changedSince = 0;\n            // this.changes.clear();\n            // this.changedNodes.clear();\n            // // --- FILTER ---\n            // public filterMode: FilterModeType = null;\n            // // --- KEYNAV ---\n            // public activeColIdx = 0;\n            // public cellNavMode = false;\n            // public lastQuicksearchTime = 0;\n            // public lastQuicksearchTerm = \"\";\n            this.update(ChangeType.structure);\n        }\n        /**\n         * Clear nodes and markup and detach events and observers.\n         *\n         * This method may be useful to free up resources before re-creating a tree\n         * on an existing div, for example in unittest suites.\n         * Note that this Wunderbaum instance becomes unusable afterwards.\n         */\n        destroy() {\n            this.logInfo(\"destroy()...\");\n            this.clear();\n            this.resizeObserver.disconnect();\n            this.element.innerHTML = \"\";\n            // Remove all event handlers\n            this.element.outerHTML = this.element.outerHTML; // eslint-disable-line\n        }\n        /**\n         * Return `tree.option.NAME` (also resolving if this is a callback).\n         *\n         * See also {@link WunderbaumNode.getOption|WunderbaumNode.getOption()}\n         * to evaluate `node.NAME` setting and `tree.types[node.type].NAME`.\n         *\n         * @param name option name (use dot notation to access extension option, e.g.\n         * `filter.mode`)\n         */\n        getOption(name, defaultValue) {\n            let ext;\n            let opts = this.options;\n            // Lookup `name` in options dict\n            if (name.indexOf(\".\") >= 0) {\n                [ext, name] = name.split(\".\");\n                opts = opts[ext];\n            }\n            let value = opts[name];\n            // A callback resolver always takes precedence\n            if (typeof value === \"function\") {\n                value = value({ type: \"resolve\", tree: this });\n            }\n            // Use value from value options dict, fallback do default\n            // console.info(name, value, opts)\n            return value !== null && value !== void 0 ? value : defaultValue;\n        }\n        /**\n         * Set tree option.\n         * Use dot notation to set plugin option, e.g. \"filter.mode\".\n         */\n        setOption(name, value) {\n            // this.log(`setOption(${name}, ${value})`);\n            if (name.indexOf(\".\") >= 0) {\n                const parts = name.split(\".\");\n                const ext = this.extensions[parts[0]];\n                ext.setPluginOption(parts[1], value);\n                return;\n            }\n            this.options[name] = value;\n            switch (name) {\n                case \"checkbox\":\n                    this.update(ChangeType.any);\n                    break;\n                case \"enabled\":\n                    this.setEnabled(!!value);\n                    break;\n                case \"fixedCol\":\n                    this.element.classList.toggle(\"wb-fixed-col\", !!value);\n                    break;\n            }\n        }\n        /** Return true if the tree (or one of its nodes) has the input focus. */\n        hasFocus() {\n            return this.element.contains(document.activeElement);\n        }\n        /**\n         * Return true if the tree displays a header. Grids have a header unless the\n         * `header` option is set to `false`. Plain trees have a header if the `header`\n         * option is a string or `true`.\n         */\n        hasHeader() {\n            const header = this.options.header;\n            return this.isGrid() ? header !== false : !!header;\n        }\n        /** Run code, but defer rendering of viewport until done.\n         *\n         * ```js\n         * const res = tree.runWithDeferredUpdate(() => {\n         *   return someFunctionThatWouldUpdateManyNodes();\n         * });\n         * ```\n         */\n        runWithDeferredUpdate(func) {\n            try {\n                this.enableUpdate(false);\n                const res = func();\n                assert(!(res instanceof Promise), `Promise return not allowed (see 'runWithDeferredUpdateAsync()'): ${res}`);\n                return res;\n            }\n            finally {\n                this.enableUpdate(true);\n            }\n        }\n        /** Run code, but defer rendering of viewport until done.\n         *\n         * ```js\n         * const res = await tree.runWithDeferredUpdate(async () => {\n         *   return someAsyncFunctionThatWouldUpdateManyNodes();\n         * });\n         * ```\n         */\n        async runWithDeferredUpdateAsync(func) {\n            try {\n                this.enableUpdate(false);\n                return await func();\n            }\n            finally {\n                this.enableUpdate(true);\n            }\n        }\n        /** Recursively expand all expandable nodes (triggers lazy load if needed). */\n        async expandAll(flag = true, options) {\n            await this.root.expandAll(flag, options);\n        }\n        /** Recursively select all nodes. */\n        selectAll(flag = true) {\n            return this.root.setSelected(flag, { propagateDown: true });\n        }\n        /** Toggle select all nodes. */\n        toggleSelect() {\n            this.selectAll(this.root._anySelectable());\n        }\n        /**\n         * Return an array of selected nodes.\n         * @param stopOnParents only return the topmost selected node (useful with selectMode 'hier')\n         */\n        getSelectedNodes(stopOnParents = false) {\n            return this.root.getSelectedNodes(stopOnParents);\n        }\n        /**\n         * Return an array of refKey values.\n         *\n         * RefKeys are unique identifiers for a node data, and are used to identify\n         * clones.\n         * If more than one node has the same refKey, it is only returned once.\n         * @param selected if true, only return refKeys of selected nodes.\n         */\n        getRefKeys(selected = false) {\n            return this.root.getRefKeys(selected);\n        }\n        /*\n         * Return an array of selected nodes.\n         */\n        _selectRange(eventInfo) {\n            this.logDebug(\"_selectRange\", eventInfo);\n            error(\"Not yet implemented.\");\n            // const mode = this.options.selectMode!;\n            // if (mode !== \"multi\") {\n            //   this.logDebug(`Range selection only available for selectMode 'multi'`);\n            //   return;\n            // }\n            // if (eventInfo.canonicalName === \"Meta+click\") {\n            //   eventInfo.node?.toggleSelected();\n            //   return false; // don't\n            // } else if (eventInfo.canonicalName === \"Shift+click\") {\n            //   let from = this.activeNode;\n            //   let to = eventInfo.node;\n            //   if (!from || !to || from === to) {\n            //     return;\n            //   }\n            //   this.runWithDeferredUpdate(() => {\n            //     this.visitRows(\n            //       (node) => {\n            //         node.setSelected();\n            //       },\n            //       {\n            //         includeHidden: true,\n            //         includeSelf: false,\n            //         start: from,\n            //         reverse: from!._rowIdx! > to!._rowIdx!,\n            //       }\n            //     );\n            //   });\n            //   return false;\n            // }\n        }\n        /** Return the number of nodes in the data model.\n         * @param visible if true, nodes that are hidden due to collapsed parents are ignored.\n         */\n        count(visible = false) {\n            return visible ? this.treeRowCount : this.keyMap.size;\n        }\n        /** Return the number of *unique* nodes in the data model, i.e. unique `node.refKey`.\n         */\n        countUnique() {\n            return this.refKeyMap.size;\n        }\n        /** @internal sanity check. */\n        _check() {\n            let i = 0;\n            this.visit((n) => {\n                i++;\n            });\n            if (this.keyMap.size !== i) {\n                this.logWarn(`_check failed: ${this.keyMap.size} !== ${i}`);\n            }\n            // util.assert(this.keyMap.size === i);\n        }\n        /**\n         * Find all nodes that match condition.\n         *\n         * @param match title string to search for, or a\n         *     callback function that returns `true` if a node is matched.\n         * @see {@link WunderbaumNode.findAll}\n         */\n        findAll(match) {\n            return this.root.findAll(match);\n        }\n        /**\n         * Find all nodes with a given _refKey_ (aka a list of clones).\n         *\n         * @param refKey a `node.refKey` value to search for.\n         * @returns an array of matching nodes with at least two element or `[]`\n         * if nothing found.\n         *\n         * @see {@link WunderbaumNode.getCloneList}\n         */\n        findByRefKey(refKey) {\n            const clones = this.refKeyMap.get(refKey);\n            return clones ? Array.from(clones) : [];\n        }\n        /**\n         * Find first node that matches condition.\n         *\n         * @param match title string to search for, or a\n         *     callback function that returns `true` if a node is matched.\n         * @see {@link WunderbaumNode.findFirst}\n         */\n        findFirst(match) {\n            return this.root.findFirst(match);\n        }\n        /**\n         * Find first node that matches condition.\n         *\n         * @see {@link WunderbaumNode.findFirst}\n         *\n         */\n        findKey(key) {\n            return this.keyMap.get(key) || null;\n        }\n        /**\n         * Find the next visible node that starts with `match`, starting at `startNode`\n         * and wrap-around at the end.\n         * Used by quicksearch and keyboard navigation.\n         */\n        findNextNode(match, startNode, reverse = false) {\n            //, visibleOnly) {\n            let res = null;\n            const firstNode = this.getFirstChild();\n            // Last visible node (calculation is expensive, so do only if we need it):\n            const lastNode = reverse ? this.findRelatedNode(firstNode, \"last\") : null;\n            const matcher = typeof match === \"string\" ? makeNodeTitleStartMatcher(match) : match;\n            startNode = startNode || (reverse ? lastNode : firstNode);\n            function _checkNode(n) {\n                // console.log(\"_check \" + n)\n                if (matcher(n)) {\n                    res = n;\n                }\n                if (res || n === startNode) {\n                    return false;\n                }\n            }\n            this.visitRows(_checkNode, {\n                start: startNode,\n                includeSelf: false,\n                reverse: reverse,\n            });\n            // Wrap around search\n            if (!res && startNode !== firstNode) {\n                this.visitRows(_checkNode, {\n                    start: reverse ? lastNode : firstNode,\n                    includeSelf: true,\n                    reverse: reverse,\n                });\n            }\n            return res;\n        }\n        /**\n         * Find a node relative to another node.\n         *\n         * @param node\n         * @param where 'down', 'first', 'last', 'left', 'parent', 'right', or 'up'.\n         *   (Alternatively the keyCode that would normally trigger this move,\n         *   e.g. `$.ui.keyCode.LEFT` = 'left'.\n         * @param includeHidden Not yet implemented\n         */\n        findRelatedNode(node, where, includeHidden = false) {\n            const rowHeight = this.options.rowHeightPx;\n            let res = null;\n            const pageSize = Math.floor(this.listContainerElement.clientHeight / rowHeight);\n            switch (where) {\n                case \"parent\":\n                    if (node.parent && node.parent.parent) {\n                        res = node.parent;\n                    }\n                    break;\n                case \"first\":\n                    // First visible node\n                    this.visit((n) => {\n                        if (n.isVisible()) {\n                            res = n;\n                            return false;\n                        }\n                    });\n                    break;\n                case \"last\":\n                    this.visit((n) => {\n                        // last visible node\n                        if (n.isVisible()) {\n                            res = n;\n                        }\n                    });\n                    break;\n                case \"left\":\n                    if (node.parent && node.parent.parent) {\n                        res = node.parent;\n                    }\n                    // if (node.expanded) {\n                    //   node.setExpanded(false);\n                    // } else if (node.parent && node.parent.parent) {\n                    //   res = node.parent;\n                    // }\n                    break;\n                case \"right\":\n                    if (node.children && node.children.length) {\n                        res = node.children[0];\n                    }\n                    // if (this.cellNavMode) {\n                    //   throw new Error(\"Not implemented\");\n                    // } else {\n                    //   if (!node.expanded && (node.children || node.lazy)) {\n                    //     node.setExpanded();\n                    //     res = node;\n                    //   } else if (node.children && node.children.length) {\n                    //     res = node.children[0];\n                    //   }\n                    // }\n                    break;\n                case \"up\":\n                    res = this._getNextNodeInView(node, { reverse: true });\n                    break;\n                case \"down\":\n                    res = this._getNextNodeInView(node);\n                    break;\n                case \"pageDown\":\n                    {\n                        const bottomNode = this.getLowestVpNode();\n                        // this.logDebug(`${where}(${node}) -> ${bottomNode}`);\n                        if (node._rowIdx < bottomNode._rowIdx) {\n                            res = bottomNode;\n                        }\n                        else {\n                            res = this._getNextNodeInView(node, {\n                                reverse: false,\n                                ofs: pageSize,\n                            });\n                        }\n                    }\n                    break;\n                case \"pageUp\":\n                    if (node._rowIdx === 0) {\n                        res = node;\n                    }\n                    else {\n                        const topNode = this.getTopmostVpNode();\n                        // this.logDebug(`${where}(${node}) -> ${topNode}`);\n                        if (node._rowIdx > topNode._rowIdx) {\n                            res = topNode;\n                        }\n                        else {\n                            res = this._getNextNodeInView(node, {\n                                reverse: true,\n                                ofs: pageSize,\n                            });\n                        }\n                    }\n                    break;\n                case \"prevMatch\":\n                // fallthrough\n                case \"nextMatch\":\n                    if (!this.isFilterActive) {\n                        this.logWarn(`${where}: Filter is not active.`);\n                        break;\n                    }\n                    res = this.findNextNode((n) => n.isMatched(), node, where === \"prevMatch\");\n                    res === null || res === void 0 ? void 0 : res.setActive();\n                    break;\n                default:\n                    this.logWarn(\"Unknown relation '\" + where + \"'.\");\n            }\n            return res;\n        }\n        /**\n         * Iterator version of {@link Wunderbaum.format}.\n         */\n        *format_iter(name_cb, connectors) {\n            yield* this.root.format_iter(name_cb, connectors);\n        }\n        /**\n         * Return multiline string representation of the node hierarchy.\n         * Mostly useful for debugging.\n         *\n         * Example:\n         * ```js\n         * console.info(tree.format((n)=>n.title));\n         * ```\n         * logs\n         * ```\n         * Playground\n         * ├─ Books\n         * |   ├─ Art of War\n         * |   ╰─ Don Quixote\n         * ├─ Music\n         * ...\n         * ```\n         *\n         * @see {@link Wunderbaum.format_iter} and {@link WunderbaumNode.format}.\n         */\n        format(name_cb, connectors) {\n            return this.root.format(name_cb, connectors);\n        }\n        /**\n         * Always returns null (so a tree instance behaves as `tree.root`).\n         */\n        get parent() {\n            return null;\n        }\n        /**\n         * Return a list of top-level nodes.\n         */\n        get children() {\n            return this.root.children || [];\n        }\n        /**\n         * Return the active cell (`span.wb-col`) of the currently active node or null.\n         */\n        getActiveColElem() {\n            if (this.activeNode && this.activeColIdx >= 0) {\n                return this.activeNode.getColElem(this.activeColIdx);\n            }\n            return null;\n        }\n        /**\n         * Return the currently active node or null (alias for `tree.activeNode`).\n         * Alias for {@link Wunderbaum.activeNode}.\n         *\n         * @see {@link WunderbaumNode.setActive}\n         * @see {@link WunderbaumNode.isActive}\n         * @see {@link Wunderbaum.activeNode}\n         * @see {@link Wunderbaum.focusNode}\n         */\n        getActiveNode() {\n            return this.activeNode;\n        }\n        /**\n         * Return the first top level node if any (not the invisible root node).\n         */\n        getFirstChild() {\n            return this.root.getFirstChild();\n        }\n        /**\n         * Return the last top level node if any (not the invisible root node).\n         */\n        getLastChild() {\n            return this.root.getLastChild();\n        }\n        /**\n         * Return the node that currently has keyboard focus or null.\n         * Alias for {@link Wunderbaum.focusNode}.\n         * @see {@link WunderbaumNode.setFocus}\n         * @see {@link WunderbaumNode.hasFocus}\n         * @see {@link Wunderbaum.activeNode}\n         * @see {@link Wunderbaum.focusNode}\n         */\n        getFocusNode() {\n            return this.focusNode;\n        }\n        /** Return a {node: WunderbaumNode, region: TYPE} object for a mouse event.\n         *\n         * @param {Event} event Mouse event, e.g. click, ...\n         * @returns {object} Return a {node: WunderbaumNode, region: TYPE} object\n         *     TYPE: 'title' | 'prefix' | 'expander' | 'checkbox' | 'icon' | undefined\n         */\n        static getEventInfo(event) {\n            const target = event.target;\n            const cl = target.classList;\n            const parentCol = target.closest(\"span.wb-col\");\n            const node = Wunderbaum.getNode(target);\n            const tree = node ? node.tree : Wunderbaum.getTree(event);\n            const res = {\n                event: event,\n                canonicalName: eventToString(event),\n                tree: tree,\n                node: node,\n                region: NodeRegion.unknown,\n                colDef: undefined,\n                colIdx: -1,\n                colId: undefined,\n                colElem: parentCol,\n            };\n            if (cl.contains(\"wb-title\")) {\n                res.region = NodeRegion.title;\n            }\n            else if (cl.contains(\"wb-expander\")) {\n                res.region = node.isExpandable()\n                    ? NodeRegion.expander\n                    : NodeRegion.prefix;\n            }\n            else if (cl.contains(\"wb-checkbox\")) {\n                res.region = NodeRegion.checkbox;\n            }\n            else if (cl.contains(\"wb-icon\")) {\n                //|| cl.contains(\"wb-custom-icon\")) {\n                res.region = NodeRegion.icon;\n            }\n            else if (cl.contains(\"wb-node\")) {\n                res.region = NodeRegion.title;\n            }\n            else if (parentCol) {\n                res.region = NodeRegion.column;\n                const idx = Array.prototype.indexOf.call(parentCol.parentNode.children, parentCol);\n                res.colIdx = idx;\n            }\n            else if (cl.contains(\"wb-row\")) {\n                // Plain tree\n                res.region = NodeRegion.title;\n            }\n            else {\n                // Somewhere near the title\n                if (event.type !== \"mousemove\" && !(event instanceof KeyboardEvent)) {\n                    tree === null || tree === void 0 ? void 0 : tree.logWarn(\"getEventInfo(): not found\", event, res);\n                }\n                return res;\n            }\n            if (res.colIdx === -1) {\n                res.colIdx = 0;\n            }\n            res.colDef = tree === null || tree === void 0 ? void 0 : tree.columns[res.colIdx];\n            res.colDef != null ? (res.colId = res.colDef.id) : 0;\n            // this.log(\"Event\", event, res);\n            return res;\n        }\n        /**\n         * Return readable string representation for this instance.\n         * @internal\n         */\n        toString() {\n            return `Wunderbaum<'${this.id}'>`;\n        }\n        /** Return true if any node title or grid cell is currently beeing edited.\n         *\n         * See also {@link isEditingTitle}.\n         */\n        isEditing() {\n            const focusElem = this.nodeListElement.querySelector(\"input:focus,select:focus\");\n            return !!focusElem;\n        }\n        /** Return true if any node is currently in edit-title mode.\n         *\n         * See also {@link WunderbaumNode.isEditingTitle} and {@link isEditing}.\n         */\n        isEditingTitle() {\n            return this._callMethod(\"edit.isEditingTitle\");\n        }\n        /**\n         * Return true if any node is currently beeing loaded, i.e. a Ajax request is pending.\n         */\n        isLoading() {\n            let res = false;\n            this.root.visit((n) => {\n                // also visit rootNode\n                if (n._isLoading || n._requestId) {\n                    res = true;\n                    return false;\n                }\n            }, true);\n            return res;\n        }\n        /** Write to `console.log` with tree name as prefix if opts.debugLevel >= 4.\n         * @see {@link logDebug}\n         */\n        log(...args) {\n            if (this.options.debugLevel >= 4) {\n                console.log(this.toString(), ...args); // eslint-disable-line no-console\n            }\n        }\n        /** Write to `console.debug`  with tree name as prefix if opts.debugLevel >= 4.\n         * and browser console level includes debug/verbose messages.\n         * @see {@link log}\n         */\n        logDebug(...args) {\n            if (this.options.debugLevel >= 4) {\n                console.debug(this.toString(), ...args); // eslint-disable-line no-console\n            }\n        }\n        /** Write to `console.error` with tree name as prefix. */\n        logError(...args) {\n            if (this.options.debugLevel >= 1) {\n                console.error(this.toString(), ...args); // eslint-disable-line no-console\n            }\n        }\n        /** Write to `console.info`  with tree name as prefix if opts.debugLevel >= 3. */\n        logInfo(...args) {\n            if (this.options.debugLevel >= 3) {\n                console.info(this.toString(), ...args); // eslint-disable-line no-console\n            }\n        }\n        /** @internal */\n        logTime(label) {\n            if (this.options.debugLevel >= 4) {\n                console.time(this + \": \" + label); // eslint-disable-line no-console\n            }\n            return label;\n        }\n        /** @internal */\n        logTimeEnd(label) {\n            if (this.options.debugLevel >= 4) {\n                console.timeEnd(this + \": \" + label); // eslint-disable-line no-console\n            }\n        }\n        /** Write to `console.warn` with tree name as prefix with if opts.debugLevel >= 2. */\n        logWarn(...args) {\n            if (this.options.debugLevel >= 2) {\n                console.warn(this.toString(), ...args); // eslint-disable-line no-console\n            }\n        }\n        /** Emit a warning for deprecated methods. @internal */\n        logDeprecate(method, options) {\n            if (this.options.debugLevel >= 2) {\n                let msg = `${this}: ${method} is deprecated`;\n                if (options === null || options === void 0 ? void 0 : options.since) {\n                    msg += ` since ${options.since}`;\n                }\n                if (options === null || options === void 0 ? void 0 : options.hint) {\n                    msg += ` (${options.since})`;\n                }\n                console.warn(msg + \".\"); // eslint-disable-line no-console\n            }\n        }\n        /** Reset column widths to default. @since 0.10.0 */\n        resetColumns() {\n            this.columns.forEach((col) => {\n                delete col.customWidthPx;\n            });\n            this.update(ChangeType.colStructure);\n        }\n        // /** Renumber nodes `_nativeIndex`. @see {@link WunderbaumNode.resetNativeChildOrder} */\n        // resetNativeChildOrder(options?: ResetOrderOptions) {\n        //   this.root.resetNativeChildOrder(options);\n        // }\n        /**\n         * Make sure that this node is vertically scrolled into the viewport.\n         *\n         * Nodes that are above the visible area become the top row, nodes that are\n         * below the viewport become the bottom row.\n         */\n        scrollTo(nodeOrOpts) {\n            const PADDING = 2; // leave some pixels between viewport bounds\n            let node;\n            // WunderbaumNode;\n            let options;\n            if (nodeOrOpts instanceof WunderbaumNode) {\n                node = nodeOrOpts;\n            }\n            else {\n                options = nodeOrOpts;\n                node = options.node;\n            }\n            assert(node && node._rowIdx != null, `Invalid node: ${node}`);\n            const rowHeight = this.options.rowHeightPx;\n            const scrollParent = this.element;\n            const headerHeight = this.headerElement.clientHeight; // May be 0\n            const scrollTop = scrollParent.scrollTop;\n            const vpHeight = scrollParent.clientHeight;\n            const rowTop = node._rowIdx * rowHeight + headerHeight;\n            const vpTop = headerHeight;\n            const vpRowTop = rowTop - scrollTop;\n            const vpRowBottom = vpRowTop + rowHeight;\n            const topNode = options === null || options === void 0 ? void 0 : options.topNode;\n            // this.log( `scrollTo(${node.title}), vpTop:${vpTop}px, scrollTop:${scrollTop}, vpHeight:${vpHeight}, rowTop:${rowTop}, vpRowTop:${vpRowTop}`, nodeOrOpts , options);\n            let newScrollTop = null;\n            if (vpRowTop >= vpTop) {\n                if (vpRowBottom <= vpHeight) ;\n                else {\n                    // Node is below viewport\n                    // this.log(\"Below viewport\");\n                    newScrollTop = rowTop + rowHeight - vpHeight + PADDING; // leave some pixels between viewport bounds\n                }\n            }\n            else {\n                // Node is above viewport\n                // this.log(\"Above viewport\");\n                newScrollTop = rowTop - vpTop - PADDING; // leave some pixels between viewport bounds\n            }\n            if (newScrollTop != null) {\n                this.log(`scrollTo(${rowTop}): ${scrollTop} => ${newScrollTop}`);\n                scrollParent.scrollTop = newScrollTop;\n                if (topNode) {\n                    // Make sure the topNode is always visible\n                    this.scrollTo(topNode);\n                }\n                // this.update(ChangeType.scroll);\n            }\n        }\n        /**\n         * Make sure that this node is horizontally scrolled into the viewport.\n         * Called by {@link setColumn}.\n         */\n        scrollToHorz() {\n            // const PADDING = 1;\n            const fixedWidth = this.columns[0]._widthPx;\n            const vpWidth = this.element.clientWidth;\n            const scrollLeft = this.element.scrollLeft;\n            const colElem = this.getActiveColElem();\n            const colLeft = Number.parseInt(colElem === null || colElem === void 0 ? void 0 : colElem.style.left, 10);\n            const colRight = colLeft + Number.parseInt(colElem === null || colElem === void 0 ? void 0 : colElem.style.width, 10);\n            let newLeft = scrollLeft;\n            if (colLeft - scrollLeft < fixedWidth) {\n                // The current column is scrolled behind the left fixed column\n                newLeft = colLeft - fixedWidth;\n            }\n            else if (colRight - scrollLeft > vpWidth) {\n                // The current column is scrolled outside the right side\n                newLeft = colRight - vpWidth;\n            }\n            newLeft = Math.max(0, newLeft);\n            // util.assert(node._rowIdx != null);\n            this.log(`scrollToHorz(${this.activeColIdx}): ${colLeft}..${colRight}, fixedOfs=${fixedWidth}, vpWidth=${vpWidth}, curLeft=${scrollLeft} -> ${newLeft}`);\n            this.element.scrollLeft = newLeft;\n            // this.update(ChangeType.scroll);\n        }\n        /**\n         * Set column #colIdx to 'active'.\n         *\n         * This higlights the column header and -cells by adding the `wb-active`\n         * class to all grid cells of the active column. <br>\n         * Available in cell-nav mode only.\n         *\n         * If _options.edit_ is true, the embedded input element is focused, or if\n         * colIdx is 0, the node title is put into edit mode.\n         */\n        setColumn(colIdx, options) {\n            var _a, _b, _c;\n            const edit = options === null || options === void 0 ? void 0 : options.edit;\n            const scroll = (options === null || options === void 0 ? void 0 : options.scrollIntoView) !== false;\n            assert(this.isCellNav(), \"Expected cellNav mode\");\n            if (typeof colIdx === \"string\") {\n                const cid = colIdx;\n                colIdx = this.columns.findIndex((c) => c.id === colIdx);\n                assert(colIdx >= 0, `Invalid colId: ${cid}`);\n            }\n            assert(0 <= colIdx && colIdx < this.columns.length, `Invalid colIdx: ${colIdx}`);\n            this.activeColIdx = colIdx;\n            // Update `wb-active` class for all headers\n            if (this.hasHeader()) {\n                for (const rowDiv of this.headerElement.children) {\n                    let i = 0;\n                    for (const colDiv of rowDiv.children) {\n                        colDiv.classList.toggle(\"wb-active\", i++ === colIdx);\n                    }\n                }\n            }\n            (_a = this.activeNode) === null || _a === void 0 ? void 0 : _a.update(ChangeType.status);\n            // Update `wb-active` class for all cell spans\n            for (const rowDiv of this.nodeListElement.children) {\n                let i = 0;\n                for (const colDiv of rowDiv.children) {\n                    colDiv.classList.toggle(\"wb-active\", i++ === colIdx);\n                }\n            }\n            // Horizontically scroll into view\n            if (scroll || edit) {\n                this.scrollToHorz();\n            }\n            if (edit && this.activeNode) {\n                // this.activeNode.setFocus(); // Blur prev. input if any\n                if (colIdx === 0) {\n                    this.activeNode.startEditTitle();\n                }\n                else {\n                    (_c = (_b = this.getActiveColElem()) === null || _b === void 0 ? void 0 : _b.querySelector(\"input,select\")) === null || _c === void 0 ? void 0 : _c.focus();\n                }\n            }\n        }\n        /* Set or remove keyboard focus to the tree container. @internal */\n        _setActiveNode(node) {\n            this._activeNode = node;\n        }\n        /** Set or remove keyboard focus to the tree container. */\n        setActiveNode(key, flag = true, options) {\n            var _a;\n            (_a = this.findKey(key)) === null || _a === void 0 ? void 0 : _a.setActive(flag, options);\n        }\n        /** Set or remove keyboard focus to the tree container. */\n        setFocus(flag = true) {\n            if (flag) {\n                this.element.focus();\n            }\n            else {\n                this.element.blur();\n            }\n        }\n        /* Set or remove keyboard focus to the tree container. @internal */\n        _setFocusNode(node) {\n            this._focusNode = node;\n        }\n        /** Return the current selection/expansion/activation status. @experimental */\n        getState(options = {}) {\n            var _a, _b;\n            const { activeKey = true, expandedKeys = false, selectedKeys = false, } = options;\n            const expandSet = new Set();\n            if (expandedKeys) {\n                for (const node of this) {\n                    if (node.isExpanded() && node.hasChildren()) {\n                        expandSet.add(node.key);\n                    }\n                }\n            }\n            // Parents of active node are always expanded\n            if (activeKey && this.activeNode) {\n                this.activeNode.visitParents((n) => {\n                    if (n.parent) {\n                        expandSet.add(n.key);\n                    }\n                }, false);\n            }\n            const state = {\n                expandedKeys: expandSet.size ? Array.from(expandSet) : undefined,\n                activeKey: (_b = (_a = this.activeNode) === null || _a === void 0 ? void 0 : _a.key) !== null && _b !== void 0 ? _b : null,\n                activeColIdx: this.activeColIdx,\n                selectedKeys: selectedKeys\n                    ? this.getSelectedNodes().flatMap((n) => n.key)\n                    : undefined,\n            };\n            return state;\n        }\n        /** Apply selection/expansion/activation status. @experimental */\n        async setState(state, options = {}) {\n            const { expandLazy = true } = options;\n            return this.runWithDeferredUpdateAsync(async () => {\n                var _a, _b;\n                if (state.expandedKeys && state.expandedKeys.length) {\n                    if (expandLazy) {\n                        // Expand all keys recursively, even if they are not in the tree yet\n                        await this._loadLazyNodes(state.expandedKeys, {\n                            expand: true,\n                            noEvents: true,\n                        });\n                    }\n                    else {\n                        for (const key of state.expandedKeys) {\n                            (_a = this.findKey(key)) === null || _a === void 0 ? void 0 : _a.setExpanded(true);\n                        }\n                    }\n                }\n                if (state.activeKey) {\n                    this.setActiveNode(state.activeKey);\n                }\n                if (state.selectedKeys) {\n                    this.selectAll(false);\n                    for (const key of state.selectedKeys) {\n                        (_b = this.findKey(key)) === null || _b === void 0 ? void 0 : _b.setSelected(true);\n                    }\n                }\n                if (this.isCellNav() && state.activeColIdx != null) {\n                    this.setColumn(state.activeColIdx);\n                }\n            });\n        }\n        update(change, node, options) {\n            // this.log(`update(${change}) node=${node}`);\n            if (!(node instanceof WunderbaumNode)) {\n                options = node;\n                node = undefined;\n            }\n            const immediate = !!getOption(options, \"immediate\");\n            const RF = RenderFlag;\n            const pending = this.pendingChangeTypes;\n            if (this._disableUpdateCount) {\n                // Assuming that we redraw all when enableUpdate() is re-enabled.\n                // this.log(\n                //   `IGNORED update(${change}) node=${node} (disable level ${this._disableUpdateCount})`\n                // );\n                this._disableUpdateIgnoreCount++;\n                return;\n            }\n            switch (change) {\n                case ChangeType.any:\n                case ChangeType.colStructure:\n                    pending.add(RF.header);\n                    pending.add(RF.clearMarkup);\n                    pending.add(RF.redraw);\n                    pending.add(RF.scroll);\n                    break;\n                case ChangeType.resize:\n                    // case ChangeType.colWidth:\n                    pending.add(RF.header);\n                    pending.add(RF.redraw);\n                    break;\n                case ChangeType.structure:\n                    pending.add(RF.redraw);\n                    break;\n                case ChangeType.scroll:\n                    pending.add(RF.scroll);\n                    break;\n                case ChangeType.row:\n                case ChangeType.data:\n                case ChangeType.status:\n                    assert(node, `Option '${change}' requires a node.`);\n                    // Single nodes are immediately updated if already inside the viewport\n                    // (otherwise we can ignore)\n                    if (node._rowElem) {\n                        node._render({ change: change });\n                    }\n                    break;\n                default:\n                    error(`Invalid change type '${change}'.`);\n            }\n            if (change === ChangeType.colStructure) {\n                const isGrid = this.isGrid();\n                this.element.classList.toggle(\"wb-grid\", isGrid);\n                if (!isGrid && this.isCellNav()) {\n                    this.setCellNav(false);\n                }\n            }\n            if (pending.size > 0) {\n                if (immediate) {\n                    this._updateViewportImmediately();\n                }\n                else {\n                    this._updateViewportThrottled();\n                }\n            }\n        }\n        /** Disable mouse and keyboard interaction (return prev. state). */\n        setEnabled(flag = true) {\n            const prev = this.enabled;\n            this.enabled = !!flag;\n            this.element.classList.toggle(\"wb-disabled\", !flag);\n            return prev;\n        }\n        /** Return false if tree is disabled. */\n        isEnabled() {\n            return this.enabled;\n        }\n        /** Return true if tree has more than one column, i.e. has additional data columns. */\n        isGrid() {\n            return this.columns && this.columns.length > 1;\n        }\n        /** Return true if cell-navigation mode is active. */\n        isCellNav() {\n            return !!this._cellNavMode;\n        }\n        /** Return true if row-navigation mode is active. */\n        isRowNav() {\n            return !this._cellNavMode;\n        }\n        /** Set the tree's navigation mode. */\n        setCellNav(flag = true) {\n            var _a;\n            const prev = this._cellNavMode;\n            // if (flag === prev) {\n            //   return;\n            // }\n            this._cellNavMode = !!flag;\n            if (flag && !prev) {\n                // switch from row to cell mode\n                this.setColumn(0);\n            }\n            this.element.classList.toggle(\"wb-cell-mode\", flag);\n            (_a = this.activeNode) === null || _a === void 0 ? void 0 : _a.update(ChangeType.status);\n        }\n        /** Set the tree's navigation mode option. */\n        setNavigationOption(mode, reset = false) {\n            if (!this.isGrid() && mode !== NavModeEnum.row) {\n                this.logWarn(\"Plain trees only support row navigation mode.\");\n                return;\n            }\n            this.options.navigationModeOption = mode;\n            switch (mode) {\n                case NavModeEnum.cell:\n                    this.setCellNav(true);\n                    break;\n                case NavModeEnum.row:\n                    this.setCellNav(false);\n                    break;\n                case NavModeEnum.startCell:\n                    if (reset) {\n                        this.setCellNav(true);\n                    }\n                    break;\n                case NavModeEnum.startRow:\n                    if (reset) {\n                        this.setCellNav(false);\n                    }\n                    break;\n                default:\n                    error(`Invalid mode '${mode}'.`);\n            }\n        }\n        /** Display tree status (ok, loading, error, noData) using styles and a dummy root node. */\n        setStatus(status, options) {\n            return this.root.setStatus(status, options);\n        }\n        /** Add or redefine node type definitions. */\n        setTypes(types, replace = true) {\n            assert(isPlainObject(types), `Expected plain objext: ${types}`);\n            if (replace) {\n                this.types = types;\n            }\n            else {\n                extend(this.types, types);\n            }\n            // Convert `TYPE.classes` to a Set\n            for (const t of Object.values(this.types)) {\n                if (t.classes) {\n                    t.classes = toSet(t.classes);\n                }\n            }\n        }\n        /**\n         * Sort nodes list by title or custom criteria.\n         * @param {function} cmp custom compare function(a, b) that returns -1, 0, or 1\n         *    (defaults to sorting by title).\n         * @param {boolean} deep pass true to sort all descendant nodes recursively\n         * @deprecated use {@link sort}\n         */\n        sortChildren(cmp = nodeTitleSorter, deep = false) {\n            this.logDeprecate(\"sortChildren()\", { since: \"0.14.0\" });\n            return this.sort({\n                cmp: cmp ? cmp : undefined,\n                deep: deep,\n                propName: \"title\",\n            });\n        }\n        /**\n         * Convenience method to implement column sorting.\n         * @see {@link WunderbaumNode.sortByProperty}.\n         * @since 0.11.0\n         * @deprecated use {@link sort}\n         */\n        sortByProperty(options) {\n            this.logDeprecate(\"sortByProperty()\", { since: \"0.14.0\" });\n            this.root.sortByProperty(options);\n        }\n        /**\n         * Sort nodes list by title or custom criteria.\n         * @since 0.14.0\n         */\n        sort(options) {\n            this.root.sort(options);\n        }\n        /** Convert tree to an array of plain objects.\n         *\n         * @param callback is called for every node, in order to allow\n         *     modifications.\n         *     Return `false` to ignore this node or `\"skip\"` to include this node\n         *     without its children.\n         * @see {@link WunderbaumNode.toDict}.\n         */\n        toDictArray(callback) {\n            var _a;\n            const res = this.root.toDict(true, callback);\n            return (_a = res.children) !== null && _a !== void 0 ? _a : [];\n        }\n        /**\n         * Update column headers and column width.\n         * Return true if at least one column width changed.\n         */\n        // _updateColumnWidths(options?: UpdateColumnsOptions): boolean {\n        _updateColumnWidths() {\n            // options = Object.assign({ updateRows: true, renderMarkup: false }, options);\n            const defaultMinWidth = 4;\n            const vpWidth = this.element.clientWidth;\n            // Shorten last column width to avoid h-scrollbar\n            // (otherwise resizbing the demo would display a void scrollbar?)\n            const FIX_ADJUST_LAST_COL = 1;\n            const columns = this.columns;\n            const col0 = columns[0];\n            let totalWidth = 0;\n            let totalWeight = 0;\n            let fixedWidth = 0;\n            let modified = false;\n            // this.element.classList.toggle(\"wb-grid\", isGrid);\n            // if (!isGrid && this.isCellNav()) {\n            //   this.setCellNav(false);\n            // }\n            // if (options.calculateCols) {\n            if (col0.id !== \"*\") {\n                throw new Error(`First column must have  id '*': got '${col0.id}'.`);\n            }\n            // Gather width definitions\n            this._columnsById = {};\n            for (const col of columns) {\n                this._columnsById[col.id] = col;\n                const cw = col.customWidthPx ? `${col.customWidthPx}px` : col.width;\n                if (col.id === \"*\" && col !== col0) {\n                    throw new Error(`Column id '*' must be defined only once: '${col.title}'.`);\n                }\n                if (!cw || cw === \"*\") {\n                    col._weight = 1.0;\n                    totalWeight += 1.0;\n                }\n                else if (typeof cw === \"number\") {\n                    col._weight = cw;\n                    totalWeight += cw;\n                }\n                else if (typeof cw === \"string\" && cw.endsWith(\"px\")) {\n                    col._weight = 0;\n                    const px = parseFloat(cw.slice(0, -2));\n                    if (col._widthPx != px) {\n                        modified = true;\n                        col._widthPx = px;\n                    }\n                    fixedWidth += px;\n                }\n                else {\n                    error(`Invalid column width: ${cw} (expected string ending with 'px' or number, e.g. \"<num>px\" or <int>).`);\n                }\n            }\n            // Share remaining space between non-fixed columns\n            const restPx = Math.max(0, vpWidth - fixedWidth);\n            let ofsPx = 0;\n            for (const col of columns) {\n                let minWidth;\n                if (col._weight) {\n                    const cmw = col.minWidth;\n                    if (typeof cmw === \"number\") {\n                        minWidth = cmw;\n                    }\n                    else if (typeof cmw === \"string\" && cmw.endsWith(\"px\")) {\n                        minWidth = parseFloat(cmw.slice(0, -2));\n                    }\n                    else {\n                        minWidth = defaultMinWidth;\n                    }\n                    const px = Math.max(minWidth, (restPx * col._weight) / totalWeight);\n                    if (col._widthPx != px) {\n                        modified = true;\n                        col._widthPx = px;\n                    }\n                }\n                col._ofsPx = ofsPx;\n                ofsPx += col._widthPx;\n            }\n            columns[columns.length - 1]._widthPx -= FIX_ADJUST_LAST_COL;\n            totalWidth = ofsPx - FIX_ADJUST_LAST_COL;\n            const tw = `${totalWidth}px`;\n            this.headerElement.style.width = tw;\n            this.listContainerElement.style.width = tw;\n            // }\n            // Every column has now a calculated `_ofsPx` and `_widthPx`\n            // this.logInfo(\"UC\", this.columns, vpWidth, this.element.clientWidth, this.element);\n            // console.trace();\n            // util.error(\"BREAK\");\n            // if (modified) {\n            //   this._renderHeaderMarkup();\n            //   if (options.renderMarkup) {\n            //     this.update(ChangeType.header, { removeMarkup: true });\n            //   } else if (options.updateRows) {\n            //     this._updateRows();\n            //   }\n            // }\n            return modified;\n        }\n        // protected _insertIcon(icon: string, elem: HTMLElement) {\n        //   const iconElem = document.createElement(\"i\");\n        //   iconElem.className = icon;\n        //   elem.appendChild(iconElem);\n        // }\n        /** Create/update header markup from `this.columns` definition.\n         * @internal\n         */\n        _renderHeaderMarkup() {\n            assert(this.headerElement, \"Expected a headerElement\");\n            const wantHeader = this.hasHeader();\n            setElemDisplay(this.headerElement, wantHeader);\n            if (!wantHeader) {\n                return;\n            }\n            const iconMap = this.iconMap;\n            const colCount = this.columns.length;\n            const headerRow = this.headerElement.querySelector(\".wb-row\");\n            assert(headerRow, \"Expected a row in header element\");\n            headerRow.innerHTML = \"<span class='wb-col'></span>\".repeat(colCount);\n            for (let i = 0; i < colCount; i++) {\n                const col = this.columns[i];\n                const colElem = headerRow.children[i];\n                colElem.style.left = col._ofsPx + \"px\";\n                colElem.style.width = col._widthPx + \"px\";\n                // Add classes from `columns` definition to `<div.wb-col>` cells\n                if (typeof col.headerClasses === \"string\") {\n                    col.headerClasses\n                        ? colElem.classList.add(...col.headerClasses.split(\" \"))\n                        : 0;\n                }\n                else {\n                    col.classes ? colElem.classList.add(...col.classes.split(\" \")) : 0;\n                }\n                // Add tooltip to column title\n                let tooltip = \"\";\n                if (col.tooltip) {\n                    tooltip = escapeTooltip(col.tooltip);\n                    tooltip = ` title=\"${tooltip}\"`;\n                }\n                // Add column header icons\n                let addMarkup = \"\";\n                // NOTE: we use CSS float: right to align icons, so they must be added in\n                // reverse order\n                if (toBool(col.menu, this.options.columnsMenu, false)) {\n                    const iconClass = \"wb-col-icon-menu \" + iconMap.colMenu;\n                    const icon = `<i data-command=menu class=\"wb-col-icon ${iconClass}\"></i>`;\n                    addMarkup += icon;\n                }\n                if (toBool(col.sortable, this.options.columnsSortable, false)) {\n                    let iconClass = \"wb-col-icon-sort \" + iconMap.colSortable;\n                    if (col.sortOrder) {\n                        iconClass += `wb-col-sort-${col.sortOrder}`;\n                        iconClass +=\n                            col.sortOrder === \"asc\" ? iconMap.colSortAsc : iconMap.colSortDesc;\n                    }\n                    const icon = `<i data-command=sort class=\"wb-col-icon ${iconClass}\"></i>`;\n                    addMarkup += icon;\n                }\n                if (toBool(col.filterable, this.options.columnsFilterable, false)) {\n                    colElem.classList.toggle(\"wb-col-filter\", !!col.filterActive);\n                    let iconClass = \"wb-col-icon-filter \" + iconMap.colFilter;\n                    if (col.filterActive) {\n                        iconClass += iconMap.colFilterActive;\n                    }\n                    const icon = `<i data-command=filter class=\"wb-col-icon ${iconClass}\"></i>`;\n                    addMarkup += icon;\n                }\n                // Add resizer to all but the last column\n                if (i < colCount - 1) {\n                    if (toBool(col.resizable, this.options.columnsResizable, false)) {\n                        addMarkup +=\n                            '<span class=\"wb-col-resizer wb-col-resizer-active\"></span>';\n                    }\n                    else {\n                        addMarkup += '<span class=\"wb-col-resizer\"></span>';\n                    }\n                }\n                // Create column header\n                const title = escapeHtml(col.title || col.id);\n                colElem.innerHTML = `<span class=\"wb-col-title\"${tooltip}>${title}</span>${addMarkup}`;\n                // Highlight active column\n                if (this.isCellNav()) {\n                    colElem.classList.toggle(\"wb-active\", i === this.activeColIdx);\n                }\n            }\n        }\n        /**\n         * Render pending changes that were scheduled using {@link WunderbaumNode.update} if any.\n         *\n         * This is hardly ever neccessary, since we normally either\n         * - call `update(ChangeType.TYPE)` (async, throttled), or\n         * - call `update(ChangeType.TYPE, {immediate: true})` (synchronous)\n         *\n         * `updatePendingModifications()` will only force immediate execution of\n         * pending async changes if any.\n         */\n        updatePendingModifications() {\n            if (this.pendingChangeTypes.size > 0) {\n                this._updateViewportImmediately();\n            }\n        }\n        /** @internal */\n        _createNodeIcon(node, showLoading, showBadge) {\n            const iconMap = this.iconMap;\n            let iconElem;\n            let icon = node.getOption(\"icon\");\n            if (node._errorInfo) {\n                icon = iconMap.error;\n            }\n            else if (node._isLoading && showLoading) {\n                // Status nodes, or nodes without expander (< minExpandLevel) should\n                // display the 'loading' status with the i.wb-icon span\n                icon = iconMap.loading;\n            }\n            if (icon === false) {\n                return null; // explicitly disabled: don't try default icons\n            }\n            if (typeof icon === \"string\") ;\n            else if (node.statusNodeType) {\n                icon = iconMap[node.statusNodeType];\n            }\n            else if (node.expanded) {\n                icon = iconMap.folderOpen;\n            }\n            else if (node.children) {\n                icon = iconMap.folder;\n            }\n            else if (node.lazy) {\n                icon = iconMap.folderLazy;\n            }\n            else {\n                icon = iconMap.doc;\n            }\n            if (!icon) {\n                iconElem = document.createElement(\"i\");\n                iconElem.className = \"wb-icon\";\n            }\n            else if (TEST_HTML.test(icon)) {\n                iconElem = elemFromHtml(icon);\n            }\n            else if (TEST_FILE_PATH.test(icon)) {\n                iconElem = elemFromHtml(`<i class=\"wb-icon\" style=\"background-image: url('${icon}');\">`);\n            }\n            else {\n                // Class name\n                iconElem = document.createElement(\"i\");\n                iconElem.className = \"wb-icon \" + icon;\n            }\n            // Event handler `tree.iconBadge` can return a badge text or HTMLSpanElement\n            const cbRes = showBadge && node._callEvent(\"iconBadge\", { iconSpan: iconElem });\n            let badge = null;\n            if (cbRes != null && cbRes !== false) {\n                let classes = \"\";\n                let tooltip = \"\";\n                if (isPlainObject(cbRes)) {\n                    badge = \"\" + cbRes.badge;\n                    classes = cbRes.badgeClass ? \" \" + cbRes.badgeClass : \"\";\n                    tooltip = cbRes.badgeTooltip ? ` title=\"${cbRes.badgeTooltip}\"` : \"\";\n                }\n                else if (typeof cbRes === \"number\") {\n                    badge = \"\" + cbRes;\n                }\n                else {\n                    badge = cbRes; // string or HTMLSpanElement\n                }\n                if (typeof badge === \"string\") {\n                    badge = elemFromHtml(`<span class=\"wb-badge${classes}\"${tooltip}>${escapeHtml(badge)}</span>`);\n                }\n                if (badge) {\n                    iconElem.append(badge);\n                }\n            }\n            return iconElem;\n        }\n        _updateTopBreadcrumb() {\n            const breadcrumb = this.breadcrumb;\n            const topmost = this.getTopmostVpNode(true);\n            const parentList = topmost === null || topmost === void 0 ? void 0 : topmost.getParentList(false, false);\n            if (parentList === null || parentList === void 0 ? void 0 : parentList.length) {\n                breadcrumb.innerHTML = \"\";\n                for (const n of topmost.getParentList(false, false)) {\n                    const icon = this._createNodeIcon(n, false, false);\n                    if (icon) {\n                        breadcrumb.append(icon, \" \");\n                    }\n                    const part = document.createElement(\"a\");\n                    part.textContent = n.title;\n                    part.href = \"#\";\n                    part.classList.add(\"wb-breadcrumb\");\n                    part.dataset.key = n.key;\n                    breadcrumb.append(part, this.options.strings.breadcrumbDelimiter);\n                }\n            }\n            else {\n                breadcrumb.innerHTML = \"&nbsp;\";\n            }\n        }\n        /**\n         * This is the actual update method, which is wrapped inside a throttle method.\n         * It calls `updateColumns()` and `_updateRows()`.\n         *\n         * This protected method should not be called directly but via\n         * {@link WunderbaumNode.update}`, {@link Wunderbaum.update},\n         * or {@link Wunderbaum.updatePendingModifications}.\n         * @internal\n         */\n        _updateViewportImmediately() {\n            if (this._disableUpdateCount) {\n                this.log(`_updateViewportImmediately() IGNORED (disable level: ${this._disableUpdateCount}).`);\n                this._disableUpdateIgnoreCount++;\n                return;\n            }\n            if (this._updateViewportThrottled.pending()) {\n                // this.logWarn(`_updateViewportImmediately() cancel pending timer.`);\n                this._updateViewportThrottled.cancel();\n            }\n            // Shorten container height to avoid v-scrollbar\n            const FIX_ADJUST_HEIGHT = 1;\n            const RF = RenderFlag;\n            const pending = new Set(this.pendingChangeTypes);\n            this.pendingChangeTypes.clear();\n            const scrollOnly = pending.has(RF.scroll) && pending.size === 1;\n            if (scrollOnly) {\n                this._updateRows({ newNodesOnly: true });\n                // this.log(\"_updateViewportImmediately(): scroll only.\");\n            }\n            else {\n                this.log(\"_updateViewportImmediately():\", pending);\n                if (this.options.adjustHeight !== false) {\n                    let height = this.listContainerElement.clientHeight;\n                    const headerHeight = this.headerElement.clientHeight; // May be 0\n                    const wantHeight = this.element.clientHeight - headerHeight - FIX_ADJUST_HEIGHT;\n                    if (Math.abs(height - wantHeight) > 1.0) {\n                        // this.log(\"resize\", height, wantHeight);\n                        this.listContainerElement.style.height = wantHeight + \"px\";\n                        height = wantHeight;\n                    }\n                }\n                // console.profile(`_updateViewportImmediately()`)\n                if (pending.has(RF.clearMarkup)) {\n                    this.visit((n) => {\n                        n.removeMarkup();\n                    });\n                }\n                // let widthModified = false;\n                if (pending.has(RF.header)) {\n                    // widthModified = this._updateColumnWidths();\n                    this._updateColumnWidths();\n                    this._renderHeaderMarkup();\n                }\n                this._updateRows();\n                // console.profileEnd(`_updateViewportImmediately()`)\n            }\n            if (this.breadcrumb) {\n                this._updateTopBreadcrumb();\n            }\n            this._callEvent(\"update\");\n        }\n        // /**\n        //  * Assert that TR order matches the natural node order\n        //  * @internal\n        //  */\n        // protected _validateRows(): boolean {\n        //   let trs = this.nodeListElement.childNodes;\n        //   let i = 0;\n        //   let prev = -1;\n        //   let ok = true;\n        //   trs.forEach((element) => {\n        //     const tr = element as HTMLTableRowElement;\n        //     const top = Number.parseInt(tr.style.top);\n        //     const n = (<any>tr)._wb_node;\n        //     // if (i < 4) {\n        //     //   console.info(\n        //     //     `TR#${i}, rowIdx=${n._rowIdx} , top=${top}px: '${n.title}'`\n        //     //   );\n        //     // }\n        //     if (prev >= 0 && top !== prev + ROW_HEIGHT) {\n        //       n.logWarn(\n        //         `TR order mismatch at index ${i}: top=${top}px != ${\n        //           prev + ROW_HEIGHT\n        //         }`\n        //       );\n        //       // throw new Error(\"fault\");\n        //       ok = false;\n        //     }\n        //     prev = top;\n        //     i++;\n        //   });\n        //   return ok;\n        // }\n        /*\n         * - Traverse all *visible* nodes of the whole tree, i.e. skip collapsed nodes.\n         * - Store count of rows to `tree.treeRowCount`.\n         * - Renumber `node._rowIdx` for all visible nodes.\n         * - Calculate the index range that must be rendered to fill the viewport\n         *   (including upper and lower prefetch)\n         * -\n         */\n        _updateRows(options) {\n            // const label = this.logTime(\"_updateRows\");\n            // this.log(\"_updateRows\", opts)\n            options = Object.assign({ newNodesOnly: false }, options);\n            const newNodesOnly = !!options.newNodesOnly;\n            const rowHeight = this.options.rowHeightPx;\n            const vpHeight = this.element.clientHeight;\n            const prefetch = RENDER_MAX_PREFETCH;\n            // const grace_prefetch = RENDER_MAX_PREFETCH - RENDER_MIN_PREFETCH;\n            const ofs = this.element.scrollTop;\n            let startIdx = Math.max(0, ofs / rowHeight - prefetch);\n            startIdx = Math.floor(startIdx);\n            // Make sure start is always even, so the alternating row colors don't\n            // change when scrolling:\n            if (startIdx % 2) {\n                startIdx--;\n            }\n            let endIdx = Math.max(0, (ofs + vpHeight) / rowHeight + prefetch);\n            endIdx = Math.ceil(endIdx);\n            // this.debug(\"render\", opts);\n            const obsoleteNodes = new Set();\n            this.nodeListElement.childNodes.forEach((elem) => {\n                if (elem._wb_node) {\n                    obsoleteNodes.add(elem._wb_node);\n                }\n            });\n            let idx = 0;\n            let top = 0;\n            let modified = false;\n            let prevElem = \"first\";\n            this.visitRows(function (node) {\n                // node.log(\"visit\")\n                const rowDiv = node._rowElem;\n                // Renumber all expanded nodes\n                if (node._rowIdx !== idx) {\n                    node._rowIdx = idx;\n                    modified = true;\n                }\n                if (idx < startIdx || idx > endIdx) {\n                    // row is outside viewport bounds\n                    if (rowDiv) {\n                        prevElem = rowDiv;\n                    }\n                }\n                else if (rowDiv && newNodesOnly) {\n                    obsoleteNodes.delete(node);\n                    // no need to update existing node markup\n                    rowDiv.style.top = idx * rowHeight + \"px\";\n                    prevElem = rowDiv;\n                }\n                else {\n                    obsoleteNodes.delete(node);\n                    // Create new markup\n                    if (rowDiv) {\n                        rowDiv.style.top = idx * rowHeight + \"px\";\n                    }\n                    node._render({ top: top, after: prevElem });\n                    // node.log(\"render\", top, prevElem, \"=>\", node._rowElem);\n                    prevElem = node._rowElem;\n                }\n                idx++;\n                top += rowHeight;\n            });\n            this.treeRowCount = idx;\n            for (const n of obsoleteNodes) {\n                n._callEvent(\"discard\");\n                n.removeMarkup();\n            }\n            // Resize tree container\n            this.nodeListElement.style.height = `${top}px`;\n            // this.log(\n            //   `_updateRows(scrollOfs:${ofs}, ${startIdx}..${endIdx})`,\n            //   this.nodeListElement.style.height\n            // );\n            // this.logTimeEnd(label);\n            // this._validateRows();\n            return modified;\n        }\n        /**\n         * Call `callback(node)` for all nodes in hierarchical order (depth-first, pre-order).\n         * @see `wb_node.WunderbaumNode.IterableIterator<WunderbaumNode>`\n         * @see {@link WunderbaumNode.visit}.\n         *\n         * @param {function} callback the callback function.\n         *     Return false to stop iteration, return \"skip\" to skip this node and\n         *     children only.\n         * @returns {boolean} false, if the iterator was stopped.\n         */\n        visit(callback) {\n            return this.root.visit(callback, false);\n        }\n        /**\n         * Call callback(node) for all nodes in vertical order, top down (or bottom up).\n         *\n         * Note that this considers expansion state, i.e. filtered nodes and children\n         * of collapsed nodes are skipped, unless `includeHidden` is set.\n         *\n         * Stop iteration if callback() returns false.<br>\n         * Return false if iteration was stopped.\n         *\n         * @returns {boolean} false if iteration was canceled\n         */\n        visitRows(callback, options) {\n            if (!this.root.hasChildren()) {\n                return false;\n            }\n            if (options && options.reverse) {\n                delete options.reverse;\n                return this._visitRowsUp(callback, options);\n            }\n            options = options || {};\n            let i, nextIdx, parent, res, siblings, stopNode, siblingOfs = 0, skipFirstNode = options.includeSelf === false, node = options.start || this.root.children[0];\n            const includeHidden = !!options.includeHidden;\n            const checkFilter = !includeHidden && this.filterMode === \"hide\";\n            parent = node.parent;\n            while (parent) {\n                // visit siblings\n                siblings = parent.children;\n                nextIdx = siblings.indexOf(node) + siblingOfs;\n                assert(nextIdx >= 0, `Could not find ${node} in parent's children: ${parent}`);\n                for (i = nextIdx; i < siblings.length; i++) {\n                    node = siblings[i];\n                    if (node === stopNode) {\n                        return false;\n                    }\n                    if (checkFilter &&\n                        !node.statusNodeType &&\n                        !node.match &&\n                        !node.subMatchCount) {\n                        continue;\n                    }\n                    if (!skipFirstNode && callback(node) === false) {\n                        return false;\n                    }\n                    skipFirstNode = false;\n                    // Dive into node's child nodes\n                    if (node.children &&\n                        node.children.length &&\n                        (includeHidden || node.expanded)) {\n                        res = node.visit((n) => {\n                            if (n === stopNode) {\n                                return false;\n                            }\n                            if (checkFilter && !n.match && !n.subMatchCount) {\n                                return \"skip\";\n                            }\n                            if (callback(n) === false) {\n                                return false;\n                            }\n                            if (!includeHidden && n.children && !n.expanded) {\n                                return \"skip\";\n                            }\n                        }, false);\n                        if (res === false) {\n                            return false;\n                        }\n                    }\n                }\n                // Visit parent nodes (bottom up)\n                node = parent;\n                parent = parent.parent;\n                siblingOfs = 1; //\n                if (!parent && options.wrap) {\n                    this.logDebug(\"visitRows(): wrap around\");\n                    assert(options.start, \"`wrap` option requires `start`\");\n                    stopNode = options.start;\n                    options.wrap = false;\n                    parent = this.root;\n                    siblingOfs = 0;\n                }\n            }\n            return true;\n        }\n        /**\n         * Call fn(node) for all nodes in vertical order, bottom up.\n         * @internal\n         */\n        _visitRowsUp(callback, options) {\n            let children, idx, parent, node = options.start || this.root.children[0];\n            const includeHidden = !!options.includeHidden;\n            if (options.includeSelf !== false) {\n                if (callback(node) === false) {\n                    return false;\n                }\n            }\n            while (true) {\n                parent = node.parent;\n                children = parent.children;\n                if (children[0] === node) {\n                    // If this is already the first sibling, goto parent\n                    node = parent;\n                    if (!node.parent) {\n                        break; // first node of the tree\n                    }\n                    children = parent.children;\n                }\n                else {\n                    // Otherwise, goto prev. sibling\n                    idx = children.indexOf(node);\n                    node = children[idx - 1];\n                    // If the prev. sibling has children, follow down to last descendant\n                    while ((includeHidden || node.expanded) &&\n                        node.children &&\n                        node.children.length) {\n                        children = node.children;\n                        parent = node;\n                        node = children[children.length - 1];\n                    }\n                }\n                // Skip invisible\n                if (!includeHidden && !node.isVisible()) {\n                    continue;\n                }\n                if (callback(node) === false) {\n                    return false;\n                }\n            }\n            return true;\n        }\n        /**\n         * Reload the tree with a new source.\n         *\n         * Previous data is cleared. Note that also column- and type defintions may\n         * be passed with the `source` object.\n         * @see {@link Wunderbaum.reload} for a shortcut to reload the last ajax request\n         * and restore the previous state.\n         */\n        async load(source) {\n            this.clear();\n            this._initialSource = source;\n            return this.root.load(source);\n        }\n        /** Reload the tree and optionally restore state.\n         * Source defaults to last ajax url if any.\n         * Restoring the active node requires stable keys\n         * @see {@link WunderbaumOptions.autoKeys}\n         * @see {@link Wunderbaum.load}\n         * @experimental\n         */\n        async reload(options = {}) {\n            const { source = this._initialSource, reactivate = true } = options;\n            if (!source) {\n                this.logWarn(\"No previous ajax source to reload.\");\n                return;\n            }\n            if (!reactivate) {\n                return this.load(source);\n            }\n            const state = this.getState();\n            await this.load(source);\n            return this.setState(state);\n        }\n        /**\n         * Make sure that all nodes in the given keyList are accessible.\n         * This may include loading lazy parent nodes.\n         * Recursively load (and optionally expand) all requested node paths.\n         */\n        async _loadLazyNodes(keyList, options = {}) {\n            const { expand = true } = options;\n            const keySet = new Set(keyList);\n            // Make sure that all parent nodes are loaded (and expand if requested)\n            while (keySet.size > 0) {\n                const pendingNodes = [];\n                const curSet = new Set(keySet);\n                for (const key of curSet) {\n                    const node = this.findKey(key);\n                    if (!node) {\n                        continue; // key not yet found (need to load lazy parent?)\n                    }\n                    keySet.delete(key);\n                    if (expand) {\n                        pendingNodes.push(node.setExpanded(true));\n                    }\n                    else if (node.isUnloaded()) {\n                        pendingNodes.push(node.loadLazy());\n                    }\n                    if (node._rowElem) {\n                        node._render(); // show spinner even is update is suppressed\n                    }\n                }\n                if (pendingNodes.length === 0) {\n                    // will not load any more nodes, so if if there are still keys\n                    // left in the set, we will never find them\n                    this.logWarn(`Could not expand ${keySet.size} nodes:`, keySet);\n                    break;\n                }\n                await Promise.allSettled(pendingNodes);\n            }\n        }\n        /**\n         * Disable render requests during operations that would trigger many updates.\n         *\n         * ```js\n         * try {\n         *   tree.enableUpdate(false);\n         *   // ... (long running operation that would trigger many updates)\n         *   foo();\n         *   // ... NOTE: make sure that async operations have finished, e.g.\n         *   await foo();\n         * } finally {\n         *   tree.enableUpdate(true);\n         * }\n         * ```\n         */\n        enableUpdate(flag) {\n            /*\n                5  7  9                20       25   30\n            1   >-------------------------------------<\n            2      >--------------------<\n            3         >--------------------------<\n            */\n            if (flag) {\n                assert(this._disableUpdateCount > 0, \"enableUpdate(true) was called too often\");\n                this._disableUpdateCount--;\n                // this.logDebug(\n                //   `enableUpdate(${flag}): count -> ${this._disableUpdateCount}...`\n                // );\n                if (this._disableUpdateCount === 0) {\n                    this.logDebug(`enableUpdate(): active again. Re-painting to catch up with ${this._disableUpdateIgnoreCount} ignored update requests...`);\n                    this._disableUpdateIgnoreCount = 0;\n                    this.update(ChangeType.any, { immediate: true });\n                }\n            }\n            else {\n                this._disableUpdateCount++;\n                // this.logDebug(\n                //   `enableUpdate(${flag}): count -> ${this._disableUpdateCount}...`\n                // );\n                // this._disableUpdate = Date.now();\n            }\n            // return !flag; // return previous value\n        }\n        /* ---------------------------------------------------------------------------\n         * FILTER\n         * -------------------------------------------------------------------------*/\n        /**\n         * Dim or hide unmatched nodes.\n         * @param filter a string to match against node titles, or a callback function.\n         * @param options filter options. Defaults to the `tree.options.filter` settings.\n         * @returns the number of nodes that match the filter.\n         * @example\n         * ```ts\n         * tree.filterNodes(\"foo\", {mode: 'dim', fuzzy: true});\n         * // or pass a callback\n         * tree.filterNodes((node) => { return node.data.foo === true }, {mode: 'hide'});\n         * ```\n         */\n        filterNodes(filter, options) {\n            return this.extensions.filter.filterNodes(filter, options);\n        }\n        /**\n         * Return the number of nodes that match the current filter.\n         * @see {@link Wunderbaum.filterNodes}\n         * @since 0.9.0\n         */\n        countMatches() {\n            return this.extensions.filter.countMatches();\n        }\n        /**\n         * Dim or hide whole branches.\n         * @deprecated Use {@link filterNodes} instead and set `options.matchBranch: true`.\n         */\n        filterBranches(filter, options) {\n            return this.extensions.filter.filterBranches(filter, options);\n        }\n        /**\n         * Reset the filter.\n         */\n        clearFilter() {\n            return this.extensions.filter.clearFilter();\n        }\n        /**\n         * Return true if a filter is currently applied.\n         */\n        isFilterActive() {\n            return !!this.filterMode;\n        }\n        /**\n         * Re-apply current filter.\n         */\n        updateFilter() {\n            return this.extensions.filter.updateFilter();\n        }\n    }\n    Wunderbaum.sequence = 0;\n    /** Wunderbaum release version number \"MAJOR.MINOR.PATCH\". */\n    Wunderbaum.version = \"v0.14.1\"; // Set to semver by 'grunt release'\n    /** Expose some useful methods of the util.ts module as `Wunderbaum.util`. */\n    Wunderbaum.util = util;\n    /** A map of default iconMaps.\n     * May be used as default, when passing partial icon definition maps:\n     * ```js\n     * const tree = new mar10.Wunderbaum({\n     *   ...\n     *   iconMap: Object.assign(Wunderbaum.iconMaps.bootstrap, {\n     *     folder: \"bi bi-archive\",\n     *   }),\n     * });\n     * ```\n     */\n    Wunderbaum.iconMaps = defaultIconMaps;\n\n    exports.Wunderbaum = Wunderbaum;\n\n}));\n"
  },
  {
    "path": "docs/.nojekyll",
    "content": "TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false."
  },
  {
    "path": "docs/_config.yml",
    "content": "theme: jekyll-theme-slate\ntitle: Wunderbaum\ndescription: A [Type|Java]Script [tree|grid|treegrid] control.\nshow_downloads: true  # [\"true\" or \"false\" to indicate whether to provide a download URL]\n# google_analytics: Ich Ich Ich [Your Google Analytics tracking ID]\n"
  },
  {
    "path": "docs/api/.nojekyll",
    "content": "TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false."
  },
  {
    "path": "docs/api/assets/hierarchy.js",
    "content": "window.hierarchyData = \"eJydll1v2yAUhv8L17QLYOzad/2aFE3bpDXaLqZceIY0qC5YmKSzqvz3iUWqcnAuDrmIYjl5/LyHg4F34p0LI2l+M8kLyviiXlPi9abXXTDOjqR5J/Fu/LbtqyYN+fVn5bV+3GsbVtOgCSUvxirScFlSsvM9aYixQftN2+nxU5gGPV4nzPU2vPaEkq5vx5E0JIzqKj7k6gOMP25Nr7y2MRxnMVyxoIzXjDKxqCkTTFImimp9oCT+AUT85lR2RMDkR+SMMs7rmLOijEtJGS/jVRWvbkTMXlEmOKdMiFiFiFXIgrKSV5SVojiWwhko5bYLZt+G7HJmHKKkox92+37b2udse0Jh3cUCunvTvWSrAYQ2V8D8oNsLx/0Mic0gJcjwqEy4HYZ+yo0wB7EJymqW4P/nggCAw/qrZAS8dz5bDiCs+UZA89+htSpbDSmsu4Zv/GfX7cZcNYTQZtjvZefsXavyX/c5iEwgkr1lafNnG2CwXgZn2hc9Kfdmc9UphrVzDuxfnTKb6T5uJ7kJzqHYFALOux+602af3fsUQ9th5590PHTkyhMK605W+7tdCM5etNucQ7EpZJGMv1U6e7lLKKRb8lP3U+dd3y9tcD+Nfvs+HM9+GP9ZMvvwJHm9PqaqZ6lWLj/PB4McjZKfzocH3z7ndQEQWKcogNMNuc4TAuM8HP4B3BL+zA==\""
  },
  {
    "path": "docs/api/assets/highlight.css",
    "content": ":root {\n    --light-hl-0: #0000FF;\n    --dark-hl-0: #569CD6;\n    --light-hl-1: #000000;\n    --dark-hl-1: #D4D4D4;\n    --light-hl-2: #001080;\n    --dark-hl-2: #9CDCFE;\n    --light-hl-3: #000000;\n    --dark-hl-3: #C8C8C8;\n    --light-hl-4: #AF00DB;\n    --dark-hl-4: #C586C0;\n    --light-hl-5: #267F99;\n    --dark-hl-5: #4EC9B0;\n    --light-hl-6: #795E26;\n    --dark-hl-6: #DCDCAA;\n    --light-hl-7: #A31515;\n    --dark-hl-7: #CE9178;\n    --light-hl-8: #0070C1;\n    --dark-hl-8: #4FC1FF;\n    --light-hl-9: #008000;\n    --dark-hl-9: #6A9955;\n    --light-hl-10: #098658;\n    --dark-hl-10: #B5CEA8;\n    --light-hl-11: #811F3F;\n    --dark-hl-11: #D16969;\n    --light-hl-12: #EE0000;\n    --dark-hl-12: #DCDCAA;\n    --light-hl-13: #000000FF;\n    --dark-hl-13: #D4D4D4;\n    --light-code-background: #FFFFFF;\n    --dark-code-background: #1E1E1E;\n}\n\n@media (prefers-color-scheme: light) { :root {\n    --hl-0: var(--light-hl-0);\n    --hl-1: var(--light-hl-1);\n    --hl-2: var(--light-hl-2);\n    --hl-3: var(--light-hl-3);\n    --hl-4: var(--light-hl-4);\n    --hl-5: var(--light-hl-5);\n    --hl-6: var(--light-hl-6);\n    --hl-7: var(--light-hl-7);\n    --hl-8: var(--light-hl-8);\n    --hl-9: var(--light-hl-9);\n    --hl-10: var(--light-hl-10);\n    --hl-11: var(--light-hl-11);\n    --hl-12: var(--light-hl-12);\n    --hl-13: var(--light-hl-13);\n    --code-background: var(--light-code-background);\n} }\n\n@media (prefers-color-scheme: dark) { :root {\n    --hl-0: var(--dark-hl-0);\n    --hl-1: var(--dark-hl-1);\n    --hl-2: var(--dark-hl-2);\n    --hl-3: var(--dark-hl-3);\n    --hl-4: var(--dark-hl-4);\n    --hl-5: var(--dark-hl-5);\n    --hl-6: var(--dark-hl-6);\n    --hl-7: var(--dark-hl-7);\n    --hl-8: var(--dark-hl-8);\n    --hl-9: var(--dark-hl-9);\n    --hl-10: var(--dark-hl-10);\n    --hl-11: var(--dark-hl-11);\n    --hl-12: var(--dark-hl-12);\n    --hl-13: var(--dark-hl-13);\n    --code-background: var(--dark-code-background);\n} }\n\n:root[data-theme='light'] {\n    --hl-0: var(--light-hl-0);\n    --hl-1: var(--light-hl-1);\n    --hl-2: var(--light-hl-2);\n    --hl-3: var(--light-hl-3);\n    --hl-4: var(--light-hl-4);\n    --hl-5: var(--light-hl-5);\n    --hl-6: var(--light-hl-6);\n    --hl-7: var(--light-hl-7);\n    --hl-8: var(--light-hl-8);\n    --hl-9: var(--light-hl-9);\n    --hl-10: var(--light-hl-10);\n    --hl-11: var(--light-hl-11);\n    --hl-12: var(--light-hl-12);\n    --hl-13: var(--light-hl-13);\n    --code-background: var(--light-code-background);\n}\n\n:root[data-theme='dark'] {\n    --hl-0: var(--dark-hl-0);\n    --hl-1: var(--dark-hl-1);\n    --hl-2: var(--dark-hl-2);\n    --hl-3: var(--dark-hl-3);\n    --hl-4: var(--dark-hl-4);\n    --hl-5: var(--dark-hl-5);\n    --hl-6: var(--dark-hl-6);\n    --hl-7: var(--dark-hl-7);\n    --hl-8: var(--dark-hl-8);\n    --hl-9: var(--dark-hl-9);\n    --hl-10: var(--dark-hl-10);\n    --hl-11: var(--dark-hl-11);\n    --hl-12: var(--dark-hl-12);\n    --hl-13: var(--dark-hl-13);\n    --code-background: var(--dark-code-background);\n}\n\n.hl-0 { color: var(--hl-0); }\n.hl-1 { color: var(--hl-1); }\n.hl-2 { color: var(--hl-2); }\n.hl-3 { color: var(--hl-3); }\n.hl-4 { color: var(--hl-4); }\n.hl-5 { color: var(--hl-5); }\n.hl-6 { color: var(--hl-6); }\n.hl-7 { color: var(--hl-7); }\n.hl-8 { color: var(--hl-8); }\n.hl-9 { color: var(--hl-9); }\n.hl-10 { color: var(--hl-10); }\n.hl-11 { color: var(--hl-11); }\n.hl-12 { color: var(--hl-12); }\n.hl-13 { color: var(--hl-13); }\npre, code { background: var(--code-background); }\n"
  },
  {
    "path": "docs/api/assets/icons.js",
    "content": "(function() {\n    addIcons();\n    function addIcons() {\n        if (document.readyState === \"loading\") return document.addEventListener(\"DOMContentLoaded\", addIcons);\n        const svg = document.body.appendChild(document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\"));\n        svg.innerHTML = `<g id=\"icon-1\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-module)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"6\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">M</text></g><g id=\"icon-2\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-module)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"6\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">M</text></g><g id=\"icon-4\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-namespace)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"6\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">N</text></g><g id=\"icon-8\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-enum)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"6\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">E</text></g><g id=\"icon-16\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-property)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"12\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">P</text></g><g id=\"icon-32\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-variable)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"6\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">V</text></g><g id=\"icon-64\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-function)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"6\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">F</text></g><g id=\"icon-128\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-class)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"6\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">C</text></g><g id=\"icon-256\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-interface)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"6\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">I</text></g><g id=\"icon-512\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-constructor)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"12\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">C</text></g><g id=\"icon-1024\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-property)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"12\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">P</text></g><g id=\"icon-2048\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-method)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"12\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">M</text></g><g id=\"icon-4096\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-function)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"6\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">F</text></g><g id=\"icon-8192\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-property)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"12\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">P</text></g><g id=\"icon-16384\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-constructor)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"12\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">C</text></g><g id=\"icon-32768\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-property)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"12\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">P</text></g><g id=\"icon-65536\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-type-alias)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"6\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">T</text></g><g id=\"icon-131072\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-type-alias)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"6\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">T</text></g><g id=\"icon-262144\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-accessor)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"12\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">A</text></g><g id=\"icon-524288\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-accessor)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"12\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">A</text></g><g id=\"icon-1048576\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-accessor)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"12\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">A</text></g><g id=\"icon-2097152\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-type-alias)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"6\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">T</text></g><g id=\"icon-4194304\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-ts-reference)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"12\"></rect><text fill=\"var(--color-icon-text)\" x=\"50%\" y=\"50%\" dominant-baseline=\"central\" text-anchor=\"middle\">R</text></g><g id=\"icon-8388608\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-document)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"6\"></rect><g stroke=\"var(--color-icon-text)\" fill=\"none\" stroke-width=\"1.5\"><polygon points=\"6,5 6,19 18,19, 18,10 13,5\"></polygon><line x1=\"9\" y1=\"9\" x2=\"13\" y2=\"9\"></line><line x1=\"9\" y1=\"12\" x2=\"15\" y2=\"12\"></line><line x1=\"9\" y1=\"15\" x2=\"15\" y2=\"15\"></line></g></g><g id=\"icon-folder\" class=\"tsd-no-select\"><rect fill=\"var(--color-icon-background)\" stroke=\"var(--color-document)\" stroke-width=\"1.5\" x=\"1\" y=\"1\" width=\"22\" height=\"22\" rx=\"6\"></rect><g stroke=\"var(--color-icon-text)\" fill=\"none\" stroke-width=\"1.5\"><polygon points=\"5,5 10,5 12,8 19,8 19,18 5,18\"></polygon></g></g><g id=\"icon-chevronDown\" class=\"tsd-no-select\"><path d=\"M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z\" fill=\"var(--color-icon-text)\"></path></g><g id=\"icon-chevronSmall\" class=\"tsd-no-select\"><path d=\"M1.5 5.50969L8 11.6609L14.5 5.50969L12.5466 3.66086L8 7.96494L3.45341 3.66086L1.5 5.50969Z\" fill=\"var(--color-icon-text)\"></path></g><g id=\"icon-checkbox\" class=\"tsd-no-select\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></g><g id=\"icon-menu\" class=\"tsd-no-select\"><rect x=\"1\" y=\"3\" width=\"14\" height=\"2\" fill=\"var(--color-icon-text)\"></rect><rect x=\"1\" y=\"7\" width=\"14\" height=\"2\" fill=\"var(--color-icon-text)\"></rect><rect x=\"1\" y=\"11\" width=\"14\" height=\"2\" fill=\"var(--color-icon-text)\"></rect></g><g id=\"icon-search\" class=\"tsd-no-select\"><path d=\"M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z\" fill=\"var(--color-icon-text)\"></path></g><g id=\"icon-anchor\" class=\"tsd-no-select\"><g stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path><path d=\"M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5\"></path><path d=\"M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5\"></path></g></g><g id=\"icon-alertNote\" class=\"tsd-no-select\"><path fill=\"var(--color-alert-note)\" d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"></path></g><g id=\"icon-alertTip\" class=\"tsd-no-select\"><path fill=\"var(--color-alert-tip)\" d=\"M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z\"></path></g><g id=\"icon-alertImportant\" class=\"tsd-no-select\"><path fill=\"var(--color-alert-important)\" d=\"M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></g><g id=\"icon-alertWarning\" class=\"tsd-no-select\"><path fill=\"var(--color-alert-warning)\" d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></g><g id=\"icon-alertCaution\" class=\"tsd-no-select\"><path fill=\"var(--color-alert-caution)\" d=\"M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"></path></g>`;\n        svg.style.display = \"none\";\n        if (location.protocol === \"file:\") updateUseElements();\n    }\n\n    function updateUseElements() {\n        document.querySelectorAll(\"use\").forEach(el => {\n            if (el.getAttribute(\"href\").includes(\"#icon-\")) {\n                el.setAttribute(\"href\", el.getAttribute(\"href\").replace(/.*#/, \"#\"));\n            }\n        });\n    }\n})()"
  },
  {
    "path": "docs/api/assets/main.js",
    "content": "\"use strict\";\nwindow.translations={\"copy\":\"Copy\",\"copied\":\"Copied!\",\"normally_hidden\":\"This member is normally hidden due to your filter settings.\",\"hierarchy_expand\":\"Expand\",\"hierarchy_collapse\":\"Collapse\",\"folder\":\"Folder\",\"kind_1\":\"Project\",\"kind_2\":\"Module\",\"kind_4\":\"Namespace\",\"kind_8\":\"Enumeration\",\"kind_16\":\"Enumeration Member\",\"kind_32\":\"Variable\",\"kind_64\":\"Function\",\"kind_128\":\"Class\",\"kind_256\":\"Interface\",\"kind_512\":\"Constructor\",\"kind_1024\":\"Property\",\"kind_2048\":\"Method\",\"kind_4096\":\"Call Signature\",\"kind_8192\":\"Index Signature\",\"kind_16384\":\"Constructor Signature\",\"kind_32768\":\"Parameter\",\"kind_65536\":\"Type Literal\",\"kind_131072\":\"Type Parameter\",\"kind_262144\":\"Accessor\",\"kind_524288\":\"Get Signature\",\"kind_1048576\":\"Set Signature\",\"kind_2097152\":\"Type Alias\",\"kind_4194304\":\"Reference\",\"kind_8388608\":\"Document\"};\n\"use strict\";(()=>{var De=Object.create;var le=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ne=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,Be=Object.prototype.hasOwnProperty;var qe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var je=(t,e,n,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let i of Ne(e))!Be.call(t,i)&&i!==n&&le(t,i,{get:()=>e[i],enumerable:!(r=Fe(e,i))||r.enumerable});return t};var $e=(t,e,n)=>(n=t!=null?De(Ve(t)):{},je(e||!t||!t.__esModule?le(n,\"default\",{value:t,enumerable:!0}):n,t));var pe=qe((de,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version=\"2.3.9\";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?\"\":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var s=r[i],o=e[s];if(Array.isArray(o)){n[s]=o.slice();continue}if(typeof o==\"string\"||typeof o==\"number\"||typeof o==\"boolean\"){n[s]=o;continue}throw new TypeError(\"clone is not deep and does not support nested objects\")}return n},t.FieldRef=function(e,n,r){this.docRef=e,this.fieldName=n,this._stringValue=r},t.FieldRef.joiner=\"/\",t.FieldRef.fromString=function(e){var n=e.indexOf(t.FieldRef.joiner);if(n===-1)throw\"malformed field ref string\";var r=e.slice(0,n),i=e.slice(n+1);return new t.FieldRef(i,r,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var n=0;n<this.length;n++)this.elements[e[n]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var n,r,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(n=this,r=e):(n=e,r=this),i=Object.keys(n.elements);for(var o=0;o<i.length;o++){var a=i[o];a in r.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,n){var r=0;for(var i in e)i!=\"_index\"&&(r+=Object.keys(e[i]).length);var s=(n-r+.5)/(r+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,n){this.str=e||\"\",this.metadata=n||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(n){return n},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,n){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(m){return new t.Token(t.utils.asString(m).toLowerCase(),t.utils.clone(n))});for(var r=e.toString().toLowerCase(),i=r.length,s=[],o=0,a=0;o<=i;o++){var l=r.charAt(o),c=o-a;if(l.match(t.tokenizer.separator)||o==i){if(c>0){var d=t.utils.clone(n)||{};d.position=[a,c],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\\s\\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn(\"Overwriting existing registered function: \"+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.\n`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error(\"Cannot load unregistered function: \"+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error(\"Cannot find existingFn\");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error(\"Cannot find existingFn\");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r<n;r++){for(var i=this._stack[r],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===\"\"))if(Array.isArray(a))for(var l=0;l<a.length;l++)s.push(a[l]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,n){var r=new t.Token(e,n);return this.run([r]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var n=0,r=this.elements.length/2,i=r-n,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(n=s),o>e&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,n){this.upsert(e,n,function(){throw\"duplicate index\"})},t.Vector.prototype.upsert=function(e,n,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],n):this.elements.splice(i,0,e,n)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,n=this.elements.length,r=1;r<n;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var n=0,r=this.elements,i=e.elements,s=r.length,o=i.length,a=0,l=0,c=0,d=0;c<s&&d<o;)a=r[c],l=i[d],a<l?c+=2:a>l?d+=2:a==l&&(n+=r[c+1]*i[d+1],c+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n<this.elements.length;n+=2,r++)e[r]=this.elements[n];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=function(){var e={ational:\"ate\",tional:\"tion\",enci:\"ence\",anci:\"ance\",izer:\"ize\",bli:\"ble\",alli:\"al\",entli:\"ent\",eli:\"e\",ousli:\"ous\",ization:\"ize\",ation:\"ate\",ator:\"ate\",alism:\"al\",iveness:\"ive\",fulness:\"ful\",ousness:\"ous\",aliti:\"al\",iviti:\"ive\",biliti:\"ble\",logi:\"log\"},n={icate:\"ic\",ative:\"\",alize:\"al\",iciti:\"ic\",ical:\"ic\",ful:\"\",ness:\"\"},r=\"[^aeiou]\",i=\"[aeiouy]\",s=r+\"[^aeiouy]*\",o=i+\"[aeiou]*\",a=\"^(\"+s+\")?\"+o+s,l=\"^(\"+s+\")?\"+o+s+\"(\"+o+\")?$\",c=\"^(\"+s+\")?\"+o+s+o+s,d=\"^(\"+s+\")?\"+i,m=new RegExp(a),p=new RegExp(c),L=new RegExp(l),v=new RegExp(d),b=/^(.+?)(ss|i)es$/,f=/^(.+?)([^s])s$/,y=/^(.+?)eed$/,S=/^(.+?)(ed|ing)$/,w=/.$/,k=/(at|bl|iz)$/,O=new RegExp(\"([^aeiouylsz])\\\\1$\"),q=new RegExp(\"^\"+s+i+\"[^aeiouwxy]$\"),F=/^(.+?[^aeiou])y$/,j=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,$=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,N=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,z=/^(.+?)(s|t)(ion)$/,Q=/^(.+?)e$/,W=/ll$/,U=new RegExp(\"^\"+s+i+\"[^aeiouwxy]$\"),V=function(u){var g,P,T,h,x,_,R;if(u.length<3)return u;if(T=u.substr(0,1),T==\"y\"&&(u=T.toUpperCase()+u.substr(1)),h=b,x=f,h.test(u)?u=u.replace(h,\"$1$2\"):x.test(u)&&(u=u.replace(x,\"$1$2\")),h=y,x=S,h.test(u)){var E=h.exec(u);h=m,h.test(E[1])&&(h=w,u=u.replace(h,\"\"))}else if(x.test(u)){var E=x.exec(u);g=E[1],x=v,x.test(g)&&(u=g,x=k,_=O,R=q,x.test(u)?u=u+\"e\":_.test(u)?(h=w,u=u.replace(h,\"\")):R.test(u)&&(u=u+\"e\"))}if(h=F,h.test(u)){var E=h.exec(u);g=E[1],u=g+\"i\"}if(h=j,h.test(u)){var E=h.exec(u);g=E[1],P=E[2],h=m,h.test(g)&&(u=g+e[P])}if(h=$,h.test(u)){var E=h.exec(u);g=E[1],P=E[2],h=m,h.test(g)&&(u=g+n[P])}if(h=N,x=z,h.test(u)){var E=h.exec(u);g=E[1],h=p,h.test(g)&&(u=g)}else if(x.test(u)){var E=x.exec(u);g=E[1]+E[2],x=p,x.test(g)&&(u=g)}if(h=Q,h.test(u)){var E=h.exec(u);g=E[1],h=p,x=L,_=U,(h.test(g)||x.test(g)&&!_.test(g))&&(u=g)}return h=W,x=p,h.test(u)&&x.test(u)&&(h=w,u=u.replace(h,\"\")),T==\"y\"&&(u=T.toLowerCase()+u.substr(1)),u};return function(M){return M.update(V)}}(),t.Pipeline.registerFunction(t.stemmer,\"stemmer\");t.generateStopWordFilter=function(e){var n=e.reduce(function(r,i){return r[i]=i,r},{});return function(r){if(r&&n[r.toString()]!==r.toString())return r}},t.stopWordFilter=t.generateStopWordFilter([\"a\",\"able\",\"about\",\"across\",\"after\",\"all\",\"almost\",\"also\",\"am\",\"among\",\"an\",\"and\",\"any\",\"are\",\"as\",\"at\",\"be\",\"because\",\"been\",\"but\",\"by\",\"can\",\"cannot\",\"could\",\"dear\",\"did\",\"do\",\"does\",\"either\",\"else\",\"ever\",\"every\",\"for\",\"from\",\"get\",\"got\",\"had\",\"has\",\"have\",\"he\",\"her\",\"hers\",\"him\",\"his\",\"how\",\"however\",\"i\",\"if\",\"in\",\"into\",\"is\",\"it\",\"its\",\"just\",\"least\",\"let\",\"like\",\"likely\",\"may\",\"me\",\"might\",\"most\",\"must\",\"my\",\"neither\",\"no\",\"nor\",\"not\",\"of\",\"off\",\"often\",\"on\",\"only\",\"or\",\"other\",\"our\",\"own\",\"rather\",\"said\",\"say\",\"says\",\"she\",\"should\",\"since\",\"so\",\"some\",\"than\",\"that\",\"the\",\"their\",\"them\",\"then\",\"there\",\"these\",\"they\",\"this\",\"tis\",\"to\",\"too\",\"twas\",\"us\",\"wants\",\"was\",\"we\",\"were\",\"what\",\"when\",\"where\",\"which\",\"while\",\"who\",\"whom\",\"why\",\"will\",\"with\",\"would\",\"yet\",\"you\",\"your\"]),t.Pipeline.registerFunction(t.stopWordFilter,\"stopWordFilter\");t.trimmer=function(e){return e.update(function(n){return n.replace(/^\\W+/,\"\").replace(/\\W+$/,\"\")})},t.Pipeline.registerFunction(t.trimmer,\"trimmer\");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var n=new t.TokenSet.Builder,r=0,i=e.length;r<i;r++)n.insert(e[r]);return n.finish(),n.root},t.TokenSet.fromClause=function(e){return\"editDistance\"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,n){for(var r=new t.TokenSet,i=[{node:r,editsRemaining:n,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if(\"*\"in s.node.edges)var l=s.node.edges[\"*\"];else{var l=new t.TokenSet;s.node.edges[\"*\"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if(\"*\"in s.node.edges)var c=s.node.edges[\"*\"];else{var c=new t.TokenSet;s.node.edges[\"*\"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o==\"*\")n.edges[o]=n,n.final=a;else{var l=new t.TokenSet;l.final=a,n.edges[o]=l,n=l}}return r},t.TokenSet.prototype.toArray=function(){for(var e=[],n=[{prefix:\"\",node:this}];n.length;){var r=n.pop(),i=Object.keys(r.node.edges),s=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var o=0;o<s;o++){var a=i[o];n.push({prefix:r.prefix.concat(a),node:r.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?\"1\":\"0\",n=Object.keys(this.edges).sort(),r=n.length,i=0;i<r;i++){var s=n[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var n=new t.TokenSet,r=void 0,i=[{qNode:e,output:n,node:this}];i.length;){r=i.pop();for(var s=Object.keys(r.qNode.edges),o=s.length,a=Object.keys(r.node.edges),l=a.length,c=0;c<o;c++)for(var d=s[c],m=0;m<l;m++){var p=a[m];if(p==d||d==\"*\"){var L=r.node.edges[p],v=r.qNode.edges[d],b=L.final&&v.final,f=void 0;p in r.output.edges?(f=r.output.edges[p],f.final=f.final||b):(f=new t.TokenSet,f.final=b,r.output.edges[p]=f),i.push({qNode:v,output:f,node:L})}}}return n},t.TokenSet.Builder=function(){this.previousWord=\"\",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var n,r=0;if(e<this.previousWord)throw new Error(\"Out of order word insertion\");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),this.uncheckedNodes.length==0?n=this.root:n=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=r;i<e.length;i++){var s=new t.TokenSet,o=e[i];n.edges[o]=s,this.uncheckedNodes.push({parent:n,char:o,child:s}),n=s}n.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var n=this.uncheckedNodes.length-1;n>=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l<this.fields.length;l++)i[this.fields[l]]=new t.Vector;e.call(n,n);for(var l=0;l<n.clauses.length;l++){var c=n.clauses[l],d=null,m=t.Set.empty;c.usePipeline?d=this.pipeline.runString(c.term,{fields:c.fields}):d=[c.term];for(var p=0;p<d.length;p++){var L=d[p];c.term=L;var v=t.TokenSet.fromClause(c),b=this.tokenSet.intersect(v).toArray();if(b.length===0&&c.presence===t.Query.presence.REQUIRED){for(var f=0;f<c.fields.length;f++){var y=c.fields[f];o[y]=t.Set.empty}break}for(var S=0;S<b.length;S++)for(var w=b[S],k=this.invertedIndex[w],O=k._index,f=0;f<c.fields.length;f++){var y=c.fields[f],q=k[y],F=Object.keys(q),j=w+\"/\"+y,$=new t.Set(F);if(c.presence==t.Query.presence.REQUIRED&&(m=m.union($),o[y]===void 0&&(o[y]=t.Set.complete)),c.presence==t.Query.presence.PROHIBITED){a[y]===void 0&&(a[y]=t.Set.empty),a[y]=a[y].union($);continue}if(i[y].upsert(O,c.boost,function(Ae,He){return Ae+He}),!s[j]){for(var N=0;N<F.length;N++){var z=F[N],Q=new t.FieldRef(z,y),W=q[z],U;(U=r[Q])===void 0?r[Q]=new t.MatchData(w,y,W):U.add(w,y,W)}s[j]=!0}}}if(c.presence===t.Query.presence.REQUIRED)for(var f=0;f<c.fields.length;f++){var y=c.fields[f];o[y]=o[y].intersect(m)}}for(var V=t.Set.complete,M=t.Set.empty,l=0;l<this.fields.length;l++){var y=this.fields[l];o[y]&&(V=V.intersect(o[y])),a[y]&&(M=M.union(a[y]))}var u=Object.keys(r),g=[],P=Object.create(null);if(n.isNegated()){u=Object.keys(this.fieldVectors);for(var l=0;l<u.length;l++){var Q=u[l],T=t.FieldRef.fromString(Q);r[Q]=new t.MatchData}}for(var l=0;l<u.length;l++){var T=t.FieldRef.fromString(u[l]),h=T.docRef;if(V.contains(h)&&!M.contains(h)){var x=this.fieldVectors[T],_=i[T.fieldName].similarity(x),R;if((R=P[h])!==void 0)R.score+=_,R.matchData.combine(r[T]);else{var E={ref:h,score:_,matchData:r[T]};P[h]=E,g.push(E)}}}return g.sort(function(Me,Re){return Re.score-Me.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(r){return[r,this.invertedIndex[r]]},this),n=Object.keys(this.fieldVectors).map(function(r){return[r,this.fieldVectors[r].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:n,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var n={},r={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,l=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\"+t.version+\"' does not match serialized index '\"+e.version+\"'\");for(var c=0;c<i.length;c++){var d=i[c],m=d[0],p=d[1];r[m]=new t.Vector(p)}for(var c=0;c<o.length;c++){var d=o[c],L=d[0],v=d[1];a.insert(L),s[L]=v}return a.finish(),n.fields=e.fields,n.fieldVectors=r,n.invertedIndex=s,n.tokenSet=a.root,n.pipeline=l,new t.Index(n)};t.Builder=function(){this._ref=\"id\",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,n){if(/\\//.test(e))throw new RangeError(\"Field '\"+e+\"' contains illegal character '/'\");this._fields[e]=n||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,l=a?a(e):e[o],c=this.tokenizer(l,{fields:[o]}),d=this.pipeline.run(c),m=new t.FieldRef(r,o),p=Object.create(null);this.fieldTermFrequencies[m]=p,this.fieldLengths[m]=0,this.fieldLengths[m]+=d.length;for(var L=0;L<d.length;L++){var v=d[L];if(p[v]==null&&(p[v]=0),p[v]+=1,this.invertedIndex[v]==null){var b=Object.create(null);b._index=this.termIndex,this.termIndex+=1;for(var f=0;f<i.length;f++)b[i[f]]=Object.create(null);this.invertedIndex[v]=b}this.invertedIndex[v][o][r]==null&&(this.invertedIndex[v][o][r]=Object.create(null));for(var y=0;y<this.metadataWhitelist.length;y++){var S=this.metadataWhitelist[y],w=v.metadata[S];this.invertedIndex[v][o][r][S]==null&&(this.invertedIndex[v][o][r][S]=[]),this.invertedIndex[v][o][r][S].push(w)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),n=e.length,r={},i={},s=0;s<n;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,r[a]||(r[a]=0),r[a]+=this.fieldLengths[o]}for(var l=Object.keys(this._fields),s=0;s<l.length;s++){var c=l[s];r[c]=r[c]/i[c]}this.averageFieldLength=r},t.Builder.prototype.createFieldVectors=function(){for(var e={},n=Object.keys(this.fieldTermFrequencies),r=n.length,i=Object.create(null),s=0;s<r;s++){for(var o=t.FieldRef.fromString(n[s]),a=o.fieldName,l=this.fieldLengths[o],c=new t.Vector,d=this.fieldTermFrequencies[o],m=Object.keys(d),p=m.length,L=this._fields[a].boost||1,v=this._documents[o.docRef].boost||1,b=0;b<p;b++){var f=m[b],y=d[f],S=this.invertedIndex[f]._index,w,k,O;i[f]===void 0?(w=t.idf(this.invertedIndex[f],this.documentCount),i[f]=w):w=i[f],k=w*((this._k1+1)*y)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[a]))+y),k*=L,k*=v,O=Math.round(k*1e3)/1e3,c.insert(S,O)}e[o]=c}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var n=Array.prototype.slice.call(arguments,1);n.unshift(this),e.apply(this,n)},t.MatchData=function(e,n,r){for(var i=Object.create(null),s=Object.keys(r||{}),o=0;o<s.length;o++){var a=s[o];i[a]=r[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][n]=i)},t.MatchData.prototype.combine=function(e){for(var n=Object.keys(e.metadata),r=0;r<n.length;r++){var i=n[r],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],l=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var c=0;c<l.length;c++){var d=l[c];this.metadata[i][a][d]==null?this.metadata[i][a][d]=e.metadata[i][a][d]:this.metadata[i][a][d]=this.metadata[i][a][d].concat(e.metadata[i][a][d])}}}},t.MatchData.prototype.add=function(e,n,r){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][n]=r;return}if(!(n in this.metadata[e])){this.metadata[e][n]=r;return}for(var i=Object.keys(r),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][n]?this.metadata[e][n][o]=this.metadata[e][n][o].concat(r[o]):this.metadata[e][n][o]=r[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String(\"*\"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return\"fields\"in e||(e.fields=this.allFields),\"boost\"in e||(e.boost=1),\"usePipeline\"in e||(e.usePipeline=!0),\"wildcard\"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term=\"*\"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=\"\"+e.term+\"*\"),\"presence\"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,n){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(n))},this),this;var r=n||{};return r.term=e.toString(),this.clause(r),this},t.QueryParseError=function(e,n,r){this.name=\"QueryParseError\",this.message=e,this.start=n,this.end=r},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],n=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(n,r)),n=r+1;return e.push(this.str.slice(n,this.pos)),this.escapeCharPositions.length=0,e.join(\"\")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS=\"EOS\",t.QueryLexer.FIELD=\"FIELD\",t.QueryLexer.TERM=\"TERM\",t.QueryLexer.EDIT_DISTANCE=\"EDIT_DISTANCE\",t.QueryLexer.BOOST=\"BOOST\",t.QueryLexer.PRESENCE=\"PRESENCE\",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==\":\")return t.QueryLexer.lexField;if(n==\"~\")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n==\"^\")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n==\"+\"&&e.width()===1||n==\"-\"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r=\"expected either a field or a term, found \"+n.type;throw n.str.length>=1&&(r+=\" with value '\"+n.str+\"'\"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case\"-\":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case\"+\":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r=\"unrecognised presence operator'\"+n.str+\"'\";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r=\"expecting term or field, found nothing\";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r=\"expecting term or field, found '\"+i.type+\"'\";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return\"'\"+o+\"'\"}).join(\", \"),i=\"unrecognised field '\"+n.str+\"', possible fields: \"+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i=\"expecting term, found nothing\";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i=\"expecting term, found '\"+s.type+\"'\";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf(\"*\")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i=\"Unexpected lexeme type '\"+r.type+\"'\";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i=\"edit distance must be numeric\";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i=\"Unexpected lexeme type '\"+s.type+\"'\";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i=\"boost must be numeric\";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i=\"Unexpected lexeme type '\"+s.type+\"'\";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define==\"function\"&&define.amd?define(n):typeof de==\"object\"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});window.translations||={copy:\"Copy\",copied:\"Copied!\",normally_hidden:\"This member is normally hidden due to your filter settings.\",hierarchy_expand:\"Expand\",hierarchy_collapse:\"Collapse\",folder:\"Folder\",kind_1:\"Project\",kind_2:\"Module\",kind_4:\"Namespace\",kind_8:\"Enumeration\",kind_16:\"Enumeration Member\",kind_32:\"Variable\",kind_64:\"Function\",kind_128:\"Class\",kind_256:\"Interface\",kind_512:\"Constructor\",kind_1024:\"Property\",kind_2048:\"Method\",kind_4096:\"Call Signature\",kind_8192:\"Index Signature\",kind_16384:\"Constructor Signature\",kind_32768:\"Parameter\",kind_65536:\"Type Literal\",kind_131072:\"Type Parameter\",kind_262144:\"Accessor\",kind_524288:\"Get Signature\",kind_1048576:\"Set Signature\",kind_2097152:\"Type Alias\",kind_4194304:\"Reference\",kind_8388608:\"Document\"};var ce=[];function G(t,e){ce.push({selector:e,constructor:t})}var J=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener(\"hashchange\",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){ce.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty(\"display\"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:\"instant\",block:\"start\"})}}ensureActivePageVisible(){let e=document.querySelector(\".tsd-navigation .current\"),n=e?.parentElement;for(;n&&!n.classList.contains(\".tsd-navigation\");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!ze(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(\".site-menu\").scrollTop=r,document.querySelector(\".col-sidebar\").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(\".tsd-index-content\"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(\".tsd-index-section\").forEach(r=>{r.style.display=\"block\";let i=Array.from(r.querySelectorAll(\".tsd-index-link\")).every(s=>s.offsetParent==null);r.style.display=i?\"none\":\"block\"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove(\"always-visible\"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!==\"SECTION\";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add(\"always-visible\");let s=document.createElement(\"p\");s.classList.add(\"warning\"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll(\"pre > button\").forEach(e=>{let n;e.addEventListener(\"click\",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add(\"visible\"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove(\"visible\"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function ze(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var ue=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var ge=$e(pe(),1);async function A(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream(\"deflate\")),i=await new Response(r).text();return JSON.parse(i)}async function fe(t,e){if(!window.searchData)return;let n=await A(window.searchData);t.data=n,t.index=ge.Index.load(n.index),e.classList.remove(\"loading\"),e.classList.add(\"ready\")}function ve(){let t=document.getElementById(\"tsd-search\");if(!t)return;let e={base:document.documentElement.dataset.base+\"/\"},n=document.getElementById(\"tsd-search-script\");t.classList.add(\"loading\"),n&&(n.addEventListener(\"error\",()=>{t.classList.remove(\"loading\"),t.classList.add(\"failure\")}),n.addEventListener(\"load\",()=>{fe(e,t)}),fe(e,t));let r=document.querySelector(\"#tsd-search input\"),i=document.querySelector(\"#tsd-search .results\");if(!r||!i)throw new Error(\"The input field or the result list wrapper was not found\");i.addEventListener(\"mouseup\",()=>{re(t)}),r.addEventListener(\"focus\",()=>t.classList.add(\"has-focus\")),We(t,i,r,e)}function We(t,e,n,r){n.addEventListener(\"input\",ue(()=>{Ue(t,e,n,r)},200)),n.addEventListener(\"keydown\",i=>{i.key==\"Enter\"?Je(e,t):i.key==\"ArrowUp\"?(me(e,n,-1),i.preventDefault()):i.key===\"ArrowDown\"&&(me(e,n,1),i.preventDefault())}),document.body.addEventListener(\"keypress\",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(\":focus\")&&i.key===\"/\"&&(i.preventDefault(),n.focus())}),document.body.addEventListener(\"keyup\",i=>{t.classList.contains(\"has-focus\")&&(i.key===\"Escape\"||!e.matches(\":focus-within\")&&!n.matches(\":focus\"))&&(n.blur(),re(t))})}function re(t){t.classList.remove(\"has-focus\")}function Ue(t,e,n,r){if(!r.index||!r.data)return;e.textContent=\"\";let i=n.value.trim(),s;if(i){let o=i.split(\" \").map(a=>a.length?`*${a}*`:\"\").join(\" \");s=r.index.search(o)}else s=[];for(let o=0;o<s.length;o++){let a=s[o],l=r.data.rows[Number(a.ref)],c=1;l.name.toLowerCase().startsWith(i.toLowerCase())&&(c*=1+1/(1+Math.abs(l.name.length-i.length))),a.score*=c}if(s.length===0){let o=document.createElement(\"li\");o.classList.add(\"no-results\");let a=document.createElement(\"span\");a.textContent=\"No results found\",o.appendChild(a),e.appendChild(o)}s.sort((o,a)=>a.score-o.score);for(let o=0,a=Math.min(10,s.length);o<a;o++){let l=r.data.rows[Number(s[o].ref)],c=`<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" class=\"tsd-kind-icon\"><use href=\"#icon-${l.kind}\"></use></svg>`,d=ye(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=`<span class=\"parent\">\n                ${ye(l.parent,i)}.</span>${d}`);let m=document.createElement(\"li\");m.classList.value=l.classes??\"\";let p=document.createElement(\"a\");p.href=r.base+l.url,p.innerHTML=c+d,m.append(p),p.addEventListener(\"focus\",()=>{e.querySelector(\".current\")?.classList.remove(\"current\"),m.classList.add(\"current\")}),e.appendChild(m)}}function me(t,e,n){let r=t.querySelector(\".current\");if(!r)r=t.querySelector(n==1?\"li:first-child\":\"li:last-child\"),r&&r.classList.add(\"current\");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove(\"current\"),i.classList.add(\"current\")):n===-1&&(r.classList.remove(\"current\"),e.focus())}}function Je(t,e){let n=t.querySelector(\".current\");if(n||(n=t.querySelector(\"li:first-child\")),n){let r=n.querySelector(\"a\");r&&(window.location.href=r.href),re(e)}}function ye(t,e){if(e===\"\")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ne(t.substring(s,o)),`<b>${ne(t.substring(o,o+r.length))}</b>`),s=o+r.length,o=n.indexOf(r,s);return i.push(ne(t.substring(s))),i.join(\"\")}var Ge={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",\"'\":\"&#039;\",'\"':\"&quot;\"};function ne(t){return t.replace(/[&<>\"'\"]/g,e=>Ge[e])}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var H=\"mousedown\",Ee=\"mousemove\",B=\"mouseup\",X={x:0,y:0},xe=!1,ie=!1,Xe=!1,D=!1,be=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(be?\"is-mobile\":\"not-mobile\");be&&\"ontouchstart\"in document.documentElement&&(Xe=!0,H=\"touchstart\",Ee=\"touchmove\",B=\"touchend\");document.addEventListener(H,t=>{ie=!0,D=!1;let e=H==\"touchstart\"?t.targetTouches[0]:t;X.y=e.pageY||0,X.x=e.pageX||0});document.addEventListener(Ee,t=>{if(ie&&!D){let e=H==\"touchstart\"?t.targetTouches[0]:t,n=X.x-(e.pageX||0),r=X.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{ie=!1});document.addEventListener(\"click\",t=>{xe&&(t.preventDefault(),t.stopImmediatePropagation(),xe=!1)});var Y=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||\"\",this.el.addEventListener(B,n=>this.onPointerUp(n)),this.el.addEventListener(\"click\",n=>n.preventDefault()),document.addEventListener(H,n=>this.onDocumentPointerDown(n)),document.addEventListener(B,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle(\"has-\"+this.className,e),this.el.classList.toggle(\"active\",e);let n=(this.active?\"to-has-\":\"from-has-\")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(\".col-sidebar, .tsd-filter-group\"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(\".col-sidebar\")){let n=e.target.closest(\"a\");if(n){let r=window.location.href;r.indexOf(\"#\")!=-1&&(r=r.substring(0,r.indexOf(\"#\"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var se;try{se=localStorage}catch{se={getItem(){return null},setItem(){}}}var C=se;var Le=document.head.appendChild(document.createElement(\"style\"));Le.dataset.for=\"filters\";var Z=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener(\"change\",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }\n`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=C.getItem(this.key);return e?e===\"true\":this.el.checked}setLocalStorage(e){C.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var oe=new Map,ae=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener(\"toggle\",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;C.setItem(this.key,e.toString())}},K=class extends I{constructor(e){super(e);let n=this.el.querySelector(\"summary\"),r=n.querySelector(\"a\");r&&r.addEventListener(\"click\",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\\s+/g,\"-\").toLowerCase()}`,s;if(oe.has(i))s=oe.get(i);else{let o=C.getItem(i),a=o?o===\"true\":this.el.open;s=new ae(i,a),oe.set(i,s)}s.add(this.el)}};function Se(t){let e=C.getItem(\"tsd-theme\")||\"os\";t.value=e,we(e),t.addEventListener(\"change\",()=>{C.setItem(\"tsd-theme\",t.value),we(t.value)})}function we(t){document.documentElement.dataset.theme=t}var ee;function Ce(){let t=document.getElementById(\"tsd-nav-script\");t&&(t.addEventListener(\"load\",Te),Te())}async function Te(){let t=document.getElementById(\"tsd-nav-container\");if(!t||!window.navigationData)return;let e=await A(window.navigationData);ee=document.documentElement.dataset.base,ee.endsWith(\"/\")||(ee+=\"/\"),t.innerHTML=\"\";for(let n of e)Ie(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Ie(t,e,n){let r=e.appendChild(document.createElement(\"li\"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement(\"details\"));s.className=t.class?`${t.class} tsd-accordion`:\"tsd-accordion\";let o=s.appendChild(document.createElement(\"summary\"));o.className=\"tsd-accordion-summary\",o.dataset.key=i.join(\"$\"),o.innerHTML='<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\"><use href=\"#icon-chevronDown\"></use></svg>',ke(t,o);let a=s.appendChild(document.createElement(\"div\"));a.className=\"tsd-accordion-details\";let l=a.appendChild(document.createElement(\"ul\"));l.className=\"tsd-nested-navigation\";for(let c of t.children)Ie(c,l,i)}else ke(t,r,t.class)}function ke(t,e,n){if(t.path){let r=e.appendChild(document.createElement(\"a\"));if(r.href=ee+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes(\"#\")&&r.classList.add(\"current\"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('\"',\"&quot;\");r.innerHTML=`<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" class=\"tsd-kind-icon\" aria-label=\"${i}\"><use href=\"#icon-${t.kind}\"></use></svg>`}r.appendChild(document.createElement(\"span\")).textContent=t.text}else{let r=e.appendChild(document.createElement(\"span\")),i=window.translations.folder.replaceAll('\"',\"&quot;\");r.innerHTML=`<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" class=\"tsd-kind-icon\" aria-label=\"${i}\"><use href=\"#icon-folder\"></use></svg>`,r.appendChild(document.createElement(\"span\")).textContent=t.text}}var te=document.documentElement.dataset.base;te.endsWith(\"/\")||(te+=\"/\");function Pe(){document.querySelector(\".tsd-full-hierarchy\")?Ye():document.querySelector(\".tsd-hierarchy\")&&Ze()}function Ye(){document.addEventListener(\"click\",r=>{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!=\"LI\";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!==\"true\"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(\".tsd-full-hierarchy [data-refl]\")){let i=r.querySelector(\"ul\");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll(\"[id]\").forEach(s=>{s.removeAttribute(\"id\")}),i.querySelectorAll(\"[data-dropdown]\").forEach(s=>{s.dataset.dropdown=\"false\"});for(let s of document.querySelectorAll(`[data-refl=\"${r}\"]`)){let o=tt(),a=s.querySelector(\"ul\");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function Ze(){let t=document.getElementById(\"tsd-hierarchy-script\");t&&(t.addEventListener(\"load\",Qe),Qe())}async function Qe(){let t=document.querySelector(\".tsd-panel.tsd-hierarchy:has(h4 a)\");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await A(window.hierarchyData),r=t.querySelector(\"ul\"),i=document.createElement(\"ul\");if(i.classList.add(\"tsd-hierarchy\"),Ke(i,n,e),r.querySelectorAll(\"li\").length==i.querySelectorAll(\"li\").length)return;let s=document.createElement(\"span\");s.classList.add(\"tsd-hierarchy-toggle\"),s.textContent=window.translations.hierarchy_expand,t.querySelector(\"h4 a\")?.insertAdjacentElement(\"afterend\",s),s.insertAdjacentText(\"beforebegin\",\", \"),s.addEventListener(\"click\",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement(\"afterend\",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement(\"afterend\",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function Ke(t,e,n){let r=e.roots.filter(i=>et(e,i,n));for(let i of r)t.appendChild(_e(e,i,n))}function _e(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement(\"li\");if(s.classList.add(\"tsd-hierarchy-item\"),e===n){let o=s.appendChild(document.createElement(\"span\"));o.textContent=i.name,o.classList.add(\"tsd-hierarchy-target\")}else{for(let a of i.uniqueNameParents||[]){let l=t.reflections[a],c=s.appendChild(document.createElement(\"a\"));c.textContent=l.name,c.href=te+l.url,c.className=l.class+\" tsd-signature-type\",s.append(document.createTextNode(\".\"))}let o=s.appendChild(document.createElement(\"a\"));o.textContent=t.reflections[e].name,o.href=te+i.url,o.className=i.class+\" tsd-signature-type\"}if(i.children){let o=s.appendChild(document.createElement(\"ul\"));o.classList.add(\"tsd-hierarchy\");for(let a of i.children){let l=_e(t,a,n,r);l&&o.appendChild(l)}}return r.delete(e),s}function et(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function tt(){let t=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");return t.setAttribute(\"width\",\"20\"),t.setAttribute(\"height\",\"20\"),t.setAttribute(\"viewBox\",\"0 0 24 24\"),t.setAttribute(\"fill\",\"none\"),t.innerHTML='<use href=\"#icon-chevronDown\"></use>',t}G(Y,\"a[data-toggle]\");G(K,\".tsd-accordion\");G(Z,\".tsd-filter-item input[type=checkbox]\");var Oe=document.getElementById(\"tsd-theme\");Oe&&Se(Oe);var nt=new J;Object.defineProperty(window,\"app\",{value:nt});ve();Ce();Pe();})();\n/*! Bundled license information:\n\nlunr/lunr.js:\n  (**\n   * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9\n   * Copyright (C) 2020 Oliver Nightingale\n   * @license MIT\n   *)\n  (*!\n   * lunr.utils\n   * Copyright (C) 2020 Oliver Nightingale\n   *)\n  (*!\n   * lunr.Set\n   * Copyright (C) 2020 Oliver Nightingale\n   *)\n  (*!\n   * lunr.tokenizer\n   * Copyright (C) 2020 Oliver Nightingale\n   *)\n  (*!\n   * lunr.Pipeline\n   * Copyright (C) 2020 Oliver Nightingale\n   *)\n  (*!\n   * lunr.Vector\n   * Copyright (C) 2020 Oliver Nightingale\n   *)\n  (*!\n   * lunr.stemmer\n   * Copyright (C) 2020 Oliver Nightingale\n   * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n   *)\n  (*!\n   * lunr.stopWordFilter\n   * Copyright (C) 2020 Oliver Nightingale\n   *)\n  (*!\n   * lunr.trimmer\n   * Copyright (C) 2020 Oliver Nightingale\n   *)\n  (*!\n   * lunr.TokenSet\n   * Copyright (C) 2020 Oliver Nightingale\n   *)\n  (*!\n   * lunr.Index\n   * Copyright (C) 2020 Oliver Nightingale\n   *)\n  (*!\n   * lunr.Builder\n   * Copyright (C) 2020 Oliver Nightingale\n   *)\n*/\n"
  },
  {
    "path": "docs/api/assets/navigation.js",
    "content": "window.navigationData = \"eJydm1tv47YSgP+Ln4Netqc9p/vm2EpixDfYSnIWRSHQ0thWI4kCRTlxi/73QvJFpETNjPuwL+HHjzRJDUcU97e/Bho+9eDrIJRpKrPB3SAXej/4OkhlVCZQfH/6+3d7nSaDu8F7nEWDr1/uBuE+TiIF2eDrb1fF2HsYvkz9YOzdvzxOvVdv2ugOQsViYwi7sN3GT1/+vuuYZ5N5MFpMg7fJ2H9iyC2e4V8t3oInb/L45DPkDYyYI9iKMtGTUGYzkReItkUizsloMSeHoIEw03z54gfP3rc1ZrpCiOnZ+xbMF+OhP0RMDUSY/EUwWsxmw/k4mA2XhNGGafN8+Dp5HPqTxZwnt3nEP1+MvcD/tvSCh8V07K0QdRtFrCtvPvZWwWz4/2C58h48f4RNu4NmuCfzW9wGjbrX3urVGwf+yvOC9eJlNfKopdZbB2nH99Z+8DCZesFyiD4RNkgZn/wZFr6uDOaZ+FMvWC+H82A5HAffMF0LRSNKKNNcQVGsZalCGAstGvO2zEIdy8wIK13ctv/yH8OeineYywj8WCcwEzrcg0LsLpxrX2uh9I1NmHWQdrIrL5VG7S2y7bwbhIkoinrYcwWh0BAN/v7daEofcyi622b9Z9auOdqLbAf+MYfGAlmZXhxNua37nxl5xGEmI/CyMnVLDACxyAhWsIvNNMCSXMtxx1oLXRb9v8hm+l0ryCJQD4nYuT1Neb9jGEWj86Av8nrmG1ecaVBbEV6nqwu3ZvDnX0x1nifHkUxTkUUMd5fG5COZlGk2hm2cxdqakY65jdJa7wCZnmRbSVqvJCYdK7GrQXvKO0qLw4Uy5wkNDhN6n7nIomGS0PPURjHtQ5xoUCOZZRBSfe2wtLh6Tgq6x10YUz+Crp49oL0tEpOek1ZiCAwKk02liKbizyPz57twTD8T7/AaF/EmYYxBF8bUc3GId6yxbZGotNqhjjmwYkEXxtQrSKRgxC6Lw4VVROYIDQ4XFqAXiiltsZh4HSqZJJNMy9cYPmi5k6cb8CVXfSVRKehhqOMDY4W1UUJ7CvcsrYUS2lM0BcYa68KEeg0JhJqpbsGUmhcg1/wAeUZLRjxro6hWKs0wNhQuq94Phn+ITyKO2yCtXGz+oPfHNoppfQV1AsmLiQ4ak7/kEWv2LQ4TVvuHXskPxty3UUz7tqmfb6GBkyo5aFx+X2ots1ESh+88v6sC3sTpzYZnb7GEmN/rW/o7BnHTiDt4vAEvinX9nsDzd3FaX/9j2y2akCslFdNsoYSW8apiUISs3mCYnbRZXPwgw7LgeW0U11YJ872Izut+BUWZ0A30VbqlqRsbYegz7rKzSFz6DMdIfmQ8bxvG1TMZxdtjfRjA07sq4E1Uqbp9dufQXiBaxeumReLSFYQQH5jeNkypq/Sfa7ZYXHxK83jiFouLqxyCp7VI7vGRba1VjmMjh/GHX//748/m6fC9lOeTixUUMjmYh5+mt8uxzGqtVZzt2C04eaql0R7C9438PNVy222GNLaOyKZxoXu8DpJnv+5BM5FjbpOjzOPzoXMsu69mprnLkebrKWT/2rMZ0lgdxm23EOphksgPQBa1E+X7OWKu8XSejRsb5jZj/yrrcreZ18ASr4H2HjORxmETDnq8bewWrxUEaL+FM9vhhAwnyvRX+Q7D3WBML3tk/sWY+FImOs4Zcouk7NU7ARk6WhDlPB1hz86Hl26lzfCMZD87GOV9VDEdOFsQ5aQWF39VTbIClJ6j42gzlPEZjpk4kL+4g1HeqdztGPPTwSjv+dvwSCTJRoTvbmsLopznw3p0n7AZ0igjGGZHvJctiOM8f2QitTbHN6+gyGVW9I1Bh+OYl0rmoPTxETSr726e09Ip46dbsDmWuY7ODLPFccy+HMecPtscy2x9JupNWp0ox1+fZdIdtzC2l16IFkZ5TzOO7z82Qxql0vfHy1pFk3cn6vS7b6PYjeIjbhL/uolnICJXC+KMVf3dDhl8E6F91aeEKqvGhCbDM1I2jomRlN2UjflKZEUiiG20TdHWuKi+mGDGhqBsb5uRyEJIqhtvvSeZphypQLd1PZrE16gDdLvNy16ljpPuXa/qr6yrXmPYglIQNYr6YbsoLsW268cv5n2mV5HEUT2R9Sl6j6lFYcJ6fC8j4JqSWtihyPz7fNGu12gCdNjXSyXTuBvva1VTTIniYiZC1zXM2lOXIjcvq0u1k7nzanhd/1yOGRYvay+4f/H9xdx5D/bkMSnEJiKRV1/4/b2SWifG4DTXHGthG0RuTlaLSOl+U12M1I9gI8ss7O/LBcAcMizT+qkX0bFfZFJcW2cZYVLnorLcIMJ9r6sqxOomkD4omT6diB6HATFcpxxFOi+8Wr4LiDnt+NIWdeOKXbsIRQ74b7sipGcFO/gkRDVDms6bK+E6U5itPuKXp4S+32ZSmO1TQxb1a+pivL4Soa7G0q/+gohMDjHuQLdzlJbrSuCWV5GUUC05L4EUk1kg4oyrEa0OCntlVwKzFEOlRH90OZejBi/N9fF0YwXxGBRqu2yIiOqCoJ5lIuKM7JVBIba0VGmpnkSx/6nXZTCIKZOy/6GrCpG68vTNpLf6uRwzHECpOIIZ6L3sf85sDPEpWeW+vZ5TMVK/AF2t8nFc5AmyCG0M9/lxCrLs5kldpU3i1vqh9CX67NoY5ksA+hdBXYrU1lSWo+nsRuOBQ1NRQ8vdLoHLFwTEY2Kobxl/Atahuhw1WN+COvU7n4Ds2lZ23q7cycytumVWiC2MRNHffIN0POZb1ccmqP4bTvfF6lzAerd6K6t7AhtRpnPLdXkvurhsrvtm1OqYbJ/cGH2TzqMad/eqay1N09hNQEPsrIReVLi1BYbdGpAr7hiQa9mN8+WYq0b11mM9TdXv/wDBLffQ\""
  },
  {
    "path": "docs/api/assets/search.js",
    "content": "window.searchData = \"eJy8vVuT2ziWrv1f7Fvv2kmc2Xcu29Vd0eVyfWV39Z6omMhgSsxMjiVRTVE+9MT89y8ISEpw8SUIUMy5mIlqJ4H1klpYODwLwH+/aOqvhxd/+fO/X3yudusXf2GvXuyKbfniLy++HnfrsrkrjtsXr14cm82Lv7zY1uvjpjz836c//fDYbjcvXr1YbYrDoTy8+MuLF//z6lxXxsyltn8OazuV8Wv7Z6jiVy/2RVPu2r42z9wNExd7X8rmUNW7BGMvn4pMGfWKjtk/ttUmxfjp+QUsV6t6977YH1Ksd2W2rsw8BexGPP3WD2X7qSnLFAEPZdu6IsvY/7Vep9rfuSLL2H/3pdy1P+/u60QRZVeucuXmKZHZUxNe1btD2xxXbd2k6OgXW8Alm7puUwScnl+iMayTmsF6Gavlptx2xRJMPxVZwP5jWazL5l26CldwUS2b6tC+qXdtUe1mSerKr87lF1XWNfhfqkM7Q1RXtBO2qJ510RYpIk7PL2C53rdVvUvqMZ6KzAyYimXiSUGxaqsvZWrUdqWuC9x9Hff16nhIlWELXaWi92u03/dl0m9xLrCA7VW9OW7TPOGpyBI9RVmsvyd1FacCC9i+TR2z3S43aLvr3mPVHLd3KQJ6pRZQcV9t2rJ5n+r+ttR2Mf93rfpNvfl5/S09GqzqTWXLLeERq3Kz+bX4kvpFbLld8WW5b7IpDu3/d6xWnw9l0aweP1XbJEFd8X89FW9d8WfQVTYp87uBLld8kUh+mgbNmAUtMwm4XRWb1XFTtOXfy6SI9lTwczk/svW1NOVDN1ppUnu2S8HlJke3x91sNU9FF9SzKjab92X7WCdNFWyx7bnYUjrstDFZRvnlmjHoYOpe77f1of1jP2MO3bqyX/aLTqZ/qb+WMwVtbNEl9RTr9ZvHarNuyqTFpWK9Xj0VW0LHfr/5/qbebotdkuPacqtLuQWUrDZlkba+cCqwgO11eWibOim+PhVZxjs/2JlQol/W50ILaDjM0XBYVsNjcfipmwUlLTYUh/tTmWUU/M2uXiRKeDwXWkBDc9z9s2of35b3ZdOU63/s10WbFLGa4+5r1T6uTxUczxU8l7bXh++71dUCi1MtC6gsv+2L3fr1Jmke5goVm/lzMdKeNuWqTdTgCi2moa0fHjblR1tp0lKALXc4l1smwjkZ5brrf5Na+EPZHk5ld6eyyyj6vbz/e/k9VUtT3n92pZbo9epj2lDtXGAp2//YVf86JkUXW+x4LrbImPWxXH1OG6+eSixg/b5KjhRdkcXaaFfZj9+dK6aKuPvunHE5JT9VzSHJH7tC96dCC2mY8SEW/Qa/lt+SyV9Xbld+WxD/dTX+XnYT+PUcMY0ruqCeutkW7W3Vpo2N+sUW05EuYakVoVO5BPuXEovYX82YNi47Z3wo29fnxdWOeiX2n5cF1tKVXVLRjLn9EvSHaLFB1E7vE7XYQLo6FVxo1aOYJ6VbU11WyU9zoFj3Ua7mYmRM/LFtqt1D2nj4cC6zgILq8G5dtYkSqkN5KbSkhk9Vu0n6RS5C2lPJRdT8Uhfr5C+yuRRaQMOmTrLuHl/G7tvy7phqfH0qs4yCd02TltyzqR/KU5llFKRmOW3qh6sSnKj9ZBZWP1zFv5D9d2lrsCcJ5VIrsJv64Z9FkzSw2NQPX12RpVrCvilXictdtjU8lVtilas8lO2b9CQGW+7aTIb+KtKqqTebT0lNw5VpF2obly+RuC68OhdaYoXgMHeA15VceoQ3W8zzaEleMT+cxlTL/Tazhna3h8XHdt0qY5sYPbrVxXaxyHGYoeCwqIJjMi5Ykg8cyvbdrrjblEk92aFsy0upZUa36SKqw8Ia/tok5g0fHporcoeJ9Tcu6ShNwCnjaCkNv9dfkyU09dfFFHR9V/pn6DqvJb/DoWx/Lb5UD0UHSmcx1t2l+MLEt4tVyZ3H4VxoGQ2fUhNVD2V7Xa5qX0HdtHNSMbpyy66rdTX++P23pt6XTZu0BN6VvPu+fyq5kJpUDUut0LytVu3rpimSPkJbr6tVW5yKLTGycR2jG/3+s1q3j0lueiruxsFfz8UX6+F/K3fd4sf7el3dV6siOfXe1bJ3tWxJLYtQvaYsWjtG/nmVFvFORbtxYbVaKtp9qQ5VkkOfCyxl+/dui2Sq/cYVWmR2XSSuLhQLjUWaMtX2pcQC1t2gLj2JxpVbcmzsMtyT0x9csQUzHyzAf1+0q8c0Ibbc9lJusS/yY1PsUrW4kndPJZf4Ll1C4U+24uQ8xPtzsUXGzU6EW2RIGz07HcW55GK9TfpnceWW/C5/dhC5aOvmP5O+yanQfA1Pe9nvbnf+IsdlI7v79xm72PGayam6/mMTW9lP0kY2WBzKfx3L3SrJ1kuvUNAoKTxnF3FARdQ24ikh/Z1xcFd5QEJ4T3mS7bHsgYD1qfSBtHfHuC/08mHMl2T9M8rsCdgOpvUkWW5G8qsCxqdSq5Lsj2dthFx/cnqZqKFcfb6rwW64oIZLoUV+h2Jd1Q9NfQRbqkK/hV9skW9Rbw77IvHnuJRZQkEFJ0UB8+GpUJLtTfHvtLZwKrCEbZdmjZZmA/a9QktoOKcTJ3aHl0JLaDjuTsned4kBmRRcpFf4vk/sFFyBRWzX9aat0sLBU5mlWuKnGSq6cssqOdeRFJUuZZZQgE+PCJgPHx+R1irtunL3xKdUf3RFuz8v6Jm3gbSkgJbbiMSkNB1NNxA/tD+nxatzsRBSStNhM35wok5Ihy0WTtZJ07Evmm5HSJqKp0KLacDLWlMiwktbSSrsYkySgnOJRdrr8c6uIr3Be1hCzfV4Z4VMbGZJn9l0e9P+Vj08bqqHxzRJtni3Ke3RK76Ip7glkNfHtn43Z+hzKl8c23rhUdBtU3+Fh2MEg0r9NXgwRrICnEE+ISGcOj6lITIfODgAmUoITtIQ2rUf+hIR2/aTdAR3pQeERG1LT1WSujbWqQinEqUpCO6MD8mI2hqfpGVVbzbF/lB+rO421e4hcYB4Knx4KryEpi63oqsmcQ7Vrk6FFtHQFk3bJbKPZLGHR4xN22WyX7m+FbvveHJyG9xQmKRidEdjQMPklsZkBW+rplyNbT2ZULK2ZSe2nyQrGtnbOKFlYnNjsorgnr4JLVGb+tIUhXb1hdTEbOuboWSGiIXsP9g85+TRyIPNdF5wPNLp2NQ7e6ZkspKu4KZazF8n9rKFxcRsZktVE9jNFhYTsZ0tWUv5JXEO2uk4FVpIQ7dV+TQoSFXS7VY+XIoupOe3dLz1ULbXEi6sYk4DcjaXbUG/FW3aHN3qaK+YpQ8UNOWXmV6yb8ovy3rJY3GYNcd4LA4LzzE6Jckj2E7GgiPY8ROPwhomNnAkaagOY5kmocXvw1SSSaqG3ao8tHXz4T5Vx6lgfb+YFuugyUKsey6pouvNUzWcyiykYAYlrQ5Xc1Ki4m15WJW7dbFrk3+S9aXogr+LW8ZL5nbVofQLLqQluIs7rCZqG/esb5O4xHn+MtesbA4y6JrDrJFRl0LXHBYeGVWHbuA6T043cl1eTSL/72RckwEAdvsn+8jmXGg5DTN+jWvJHlHxW/FQ7R6SFwOqw94WXHAloNPSFUyOsc7egvH1tzlozeq4kq0BHamY0cm4ijPSPXRd6lOihuZUZiEFZfdccnttnootpKOuR87lCuuo64ljuRJ1fJyTPVQdrs8fojou+RKpSi7ZEotp+VTv09dDqkNb75dcEakO/9ht5vQtx93CvcsfVddnp/4wXy6lFqGK92W7euyQ+Iexm1mC3Lkr3RHxyUtaklQlR/YFY3pXVfLYpyu04OgHnjMUNL/UaGP8pKGw+YmjhlI1jJw1FNYwcdhQqobkJKbJ44ZSFeCTdsIKwkftJCnYFp/LOTGqK7dslNrWX0p0vk1IRP2lDB1vk2T/tLc+7TN4hZbQ0JTdKyXuTjgVWc7+rGVZV3ThlVlX6fui+Zy6T8AW3J4LLtKLunFsaurlLngcfOLXOHTkK7HbsqUW7LfcrvzELKl1FTpAPJVjjJ2dEUYYU0dmJKlwZ2v9vGvrP6rya1rGiS1a7dr6iyu6iJ7zWVSpaTiLrt53p/7MWfjrzv1ZduVv/DyssIwlecqhbPGJB2EJ1+3voQpSd7sdyvaq3W5RZ1AF7E9ttE+NFRO3DYRDRuR1A6maRu8bCKuZvHAgMY4/3QmR2Fz9ayEWa7G3xe77x3k7obqiS+yFIjla35ycqt7x1/dt2bzZVOh6goCw++rb4VJH0dWxOtWxuMKfmnr7bjfDzXsa75t6W+4W9ffDUxtMDUQLe1jgnKsJHRMHXaWqmJGlWi6an9ppmLHRrVNx7T63hDO3QkqiDt1KH13/Wtjz7C32b1JH+7aGna3BpQA0y439p84Em/hWMYeCJetJVrHcL5Vq/VJkkZ6zqR4e7MW21f339CzEU3F71Nb3JXMRe7rmS1pIzcg5WwEVEwdtpVt3IDMt3NuC+0vBxbTM2rJhSy68X6M6uCOfUtHI9lJqCRWhM3xCMiYP8ZlUcZHw9e6W3lTvHeRz+pM127fm1SXVpbYngxSyVLu2bO6LVb/ewfPAUv+9zmLHdmF+Ljdl6003U+y+9EpPCRhWMb6Ru+m5fJqiS+HlBFmC0eeTSZps+UlQmSxrW+3csskV0rbVzi2hLC+v3O5b1891qdQg6y1JqK3NdntdenVcKlyy5Kb++rey27z727d5Kpv666OtYB/c45osjN4jniRq8kbxGYK6/cRvTjsD56nqalg91bCgtPV/HQ+t+x1nSrM1PJZT27iTpa3q3a5cdZdb/9iUxXrVHLd38ySeamrr/Z1f03JSn86Mfl+vS7J0niT1qaZtvS6nl9OTpT72b9xNEjd18e6c7uux/vpxX+12czV1FRwuFSzbZnsLiMntdWodMb1B0DPF0hpBxOFis0Lt/Di7uBS64JKsKGLpJVkYPXQpSdRzCIKnYSWpij0WK30YRK6SSBv1TF0pMUPQffWtXL+pZw4YbelVvexQ8XTnkTsldv5veKrm3q9mcZHvy93xKnlbV8Hiwn4vD9W/r/54jVfL4hI/1s0VTfRUyeGpkgU77bppf6o367I59Pf5p/XcddPeu1om9/2nS7Tx6b2fr5smzpbfTqTtJsv617FafT6UReMdJZWkq1/Bgt+rl2vx4TRX7tO4tA/Yy8CoTxPnSTSXvtywm9lbrMMnxqR3XetqZkM4lVyy0+odIJ7YZYUPEZ8zlO7SX/wchbSh9FPp5STdlfd1U76+Spir4xnluTZ4jbjyXMPS0hxtvkba4VzDgtKObVvvrohZroLlY9Tqsdg9zO3Hz2UXlDP/Cz1D/L7bXKHHK73kCvZ1EWv9PEFhXR1WRTO3t7sUXnbG/WOxnuvZXfG7U/EFu+Hejoe0fnhq30O6mCsi+DPE7vtetmbasGAqZzPde3Zzx0unkstJ+Vx+X9dfZy5kPRVeTlCXSv6Lv3crSVFXemojV7qk+XKWlrIFSSFpHC8uLSSdiJWr0k8PT6Nhl8JLCtrNXuyf3lYxUw7YSjtDWNy+2pnrBtesGSy7VNtP7k5bpJ3M8o6R4+df/Lyr2tQcDFjm2jyM7gjAcjf1M42bfvlUweTHwS891qlNRaSApvDZ8bPknBYB52t6qmBZYW3vHtpkWRNX0s4UdaiPzWqqsQVUXcovLCsu6SgkDCUetYf1/6kO/6faPZZN5RLAr5calYwUUgoSkp5DaHSSUkDrSKLSc8hNSl4KSA4kMD2H7JlJTaG4HZPY9ByvEp/sFFA/lvD0HILjkqBC3RFIhHoOoQnJUQG1owlSzyI5PmkqJHksceo5JM9IpgoOCyYSqp7jFWYkWQVeYTLR6jleISr5KiAaJGA9SzcenZQV6spHErOeK4ZEJGtNxI9BwtazNMS4JK5Q40OJXM/VhVzXf/yvSIxL+ppQivKsnkNwXDJYaOrzvyQ0IUksoHY0UexZhptRyWOh0SVIIHsOoZFJZQGlMLHsecYNaclm02sJIwlnzyg+IgltWvYgEe0ZBccmp02rxglqzyg9MmltWjlMXHuWwU5aMltw/SeQ0PYs0mOT3EKicaLbc8iNT34L6B1LgHuW7zs7KS70wSMT455l2WsSRofWu3bP3zNGJNGF+m+aSPc8nXdEcl2w6x4k2D3LlCguhSU0JUJJLM8hNSkZLyA4kJD3fLKjkvQmRYNkj+eTHJW8NykZ0M5nkRyd1BdSPJLY9zwT/Ihkv+D0fpDw9ywyr/ui/0v9VVxyYKjTQgmCz0OUro+4I4mDzyI3KpkwpBUkFD7XCk9MkuHE+s4w0fBZhi8RyYeh8csgAfFZRF7ZY/0v9VUxyYqhYdYgYfFZvHM6iTHkmDSR8TkkxiU3BlSiBMfnEBqZ9BhQChMfn0XqdTL/NyTGJ0mG8gVGEiWfhbBHJU+G6DpIoHweoRFJlUGdg8TK55MZnWw5KXgk4fL51rWuXdN6fkQSk5wZgiPDBM2FZDJvWXa79Sje+fAt98/Bg7eUF0uKz2XnQvZMTXey2ZP/3x939lzTS6Xo6XDC50nktO2P3UXyaQL8IvNV7C7V1U0bsk0enG9xXa7q7b4pD4ePNq3wbdEW42bR04m2+ZPTvH330+t//PLp9u27H//x11/e/fHul4vlL0VTdcvyF8vDZ6+3+/uHf97+7d3Pf/3bp2m7T8/Ot/vzmw+/3v7z57ef/jZu7+mZ+XY+/fzpl3e3H397/evtb6/f3v7HuDX65Hybv7/79e2732/fv/5/t7/9/u6nd5/eBF4SPHy95Z9/TbDsPXy9H3W1vfnwy9RPCx+fb/3XD2/f3X76j9/e3f704Ze3734fN0yfvMKz3n38dPvTz7+8u/3tdehV+89dae9vn94HAsPlkflW1uV9cdzYA/7fF/vDuC3y4HyLf3/3H7e/fnj7+tPrcWNPz1wRcX797R+fbv/+7j8+BiLO5Zlr2uDHd7//8e7t7aff3727/fjhH7+/eTdhdrTIdV/104fbX1//8fNfX3/6+cOvt+9f/xb+wIPHr7b+5sP7969/fRtl2ns20e6T2f4Wh/PAy/5rcNzFbnKdSa+pNVU39C4/fd8/jTVtNafK/AfCap2kcVNvTpllJLfSN9Z/5Dpz3RDJngA++mq9J64z1sWGwHs9/fk6M6dktICl3hOJxry9WG6c9/q/im+9r+dNQs6f0H8uzV5/ttPAfKVRKy9dgYAlUmrM8L5oii1cCRy3fSlzvfm7ev09zfipxPWmz7vgkqw/FZolYNhIuwe7/RuBVuo/cq1Lf7j7ry5RPcKpn568wq1v7+tmW8DFhoCtl0/Fpr+y90ZjIr6UzWEknT2o4qncEjJGd+WFNIT34qUJCOxXDEmY2qWYKIJelhGrYuqujESf+Fx+H9nAE3SJz+X30PnFiSL29aHq4kkxGfwHQnpFl2klxeZYzvkmtuBVXwWHxYmQeP2o5bRw9abYbO4Kj4P7tsgz1xn8593PZ+AaNAqeu34wGLToP3C9qb+X3yetec9cZ/DHut648d7v5aHefPEWEH2bw8cWMNt8tFtqY83Dx6+T0S3Fvt6FPzd55nqD7jUmbfYfu97s+fKgv5ZtO9Fsxx+/XkZ323C4NQ2eWsjo7+VhX+8OOCoOnrre6Cd7U+rkq/YfW8C9LGGadq/eY9eZfVvum3Jldyx+IPMC3+zwsSsGx4dqt8I/5YiZl7e39u+ncqHOFtTgCo9unqy8Ez/itZyKXStl8HN83xXbavUUs7E0+tSVPuCq82N0yKz/3CKGh13E5Fs3i4uIWKWCTy5ifGIZafDUIkanF5XQg/Mn4v+864JXjzgORtpPz1wRX0KbYaGZ6VsMaLH5s7yh6aj5XYTpU+l4y5cCVxquN4d9kfLKlwLXGS7phdWTlievqo41PbaJGZsN3kqRYjKwKXnc8tRlD7ECPpeBFUtqOHQTdazBLvEu3uLp6etMNsW6qh+a+pjwjXtlrjRvr5dOMG3vlb7a7IHe8jtpePJ+32jTl0yy8NrsQMAlb6x15a6T0fbu9Z20Hr7RN9poamteqiW3SZ96kQ88tfEfm466ESZWwm3blOXPCU5uCwTOzwsY7p1v6PIHwv7tPXTFyGd0pwA2MnE28aBQKHG52j0kGH4qcaXpXR0eUA4s7+q1K3Cl4dNQonk3OQgZfvVT0cjRSIKY84lXc9SsvLILyfkl2IGPKonoySNE2DG9naslfQ5bbHUptoSIf+xW82Qcd0sL+bwb2bQRlnEudqUIO1JK/0lsscW+hK1tzk9iCy74k5yEpP4kJxkL/STuZIkE85cCixj+sA/NlUeM1/vJ6XK0gMQQ5QotE6DW9SrBsnv62ihQb0JHqYwFgXozeeFXqoTXh5SXPys4LPcN3pZzFKzLhST8NHrew7iAiUuU0s3bwxESPeF00NK55PVSxs5RGpcQvL0vZHqIpd8Uu1W56Tz73Zdy1xGk42Y8JSnw/DXLop+a0lU3NQXuPXjFNGFq/je0EzcJ7L/ImPGmTDbuiixg/NhWgZQTaPxUZAHjZfdAovVzmXnmh8vvUX7We/AKP9uNbBAct/MyePUCLBdy8p9393WigO5PlSu2kIgZAqJ376WJmWh5SAxteYuJmWqJQMygJS4mZrJlAjXDlnmNnH5LPZ9aFNVaBw9f0WL3TfllbFtv2N7LrmhU6x2+3NxfZURJXMyMljEVxUZUJO1pThYVE91GhMEIt7i4mcKeUdRE9BsTNScCRouaioIjomZFwpCofvh5Yw+Ligo+5NErQk814c3I0suonpq+zqiA/bF9tym3M1Tsj23pSi4n5Y8uvXieli+noouKwbcQRYmJgCiRYqaCMZQxKxRHCooJxFDU7DCcIGyWqGcTNBGAsaA54TdS0FTwhYJmhd5IQZMDHqho3kB0XBLpC7pz7uK6gt6T11DMyc8wtBQ56CNvMzfIAPtRQ98485M9ITAf1xFGmZ8MHMD8vLgRJ2cqbCA5s6JGlJzJoAHkzIsZY3L67fPt5XTHqEYKHr9mgaf81k5NF8csvuwKR7Ua9IpzQ8eomrj4kSBlKoiMf5c5o5UEYTEjllFxs0ctiQJni3tWYROhaFzYnHiUIGwqKI0KmxWZwsL64endumpf7/eb71HRafj0M04oR4zFdaXgva6ZVo5riZ1ZxguqN+vJqeWYnnqzjptbxsvZlV9ny9mVX5eWEzfbDf5ecRPehC800ZOMfp05HUm8rJh+ZEza7G4kTd5cac8pa6IPGZU1pwuJlzXVg4zJmtWBxMuaHM+N6Zo3KQ4KG3Zs9v9i+7Xew1d1a5H9ydBgYnfSf70rghNQMjs2RYmKDU1A2FWRKVrcTGHPKCoiLCFRc6NSlKiYoAREzY5JUaKiQhJQNT8ijckiAanL5Y+LRr0nn2+7AbQUtedg8DZzgw+wPy/yRMmJCjtA0vyYEy1rjqTnkjMVapCcWXEmSs5kkAFy5kWYKDnT4QW1qXmxZUwQCSx2W0ZcZOk/ekVoud8Ugf1E2NLLU6GJyEJeZ25oQQLmxZY4QVHBBYmaH13ihc0S9WyCpgIMFDQrwsQJmgwxSNC8GBMnaDrIIEUzo8yopH6Y+am7WicqyvSffE7QCCxFggLyNjOjHLIfFeTizE+1XGR+VsONlDPRbqGcOc02Ts5Uq0VyZjXaUTn9BnI5Gi+qkQyfvmbNYVXvPk6c8TFi0B5BEXXcB3i/mX3zmJRZ3XO8rJgeekza7E46Td5cac8pa6LVj8qa0/LjZU21/jFZsyJAvKzJLmtM17zOOygsFJ7ATqpJsXN3U/U+0N3YrY5RNl8Ob3Sc/izeu4ZEvemqvFLZ6lTHM8iLOFsoQmDsESUREol77SLX2nsPPufi1tBQ5NpW/1XmRuuh9XmBOkrMVIwGYmaF5xgxk5F5KGZeUI4RMx2PgZfMC8UjcvrN5O/uWs2olkKffc6ZFLQVOZcavNPMYSHWEJWCFithKucES4jKOImVMBU4sIRZsSNa0kT4GJE0J4LESpoKIljSrDgSkNRvu++fLleNar/o+SvacHdodNEG74sI2HzpFw97MnzPsQMCxq6anRY0vGD2WjFTAWZcy6yZZ4q0mLnnuLzZs89UifPlPa+0iQAVkDYnSKVImwpU49JmBasUaZOd/ri2eUOgCXH9aPq7u7g5KpLSZ6+Iog09qj7W3EuvZDhkDd5sZrjCMmaFqlhJMWEKy5odolKkzZP1fJImwtKIpDkhKVbSVDjCkmaFolhJk2EIa5oXggKi+uHHXdIQFX3Io89IzZGlOKBEX2dmyIECZkWcSEExAQeKmh1vEoTNEvVsgiaCDRY0J9ZECpoKNVDQrEgTKWgy0EBF8+LMuKR+mPnx2Lb1Ln6TLnr+GffYjJqLW/OAbzc2U6y322IXnCuOq3kqvJygqRY+rmZWM0+SNtHWA9LmNPgUaVOtflzarKafIm2y/Y9rmxcEJsTR+Y49jjpuutN79Jr2f/i1/Jpq6mV12NlSU9Oc/gsFhhxT2yGgiq5g1F6ISCHV4c30TSgj3yP2SpRIKcVm86bedOOew4/fw0feQ0HFZrOqN12IPtx9j9jLFimrKU+HlM9X5qp4DnHTs+URH5oxh4gSFDdXBqKumCpHC5sl6tkETc6TkaB50+QoQdOzZCBo5iQ5SlDEHBkomjtFHpPkd1jnK1/elvfVrgpjh+GzV3RZ07eDjZiLvSUMvNmYlFMt6UouBRcSMtVxjQqJ6rfihYTv1RpTEXG/VpqEyVyYkJK4FJigIHgnae9h/75qW+GosPfFPq21+K30jb0DPaaN0ievGVQGhgXQzMvJUcDgPcZ6kvA9UNh6zG1Q0QKmPG9EQpTPxYr4Wq3bx1QJ50JLCNhWu3/O0bCtdkvKaMpD9e/wZQlYh19wCSGr46Gtt/aT/BbouLAYV9h+l/1U3xUr6HQLwIxP0yu5nJSpqwyCYmIuM4iVc5i8XwNLibxhI0XGhyZ4tcu4jrqZvuIluikHr3cYacbTFzxEt5ypIdZIm4kaYMWKeCyLbt47T4orvLAg1zen6Zjsz6PN334tq4fHwHwEK3gqtoyIeeH0dtlIelvfH2aIqO8P10igA0z66C/VAd+Kjh68dnhpp4rhlQ7y4LMOLvtWYseWTy8xanjyVx5YjvuFJ02XweVRaDtiYTT2vZN/2Bg2NG4cu/blybGJ0/Cx+W79z7sIl/Yees7Ea/q7RmVcT/6oq2JX76pVsfm1+9/x5i/ldq7clTImd3r3rUfdIzRpdPJkgL7RqPzySaNN+TCRmUvMXgpc+0vXm7flfcpP3F2Rd7+I4Z9DIRMZno6YsYZT7S5idvJUr4HhuLO8IqKkuxDuPb2H24+Q/UcSoyMx59Ibgub6j1xn7tfiS/Vgk9NHzfUfuc6cPULujUspGDVIH7ryDet16X6g32kCKl0e7D+2lNk3xWZzV6w+T5g9P5Zm1jz15vbY+t5HLXfH7aUXv/w5sU996ryL3feYql+654JjlCet0NLav7k6ZCrixuopW92tl21zXLXHJurL2ZV9r8A1tu1qWJzVy6NX2au/xhmrp5IQpiwdkj7pUt/z0Bbt8RBp8vToVfZWTb3ZxNk7P5ps76mJO374k5/K6pt8+vPsJr7alEXzvmg+H/cxJl7a57fn50Ov5mmHlt1iTpTRy6PX2GvKdVPg1kDtXR69xl7AVai9KFeB9kyv+/loXXy0R+g/Mttl6s+xtb+0j06hP081tLepi3W1wy0AGX16/lrL/X3vU3ZjdrzHWN3Vb8d6Q2R2V0f0iTF298VDyme+PD7Lbt9xf+9P6ahp9+fZDnskF8sHqn8Zd5u8pxlHVZpYETKZkEsRtGlXbeIsnh+9xl5pDzMbieDUovfwNTZ7OREhe5FpECFb+6a8r+J+wcuj19jr8/aQuRjIDq0ZfxbYTSff7Y5bbPLp77Ob3aEtmvb3kQEoNfDSPj09DPWF42ZQjnS6A4unJ6+yZlW/iTZpH1/C7ti4fmBx7hels9tPTbE7bOyiwGF0Hk8fumIxl3b6k2Ze3t52f43r/Ac1uMIhMe96Y4EUOTHjgkRBZIgQqyZqqJAo5a4pi/WqOW7v3pabalu1ZfpXeqpj7dWxoMh/HcvmuztZKVmcLducyy76I74v2tXjjF9xeyq3oBhb5c+7dfktWY8tWp2KXifJJ0ev12u7vb0pdx/2tsz4evDw2StCz115XzcBrDFi7OWlXOgbgLca27jQLYq+r3b20Nhfyi9lIE1hTJKtY1vt7PBrc6pjGXm3m3mSbq+W0XMSb+V42kuGD88Hm+4s39ebzaRZ+uSVveIvxb+/JxqzU+KNKxf67IN3Gk8GLNs5OmzBBYXc180q0FKxiHOhJQSsy30oNRMLOBdaRkAZyJAds19OLd7Fml/Vm02xP5Qf2seySW0DL8+l63PpJSR9Lsu9S4Hs5kB/VIcqmIKIlXWVuFzIjll/uVQyU6AfOBz86bQdJkPH8NkrgkdxbGunMdngy65seS4b+gjg7UIjjh+bYrcKNKAxPbbw3bnwMoLuj/8ORbQxKediy4h4rNblu9NiSbpjvOyKl17xpUQ9PG7CaYrjgp6KLiNmUxZfysOH3WbGb+XK1q7sQm4cTIEZ9d/pTJh4CWQ2GC0iajoYlOHHtb+WbbfSW04GNfLgNRHNRui/lwFPQMZeunKfyykvoK80lnjmGtz67+X3xNc+r4uuP7uiC4g52FyRWWLORa8S47vEx1iX+LiYS7gPGh6bImunXyJibEpfCr/6p6a04CNqUyd4+OpPMOUBYzZTXBK95PymOqootrkmy3kzkVc3oSgqyy5BVFzTHRWV0HzDonw//uU044wbr6Knr/bkGeZeRo1V4bvNm2mOK4mZbaYI2dU2h3HOj/ByV5fnslfI8d3jffH5PMWadI7hs1e4xq5+vau2E2f0jlh8uasLr3DoU4D3G2u8Nofj511b/1GFzoEZ0+TKV7u2/lJNnggTL2vaXcY/UpSzBKX0TjlwWaXTfkIevHZ8WLSBdotsvfSKTYCz3gvN25YAFcRsTRg37391lzU0+c17j13xxVc2ny3FzstLkenkp6kV8/s2tMkT2D6XuNr0xOFPwHTMwU9RpveN9ZaP/XSzGAmnkgnZZ5NfoZuIvkn3gerQzUSX84S2DiyKAvvu+avNupTd7uirJOuu2MoVmyOiN+fq9UPTMy/0+HP3y+NGE7pm/KKzu8GgpqieMElQW+9/Da4cBfS09T5iJ1WSnPr+8B+ztNT3h8kJ84SQofd+qiP99vLgVR47/TP07cTsY6Mvcn1zGWjADWX6WKpoaXFNZqALNJbFREU2G6IJNZjFJMU0HaJn0GiuEUMW3Bz6illx6z15RQNqyrapHh5CQy9o7aVfcGLFrf9W8z0W6oiN75Ey7rs7TD8Ft+NiHbZgxMbcWCETMw8sImbqEStgat8qVhC1rBb9DdZV+idwZWaaJ+3RbaaPaY+9J69ZNZt65aGhyFfuv8uVCyFYSNIySEAS+RVOSHU6R2j47BW/xMSi4YitqCVD8E5jk7LttlxXwVWQMSF+0WXExI13RuQkzA0SBEX0GSNqYnuNSCkRWVVjWmLzquLFJLRiqCi1HY/L8lvyP/brmBXE3mNXtN+IpjM0Fd1q+i8zTlBPWCcKovaffdbQhWzFhi76Ttc0TqgjvnFGStk39b7ollvf+jvJovVciq+nN5fFi1rRgwai9XglZ0sBpP84jQjpk1f46LY8HIrQSiO09fKpWATmP07xuHXZFlVowQ+LeCo2U0R/kb9L8I1Y5Pceu+K7H+pjMDgM7by8FAkvb/qvMdpLTlMdIKBXbI6I/vc+lO5IyYhvTh69aqK9OjaH4Nme2NxLv2T45emLBcJh+LyrESVdwV0xeeBVSEgv7nRne06GnKeHrvj6069M7cS+rP8So0nNoVEhtTudKhNhcrUNMJSBSff0lSbr8CmtA6Mxh7NGmA3n0A+sRqTPx3ze4lD+vDuUu0MVPq53+KmLQ1n1Sl4pZVfYlYzuY/6W7uSutP0plvP3ox0bn65HSRDjyp3uRFngRwqffzb8aSLOP8NmB6eC1U374/fu5yib9jsNcbYmT8Tgyfn7mrpcjm7X9vRIjj55zURrt9oc1+XfqvW6DIyuocWXp8KP58Khjz94u7Cgj+UmcN5fUM7BFV1CTIfpm9A1uljIU7ElRNit66kSzoWWEPC1KQJRGts/lZlpfrhr502925WriUvFBo9e1TD2xzZ8FiI299KWjDgTcfhigY0O7ha2ZC1d0btz0UXE7Mpv7UwxXdFlxXR5NDPFdEWXFXPayH1fz/Ka017u+/pKz8Fnap6a2MSxmt5Tid0YMfpuXbVTJskzVzTVdXlXH3ereDOn7fNeueDuQlLDxHb+arcpdw8tPl0goMYvuKCc4ttMOV7B5eRQXh0pJo5WJ0vZztAx1TbTRLidA6kyLqUWFLKpv9o7Pt+Wm+J7sqBN/XXVlV6fSi8n7EuxqdZVmyzJK7ecGHfQxDsf80bKcSUjYG+aoHKGlMVF2LMuUlWcC10lg/Y73bS+aX8Nnejcf+S6bu5tU+/f3d/Tcalvrv/IUuZebzb113L8WGf45PXG3bFmQatPjyxp7mOJvXzw1JJGR68fGT42f9L/tikeIq5L7j12TYZKODFpaCYqK6n/ErOyPYHliFzPKMPt5BW2wHg77/raaEHJYp5FSDBVDglJv642Skj4qlogZMY1tWNC+q2x3ke1Ru+x52yN1Exka/RfYmZrHFiOao0Rhh2PDKcSA/Ou2FIiuj0v9ky0+xD1ADK6gu1TwauFxMSmgYjZsSlSULKYZxEyEZuGQubEpgghU7FpIGRWbMJCBgOUy/Fp44Ow3iPXbOG8HFr0/mOspfPY/nJm0XYqz4JUMrGYcdy01cd+DkScIlsyKhUiSVDpj7ETJbmyxaXsYqLWl8H/2/K+GDt4c1xYV96JW1/KLybu4VgeDk/Tk0RptvSTviWFnbZk/lQ3ZfWwsxvwE8Wdarh3NexONSwtsEtT/c1WM1Nfl6y6v1SwtLxf62u+3a5+tu/2u0vE8UhBkrLGK760tI/FtnQ/6Txth2Jb7s/llxb3R12t39df5v6iX+pqvT0VX0zaoWyqYtNt+N1U+7u6aNajhzKPC7xUsjpXEnEmV5rM/sbwSFkxe8JnyPh4yloZW0qdUnTolV9aXLcqOU/WqeRyguwg4U29//63usYXiQU02cKrev/9sZ68gSWxUy8ePvYSAWI78+IhJhcgWcwMHUtLeLdL9ZmuVDl5OtEMIWNnr09JmT4EI1nMhy+ztNRflpdCzjxN+DAxh0glD4pnjIOX/iK/dMdgzvggm1O5a8TQyeRfm2pyNkmeuW55/e/l913xZcrk4KnrjP5Sd+R4yujgqUSjeLVgW6+Pm/Lwf7t/BBU+lVfetPvQ8alLFffH3cqKcpW4v4bFWQmw7nW9Om7tWLhYfx8z0XtoEUu/NfW28rLoQgZPz861WxbemcbETve32fX27iChFXd/nF3zYVXsy7+5wrj6yxPX2fi9fPDumIBG7CPXWflU15u22oftnB6abelb2xSrtvskn8pvo42FPDbX2kPZ/lFsjuVPTb3tpXYRc/S5ufYOp3o+1SFr/aeusNUVf1sd9n7ax9CW99TsX21TbrtvE/R175lr7bj9c4FmS56bbc8u3NYf28a/Noka8x+6wu9Lbzw1dPdyt55bd3V43TTjLnD68/za32337fcPd//lL/oNbHgPzbf006nWcTPnJ+bb+G1TVLupt/EemmtpV9ejobT729x66927HnskVZ/+PLv2L2XTVOvyfdk+1qP+2n/qigj2qdqW9bGdGGYMHpxtcePvWqJWuj/OrbmtHx425Rt6hSUx0X/qil7NDXcD3Zl7YK6Fpm79vaKkevfX+V/KTwkafKDJTKBQzb9V38rRDur057m1H3eH4r58UxxGxT89Mf8NfqzrwAt0f50d+bpOLFT95YHZ6v0pGtU+OTEbr7dYF/tuu9ynx6Zu/fs+6QyLPDfX3vbYbI/N34rDIx8z5T2SZIU/TTfff/jHx3e3P/7j06cPvz5R2i9FUxV3l5ln76HZll7/v9uff/00asP9eW7t1eF9sRqr2/4xqWa6CPBrPegd3Ozf1v/016uMnEcVYJHBmvH/fpUh2ze/OZ0jMWZt8FCSyYw93Vj7R5dJbc/+6d/EearImSMPJRmT2dO7rerdoW2OvXH7pKGX/VLjRmnpkTd+W96XTeMRiZ6C81+f7x17FuJf7iLbdx3x9FpNeag33vJjwObTo1fZ642Pg+b+K4Tzo6y1j94G1oCt03NXWFr1Lg8N/XLB20KjbO1J2ApYe3o0zZ6/bEd3UtGlutPfZ3fuE51vm9Dp/uerF+7q07/894tuu203lP3LC/YD/yF/8erFfVVu1ocXf/nTmX71YlVvt27Gc15vfPGfp8f+sNP/7mH39P+9efHqz5tXMv9Bmvw///PVn+fC9g/2H851PP2LLZiNFcwGBbNeQfbi1Z/ZKyV+ULnpFWSDgqxXkL949Sd7xfUPmWG9gnxQkPcKihev/uTIohgUFL2C8sWrPwUqKAcFZa+gevHqT4kKqkFB1SuoX7z6U6GCelBQ9wqaF6/+1K8k/0Fn/Y9jBgVNr2D+4tWfBlnMBwXzvgN0/pAjk9nQdzLiPJ1LZNh9gP/0HSizHgRdKBv6UNZ3oqxzjYzBwkM/yvqOlHXukUFXyoa+lPWdKetcJBOvpPqBMdkvPPSnrO9QWecmmYQfbOhTWd+pss5VMuhW2dCvsr5jZZ27ZBoWHvpW1neurHOZzEAnGfpX1ncw1vlMlqMPxoYexvoexjqfYTcwzgw9jJEQ1fkMw0EKRKm+hzEbp6CHsaGHsb6Hsc5nGPQwNvQw1vcw1vkME8hJ2NDDWN/DWOczDAYtNvQw1vcw1vkMgx7Ghh7G+h7GOp9h0MPY0MNY38NY5zPMQCcZehjrexjvfIblyDIfehjvexjvfIZDD+NDD+N9D+Odz3DoYXzoYZx0hJ3PcOhhHPSFfQ/jtjfkyEn40MN438N45zMcdol86GG872G88xkOPYwPPYz3PYx3PsMVlD30MN73MN75DNew8NDDeN/DeOczHHaRfOhhvO9hovMZDj1MDD1M9D1MdD4jbpBvi6GHib6Hic5nBPQwMfQw0fcw0fmMYOiDiaGHCTLc6nxG4AEXGHH1PUzYMRf0MDH0MNH3MNH5jIAeJoYeJvoeJjqfEdDDxNDDRN/DROczAsYwMfQw0fcw0fmMgB4mhh4m+h4mO58ROZIthx4m+x4mO5+RcBwmhx4m+x4mO5+R0MPk0MNk38Nk5zMSxjA59DDZ9zDZ+YyEHiaHHibJoL7zGQl7SQnG9X0Pk3ZkDz1MDj1M9j1Mdj4joYfJoYfJvofJzmck9DA59DDZ9zDZ+YyEHiaHHib7HqY6n5HQw9TQw1Tfw1TnMwp6mBp6mOp7mOp8RmWw8NDDVN/DVOczCsYwNfQw1fcw1fmM4mjgqoYepvoepjqfUTCGqaGHKTJ17HxG4ckjmD32PUzZ+SP0MDX0MNX3MNX5jIK9pBp6mOp7mOp8RkEPU0MPU30P053PKOhheuhhuu9huvMZDcdheuhhuu9huvMZDT1MDz1M9z1Mdz6joYfpoYfpvofpzmc0HIfpoYfpvofpzmc0jGF66GG672G68xkN55J66GGaLFB0PqOhh2mwRtH3MG1XKWAM00MP030P053PaOhheuhhuu9hpvMZDT3MDD3M9D3MdD5joIeZoYeZvoeZzmcM7CXN0MNM38NM5zMG9pJm6GGm72Gm8xkDe0kz9DDT9zDT+YyBMcwMPcz0Pcx0PmNgDDNDDzN9DzOdzxjoYWboYYYsg3U+Y6CHGbAS1vcwY9fCoIeZoYeZvoflnc8YONLPhx6W9z0s73wmv0HdTT70sLzvYXnnMzn0sHzoYXnfw/LOZ3LoYfnQw/K+h+Wdz+TQw/Khh+V9D8s7n8mhh+VDD8v7HpZ3PpNDD8uHHpb3PSzvfCaHqxX50MPyvoflnc/k0MPyoYflZLG185ncIN/OwXorXXC1K67Qxdzf+sW9fzuVd6uueNn1Bqy73pCF1xu78noDu0v3R1oBWXy9sauvN7DLdH+kFZAF2Bu7AnuDl2BvwBrsDVmEvbGrsDfQ7dwfaQVkIfbGrsTeQNdzf6QVkMXYG7sae4OXY2/AeuwNWZC9sSuyN3Cg5v5IKyCLsjd2VfYGBjr3R1oBcUS7mp/d4MV/tPo/WP63npjBLjWDBIB44okBYAiAKADFAI4DjIAARAIoCnAsYAQGIBpAcYDjARn2REQEKBJwTCDDnoioAMUCjguMgAFEBigacGxgBA4gOkDxgOMDGQyIGSIEBBFkjhFkOCYCSpARTJDZlf8Mg4IMkIKMoILMrv5nGBZkgBZkBBdklgBAdJcBXpARYJBZBpAxCEYzwAwyAg0yywHwPDkD2CAj3CCzKCBjcK6cAXSQEXaQWRyQMUzGAD7ICD/ILBLIGKZjACFkhCFkFgvg2X4GKEJGMEJmyUDG1Ct588MNF/0KAEnICErIuPNCHNIBTcgITsi480LIQTJAFDKCFDLuuGiOXwGRUeKH3LFRPLgAZCEjaCGztCDjeHAB6EJG8EJmiUHGsScDwpARxJBZapBx7AeAMmQEM2SWHGRcvOLqB60UqQA4IkENmaUHGZevZPaDvqE/I/BEghsySxCyjpOACgBxyAhyyCxFyDiOR4A6ZAQ7ZJYkjGBuAB4yQh4yCxMyjrsEAB8yQh8y4RwRdwkAQGSEQGTCgXrcJQAIkREKkVmwkGH2kgEQkRESkVm4kAk8OAEwIiM0IrOAIcMMJgNAIiNEIrOQIcMcJgNQIiNUIrOgIcMsJgNgIiNkIrOwIRN4cALgREboRCadI+LBCQAUGSEUmYUOGeYyGYAUGaEUmQUPmcCeCEBFRkhFZuEDXhfNAKvICKzILH/ArDcDuCIjvCKT49A1A8QiI8gisxQik7glAWqREWyRWRKBwW0GwEVGyEVmYUSGGVUG4EVG6EVmgUSGOVUGAEZGCEZmoUSGWVUGIEZGKEZmwQTGkhngGBkBGZllExh3ZQBlZIRlZBZPZBJHAoAzMsIzMosoMPXKANHICNLILKXA+CkDUCMjVCNzWAOPSwDXyAjYyBzZwMMSgDYywjYy7XwQR0KANzLCNzLtfHAkfwv4IGEcmcUWmAplgHJkBHNkllxgMJQB0JER0pFZeJFhdpkB2JER2pFp54M4EgPgkRHikWmXPocjMYAeGaEemXYpdDiSAfCREfKRWZiRKRyJAPzICP3ILNDIFI5EAIBkhIBkFmpkCkciAEEyQkEyCzYyzDUzAEIyQkIyCzdwVkkGWEhGYEhm+UaG2WgGeEhGgEhmGUemcEsCTCQjUCSznCNTI9mQwBEJGMks68gwJ80AG8kIHMmMc0QcDgEfyQggyYzL58SeDBhJRiBJZrlHprEnA06SEVCSWfaBmWsGUElGWElm8UemcUsAuCQjvCSzCCTTuCUAZJIRZpJZDJJp3BIANskIN8ksCsk09mSATjLCTjKLQzKNPRngk4zwk8wiEcyuM0BQMoJQMktFMsxyM0BRMoJRstz5IW4JgKRkBKVkufNDHNMBTckITmEWj2SY6zLAUxjhKczxFMx2GeApjPAU5ngK5rsM8BRGeApzPAUzXgZ4CiM8hTmegjkvAzyFEZ7CHE/BrJcBnsIIT2GOpxicOwx4CiM8hTmegpkvAzyFEZ7CHE/B3JcBnsIIT2GOp2D2ywBPYYSnsBBPYYCnMMJTmOMpORzkMsBTGOEpzOIRnI3CAE5hBKcwS0dwQgoDNIURmsIsHME5KQzAFEZgCrNsBKelMMBSGGEpzKIRnB/CAEphBKUwh1IwhGcApTCCUphDKRjEM4BSGEEpzKEUDOMZQCmM7rY4bbfAoQBtuKA7LhxKwVCeoU0Xg10XNhxiMM/gxgvihZaNZBjOM7T5gu6+cDAlx9sJ0AYMugPDwpEMM3qGNmHQXRgWjuCcb4b2YdCNGG4nxg1MJWFoLwbdjOF2Y9yMbH4Bjkg3ZLgdGTfYk9GeDEJTmIUjOAGIAZjCCExh3G39wS0BwBRGYAqzbIThHAEGYAojMIVZNoLTeRhgKYywFGbRCM7pZgClMIJSmCUjOK2bAZLCCElhFowwnOPAAElhhKQw7rwQt2RAUhghKYw7L8QtGZAURkgK484LcacOSAojJIVZMMJucEsGJIURksIsGMG5PgyAFEZAChNuExoengKSwghJYRaMMJwjwQBJYYSkMEdScL4QAySFEZLCLBhhOMmCAZLCCElhjqTghCMGSAojJIU5koITjhggKYyQFGbBCMNpHgyQFEZICrNghOE0DwZICiMkhVkwwnCaBwMkhRGSwhxJwflCDJAURkgKk84TcWsGJIURksKk80TcmgFJYYSkMAtGWIZbMyApjJAUJuV4ogkDKIURlMIsGmE40YQBlsIIS2GWjbCRHakApjACU5hlI4zhtgBgCiMwhVk4whhuC4CmMEJTmIUjjOFZAqApjNAUZuEIG9mhCmgKIzSFWTjCcKYHAzSFEZrClNuciwcXAKcwglOYxSMj+00BTmEEpzBLRxjO9GAApzCCU5jFI4xhTwY8hRGewpRzRDy6AECFEaDCLCBhONODAaLCCFFhlpCwLtMDfUTgiASpMEtIGM70YACpMIJUmCUkDJNRBpAKI0iFaTae8cMAU2GEqTAdyLdhAKowAlWYgyo404MBqMIIVGEOquBcEwagCiNQhTmogtNlGIAqjEAVZhkJ4zgcAKjCCFRh2nkiDgcAqjACVZh2nojDAYAqjEAVZpwn4uYMoAojUIUZ54m4OQOowghUYRaSMI6bM6AqjFAVZiEJE7g5A6rCCFVhFpIwgTsmQFUYoSrMuHMLcHMGVIURqsIsJGECN2dAVRihKsxCEiawJwKqwghVYRaSMIEbE6AqjFAVZiEJw5yfAarCCFVhlpIwofFJCMATCVZhlpIwgT0RYBVGsAqzlISNTFsBVmEEqzBLSdjIvBVgFUawCrOUhEnsiQCrMIJVmKUkTDL8EYEnEqzCcneKBvZEwFUY4SrMYhKG8zUY4CqMcBVmMQmTOCYCrsIIV2EWkzCcsMEAV2GEq3CLSZjExy0ArsIJV+EWkzBpXgnzg7rhpAJwtgbhKtxiEibh0TEccBVOuAq3mIThpBEOuAonXIVbTMJw1ggHXIUTrsItJmE4LZsDrsIJV+EWkzCFD/oAXIUTrsJP+1QglOCAq3DCVbjFJExBV+aAq3DCVbjFJExBV+aAq3DCVbjFJAxnvnDAVTjhKtxiEoZTXzjgKpxwFW45CVNwvsABWOEErPBsfCmRA7DCCVjhmXNEfMYNICuckBXutqnglgDICidkhVtSgp0IgBVOwAo/gRX8/YATEq7CHVeBJ1BxgFU4wSrcUhKmR94f+CDBKpzdjE/bOcAqnGAV7k6ywtN2DrAKJ1iFu9Os8LSdA6zCCVbhpxOtcEMGWIUTrMLdqVZ42s4BVuEEq3B3shWetnOAVTjBKtydboWbIcAqnGAV7rAKnrZzgFU4wSrcYRU8becAq3CCVbjDKnjazgFW4fSsK3fYFZ62c3TcFT3vynEVPG3n6MgreuaV4yp42s7RsVeDc6/4+LSdw6OviCO6TSp42s7R8Vf0/Cu3SQVP2zk6AouegXXapAKn7Rwdg0XPwTptUoEzDY6OwqJnYZ02qcBpO0fHYdHzsBxawdN2jo7EImiFO7SCp+0coBVO0AoX2fi0nQO2wglb4Y6tjJwIBtgKJ2yFO7aCp+0csBVO2AoXYnzazgFb4YStcMdW8LSdA7bCCVvhQo1P2zlgK5ywFS70+LSdA7bCCVvhjq3gaTsHbIUTtsIdW8HTdg7YCidshTu2gqftHLAVTtgKl9n4tJ0DtsIJW+GOreBpOwdshRO2wh1bwdN2DtgKJ2yFO7aCp+0csBVO2AqXcnzazgFb4YStcMdW8LSdA7bCCVvhjq3gaTsHbIUTtsIdW8HTdg7YCidshTu2gqftHLAVTtgKd2wFT9s5YCucsBXu2AqetnPAVjhhK9yxlZFpO2ArnLAV7tjKyLQdsBVO2Ap3bGVk2g7gCidwhTu4MjJtB3CFE7jCHVwZmbYDuMIJXOEOroxM2wFc4QSucAdXRqbtAK5wAle4ygPTdgBXOIEr3MGVkWk7gCucwBXu4MrItB3AFU7gCtcsMG0HcIUTuMI1D0zbAVzhBK5wLQLTdgBXOIEr3LKSkWk7YCucsBVuUQnDSfYcsBVO2Ap3bAUnyXPAVjhhK9yxFZwkzwFb4YStcMdWcJI8B2yFE7bCHVvBSfIcsBVO2Ap3bAUnyXPAVjhhK9yxFZzkzgFb4YStcMdWcJI7B2yFE7bCHVvBSe4csBVO2Ap3bAUnuXPAVjhhK9yxFZzkzgFb4YStcMdWcJI7B2yFE7bCHVsx2BMBW+GErXDHVnCSOwdshRO2wh1bwUnuHLAVTtgKd2wFJ7lzwFY4YSvcsRWc5M4BW+GErXDHVnCSOwdshRO2wh1bwUnuHLAVTtgKd2wlx54I2AonbIU7toJzrDlgK5ywFe72rOC1QIBWOEEr3KEVnKPNAVrhBK1wh1ZwjjYHaIUTtCIcWsE52gKgFUHQinBoBedoC4BWBEErwqEVnKMtAFoRBK0Ih1ZwjrYAaEUQtCIcWsnxcckArQiCVoRDKzhHWwC0IghaEZaU8BvoyQKgFUHQinBoBQ6QBCArgpAVYUEJxznaApAVQciKsKCE4xxtAciKIGRFWFDCcY61AGRFELIiMnd6PvZkQFYEISvCnQAGG7MAYEUQsCLcAWBwriEAWBEErIhs/IRgAbiKIFxFWE7CcY61AGBFELAiMueFuCUCtCIIWhEWlXCcYy0AWxGErYjMuSFuiQCuCAJXRObcELdEAFcEgSvCshKOc6QFgCuCwBVhWQnHOdICwBVB4Ipg7iIH3JIAXBEErgjLSjhOMBYArggCV4RlJRwnGAsAVwSBK8KyEo4TjAWAK4LAFWFhCcf5wQLQFUHoirCwhOP8YAHoiiB0RVhYwnF+sAB0RRC6Iiws4Ti9VwC6IghdERaWcJzeKwBdEYSuCHedCD5HTgC6IghdEe5KEXzxjAB0RRC6Ik7XimBPBHRFELoi3NUiDHsioCuC0BXhrhfBl9AIQFcEoSvCXTGCL6IRgK4IQleEu2YEX0YjAF0RhK4Id9UIw54I6IogdEW460bwpTQC0BVBbxxxV47gi2kEunSE3jpiYQnHl9MIdPEIvXlEBJJjBbp8hN4+YmHJSN+K7h8ZXEAixg8xE/AOEuKI7ggwzIsFuoeEXkTiNq7gw+wEuouEXkbiNq5g0CjQfST0QhJ3BBgGjQLdSUIvJXFHgOFjGQW6l4TAFeGOAMPAWQC4IghcETJwKqIAcEUQuCLcEWA470AAuCIIXBHuCDBMrAWAK4LAFeGOAMOcUAC4IghcEW7jCj5dUwC4IghcEVKN82IB4IogcEVIPX6ooQBwRRC4ImQAOAsAVwSBK8KdAoYvvBIArggCV4RyIRH3bACuCAJXhApkJAoAVwSBK8KyEs5xYwJwRRC4Iiwr4d3PCD4igCuCwBVhWQnnuGsEcEUQuCIsK+Ecd40ArggCV4Ryp9HhrhHAFUHgirCshI/cpgXgiiBwRVhWwvHJjgLAFUHgirCshI/cqgXgiiBwRVhWwvHJjgLAFUHgirCshI/crgXgiiBwRVhWwkdu2AJwRRC4Iiwr4SO3bAG4IghcEZaVcHyyowBwRRC4Iiws4SO3bQG6IghdERaW8JEbtwBdEYSuCAtLOD7ZUQC6IghdERaWcHwyogB0RRC6Iiws4fhkQwHoiiB0RVhYwvHJhgLQFUHoirCwhOOTDQWgK4LQFWFhCccnCwpAVwShK8LCEo5P1hOArghCV4SFJRyfrCcAXRGErgh3HthI3wjoiiB0RbjzwPDp3QLQFUHoinB0BRcHfkjYijDODzV+AeCHhK0I4/wQNyXAVgRhKyJ3fpi/4vkPN4JUANiKIGxFWFTC1c0rkf3ABRkpA7YiCFsR7jiwkR8RsBVB2Ipwx4GN/IiArQjCVoRjK7g48EJCVoQFJWM/IiArgpAVYUEJx4cTCkBWBCErIncHxeJgAtCKIGhF5CE/BGhFELQi8jzkRsAPCVqRlpSMuJEEaEUStCLdaWDYjSRAK5KgFelOA8NuJAFakQStSIdWcPGhF0oCVqTlJBwfECkBWJEErEjLSXiXOTKcs0oAViQBK9KBFQUHuRKAFUnAirxxfggDugRkRRKyIh1ZwZkjEpAVSciKvAn4oQRkRRKyIrOQHwKyIglZkVnIDwFZkYSsyCzkhwCtSIJWZDbuh4CsSEJWZCbGY4EEaEUStCIdWsGHbEqAViRBK9KhlTEFwA8JWpEOrYx4AUArkqAV6dDKSFMCaEUStCLdcWBjXgD8kKAV6Y4DG/ECgFYkQSvS7VvBxYEXErAiHVjBG5ckACuSgBXpwAo+6FQCsCIJWJEs5IcArEgCVqQDKyNeAMCKJGBFOrAyEgsAWJEErEgWWLuRAKxIAlbk6WqVkZ8R+CEBK9JtW8HFgRcSrCIdVsF5cBJgFUmwinRYZaQhAawiCVaRDquM9EkAq0iCVaTDKjgTTwKsIglWkQ6r4Ew8CbCKJFhFOqwy0qkBrCIJVpGnm9uxIwOsIglWkafb27EjA6wiCVaRoZtVJMAqkmAV6W5WGXFkgFUkwSrSbVqBxQFUkQSqSAdVRoIJgCqSQBVpGQnH6ZQSQBVJoIq0kGTMkQFVkYSqSCECXgCoiiRURQoZ8AJAVSShKvJEVbAXAKoiCVWRJ6oy8jMCPyRURbotK7g48ELCVKTIQ14AvJBe9i5dPMQXkKP73umF7zKwki3Rne/00nfJAl6A7n2nF79LHvACdPc7vfz9xFSwF6D73wcXwMuAF8A74Ikfug0ruDjwQnoNvLtWZcQL0E3w9Cp4C0g4TmyW6DZ4eh386V4VuOtIohvhCVGRKrBqIwFRkYSoSBVYtZGAqEhCVKQKrNpIQFQkISpSBVZtJCAqkhAVqUZXbSTgKZLwFKkCqzYS8BRJeIp0PAUnl0vAUyThKVKF/BDwFEl4inQ8ZcSNAE+RhKdIFZqlAJ4iCU+ROjRLATxFEp4i9fgsBdAUSWiKdDQF5+dLQFMkoSnS0RScny8BTZGEpkgd6pUBTZGEpkgd6pUBTZGEpkgd6pUBTZGEpkgd6pUBTZGEpkg93isDliIJS5E61CsDliIJS5GOpeA9EhKwFElYinQsBe+RkIClSMJSpGMpBs8RAEuRhKVIx1LwHgkJWIokLEU6loL3SEjAUiRhKdLtVBkZmQCWIglLkSbkh4ClSMJSpAn5IaApktAUacb9ELAUSViKNCE/BCxFEpYiHUvB20wkYCmSsBSZh2YpgKVIwlJkHhodApYiCUuROQ/M1wFLkYSlyDw0OgQ0RRKaIvPQ6BDQFEloiszHR4eApUjCUqRjKXirjwQsRRKWIh1LwVt9JGApkrAU6VgK3uojAUuRhKWom8DoUAGWoghLUTeB0aECLEURlqJuAqNDBViKIixF3QRGhwrQFEVoiroZHR0qwFIUYSnqJjA6VIClKMJSlGMpeLuVAixFEZaiHEvB260UYCmKsBTlWMqYFwz9UBGWohxLGfOCoR8qwlKUu1dlxAsAS1GEpSjHUka8ALAURViKcud/4eLACwlJURkPeAFgKYqwFOVYCt6ypgBLUYSlKMdS8BBfAZaiCEtRWWDtUAGWoghLUVlg7VABlqIIS1FZYO1QAZaiCEtRWWDtUAGWoghLUWx07VABkqIISVEs0CsrwFIUYSnKsRS871ABlqIIS1Es0CsrwFIUYSnKsRS8cVEBlqIIS1EskGmjAEtRhKUoFsi0UYClKMJSFBvNtFGApChCUhQLZDgoQFIUISnKbVHBWzcVYCmKsBTlWEoOj1VQgKUowlKUYyl466YCLEURlqLcLfX48kIFWIoiLEU5loL3firAUhRhKcqxFLz3UwGWoghLUTzA9BRgKYqwFMUDTE8BlqIIS1E8wPQUYCmKsBTFA0xPAZaiCEtRfJTpKUBSFCEpym1QGWkJgKUowlKURSMC779VgKUowlJUaIOKAixFEZaiTpfUww0mCrAURViKcjtU8AYTBViKIixFicBBdAqwFEVYihKBg+gUYCmKsBRl0YjAm5AVYCmKsBRl4YjAm5AVoCmK0BRl4Qg86EYBlqIIS1FufwreWqEAS1GEpSi3PwVvrVCApSjCUpRFIwLvolaApSjCUpRFIwLvolaApSjCUpRFIwLvQlaApSjCUpRFIwLvQlaApSjCUpSFIwLvQlaApihCU5R0foj7BEBTFKEpSjo/xH0CoCmK0BRl4YjAu5AVoCmK0BRl4YjAu5AVoCmK0BTlrqkfiUeApihCU5SFIwJvY1aApihCU5S7ph5vY1aApihCU5TFIwJvY1aApyjCU5TFIwJvY1aApyjCU5TFIwJvY1aApyjCU5TFIwJvY1aApyjCU5TFIwJvY1aApyjCU5Qaj4iApihCU5R2fohbAqApitAUZfGIwLugFeApivAU5XjKyEQD8BRFeIqyeETgbdQK8BRFeIqyeETgbdQK8BRFeIrSoZUbwFMU4SnK4hGB92ErwFMU4SkqxFMU4CmK8BSlQys3gKgoQlSUBSQC7wRXgKgoQlSUBSQC7wRXgKgoQlSUcZ6IJzuAqChCVNTpsnqYNKUAUVGEqCjjPBE3ZkBUFCEqyjhPxK0REBVFiIqygETgneAKEBVFiIqygETgneAKEBVFiIqygETgnZsKEBVFiIqyiETgnZsKMBVFmIqyiERw7ImAqSjCVJRFJIJjTwRMRRGmoiwiEXjjpQJMRRGmotz+FLh1VAGkoghSUZaQCLxxUwGkoghSUZaQCLxxUwGkoghSUblzRDzvB0hFEaSiLCMReOOmAlBFEaiiLCMReOOmAlBFEaiiLCMRAh4xqwBUUQSqKMtIBN64qQBUUQSqaMtIBN64qQFU0QSq6JvA+e0aQBVNoIq2jETgnZ8aQBVNoIq2jGTkI2oAVTSBKtpSEoG3jmqAVTTBKtpSEoG3jmqAVTTBKtphFbyRWwOsoglW0Td6HHNrgFU0wSraYRW8E1wDrKIJVtE3zhNhc9YAq2iCVXTmPBF2TBpgFU2wiraURODdrxpgFU2wis4CCzgagBVNwIq2nETg7bMagBVNwIq2nETg7bMagBVNwIrOAgs4GoAVTcCKtpxE4P23GoAVTcCKdler4PUPDcCKJmBFW04i8AZeDcCKJmBFW04i8AZeDcCKJmBFW1Ii8AZeDdCKJmhFM+eJOB4AtKIJWtGWlIx0bRqgFU3QimbOE3FrBGhFE7SiHVoZiUgArWiCVrQlJULi5gzQiiZoRbttKiMRCaAVTdCKtqxEKBwPAFzRBK5oy0oE3sCqAVzRBK5oy0oE3sCqAVzRBK5oy0oE3jypAVzRBK5oy0qEwo0JwBVN4Iq2rEQo3JgAXNEErmjLSgTePKkBXNEErmh3bb3CjQnAFU3girasROCNexrAFU3girasROBNYxrAFU3ginZwJYdnFmkAVzSBK9rBlRwu7GsAVzSBK9rSEqHh0eEa4BVN8Iq2tETgLVMa4BVN8Ip2eEXDQ480wCua4BVtaYnAG5Y0wCua4BVtaYnAe100wCua4BVtaYnA2yQ0wCua4BVtaYnAGfYa4BVN8Iq2tETgo8M1wCua4BXt8ArO7tYAr2iCV7TDKzg1WQO8ogle0ZaXCJyarAFg0QSwaMtLBE6L1QCwaAJYtOUlAqfFagBYNAEs2m1WGemZAGDRBLBoB1gMdmUAWDQBLNoBFgNvU9AAsGgCWLQDLAaeYaYBYNEEsGgHWAxcCdMAsGgCWLQDLDghUQPAoglg0Q6w4IREDQCLJoBFO8CCExI1ACyaABbtAMvIRwSARRPAolUW+BkBYNEEsGh3u8pIeeCIhK9ox1dGfkXAVzThK9rxFZwPqAFf0YSvaHe5Cr6dRQO+oglf0Y6vjPRsgK9owle04yt5BqfOgK9owle04ys4G04DvqIJX9EWmIgcT5kAYdGEsGh3ucoN/gaAsGhCWLQjLCPfABAWTQiLtsBE4EwsDQiLJoRFu8tV8I1VGhAWTQiL1oF99RoQFk0Ii7bAROBMKA0IiyaERbvbVfB9URoQFk0Ii9bOE/HwABAWTQiLdoQF52JpQFg0ISzaERaci6UBYdGEsGhHWHAqlQaERRPCoh1hwalUGhAWTQiLtsBE4jQeDQiLJoRFW2AicQaKBoRFE8KiHWEZac6AsGhCWLQjLCOtERAWTQiLtsBE3uCxNiAsmhAWbYGJvIH3RWlAWDQhLNoCE4lTSDQgLJoQFm0CJ95oQFg0ISzaEZaRXwEQFk0Ii85DMREQFk0Ii85Z4FcAiEUTxKJzHvgVAGLRBLFoS0wkzsPRALFogli0JSYS5+FogFg0QSzaIZaxjwg8kSAWnTtPxBEJIBZNEIsOnQGmAWLRBLFoh1gw89UAsWiCWIy7XgVfB2kAYjEEsRhLTCTORTIAsRiCWIy7XmVMwdATDUEsxp0BhgcYBiAWQxCLuXGeCMO6AYjFEMRiHGLBwzwDEIshiMVYYiLxleMGIBZDEIu50eMBxQDEYghiMTdmvC0YgFgMQSzGEpORVSADEIshiMVkgXGiAYjFEMRiLDGROKXMAMRiCGIxlpiM/QoAsRiCWIwlJhKnlBmAWAxBLMYhlhFHAojFEMRiskDvbABiMQSxmMx5Ipz9G4BYDEEsxhITiZPaDEAshiAWY4mJxEltBiAWQxCLscRE4qQ2AxCLIYjFWGIicVKbAYjFEMRimPNEHBMBYjEEsRh3f73GnggQiyGIxTDniTikAcRiCGIxlphInNZmAGIxBLEYS0wkzkozALEYgliMJSaSwRGKAYjFEMRiLDGROKnMAMRiCGIxlpiMKgCeSBCLYYH7BAxALIYgFmOJicRJZQYgFkMQi7HEROKkMgMQiyGIxTjEglfGDUAshiAWY4mJxPeTGIBYDEEshjtPxK0RIBZDEIvhzhNxawSIxRDEYhxiwXlxBiAWQxCL4c4TcWsEiMUQxGIsMZE4rc0AxGIIYjGWmEic1mYAYjEEsRhLTCROazMAsRiCWIwlJhKntRmAWAxBLMYSE4nT2gxALIYgFmOJicRpbQYgFkMQi7HEROK0NgMQiyGIxZxOA4Nr8wYgFkMQi7HEROK8NgMQiyGIxVhiInFemwGIxRDEYoTzROzKALEYgliMJSYS57UZgFgMQSzGEhOJ89oMQCyGIBZjiYnEFxIYgFgMQSzGEhMp4NTXAMRiCGIxlphInNdmAGIxBLEYS0wkTkszALEYgliMJSYSZ5UZgFgMQSzGEhOJs8oMQCyGIBbjLrDH900bgFgMQSzGEhOJc7oMQCyGIBYjnSdiVwaIxRDEYiwxkTinywDEYghiMe6OlZGpL0AshiAWY5GJxDldBjAWQxiLschE4pwuAxiLIYzFWGQicUqWAYzFEMZiLDKROKPKAMZiCGMxFplInFFlAGMxhLEYi0wkzqgygLEYwliMRSYSZ1QZwFgMYSzGIhOJE6IMYCyGMBajA/tLDWAshjAW4+5YwSuaBjAWQxiLOe1igXt8DWAshjAWo/n4Hl8DGIshjMVoMb4FxADGYghjMRaZjBQHfkgIi9HOD3E4AYTFEMJidOBsOgMIiyGExYT2sBhAWAwhLMYCE4mT0gwgLIYQFmOBicRJaQYQFkMIizGBU3AMICyGEBZjAqfgGEBYDCEsxgROwTGAsBhCWIwZPQXHAL5iCF8xFpdInJZnAF8xhK8Yx1dwWp4BfMUQvmIcX8FpeQbwFUP4inF8BaflGcBXDOErxjg/xBEZ8BVD+IrJnR/iiAz4iiF8xVhcInFangF8xRC+YhxfwWl5BvAVQ/iKcXwFn+VuAF8xhK8Yx1dwUpwBfMUQvmIcX8GneBvAVwzhK8biEomT4gzgK4bwFeP4Ck6KM4CvGMJXTGgLiwF8xRC+YiwukTirzgC+YghfyS0ukTirLgd8JSd8JXd8BWfV5YCv5ISv5BaXSJxVlwO+khO+kt84T4SunAO+khO+kju+grPqcsBXcsJXcotLJM6qywFfyQlfyR1fwVl1OeArOeErucUl0kBXzgFfyQlfyS0ukfiwyRzwlZzwldziEokPm8wBX8kJX8ktLpH4pMQc8JWc8JXc8RWcFJcDvpITvpI7voKT4nLAV3LCV/LxW1ZyQFdyQlfyzPkhdmRAV3JCV3ILSyROKMsBXckJXckdXcEHzOWAruSEruSOruB0rhzQlZzQldzCkpG9WDmgKzmhK7mjK/hgrRzQlZzQldzRFZyNlQO6khO6kju6gnOhckBXckJXcgtLJE5lygFdyQldyR1dwZlIOaArOaEruaMrOBMpB3QlJ3Qld3QFZyLlgK7khK7kFpYonImUA7qSE7qSW1iicCZSDuhKTuhKbmGJwmfh5ICu5ISu5BaWKHyUTA7oSk7oSm5hicJ5QDmgKzmhK7mFJQqnsOSAruSEruQWliicwpIDupITupJbWKJwBkoO6EpO6EpuYYnC6Rs5oCs5oSu5hSUKJ0/kgK7khK7kFpYofJRMDuhKTuhKbmGJwtw/B3QlJ3Qlt7BEYWyfA7qSE7qSW1iiMDTPAV3JCV3J3QaWGzRMzQFcyQlcyS0rURi65wCu5ASu5JaVKAzdcwBXcgJXcnd/PYbuOYArOYEruWUlCkP3HMCVnMCV3LIShaF7DuBKTuBKLpwjYk8GcCUncCUXgWPqcgBXcgJXcstKFIbuOYArOYEruWUlCkP3HMCVnMCV3LIShY+CyQFcyQlcyS0rURi65wCu5ASu5JaVKIy8cwBXcgJXcstKFEbeOYArOYEruWUlChPrHMCVnMCV3LIShYl1DuBKTuBKblmJwsQ6B3AlJ3Alt6wEHo2VA7SSE7SSS+eHuCUAtJITtJJbUjJiH3ghASu55SQK4+4cgJWcgJXcchKFcXcOwEpOwEpuOYnCuDsHYCUnYCW3nERh3J0DsJITsJJbTqIw7s4BWMkJWMkdWMGUMgdgJSdgJbecRGFengOwcv63/3z1otp9KZu2XP+8W5ffXvzlzz9f3Ba774dyU67a4m5Tvnj13y9uK/dHdqNeWYsv/vLfLxjXL/7y3//zP6/Olrr/9epiw/6tM3q7Kjar46Zoy8/l915t+VNl/Ca6rk35pfsnryLOvYqEK5pJFV/jtmwf63WvSuZVySNrKjebXfFlW6/7H0163yxW1GO5+uxXIr1XlCKykqYs2nJXr8tqVe/82jL/d8xuIn/Hsmnqptrd172qROZVJSLf775sV49fq/ax3rdVvTv0ajSeX7CbPLLGatOWTXFs6/Lbvtity3VfpfZUShZZZ91si76n3Xi/g8ginbY6bOpiXe0eepJ47n+4yN/0c/l9W+z7kqQvScbV0zWijV9NtzH+Uo3mkXLq+8P+W6+azPOs7gjCqGr2RdN2n6j/k3H/+5j4mg79N8sE8yuKdPZ9fag61yw2/Y+t/I8d+XpN+VAd2rLZkcjAb7wgk8XWtVuXTe/9cu+XYywyWDXlv47loa3IN7/xP1WkLzX113JTbvsV+c4dG7Ca+mu1/tavx/j1RL7boWyLVVt9KekHN+KpNhP5doeyva9Xx8OgLu+rm0jvbJuy7H9x7nc0QkYGu+Nu1KW8aMwjw9xxvy7aclVvjtvd12rdPvbD8Y3w+4rIr3Zsq17DYZnvo3F1fCk2x3IQ7bTfACMb85eyOVT9LpD7ryWyyNb3taweHtt+wBN+wIv0dPuZaeSUfkVx39m6edH2xxt+X8fyG1eUu07v1Ytuw2t01Z1XkCbJvPdl8lSnivtJXZ1kGCj8VqmlOFcZ95Pghu73QpFOUqyLfVdV+9jUbdsf93bz/Et9eWRfVKzXq8dqs27KvuN50twIuhusxmq8VAkGTt3xPF4XHvn91uvBx5N+LyBj3/a/jof2cdA+GPMiOHMDglcvOIus9b7td3bdruand9SRn22z6fx4d18f7r6T+Jt78lTkSL/Y9R3Y/0m78zGj6tjvN71autTApw4ltkF1tXSPFLv+a3khgJuzk8X1Ln6d0MuM72WRccqrs/2+L/ufz+sCuyNWoyvcVjs72AeDWd9LYn/Vw6Fser4r/ZlIRxijqjm29arebIr9oR+WmR+WlTw3hMj3vUxseu+p/feMHK89VbXt/bBdHpI3ookb23aVfS6/9ypi/nyc6ez0ppE/w12xfugPaYznH93VktG1rDbF4dCvyp9Gm7g2Zqtq63rTVv2hiN9vdRdORlVW3tdN3/2V9H01UpOtBvf+frzNzx8/cujs6i3XVb8d+B1ClxmdUNXAZ5k/NWA5OwuMa12uVrc61V9kufFr5eda45rEXb3uxWJ+49UmbuKawl1db1y8bMpDvfnS77h45q8cRM7SbJXNoW2q3UOoan8oyyI/ZFMW61Vz3N71g5S/vpdY0brcVNuKdtjK+5Q6MtrdHdu23q02VX8RjPldJMvF+UeO+326hb67giyr+Z/ORI4UV8Wu3lWrYmML+u/KvN+4O/c+rrZDWe0O5a5bb/jSq6/bivekLjJ+rop29dgbvPrhuFu7jqql3PR7VOn3NCwuBKwei90DWQv1HSw/d4LyNA7Wsd/MVjwcSPgzqDxWY7n6fFf3Vx38757x0wyK6XOsOq8xC3H6F3X+j+4k3xSrrlH3F8X9xew8bshmq7P/rySrC16sFSrSvbt6jjtUnb88JFTcEP5U3edd/bU/D/IXjoWKfdFq05fkD9Fk9OcaTsv8wY86MwSWn37o7PKLRzafbuRR9tdR/DF5JrJzheLsQqc+S0VOfFebsuh3A8Z3nPg63Mp5T6q/FJFFrnLaurZF8/nYGyV1R8I/BY6byEY5jPz+kDI/zyIj56ar7b4fVv2gH0meVvVmXd73o70fbkx0NXStVPgzZBU5jlzVm+Hvxv3oKuIVndjJivY/3P/qInLkbVeM+u+n/fc7Rcpu43V0df2FMj86K3NqSDq27Z+mZnX7WDb9ia323laLyEB+qu5Q3W2q3UO/xfvDlSxy2LyqN9tyd+z/DP74LnLWsqo3h7oZEFzuj75F5PrJua7Dqi/L7w10ZFN0Va1LWpffGejon/KwL/pg029LGWfnICvPQTZucNzV3DbHVXskczU/hqs8uqket7v+YMp72+7s/vhq1uV9tavooKG7ptDrvaJ/il6Fm+pAVrb9l40dPNhKLaGnpLi7OcyrL0XkpT5CA4SPFVTkwrarst9Se8T51Llk+tz5J9V7CqY0c8JfI2T6NK7gIjqmdlXTwMB8d2TmLDw+dHWVNuWh+vdQrr+KcI6xPHb042pG8Yf5I1J27gx4dLscrnTmPn+JnPx2fyXDbu2Ds9hpSL3blau2rfdjs2n/ZdXJnziLDW87F4TqXifvY8fzMPU0dMzP86g8cql3VR/7mTR+YIrMkrB1bLtJJxnv+gseWeTiqa3suKv+dSQTYU9WpA8eD229RZzNR/gqcoFoXbRFn0v7hOT0M1xmg3ncl+sqbZtid7jvD+O6TbneQmzcuGF9twGjZp/V5Wf/i3SONV5flH46U35yQR45ulmXd/Vxt+r/uH6ihzljyjySgK7Lu+PDAAAwfyWGqXNkjCTP63JVb/dNeTgc6mOzKumvz7T3DXjsD1SW/b5Le06tz/NBE7kAvC7vi+OmvR15fZ8L8MiB+7nKbbW7XdUbx6h7tfoL8TwS1Jxrbeqvt4AO6h6oSnr3LqltW+z76MH4Lx6J4tblfdk0/aUO5YfuPHKeuS73TbkqusEUAGfcX1wV0b/zvv8jCL+j6i7HiKvl0DZ1f4nbnwfE1tIW1abPjPwxoolcFlxXh1XR9KGAv7zI8vPwKHIpZE0Jgx/2zDnsiciwd6GedH2x2+nvxeXI+FT3Jzo+nhGR44zzP3SDjD4zzv28hMjcv15t+6beVn1Q2e159CqNlNgUvezGbg/yUyU3cX12V0nZ/y27rchePXGjCFcPWRzp9iR7NUV+q66mbvIx8AXp/Y4mcvXS1jYAYtKHknlkMm5X1aYsCC8w0q8pXlT9hX4r5lcU7wKHtiAIXRu/psig19T9BTuftHa7rWMrKe/vuyz2zab+Wg7yDqQ/OjKxw41LradeqB8gfF5jYr//ucahQH9gFJlaZqvDHuu1SBMbeZp636Ua1rthddIXN6c6uuDQHcvkVRn/Mz9VeShJjf4PErmEsf6+K7bV6gnn9jtxP9s6MvvFr7FHc/s1+5mNkXsrTjWP4yTuL4gJHvlNXa3dAAvV6I8cIkHDqcbxd/fTqiNXhk91njIzQKV+erWIHOOURR+edvv3vc4w7leh+RPdsXHegOQ8Z5KnaYm5ufzHeXE8cuDTGRobrPhZ792xiFH1+fGyH9n81h6Z7jwEHd4PonSkpE1p/7c/+fbTE89LU5GDn666+6bePrbb3oxJ+RkfeeQ2nXNlLh2lv0zTbbf3Kox0nO2+/W7pZBcb3VBhsILW3090XkGLXPkqd119/eEy94fL+jxcjmzZrkKXQt5f/vHhRyQWtzuM+vMCH2renH9sdVrwEur0L1Ke/8OcU5JvzmthWaS3HlbFvqR+IX0c352PEV9VUz6U3/p1+cOYyMmSqwukn3Wnani1RbamwdY5v88V59AkzpkZ4rzAI88EXGYn+CrZ+V/OaxdS5Odf4/Tt5TnNUZ4XP+V56Vua83+cc9TUzZnSZGcUzs5/YicZSpxCpdLn31mfE8bPUrsDE0//Ednquo9yzg6icVT53XIeuVzoBmC16+76UcHvTiKToEEOnextnTzHAHXJnY+U6QIMyfTxu+Jzfnpk1tClQpg37GnWkX083Mvn73HJ+NlTI7cenmukSavCnztpednYENlKXa39zDd/1VpHLoCfKzpzZZLO4zfWpB+5bNCn5D6VEpEzjHOFm+Lf/RUlnxmJyBmBq4xW1d3G6P0Ysc2kJYsHyt+tmUdil/Jb26VCdB1BW37rTyf8zQd55GLyME2D+U2MneMgjxyjYb4o/H1RKjIjcizvQ9z4pDZyb4qr7K4pdkMS5NOSyIGaq+5M2Ojg1vdbEwkPXY2D3dk+KEitaJCB6M+NlEmprtuEQ76av201kkF7daEQ7HMLnfTZRmcZPqqSccHyvhp0Ov5SzDn2ZpHxqKvu7ntT3pN9Zf4CRXSD2K3XVVOu2kGiYeZLzCJjb1fffdWQZQ7Pd+Wlg40XSF/Ta/iRkbKrZVd+a+nGL3+wHQkJu6qasjvcYbCNzB+jnAlcFrkGc199K9erug+1/PReps+z6MiJ/X31zU3TqnrH7bayIS71YyiLXCvp1dtNBsvdetCWmR9QWeTM6n7TX1LnPiuT8jx8VuehcWxg7TYz98T5Gfr85rx1ItbF0d5onwpFTr9sPd3+6J4L+b+IziN9p8vU7OdF+usvIjJNyFUzGOT4m2uFjv1GXVX1nmwE7Y+0I4Nd3fTpeXcDmTeszs/j1tMszZwnVSZyADo888LPRjgvN2SRxMPVdks3hfged57CZ5ELvvfHnW1sw4maPziL3E50f/w3GXn6vEJHHhbxcD5vAGT3+ntyI5vUw9jxBaq3Qzy2rtWm3g3W2jPZ2yEdN/TsKhu+YeZ3tJmOC8cPZQuTBP1dJrEV2R520GH7LOa8+pDpuDH7w8iZD/7W18gW8FC2mwLJ6yVFn+XFhaauTprykfnjgCwymnQV1V/LQ/tlPzhIwk9xifa1blRxSoXui/PTciOjZlcdHVJ43yy2jiEY6O1iOUUfxk4BM48cTzyU7b5oyGpa5o95skjGdqlp0Eb9MJlFLmbZ2vopI5kfwbPIRO2unqb8gn5MPw0ii8zVfihbN0Lvp494L3hewWWRUO2hbN3AqxyOt/wk9zNlYZFnGnX1tmQx21+OiMS652rQNMwH/joyn/Gh7PJMtzVsq14fE//16GDLn4LF1vGlO6LFjnpJpyD9Q4nyyK2kD001mnvjJ3blkQdvPRzLw+GJr/cnYT5rjtwr+Fgc0NaxzN87lkWmA3Z10e3pmT9YyCLT9h6Lw2BIL3qZZqfOJTK77rE4PJYFXcv0NwLFtaNhJcxfuGXqvO7Fzzt4biJf2FYMdtgJf8VERZ6g4WpDlNEPmpF1VevyvDpKFl78te/I/RmP1cPjZnDckJ8PpSNT2h4rAn38DXAiMi5SMib8/G4VCQgGBxH6C2YZP7kq0+dJ6NPq/mkEp85beXTkdLezCFJZ/WE+j9xz11U1OJ2C+eMufib5PNL7TjmsvQp75zecPsiZ7PBIMo1yY/0mnFIJDcXc308uIgEJziVhPsMUke2/q4ru++J+s5CRw+iuIgBWM39xOTsDR3bmjJyrs09eoGTkj9KbAPiOf9lypM41nn54FTnLoFsk/Q1NKnJKVm235boiIx/pJ1uYm/OqQmRArHarzXFdPlbrdb/LlH5XYCIXxE61HcrNfb8uP9MlcvhO553c73rledFEZmf8fe6kZH5h0+f/iJxTdrvs+stu/o6jm7N3Rc7ru9q+HruO5q44bsEgk/m4lUcu/lS7/bG9HZznY3o7yyMbV1cVHRVyfwVDnr1JnvdpyvNYxUQeZWSNfCnIhmPuj+3kzeUnTKuzvwOJ+8sJMjJJtzvW4/8v7VqWG8eR4L/MeQ9N8Kn9lY0JBWXBMsYyqSYos32Yf98AqWJnAdBsOvYwEX2YrqZIPKqyMrOmtYhN2ZO4ZtnLM3AKAolQo3NItGZPIp82/Qr8NgV7Jfp+eLF+HqfxVQfDM5RshDnfT1Ov4LgGXRoPpFTf+YcTszpuMRC5ErZsP/5lCtumIwUQTsdBSIR023I+p3nGnV6I3KEhBSbOB3VT6tRSoTFeSxY1zgdhtx3O/TBHrw1h6oIkEDofCI4R/KDwbjJjkDizi4wdlZhGsG2yGnR+peuNp7+i2rJBR+YD6cPofIaap8in7I7M0wYL/KkFCWJIsIiAg8q1ghRZOf+MbVAos06SYhvCTT6LNaKNQ0FKMZ2XtoL+kAg60BsqwBjqKyILhT0KA2ic/XUIEdBrIm5jFcgEKPiHGvtkLeDHow/WjB+6kkMKZnFgz8WPXsmsGqOOe/bLbTJmTbVD1wJDtpWcH+yi0gdkDjXiKNWSWKzzt/7ihkvaZsW7iGyPhmABbY7PZ7yODvxzZYzbEewoSFuWLVTs3I5VnSG9g5y/XXs35I5lhCRJNzXnp/7s9MQDFJIZtmj1m3F7tHtQZ2VIdZTz0zgmrZECQWVDCu5CqCVOlPDyYrefIPH6iZBXTkr3nA+oeYZRgPRMQ6r3nJ/HW9opQyjZkOI25+9D5vRDE3jDVgX+04WTPfp9eMyQErfQVu8j3UGB51VRCIBEEpffrb397j1nnrPC+6cl/UAixlKBh3NhxGZFMI+OJGq+26/jMCbafPwkJXn9h1DzeHzZ7EWOMSKHgtiS3BOPkEP/6S6rIjyNirQb8uZ8t1/nyEfPYDuuFOSiJIlW7/Zr6D+fNl3wxCQ98kPi8vPuXt697aeXt8CU1MgrrHNumccRnXbdNMpZh4wYpUMoFSt2e0eSzxiixZegwZ5QKUhHSXJcVmWvH4drxIrGaoV9OOfngHP2bsi3OTCX57ZzcuH/wAtfwEyzo5qixClJMHM9Z2MlUIWt9dZw2yWTZpbYLK2Ez9TKF2pJDnCInKwi3NFGlGktKeWUiE/Juxi9Jbmx11Hn2MrhTr4Td0Zex8tqNqLiqckNEo9dRRfxy9C9dgScySNnvCTrRVGdG3k0+q1dnlOe8aY+8C8vRpyVdXsrD8iu60t8CmIpQJYVjyiRaEIR4NgNe1n6Sd1KWAN0+4nAXZ0f/fuafqxozVaS6T4yloolyYtRQVebgmxkPLXJ1xgi5zI6zBoMCWtArOwRgDUyeZd8xH7QBdqjFGQLeY2yiTt0OojLjkSfHy8+58dd4lVSkXLLNd4WAB8Nb+CWhI4foV7HhM+CpLGOfmm/jlHrvUG9yYGU/Hz0v652uOgWdo2k5o4EJmIHwQpZDg3Zy/2w3veXqE2Ighz2uz3Gd5wz9l1YOgpDuCRpRB9uyL0uNfuLjpRQB6ofitFLBorK2QoL/5ZdBmO4gIMzvm5/IpOJ3YLj2b1+JaRUg13QUjpnJdlA/hjv3h63J/R60SOOTSauH+OnnTXwgsefIXUFH8EpbLNx0/wvXA6kl9nHffq4T4EgVeqfh1J/8mwY+lBlj9PZTrdpvK1/HZ8P66SOpOg8is3oGkJciNyZEih7B2HOR/a+f1fBYQ1neCBYfxmhQ5fkof07ejoRAI83ssn2GOFqh7t2r0ABWEuuvsEuaSsZk4ya/bT215zb+0hMJdUKOeVXiV21mjxnh7Ef3Eef0KtxxbVC82u7Xae/u52Qz5tgPCWS0ysxg2jlvGqFy92SwH/KfccsRJ63Elu6+of8QSyCaxmEVws5qBZf/1oMLWvRwNVSedUy/KYR2ljzYxdzCRNIGHCNCN5aEQx3MlmpIxPV8DOPYYscU4mUQfi4JPuzIWA/fGUTORwhUJHleoiXUEaQSNyQzdQQ6CEgzjxbhRBAQ7ZCf4ecrL+Ng48OGiRDfuP1rT4vGVRGzb6lo4WbxE7zV2B3P0mwUZpXkXBZCL15bKnfjCz7lqRkr+jG2izIPh3epNU3PvbWNEiOf1TYtWQHYgsXjDvy7w9FeyQb83fdOU6xFwBCKCVZb6/xxrN79hJR38LeoQ+S0jN/eRTskablacjYvR0tkhr29nr0JfI/HZsfFQkv7xFzG7tEelVFdiaGcdW2RXkTgrciSGvlDG933yKxw2kPu4RTjG1IdGgYk5q/wiZBS/8MbcPYoIr5wCYu45zxGG3QxOpAFlHjq9fKd7T3aIX41JKkiFHfCajrbcn+4ng9Z7I75VVOPsuQGDM1iIQcSO5iOP2TfKzslKyf2xSZzF8NBRIONJnDrXWOrm8QvSBP+mBTOrmz/bDz26jVlEhTPpB6xY1UoVcBgp+kgeqtn3o9SdMclLky9+1SNSHuWUlyCzKVuk321Wk8DN1EWxKKDRLAXNmB6C4pZwmh7DCH8Y3uMiSSvbpRGjtuQTxihrbJ9vqikPiYZCv4EXIYM4+IRVJHHjOPeJN9uSczyGvk5HUkC+sR0PcfNl0yNZ4+HdlUlogv0xhZgWHu3ZLJySPa5+jOAcKJ3iA62pKd9BAwqdBwb1Qk8yl3D2EpcCCbaiHL7gM8Erfia0zbO3qL5dAf/IxSznZkQvPzbqevyfrInbhqFNmVjbX33dUJhwpDI7lLSeZwK6UqO18QvyqJOq7BLtOox84ViJ8Vot6oSKR1jflkBCKKn0j+8SNcZgQi9qJJLC0/9rfGPLUjAZzET96oBjYZ48VGhF6DSoJSwJKSfVnbSRlPQsWTkrwDJ3ue+kXf79gVJvl2qbNUgclLId6UFYk2ZSppbHc05Dk72YTgiGjngbQQnmxC59D+ut8Jk8kaayzJOnpRhatDw9jYESK9U7cwWck2shzNt54qHXFZILnXkLaAGx1UbxucXbKzZ+hjIcQ7hpZjyP1sVAAapFWUpGxFYrrhSUzkxZHo+hYzTHUcXkd/+oqkW5g5N2SJuYWM7bIqPKkbkoa8hcq2PfDkIB1Mtmh5QqtBHVG521iT0tUwAn36tOdjMHE4bu2tjG4PJYBkehkiz5kReZ06gPlQKUkKia7iIdyWgnGQRdcae+uhbSKtuMA0SGwzpJ5wjbqGyp1keDt2JE8sO12vQoFQQ7bu10gR6KzsiL4TJsjINJSC5DL++4ZZ9PoKwjqc5BNMKy6qP55y5eRS1Sx8h6hbQ4IVk50nFxhg+g0hlkxWVqEUmqLpOtgp6EgoNRD+1WaEl0wGiC1tGjRlPdDPodMpxAEa8Qxv2RtwXLaBYHo+n1F8XsE9Sjbnuw+Lm99kpFfqS69S7v8jZu+/BiU5Uh6D3F2YqbixAmrE0bwVU8aORO+2wG6Yx0+nhUgGN7oxOwy992TlXyL7OfpfGh+EntRaEy9j0wkdmtzZ0T+SOZqxk9CS2uUtqreDd7P7dHPkqor4JJk9PCLebDQ8A6meB1LGtMXSBBgkDX3rR85j9qUhoYHsWW69O53IoDtAIV700uTuSPvoLXDsRa+GE3wjTuwYr0jugl2TbQeJmDrG441QC+eAFPNvURM3avRTNkKZKNnzZI+ZEmGwgUem/97+vNtoWGdhlC0Sd9J7O7n+GtKOq7udxn46x4yOGtugHYnnefHJ1AccvkES5fLPHDdRdUYWOHus7JbDKoLM2EI+nvEzwDOFfl+p5RgaURQkZrBXCOpVqbzme3GyrwpxA1Jl6e1KpjivGtBoUiK208hkIoTLiPLVYB86UEZIb3AaiCG7shAr+9oU8Z7+DomFHB5u0lo1JJnA2zk2+jLYqzVkv8/bOULeDN5ZhlTkr5WiUART8qFyKqTPi4ytKHJX6CfL3VcGP6IhHY0gVhaGw9yBlOj4nBWmmuv5rTBZK0zsMNGpwrxhKuorYk0kqleyrNkDZl8cXgEk7dPbOShrxnuW+4Cc+wOpDlsjRuYlBoFawy+5jOeZwWcypKw3hAozF9VnULZm9PpYaRRzqrpQX5WEXPzbuPibG4bYfRIPWyl4SvYMcVEiVKKQoyJ5Hv7dXm3UTDeYUZlauM8kxO2v0VjxplCeMeR6vY7LWrOdbXxvIiOiI+dLxHBOgfdcISWmIbuFIVqKoCHy8I3HOn0JR1I/IGa1Mk/LsGm3iptFDvFSZnf8OD3huKl7hjzhQrBcHwThgELm6xnS4jVE3ajEPplyYlAwZTqBcUjIJUR+t0+YxdgkZiuQcZqzHwaTVpINu8aK4eYKz+KGHJ6yR4rLNYPdroo9RhORi0HCSlns/grsOwvx+r/6X+njYV1Oeo1s4V7G29fbqLl3NYoID2yqv4YL9OnEnxQ3c0VaaWzhEr95dGDvyMbsFmrzn0mfDRcv2evYAqahkOvKJibJfG4kwHRsDhGihJpU45+YyrHnUogUzNmS5KZAulpB2umu4WKQGsdTtKQAKs0vK0zvG7bi3lt/8dcrsHdTiO9lRfaCNn66bvYhZcjIdKCS/g7T/WW+TxFUjmcaydby99PKPn4Z75GkAQHyghQBztbPx1d3tcd4qIFBd6GSFHGs4WIja4MgT0nWNPObvkgbzC4P5HKd36ZxjtZ9Uyr/Je6lp7sHL7bC7IiniIlkKEJL6tLXf+AYnCePt/581DU5av1LEvpZA4auStblvEDhRkGStnLeqFg+kKnHJqzQLWssx0nsaAuTGJoWiIMUJD4zj5fL1cqQd/0LUU5O+ihv4VIkH1N9UsWKoWIMAxk2JCM768aNx4bMtzLiNlKWYh8lAHxDL5cnc+MNQqsVSRKbtVSiwiXTkjYm83hzv2y0ghHmJevyeUwmhNSYd7TSf2tJ+HIevY1GguEhRWYN2XnI+JpkRiDpVTZP/eCvfdakpcKBQy1Jh4wHohR4pRZCVank7VViBV5LwVhL96s2ovUUcmAtK7eWSQa1HMa19LjrdleIyv8jyGstzfVGqudGKEON5PWN2TWjoiKVON3ejSPbhuFVrJjdEz0YooAtWe3kSBV4znf0d1/jbBYGGsTCI4fNMDBaaoiALAnDHoqTi7xDUMtPjiKdJ7d+gLT2QvMbEq9Os0+0gCl3AqucpULorkShXAs0UBf7H2RBC4mgljh1JSLoWpTOzS6Clr8lnky1bKf6UMkSF1m0cCAbseFvRGfdlPvKFsJC9/hbBxJWCu8knQKA0klR4tUiz66LfVvv1vXy42UuSV3Lbhbbkrrd9+4+6V62rAjIG2lKd+JC3bGXRozAKv9HKQPkBZYH+cSkcVWGtV7VyoGbe8z74PtX+9L76B7Byp9Ene7DgysQGy4hs6qQD2NkoZW/lzm3aVLuEDqwyeIwMrSmLOQPJDt0i/9gwmpUCjFXUvq3RUuHjRdqFisJE2zBst0QpIGy336NdrND8OJbD1r30qfyQkwYC9KW9T7pUg77BRWZXd9np4PA+SrnoewaOaNquYZr+eq1ke1u9pteTgsZFFNLjlrLPJ+63Q8J+X86+YPofxuZDdJIetFIetGY/fzYTSFk3quQRw5ks28do7F+lsRLr8EFeSAvsDVezKpCy4COzBsChTLKP7BjwsUI+m692nBbiMLakLXDGi6jODSYrhtSD7Jpz8cl2g14jJNA4R4pt3ORAdSRfaE14MOFPvqhaONKEqmW0zGxdUbZUkH2vJbTMTfwBkMZcpEuJxFTraLFBGNFyVxFImDLaVPMrg21fFh0yGlIOH45vYRZK9dw7T0kpUHhl8RGuLMi0/3ltA0AefIS0K+IPFSX0z/8fGQM1qSpwXI62//xrXDoJ/1SA/jc327Xr3xQVOjWJP1lC7r+l4+Jo6bI4nk5rafyk4A4VYmse5ZTdv5yhTVvQ44RXk4PRlL+6XByEpl7LaeVkPQkIC4fEiFdTvv0vnxTERN/+hzaY/7ThkTlTE0O0olDp+8AFzspEVtOoZTPx0MMvCYx3OX0sCN/EhK/OwmrLycoxJ+ExeFeZB9mOYWLJ7URw9Od5AptofKPhqBTRbYkltNDQfvkpsAWDJkUh5DrrIl8RNQekZzD5fSAePMR8cgg3aqWU4CYnrxGxF/ZtZjadOIdS6Ziy6QdimoEnzsSfv09lg9DwXcUnPOb0ZLcCfVoBdno++eZgUr/zbDx/vzXHzd3s1c32D/+/Z8///77v/s6Aas=\";"
  },
  {
    "path": "docs/api/assets/style.css",
    "content": "@layer typedoc {\n    :root {\n        /* Light */\n        --light-color-background: #f2f4f8;\n        --light-color-background-secondary: #eff0f1;\n        --light-color-warning-text: #222;\n        --light-color-background-warning: #e6e600;\n        --light-color-accent: #c5c7c9;\n        --light-color-active-menu-item: var(--light-color-accent);\n        --light-color-text: #222;\n        --light-color-text-aside: #6e6e6e;\n\n        --light-color-icon-background: var(--light-color-background);\n        --light-color-icon-text: var(--light-color-text);\n\n        --light-color-comment-tag-text: var(--light-color-text);\n        --light-color-comment-tag: var(--light-color-background);\n\n        --light-color-link: #1f70c2;\n        --light-color-focus-outline: #3584e4;\n\n        --light-color-ts-keyword: #056bd6;\n        --light-color-ts-project: #b111c9;\n        --light-color-ts-module: var(--light-color-ts-project);\n        --light-color-ts-namespace: var(--light-color-ts-project);\n        --light-color-ts-enum: #7e6f15;\n        --light-color-ts-enum-member: var(--light-color-ts-enum);\n        --light-color-ts-variable: #4760ec;\n        --light-color-ts-function: #572be7;\n        --light-color-ts-class: #1f70c2;\n        --light-color-ts-interface: #108024;\n        --light-color-ts-constructor: var(--light-color-ts-class);\n        --light-color-ts-property: #9f5f30;\n        --light-color-ts-method: #be3989;\n        --light-color-ts-reference: #ff4d82;\n        --light-color-ts-call-signature: var(--light-color-ts-method);\n        --light-color-ts-index-signature: var(--light-color-ts-property);\n        --light-color-ts-constructor-signature: var(\n            --light-color-ts-constructor\n        );\n        --light-color-ts-parameter: var(--light-color-ts-variable);\n        /* type literal not included as links will never be generated to it */\n        --light-color-ts-type-parameter: #a55c0e;\n        --light-color-ts-accessor: #c73c3c;\n        --light-color-ts-get-signature: var(--light-color-ts-accessor);\n        --light-color-ts-set-signature: var(--light-color-ts-accessor);\n        --light-color-ts-type-alias: #d51270;\n        /* reference not included as links will be colored with the kind that it points to */\n        --light-color-document: #000000;\n\n        --light-color-alert-note: #0969d9;\n        --light-color-alert-tip: #1a7f37;\n        --light-color-alert-important: #8250df;\n        --light-color-alert-warning: #9a6700;\n        --light-color-alert-caution: #cf222e;\n\n        --light-external-icon: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23000' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>\");\n        --light-color-scheme: light;\n\n        /* Dark */\n        --dark-color-background: #2b2e33;\n        --dark-color-background-secondary: #1e2024;\n        --dark-color-background-warning: #bebe00;\n        --dark-color-warning-text: #222;\n        --dark-color-accent: #9096a2;\n        --dark-color-active-menu-item: #5d5d6a;\n        --dark-color-text: #f5f5f5;\n        --dark-color-text-aside: #dddddd;\n\n        --dark-color-icon-background: var(--dark-color-background-secondary);\n        --dark-color-icon-text: var(--dark-color-text);\n\n        --dark-color-comment-tag-text: var(--dark-color-text);\n        --dark-color-comment-tag: var(--dark-color-background);\n\n        --dark-color-link: #00aff4;\n        --dark-color-focus-outline: #4c97f2;\n\n        --dark-color-ts-keyword: #3399ff;\n        --dark-color-ts-project: #e358ff;\n        --dark-color-ts-module: var(--dark-color-ts-project);\n        --dark-color-ts-namespace: var(--dark-color-ts-project);\n        --dark-color-ts-enum: #f4d93e;\n        --dark-color-ts-enum-member: var(--dark-color-ts-enum);\n        --dark-color-ts-variable: #798dff;\n        --dark-color-ts-function: #a280ff;\n        --dark-color-ts-class: #8ac4ff;\n        --dark-color-ts-interface: #6cff87;\n        --dark-color-ts-constructor: var(--dark-color-ts-class);\n        --dark-color-ts-property: #ff984d;\n        --dark-color-ts-method: #ff4db8;\n        --dark-color-ts-reference: #ff4d82;\n        --dark-color-ts-call-signature: var(--dark-color-ts-method);\n        --dark-color-ts-index-signature: var(--dark-color-ts-property);\n        --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor);\n        --dark-color-ts-parameter: var(--dark-color-ts-variable);\n        /* type literal not included as links will never be generated to it */\n        --dark-color-ts-type-parameter: #e07d13;\n        --dark-color-ts-accessor: #ff6060;\n        --dark-color-ts-get-signature: var(--dark-color-ts-accessor);\n        --dark-color-ts-set-signature: var(--dark-color-ts-accessor);\n        --dark-color-ts-type-alias: #ff6492;\n        /* reference not included as links will be colored with the kind that it points to */\n        --dark-color-document: #ffffff;\n\n        --dark-color-alert-note: #0969d9;\n        --dark-color-alert-tip: #1a7f37;\n        --dark-color-alert-important: #8250df;\n        --dark-color-alert-warning: #9a6700;\n        --dark-color-alert-caution: #cf222e;\n\n        --dark-external-icon: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23fff' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>\");\n        --dark-color-scheme: dark;\n    }\n\n    @media (prefers-color-scheme: light) {\n        :root {\n            --color-background: var(--light-color-background);\n            --color-background-secondary: var(\n                --light-color-background-secondary\n            );\n            --color-background-warning: var(--light-color-background-warning);\n            --color-warning-text: var(--light-color-warning-text);\n            --color-accent: var(--light-color-accent);\n            --color-active-menu-item: var(--light-color-active-menu-item);\n            --color-text: var(--light-color-text);\n            --color-text-aside: var(--light-color-text-aside);\n\n            --color-icon-background: var(--light-color-icon-background);\n            --color-icon-text: var(--light-color-icon-text);\n\n            --color-comment-tag-text: var(--light-color-text);\n            --color-comment-tag: var(--light-color-background);\n\n            --color-link: var(--light-color-link);\n            --color-focus-outline: var(--light-color-focus-outline);\n\n            --color-ts-keyword: var(--light-color-ts-keyword);\n            --color-ts-project: var(--light-color-ts-project);\n            --color-ts-module: var(--light-color-ts-module);\n            --color-ts-namespace: var(--light-color-ts-namespace);\n            --color-ts-enum: var(--light-color-ts-enum);\n            --color-ts-enum-member: var(--light-color-ts-enum-member);\n            --color-ts-variable: var(--light-color-ts-variable);\n            --color-ts-function: var(--light-color-ts-function);\n            --color-ts-class: var(--light-color-ts-class);\n            --color-ts-interface: var(--light-color-ts-interface);\n            --color-ts-constructor: var(--light-color-ts-constructor);\n            --color-ts-property: var(--light-color-ts-property);\n            --color-ts-method: var(--light-color-ts-method);\n            --color-ts-reference: var(--light-color-ts-reference);\n            --color-ts-call-signature: var(--light-color-ts-call-signature);\n            --color-ts-index-signature: var(--light-color-ts-index-signature);\n            --color-ts-constructor-signature: var(\n                --light-color-ts-constructor-signature\n            );\n            --color-ts-parameter: var(--light-color-ts-parameter);\n            --color-ts-type-parameter: var(--light-color-ts-type-parameter);\n            --color-ts-accessor: var(--light-color-ts-accessor);\n            --color-ts-get-signature: var(--light-color-ts-get-signature);\n            --color-ts-set-signature: var(--light-color-ts-set-signature);\n            --color-ts-type-alias: var(--light-color-ts-type-alias);\n            --color-document: var(--light-color-document);\n\n            --color-alert-note: var(--light-color-alert-note);\n            --color-alert-tip: var(--light-color-alert-tip);\n            --color-alert-important: var(--light-color-alert-important);\n            --color-alert-warning: var(--light-color-alert-warning);\n            --color-alert-caution: var(--light-color-alert-caution);\n\n            --external-icon: var(--light-external-icon);\n            --color-scheme: var(--light-color-scheme);\n        }\n    }\n\n    @media (prefers-color-scheme: dark) {\n        :root {\n            --color-background: var(--dark-color-background);\n            --color-background-secondary: var(\n                --dark-color-background-secondary\n            );\n            --color-background-warning: var(--dark-color-background-warning);\n            --color-warning-text: var(--dark-color-warning-text);\n            --color-accent: var(--dark-color-accent);\n            --color-active-menu-item: var(--dark-color-active-menu-item);\n            --color-text: var(--dark-color-text);\n            --color-text-aside: var(--dark-color-text-aside);\n\n            --color-icon-background: var(--dark-color-icon-background);\n            --color-icon-text: var(--dark-color-icon-text);\n\n            --color-comment-tag-text: var(--dark-color-text);\n            --color-comment-tag: var(--dark-color-background);\n\n            --color-link: var(--dark-color-link);\n            --color-focus-outline: var(--dark-color-focus-outline);\n\n            --color-ts-keyword: var(--dark-color-ts-keyword);\n            --color-ts-project: var(--dark-color-ts-project);\n            --color-ts-module: var(--dark-color-ts-module);\n            --color-ts-namespace: var(--dark-color-ts-namespace);\n            --color-ts-enum: var(--dark-color-ts-enum);\n            --color-ts-enum-member: var(--dark-color-ts-enum-member);\n            --color-ts-variable: var(--dark-color-ts-variable);\n            --color-ts-function: var(--dark-color-ts-function);\n            --color-ts-class: var(--dark-color-ts-class);\n            --color-ts-interface: var(--dark-color-ts-interface);\n            --color-ts-constructor: var(--dark-color-ts-constructor);\n            --color-ts-property: var(--dark-color-ts-property);\n            --color-ts-method: var(--dark-color-ts-method);\n            --color-ts-reference: var(--dark-color-ts-reference);\n            --color-ts-call-signature: var(--dark-color-ts-call-signature);\n            --color-ts-index-signature: var(--dark-color-ts-index-signature);\n            --color-ts-constructor-signature: var(\n                --dark-color-ts-constructor-signature\n            );\n            --color-ts-parameter: var(--dark-color-ts-parameter);\n            --color-ts-type-parameter: var(--dark-color-ts-type-parameter);\n            --color-ts-accessor: var(--dark-color-ts-accessor);\n            --color-ts-get-signature: var(--dark-color-ts-get-signature);\n            --color-ts-set-signature: var(--dark-color-ts-set-signature);\n            --color-ts-type-alias: var(--dark-color-ts-type-alias);\n            --color-document: var(--dark-color-document);\n\n            --color-alert-note: var(--dark-color-alert-note);\n            --color-alert-tip: var(--dark-color-alert-tip);\n            --color-alert-important: var(--dark-color-alert-important);\n            --color-alert-warning: var(--dark-color-alert-warning);\n            --color-alert-caution: var(--dark-color-alert-caution);\n\n            --external-icon: var(--dark-external-icon);\n            --color-scheme: var(--dark-color-scheme);\n        }\n    }\n\n    html {\n        color-scheme: var(--color-scheme);\n    }\n\n    body {\n        margin: 0;\n    }\n\n    :root[data-theme=\"light\"] {\n        --color-background: var(--light-color-background);\n        --color-background-secondary: var(--light-color-background-secondary);\n        --color-background-warning: var(--light-color-background-warning);\n        --color-warning-text: var(--light-color-warning-text);\n        --color-icon-background: var(--light-color-icon-background);\n        --color-accent: var(--light-color-accent);\n        --color-active-menu-item: var(--light-color-active-menu-item);\n        --color-text: var(--light-color-text);\n        --color-text-aside: var(--light-color-text-aside);\n        --color-icon-text: var(--light-color-icon-text);\n\n        --color-comment-tag-text: var(--light-color-text);\n        --color-comment-tag: var(--light-color-background);\n\n        --color-link: var(--light-color-link);\n        --color-focus-outline: var(--light-color-focus-outline);\n\n        --color-ts-keyword: var(--light-color-ts-keyword);\n        --color-ts-project: var(--light-color-ts-project);\n        --color-ts-module: var(--light-color-ts-module);\n        --color-ts-namespace: var(--light-color-ts-namespace);\n        --color-ts-enum: var(--light-color-ts-enum);\n        --color-ts-enum-member: var(--light-color-ts-enum-member);\n        --color-ts-variable: var(--light-color-ts-variable);\n        --color-ts-function: var(--light-color-ts-function);\n        --color-ts-class: var(--light-color-ts-class);\n        --color-ts-interface: var(--light-color-ts-interface);\n        --color-ts-constructor: var(--light-color-ts-constructor);\n        --color-ts-property: var(--light-color-ts-property);\n        --color-ts-method: var(--light-color-ts-method);\n        --color-ts-reference: var(--light-color-ts-reference);\n        --color-ts-call-signature: var(--light-color-ts-call-signature);\n        --color-ts-index-signature: var(--light-color-ts-index-signature);\n        --color-ts-constructor-signature: var(\n            --light-color-ts-constructor-signature\n        );\n        --color-ts-parameter: var(--light-color-ts-parameter);\n        --color-ts-type-parameter: var(--light-color-ts-type-parameter);\n        --color-ts-accessor: var(--light-color-ts-accessor);\n        --color-ts-get-signature: var(--light-color-ts-get-signature);\n        --color-ts-set-signature: var(--light-color-ts-set-signature);\n        --color-ts-type-alias: var(--light-color-ts-type-alias);\n        --color-document: var(--light-color-document);\n\n        --color-note: var(--light-color-note);\n        --color-tip: var(--light-color-tip);\n        --color-important: var(--light-color-important);\n        --color-warning: var(--light-color-warning);\n        --color-caution: var(--light-color-caution);\n\n        --external-icon: var(--light-external-icon);\n        --color-scheme: var(--light-color-scheme);\n    }\n\n    :root[data-theme=\"dark\"] {\n        --color-background: var(--dark-color-background);\n        --color-background-secondary: var(--dark-color-background-secondary);\n        --color-background-warning: var(--dark-color-background-warning);\n        --color-warning-text: var(--dark-color-warning-text);\n        --color-icon-background: var(--dark-color-icon-background);\n        --color-accent: var(--dark-color-accent);\n        --color-active-menu-item: var(--dark-color-active-menu-item);\n        --color-text: var(--dark-color-text);\n        --color-text-aside: var(--dark-color-text-aside);\n        --color-icon-text: var(--dark-color-icon-text);\n\n        --color-comment-tag-text: var(--dark-color-text);\n        --color-comment-tag: var(--dark-color-background);\n\n        --color-link: var(--dark-color-link);\n        --color-focus-outline: var(--dark-color-focus-outline);\n\n        --color-ts-keyword: var(--dark-color-ts-keyword);\n        --color-ts-project: var(--dark-color-ts-project);\n        --color-ts-module: var(--dark-color-ts-module);\n        --color-ts-namespace: var(--dark-color-ts-namespace);\n        --color-ts-enum: var(--dark-color-ts-enum);\n        --color-ts-enum-member: var(--dark-color-ts-enum-member);\n        --color-ts-variable: var(--dark-color-ts-variable);\n        --color-ts-function: var(--dark-color-ts-function);\n        --color-ts-class: var(--dark-color-ts-class);\n        --color-ts-interface: var(--dark-color-ts-interface);\n        --color-ts-constructor: var(--dark-color-ts-constructor);\n        --color-ts-property: var(--dark-color-ts-property);\n        --color-ts-method: var(--dark-color-ts-method);\n        --color-ts-reference: var(--dark-color-ts-reference);\n        --color-ts-call-signature: var(--dark-color-ts-call-signature);\n        --color-ts-index-signature: var(--dark-color-ts-index-signature);\n        --color-ts-constructor-signature: var(\n            --dark-color-ts-constructor-signature\n        );\n        --color-ts-parameter: var(--dark-color-ts-parameter);\n        --color-ts-type-parameter: var(--dark-color-ts-type-parameter);\n        --color-ts-accessor: var(--dark-color-ts-accessor);\n        --color-ts-get-signature: var(--dark-color-ts-get-signature);\n        --color-ts-set-signature: var(--dark-color-ts-set-signature);\n        --color-ts-type-alias: var(--dark-color-ts-type-alias);\n        --color-document: var(--dark-color-document);\n\n        --color-note: var(--dark-color-note);\n        --color-tip: var(--dark-color-tip);\n        --color-important: var(--dark-color-important);\n        --color-warning: var(--dark-color-warning);\n        --color-caution: var(--dark-color-caution);\n\n        --external-icon: var(--dark-external-icon);\n        --color-scheme: var(--dark-color-scheme);\n    }\n\n    *:focus-visible,\n    .tsd-accordion-summary:focus-visible svg {\n        outline: 2px solid var(--color-focus-outline);\n    }\n\n    .always-visible,\n    .always-visible .tsd-signatures {\n        display: inherit !important;\n    }\n\n    h1,\n    h2,\n    h3,\n    h4,\n    h5,\n    h6 {\n        line-height: 1.2;\n    }\n\n    h1 {\n        font-size: 1.875rem;\n        margin: 0.67rem 0;\n    }\n\n    h2 {\n        font-size: 1.5rem;\n        margin: 0.83rem 0;\n    }\n\n    h3 {\n        font-size: 1.25rem;\n        margin: 1rem 0;\n    }\n\n    h4 {\n        font-size: 1.05rem;\n        margin: 1.33rem 0;\n    }\n\n    h5 {\n        font-size: 1rem;\n        margin: 1.5rem 0;\n    }\n\n    h6 {\n        font-size: 0.875rem;\n        margin: 2.33rem 0;\n    }\n\n    dl,\n    menu,\n    ol,\n    ul {\n        margin: 1em 0;\n    }\n\n    dd {\n        margin: 0 0 0 34px;\n    }\n\n    .container {\n        max-width: 1700px;\n        padding: 0 2rem;\n    }\n\n    /* Footer */\n    footer {\n        border-top: 1px solid var(--color-accent);\n        padding-top: 1rem;\n        padding-bottom: 1rem;\n        max-height: 3.5rem;\n    }\n    footer > p {\n        margin: 0 1em;\n    }\n\n    .container-main {\n        margin: 0 auto;\n        /* toolbar, footer, margin */\n        min-height: calc(100vh - 41px - 56px - 4rem);\n    }\n\n    @keyframes fade-in {\n        from {\n            opacity: 0;\n        }\n        to {\n            opacity: 1;\n        }\n    }\n    @keyframes fade-out {\n        from {\n            opacity: 1;\n            visibility: visible;\n        }\n        to {\n            opacity: 0;\n        }\n    }\n    @keyframes fade-in-delayed {\n        0% {\n            opacity: 0;\n        }\n        33% {\n            opacity: 0;\n        }\n        100% {\n            opacity: 1;\n        }\n    }\n    @keyframes fade-out-delayed {\n        0% {\n            opacity: 1;\n            visibility: visible;\n        }\n        66% {\n            opacity: 0;\n        }\n        100% {\n            opacity: 0;\n        }\n    }\n    @keyframes pop-in-from-right {\n        from {\n            transform: translate(100%, 0);\n        }\n        to {\n            transform: translate(0, 0);\n        }\n    }\n    @keyframes pop-out-to-right {\n        from {\n            transform: translate(0, 0);\n            visibility: visible;\n        }\n        to {\n            transform: translate(100%, 0);\n        }\n    }\n    body {\n        background: var(--color-background);\n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Noto Sans\",\n            Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\";\n        font-size: 16px;\n        color: var(--color-text);\n    }\n\n    a {\n        color: var(--color-link);\n        text-decoration: none;\n    }\n    a:hover {\n        text-decoration: underline;\n    }\n    a.external[target=\"_blank\"] {\n        background-image: var(--external-icon);\n        background-position: top 3px right;\n        background-repeat: no-repeat;\n        padding-right: 13px;\n    }\n    a.tsd-anchor-link {\n        color: var(--color-text);\n    }\n\n    code,\n    pre {\n        font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n        padding: 0.2em;\n        margin: 0;\n        font-size: 0.875rem;\n        border-radius: 0.8em;\n    }\n\n    pre {\n        position: relative;\n        white-space: pre-wrap;\n        word-wrap: break-word;\n        padding: 10px;\n        border: 1px solid var(--color-accent);\n        margin-bottom: 8px;\n    }\n    pre code {\n        padding: 0;\n        font-size: 100%;\n    }\n    pre > button {\n        position: absolute;\n        top: 10px;\n        right: 10px;\n        opacity: 0;\n        transition: opacity 0.1s;\n        box-sizing: border-box;\n    }\n    pre:hover > button,\n    pre > button.visible {\n        opacity: 1;\n    }\n\n    blockquote {\n        margin: 1em 0;\n        padding-left: 1em;\n        border-left: 4px solid gray;\n    }\n\n    .tsd-typography {\n        line-height: 1.333em;\n    }\n    .tsd-typography ul {\n        list-style: square;\n        padding: 0 0 0 20px;\n        margin: 0;\n    }\n    .tsd-typography .tsd-index-panel h3,\n    .tsd-index-panel .tsd-typography h3,\n    .tsd-typography h4,\n    .tsd-typography h5,\n    .tsd-typography h6 {\n        font-size: 1em;\n    }\n    .tsd-typography h5,\n    .tsd-typography h6 {\n        font-weight: normal;\n    }\n    .tsd-typography p,\n    .tsd-typography ul,\n    .tsd-typography ol {\n        margin: 1em 0;\n    }\n    .tsd-typography table {\n        border-collapse: collapse;\n        border: none;\n    }\n    .tsd-typography td,\n    .tsd-typography th {\n        padding: 6px 13px;\n        border: 1px solid var(--color-accent);\n    }\n    .tsd-typography thead,\n    .tsd-typography tr:nth-child(even) {\n        background-color: var(--color-background-secondary);\n    }\n\n    .tsd-alert {\n        padding: 8px 16px;\n        margin-bottom: 16px;\n        border-left: 0.25em solid var(--alert-color);\n    }\n    .tsd-alert blockquote > :last-child,\n    .tsd-alert > :last-child {\n        margin-bottom: 0;\n    }\n    .tsd-alert-title {\n        color: var(--alert-color);\n        display: inline-flex;\n        align-items: center;\n    }\n    .tsd-alert-title span {\n        margin-left: 4px;\n    }\n\n    .tsd-alert-note {\n        --alert-color: var(--color-alert-note);\n    }\n    .tsd-alert-tip {\n        --alert-color: var(--color-alert-tip);\n    }\n    .tsd-alert-important {\n        --alert-color: var(--color-alert-important);\n    }\n    .tsd-alert-warning {\n        --alert-color: var(--color-alert-warning);\n    }\n    .tsd-alert-caution {\n        --alert-color: var(--color-alert-caution);\n    }\n\n    .tsd-breadcrumb {\n        margin: 0;\n        padding: 0;\n        color: var(--color-text-aside);\n    }\n    .tsd-breadcrumb a {\n        color: var(--color-text-aside);\n        text-decoration: none;\n    }\n    .tsd-breadcrumb a:hover {\n        text-decoration: underline;\n    }\n    .tsd-breadcrumb li {\n        display: inline;\n    }\n    .tsd-breadcrumb li:after {\n        content: \" / \";\n    }\n\n    .tsd-comment-tags {\n        display: flex;\n        flex-direction: column;\n    }\n    dl.tsd-comment-tag-group {\n        display: flex;\n        align-items: center;\n        overflow: hidden;\n        margin: 0.5em 0;\n    }\n    dl.tsd-comment-tag-group dt {\n        display: flex;\n        margin-right: 0.5em;\n        font-size: 0.875em;\n        font-weight: normal;\n    }\n    dl.tsd-comment-tag-group dd {\n        margin: 0;\n    }\n    code.tsd-tag {\n        padding: 0.25em 0.4em;\n        border: 0.1em solid var(--color-accent);\n        margin-right: 0.25em;\n        font-size: 70%;\n    }\n    h1 code.tsd-tag:first-of-type {\n        margin-left: 0.25em;\n    }\n\n    dl.tsd-comment-tag-group dd:before,\n    dl.tsd-comment-tag-group dd:after {\n        content: \" \";\n    }\n    dl.tsd-comment-tag-group dd pre,\n    dl.tsd-comment-tag-group dd:after {\n        clear: both;\n    }\n    dl.tsd-comment-tag-group p {\n        margin: 0;\n    }\n\n    .tsd-panel.tsd-comment .lead {\n        font-size: 1.1em;\n        line-height: 1.333em;\n        margin-bottom: 2em;\n    }\n    .tsd-panel.tsd-comment .lead:last-child {\n        margin-bottom: 0;\n    }\n\n    .tsd-filter-visibility h4 {\n        font-size: 1rem;\n        padding-top: 0.75rem;\n        padding-bottom: 0.5rem;\n        margin: 0;\n    }\n    .tsd-filter-item:not(:last-child) {\n        margin-bottom: 0.5rem;\n    }\n    .tsd-filter-input {\n        display: flex;\n        width: -moz-fit-content;\n        width: fit-content;\n        align-items: center;\n        -webkit-user-select: none;\n        -moz-user-select: none;\n        -ms-user-select: none;\n        user-select: none;\n        cursor: pointer;\n    }\n    .tsd-filter-input input[type=\"checkbox\"] {\n        cursor: pointer;\n        position: absolute;\n        width: 1.5em;\n        height: 1.5em;\n        opacity: 0;\n    }\n    .tsd-filter-input input[type=\"checkbox\"]:disabled {\n        pointer-events: none;\n    }\n    .tsd-filter-input svg {\n        cursor: pointer;\n        width: 1.5em;\n        height: 1.5em;\n        margin-right: 0.5em;\n        border-radius: 0.33em;\n        /* Leaving this at full opacity breaks event listeners on Firefox.\n    Don't remove unless you know what you're doing. */\n        opacity: 0.99;\n    }\n    .tsd-filter-input input[type=\"checkbox\"]:focus-visible + svg {\n        outline: 2px solid var(--color-focus-outline);\n    }\n    .tsd-checkbox-background {\n        fill: var(--color-accent);\n    }\n    input[type=\"checkbox\"]:checked ~ svg .tsd-checkbox-checkmark {\n        stroke: var(--color-text);\n    }\n    .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background {\n        fill: var(--color-background);\n        stroke: var(--color-accent);\n        stroke-width: 0.25rem;\n    }\n    .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark {\n        stroke: var(--color-accent);\n    }\n\n    .settings-label {\n        font-weight: bold;\n        text-transform: uppercase;\n        display: inline-block;\n    }\n\n    .tsd-filter-visibility .settings-label {\n        margin: 0.75rem 0 0.5rem 0;\n    }\n\n    .tsd-theme-toggle .settings-label {\n        margin: 0.75rem 0.75rem 0 0;\n    }\n\n    .tsd-hierarchy h4 label:hover span {\n        text-decoration: underline;\n    }\n\n    .tsd-hierarchy {\n        list-style: square;\n        margin: 0;\n    }\n    .tsd-hierarchy-target {\n        font-weight: bold;\n    }\n    .tsd-hierarchy-toggle {\n        color: var(--color-link);\n        cursor: pointer;\n    }\n\n    .tsd-full-hierarchy:not(:last-child) {\n        margin-bottom: 1em;\n        padding-bottom: 1em;\n        border-bottom: 1px solid var(--color-accent);\n    }\n    .tsd-full-hierarchy,\n    .tsd-full-hierarchy ul {\n        list-style: none;\n        margin: 0;\n        padding: 0;\n    }\n    .tsd-full-hierarchy ul {\n        padding-left: 1.5rem;\n    }\n    .tsd-full-hierarchy a {\n        padding: 0.25rem 0 !important;\n        font-size: 1rem;\n        display: inline-flex;\n        align-items: center;\n        color: var(--color-text);\n    }\n    .tsd-full-hierarchy svg[data-dropdown] {\n        cursor: pointer;\n    }\n    .tsd-full-hierarchy svg[data-dropdown=\"false\"] {\n        transform: rotate(-90deg);\n    }\n    .tsd-full-hierarchy svg[data-dropdown=\"false\"] ~ ul {\n        display: none;\n    }\n\n    .tsd-panel-group.tsd-index-group {\n        margin-bottom: 0;\n    }\n    .tsd-index-panel .tsd-index-list {\n        list-style: none;\n        line-height: 1.333em;\n        margin: 0;\n        padding: 0.25rem 0 0 0;\n        overflow: hidden;\n        display: grid;\n        grid-template-columns: repeat(3, 1fr);\n        column-gap: 1rem;\n        grid-template-rows: auto;\n    }\n    @media (max-width: 1024px) {\n        .tsd-index-panel .tsd-index-list {\n            grid-template-columns: repeat(2, 1fr);\n        }\n    }\n    @media (max-width: 768px) {\n        .tsd-index-panel .tsd-index-list {\n            grid-template-columns: repeat(1, 1fr);\n        }\n    }\n    .tsd-index-panel .tsd-index-list li {\n        -webkit-page-break-inside: avoid;\n        -moz-page-break-inside: avoid;\n        -ms-page-break-inside: avoid;\n        -o-page-break-inside: avoid;\n        page-break-inside: avoid;\n    }\n\n    .tsd-flag {\n        display: inline-block;\n        padding: 0.25em 0.4em;\n        border-radius: 4px;\n        color: var(--color-comment-tag-text);\n        background-color: var(--color-comment-tag);\n        text-indent: 0;\n        font-size: 75%;\n        line-height: 1;\n        font-weight: normal;\n    }\n\n    .tsd-anchor {\n        position: relative;\n        top: -100px;\n    }\n\n    .tsd-member {\n        position: relative;\n    }\n    .tsd-member .tsd-anchor + h3 {\n        display: flex;\n        align-items: center;\n        margin-top: 0;\n        margin-bottom: 0;\n        border-bottom: none;\n    }\n\n    .tsd-navigation.settings {\n        margin: 1rem 0;\n    }\n    .tsd-navigation > a,\n    .tsd-navigation .tsd-accordion-summary {\n        width: calc(100% - 0.25rem);\n        display: flex;\n        align-items: center;\n    }\n    .tsd-navigation a,\n    .tsd-navigation summary > span,\n    .tsd-page-navigation a {\n        display: flex;\n        width: calc(100% - 0.25rem);\n        align-items: center;\n        padding: 0.25rem;\n        color: var(--color-text);\n        text-decoration: none;\n        box-sizing: border-box;\n    }\n    .tsd-navigation a.current,\n    .tsd-page-navigation a.current {\n        background: var(--color-active-menu-item);\n    }\n    .tsd-navigation a:hover,\n    .tsd-page-navigation a:hover {\n        text-decoration: underline;\n    }\n    .tsd-navigation ul,\n    .tsd-page-navigation ul {\n        margin-top: 0;\n        margin-bottom: 0;\n        padding: 0;\n        list-style: none;\n    }\n    .tsd-navigation li,\n    .tsd-page-navigation li {\n        padding: 0;\n        max-width: 100%;\n    }\n    .tsd-navigation .tsd-nav-link {\n        display: none;\n    }\n    .tsd-nested-navigation {\n        margin-left: 3rem;\n    }\n    .tsd-nested-navigation > li > details {\n        margin-left: -1.5rem;\n    }\n    .tsd-small-nested-navigation {\n        margin-left: 1.5rem;\n    }\n    .tsd-small-nested-navigation > li > details {\n        margin-left: -1.5rem;\n    }\n\n    .tsd-page-navigation-section {\n        margin-left: 10px;\n    }\n    .tsd-page-navigation-section > summary {\n        padding: 0.25rem;\n    }\n    .tsd-page-navigation-section > div {\n        margin-left: 20px;\n    }\n    .tsd-page-navigation ul {\n        padding-left: 1.75rem;\n    }\n\n    #tsd-sidebar-links a {\n        margin-top: 0;\n        margin-bottom: 0.5rem;\n        line-height: 1.25rem;\n    }\n    #tsd-sidebar-links a:last-of-type {\n        margin-bottom: 0;\n    }\n\n    a.tsd-index-link {\n        padding: 0.25rem 0 !important;\n        font-size: 1rem;\n        line-height: 1.25rem;\n        display: inline-flex;\n        align-items: center;\n        color: var(--color-text);\n    }\n    .tsd-accordion-summary {\n        list-style-type: none; /* hide marker on non-safari */\n        outline: none; /* broken on safari, so just hide it */\n    }\n    .tsd-accordion-summary::-webkit-details-marker {\n        display: none; /* hide marker on safari */\n    }\n    .tsd-accordion-summary,\n    .tsd-accordion-summary a {\n        -moz-user-select: none;\n        -webkit-user-select: none;\n        -ms-user-select: none;\n        user-select: none;\n\n        cursor: pointer;\n    }\n    .tsd-accordion-summary a {\n        width: calc(100% - 1.5rem);\n    }\n    .tsd-accordion-summary > * {\n        margin-top: 0;\n        margin-bottom: 0;\n        padding-top: 0;\n        padding-bottom: 0;\n    }\n    .tsd-accordion .tsd-accordion-summary > svg {\n        margin-left: 0.25rem;\n        vertical-align: text-top;\n    }\n    /*\n     * We need to be careful to target the arrow indicating whether the accordion\n     * is open, but not any other SVGs included in the details element.\n     */\n    .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child,\n    .tsd-accordion:not([open]) > .tsd-accordion-summary > h1 > svg:first-child,\n    .tsd-accordion:not([open]) > .tsd-accordion-summary > h2 > svg:first-child,\n    .tsd-accordion:not([open]) > .tsd-accordion-summary > h3 > svg:first-child,\n    .tsd-accordion:not([open]) > .tsd-accordion-summary > h4 > svg:first-child,\n    .tsd-accordion:not([open]) > .tsd-accordion-summary > h5 > svg:first-child {\n        transform: rotate(-90deg);\n    }\n    .tsd-index-content > :not(:first-child) {\n        margin-top: 0.75rem;\n    }\n    .tsd-index-heading {\n        margin-top: 1.5rem;\n        margin-bottom: 0.75rem;\n    }\n\n    .tsd-no-select {\n        -webkit-user-select: none;\n        -moz-user-select: none;\n        -ms-user-select: none;\n        user-select: none;\n    }\n    .tsd-kind-icon {\n        margin-right: 0.5rem;\n        width: 1.25rem;\n        height: 1.25rem;\n        min-width: 1.25rem;\n        min-height: 1.25rem;\n    }\n    .tsd-signature > .tsd-kind-icon {\n        margin-right: 0.8rem;\n    }\n\n    .tsd-panel {\n        margin-bottom: 2.5rem;\n    }\n    .tsd-panel.tsd-member {\n        margin-bottom: 4rem;\n    }\n    .tsd-panel:empty {\n        display: none;\n    }\n    .tsd-panel > h1,\n    .tsd-panel > h2,\n    .tsd-panel > h3 {\n        margin: 1.5rem -1.5rem 0.75rem -1.5rem;\n        padding: 0 1.5rem 0.75rem 1.5rem;\n    }\n    .tsd-panel > h1.tsd-before-signature,\n    .tsd-panel > h2.tsd-before-signature,\n    .tsd-panel > h3.tsd-before-signature {\n        margin-bottom: 0;\n        border-bottom: none;\n    }\n\n    .tsd-panel-group {\n        margin: 2rem 0;\n    }\n    .tsd-panel-group.tsd-index-group {\n        margin: 2rem 0;\n    }\n    .tsd-panel-group.tsd-index-group details {\n        margin: 2rem 0;\n    }\n    .tsd-panel-group > .tsd-accordion-summary {\n        margin-bottom: 1rem;\n    }\n\n    #tsd-search {\n        transition: background-color 0.2s;\n    }\n    #tsd-search .title {\n        position: relative;\n        z-index: 2;\n    }\n    #tsd-search .field {\n        position: absolute;\n        left: 0;\n        top: 0;\n        right: 2.5rem;\n        height: 100%;\n    }\n    #tsd-search .field input {\n        box-sizing: border-box;\n        position: relative;\n        top: -50px;\n        z-index: 1;\n        width: 100%;\n        padding: 0 10px;\n        opacity: 0;\n        outline: 0;\n        border: 0;\n        background: transparent;\n        color: var(--color-text);\n    }\n    #tsd-search .field label {\n        position: absolute;\n        overflow: hidden;\n        right: -40px;\n    }\n    #tsd-search .field input,\n    #tsd-search .title,\n    #tsd-toolbar-links a {\n        transition: opacity 0.2s;\n    }\n    #tsd-search .results {\n        position: absolute;\n        visibility: hidden;\n        top: 40px;\n        width: 100%;\n        margin: 0;\n        padding: 0;\n        list-style: none;\n        box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);\n    }\n    #tsd-search .results li {\n        background-color: var(--color-background);\n        line-height: initial;\n        padding: 4px;\n    }\n    #tsd-search .results li:nth-child(even) {\n        background-color: var(--color-background-secondary);\n    }\n    #tsd-search .results li.state {\n        display: none;\n    }\n    #tsd-search .results li.current:not(.no-results),\n    #tsd-search .results li:hover:not(.no-results) {\n        background-color: var(--color-accent);\n    }\n    #tsd-search .results a {\n        display: flex;\n        align-items: center;\n        padding: 0.25rem;\n        box-sizing: border-box;\n    }\n    #tsd-search .results a:before {\n        top: 10px;\n    }\n    #tsd-search .results span.parent {\n        color: var(--color-text-aside);\n        font-weight: normal;\n    }\n    #tsd-search.has-focus {\n        background-color: var(--color-accent);\n    }\n    #tsd-search.has-focus .field input {\n        top: 0;\n        opacity: 1;\n    }\n    #tsd-search.has-focus .title,\n    #tsd-search.has-focus #tsd-toolbar-links a {\n        z-index: 0;\n        opacity: 0;\n    }\n    #tsd-search.has-focus .results {\n        visibility: visible;\n    }\n    #tsd-search.loading .results li.state.loading {\n        display: block;\n    }\n    #tsd-search.failure .results li.state.failure {\n        display: block;\n    }\n\n    #tsd-toolbar-links {\n        position: absolute;\n        top: 0;\n        right: 2rem;\n        height: 100%;\n        display: flex;\n        align-items: center;\n        justify-content: flex-end;\n    }\n    #tsd-toolbar-links a {\n        margin-left: 1.5rem;\n    }\n    #tsd-toolbar-links a:hover {\n        text-decoration: underline;\n    }\n\n    .tsd-signature {\n        margin: 0 0 1rem 0;\n        padding: 1rem 0.5rem;\n        border: 1px solid var(--color-accent);\n        font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n        font-size: 14px;\n        overflow-x: auto;\n    }\n\n    .tsd-signature-keyword {\n        color: var(--color-ts-keyword);\n        font-weight: normal;\n    }\n\n    .tsd-signature-symbol {\n        color: var(--color-text-aside);\n        font-weight: normal;\n    }\n\n    .tsd-signature-type {\n        font-style: italic;\n        font-weight: normal;\n    }\n\n    .tsd-signatures {\n        padding: 0;\n        margin: 0 0 1em 0;\n        list-style-type: none;\n    }\n    .tsd-signatures .tsd-signature {\n        margin: 0;\n        border-color: var(--color-accent);\n        border-width: 1px 0;\n        transition: background-color 0.1s;\n    }\n    .tsd-signatures .tsd-index-signature:not(:last-child) {\n        margin-bottom: 1em;\n    }\n    .tsd-signatures .tsd-index-signature .tsd-signature {\n        border-width: 1px;\n    }\n    .tsd-description .tsd-signatures .tsd-signature {\n        border-width: 1px;\n    }\n\n    ul.tsd-parameter-list,\n    ul.tsd-type-parameter-list {\n        list-style: square;\n        margin: 0;\n        padding-left: 20px;\n    }\n    ul.tsd-parameter-list > li.tsd-parameter-signature,\n    ul.tsd-type-parameter-list > li.tsd-parameter-signature {\n        list-style: none;\n        margin-left: -20px;\n    }\n    ul.tsd-parameter-list h5,\n    ul.tsd-type-parameter-list h5 {\n        font-size: 16px;\n        margin: 1em 0 0.5em 0;\n    }\n    .tsd-sources {\n        margin-top: 1rem;\n        font-size: 0.875em;\n    }\n    .tsd-sources a {\n        color: var(--color-text-aside);\n        text-decoration: underline;\n    }\n    .tsd-sources ul {\n        list-style: none;\n        padding: 0;\n    }\n\n    .tsd-page-toolbar {\n        position: sticky;\n        z-index: 1;\n        top: 0;\n        left: 0;\n        width: 100%;\n        color: var(--color-text);\n        background: var(--color-background-secondary);\n        border-bottom: 1px var(--color-accent) solid;\n        transition: transform 0.3s ease-in-out;\n    }\n    .tsd-page-toolbar a {\n        color: var(--color-text);\n        text-decoration: none;\n    }\n    .tsd-page-toolbar a.title {\n        font-weight: bold;\n    }\n    .tsd-page-toolbar a.title:hover {\n        text-decoration: underline;\n    }\n    .tsd-page-toolbar .tsd-toolbar-contents {\n        display: flex;\n        justify-content: space-between;\n        height: 2.5rem;\n        margin: 0 auto;\n    }\n    .tsd-page-toolbar .table-cell {\n        position: relative;\n        white-space: nowrap;\n        line-height: 40px;\n    }\n    .tsd-page-toolbar .table-cell:first-child {\n        width: 100%;\n    }\n    .tsd-page-toolbar .tsd-toolbar-icon {\n        box-sizing: border-box;\n        line-height: 0;\n        padding: 12px 0;\n    }\n\n    .tsd-widget {\n        display: inline-block;\n        overflow: hidden;\n        opacity: 0.8;\n        height: 40px;\n        transition:\n            opacity 0.1s,\n            background-color 0.2s;\n        vertical-align: bottom;\n        cursor: pointer;\n    }\n    .tsd-widget:hover {\n        opacity: 0.9;\n    }\n    .tsd-widget.active {\n        opacity: 1;\n        background-color: var(--color-accent);\n    }\n    .tsd-widget.no-caption {\n        width: 40px;\n    }\n    .tsd-widget.no-caption:before {\n        margin: 0;\n    }\n\n    .tsd-widget.options,\n    .tsd-widget.menu {\n        display: none;\n    }\n    input[type=\"checkbox\"] + .tsd-widget:before {\n        background-position: -120px 0;\n    }\n    input[type=\"checkbox\"]:checked + .tsd-widget:before {\n        background-position: -160px 0;\n    }\n\n    img {\n        max-width: 100%;\n    }\n\n    .tsd-member-summary-name {\n        display: inline-flex;\n        align-items: center;\n        padding: 0.25rem;\n        text-decoration: none;\n    }\n\n    .tsd-anchor-icon {\n        display: inline-flex;\n        align-items: center;\n        margin-left: 0.5rem;\n        color: var(--color-text);\n    }\n\n    .tsd-anchor-icon svg {\n        width: 1em;\n        height: 1em;\n        visibility: hidden;\n    }\n\n    .tsd-member-summary-name:hover > .tsd-anchor-icon svg,\n    .tsd-anchor-link:hover > .tsd-anchor-icon svg {\n        visibility: visible;\n    }\n\n    .deprecated {\n        text-decoration: line-through !important;\n    }\n\n    .warning {\n        padding: 1rem;\n        color: var(--color-warning-text);\n        background: var(--color-background-warning);\n    }\n\n    .tsd-kind-project {\n        color: var(--color-ts-project);\n    }\n    .tsd-kind-module {\n        color: var(--color-ts-module);\n    }\n    .tsd-kind-namespace {\n        color: var(--color-ts-namespace);\n    }\n    .tsd-kind-enum {\n        color: var(--color-ts-enum);\n    }\n    .tsd-kind-enum-member {\n        color: var(--color-ts-enum-member);\n    }\n    .tsd-kind-variable {\n        color: var(--color-ts-variable);\n    }\n    .tsd-kind-function {\n        color: var(--color-ts-function);\n    }\n    .tsd-kind-class {\n        color: var(--color-ts-class);\n    }\n    .tsd-kind-interface {\n        color: var(--color-ts-interface);\n    }\n    .tsd-kind-constructor {\n        color: var(--color-ts-constructor);\n    }\n    .tsd-kind-property {\n        color: var(--color-ts-property);\n    }\n    .tsd-kind-method {\n        color: var(--color-ts-method);\n    }\n    .tsd-kind-reference {\n        color: var(--color-ts-reference);\n    }\n    .tsd-kind-call-signature {\n        color: var(--color-ts-call-signature);\n    }\n    .tsd-kind-index-signature {\n        color: var(--color-ts-index-signature);\n    }\n    .tsd-kind-constructor-signature {\n        color: var(--color-ts-constructor-signature);\n    }\n    .tsd-kind-parameter {\n        color: var(--color-ts-parameter);\n    }\n    .tsd-kind-type-parameter {\n        color: var(--color-ts-type-parameter);\n    }\n    .tsd-kind-accessor {\n        color: var(--color-ts-accessor);\n    }\n    .tsd-kind-get-signature {\n        color: var(--color-ts-get-signature);\n    }\n    .tsd-kind-set-signature {\n        color: var(--color-ts-set-signature);\n    }\n    .tsd-kind-type-alias {\n        color: var(--color-ts-type-alias);\n    }\n\n    /* if we have a kind icon, don't color the text by kind */\n    .tsd-kind-icon ~ span {\n        color: var(--color-text);\n    }\n\n    * {\n        scrollbar-width: thin;\n        scrollbar-color: var(--color-accent) var(--color-icon-background);\n    }\n\n    *::-webkit-scrollbar {\n        width: 0.75rem;\n    }\n\n    *::-webkit-scrollbar-track {\n        background: var(--color-icon-background);\n    }\n\n    *::-webkit-scrollbar-thumb {\n        background-color: var(--color-accent);\n        border-radius: 999rem;\n        border: 0.25rem solid var(--color-icon-background);\n    }\n\n    /* mobile */\n    @media (max-width: 769px) {\n        .tsd-widget.options,\n        .tsd-widget.menu {\n            display: inline-block;\n        }\n\n        .container-main {\n            display: flex;\n        }\n        html .col-content {\n            float: none;\n            max-width: 100%;\n            width: 100%;\n        }\n        html .col-sidebar {\n            position: fixed !important;\n            overflow-y: auto;\n            -webkit-overflow-scrolling: touch;\n            z-index: 1024;\n            top: 0 !important;\n            bottom: 0 !important;\n            left: auto !important;\n            right: 0 !important;\n            padding: 1.5rem 1.5rem 0 0;\n            width: 75vw;\n            visibility: hidden;\n            background-color: var(--color-background);\n            transform: translate(100%, 0);\n        }\n        html .col-sidebar > *:last-child {\n            padding-bottom: 20px;\n        }\n        html .overlay {\n            content: \"\";\n            display: block;\n            position: fixed;\n            z-index: 1023;\n            top: 0;\n            left: 0;\n            right: 0;\n            bottom: 0;\n            background-color: rgba(0, 0, 0, 0.75);\n            visibility: hidden;\n        }\n\n        .to-has-menu .overlay {\n            animation: fade-in 0.4s;\n        }\n\n        .to-has-menu .col-sidebar {\n            animation: pop-in-from-right 0.4s;\n        }\n\n        .from-has-menu .overlay {\n            animation: fade-out 0.4s;\n        }\n\n        .from-has-menu .col-sidebar {\n            animation: pop-out-to-right 0.4s;\n        }\n\n        .has-menu body {\n            overflow: hidden;\n        }\n        .has-menu .overlay {\n            visibility: visible;\n        }\n        .has-menu .col-sidebar {\n            visibility: visible;\n            transform: translate(0, 0);\n            display: flex;\n            flex-direction: column;\n            gap: 1.5rem;\n            max-height: 100vh;\n            padding: 1rem 2rem;\n        }\n        .has-menu .tsd-navigation {\n            max-height: 100%;\n        }\n        #tsd-toolbar-links {\n            display: none;\n        }\n        .tsd-navigation .tsd-nav-link {\n            display: flex;\n        }\n    }\n\n    /* one sidebar */\n    @media (min-width: 770px) {\n        .container-main {\n            display: grid;\n            grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);\n            grid-template-areas: \"sidebar content\";\n            margin: 2rem auto;\n        }\n\n        .col-sidebar {\n            grid-area: sidebar;\n        }\n        .col-content {\n            grid-area: content;\n            padding: 0 1rem;\n        }\n    }\n    @media (min-width: 770px) and (max-width: 1399px) {\n        .col-sidebar {\n            max-height: calc(100vh - 2rem - 42px);\n            overflow: auto;\n            position: sticky;\n            top: 42px;\n            padding-top: 1rem;\n        }\n        .site-menu {\n            margin-top: 1rem;\n        }\n    }\n\n    /* two sidebars */\n    @media (min-width: 1200px) {\n        .container-main {\n            grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(\n                    0,\n                    20rem\n                );\n            grid-template-areas: \"sidebar content toc\";\n        }\n\n        .col-sidebar {\n            display: contents;\n        }\n\n        .page-menu {\n            grid-area: toc;\n            padding-left: 1rem;\n        }\n        .site-menu {\n            grid-area: sidebar;\n        }\n\n        .site-menu {\n            margin-top: 1rem;\n        }\n\n        .page-menu,\n        .site-menu {\n            max-height: calc(100vh - 2rem - 42px);\n            overflow: auto;\n            position: sticky;\n            top: 42px;\n        }\n    }\n}\n"
  },
  {
    "path": "docs/api/classes/util.Deferred.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>Deferred | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.Deferred.html\">Deferred</a></li></ul><h1>Class Deferred</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>A ES6 Promise, that exposes the resolve()/reject() methods.</p>\n<p>TODO: See <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers#description\">Promise.withResolvers()</a>\n, a proposed standard, but not yet implemented in any browser.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L62\">src/util.ts:62</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Constructors</h3><div class=\"tsd-index-list\"><a href=\"util.Deferred.html#constructor\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Constructor\"><use href=\"../assets/icons.svg#icon-512\"></use></svg><span>constructor</span></a>\n</div></section><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Methods</h3><div class=\"tsd-index-list\"><a href=\"util.Deferred.html#catch\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>catch</span></a>\n<a href=\"util.Deferred.html#promise\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>promise</span></a>\n<a href=\"util.Deferred.html#reject\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>reject</span></a>\n<a href=\"util.Deferred.html#resolve\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>resolve</span></a>\n<a href=\"util.Deferred.html#then\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>then</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Constructors\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Constructors</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"constructor\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>constructor</span><a href=\"#constructor\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"constructordeferred\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-keyword\">new</span> <span class=\"tsd-kind-constructor-signature\">Deferred</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"util.Deferred.html\" class=\"tsd-signature-type tsd-kind-class\">Deferred</a><a href=\"#constructordeferred\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><h4 class=\"tsd-returns-title\">Returns <a href=\"util.Deferred.html\" class=\"tsd-signature-type tsd-kind-class\">Deferred</a></h4><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L70\">src/util.ts:70</a></li></ul></aside></div></li></ul></section></section></details><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Methods\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Methods</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"catch\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>catch</span><a href=\"#catch\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"catch-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">catch</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">cb</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#catch-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">cb</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L97\">src/util.ts:97</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"promise\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>promise</span><a href=\"#promise\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"promise-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">promise</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-kind-property\">catch</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">cb</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span> <span class=\"tsd-kind-property\">then</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">cb</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span> <span class=\"tsd-signature-symbol\">}</span><a href=\"#promise-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-kind-property\">catch</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">cb</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span> <span class=\"tsd-kind-property\">then</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">cb</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span> <span class=\"tsd-signature-symbol\">}</span></h4><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L104\">src/util.ts:104</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"reject\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>reject</span><a href=\"#reject\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"reject-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">reject</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">error</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#reject-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">error</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L81\">src/util.ts:81</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"resolve\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>resolve</span><a href=\"#resolve\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"resolve-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">resolve</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">value</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#resolve-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">value</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L72\">src/util.ts:72</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"then\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>then</span><a href=\"#then\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"then-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">then</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">cb</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#then-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">cb</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L90\">src/util.ts:90</a></li></ul></aside></div></li></ul></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Constructors\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Constructors</summary><div><a href=\"#constructor\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Constructor\"><use href=\"../assets/icons.svg#icon-512\"></use></svg><span>constructor</span></a></div></details><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Methods\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Methods</summary><div><a href=\"#catch\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>catch</span></a><a href=\"#promise\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>promise</span></a><a href=\"#reject\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>reject</span></a><a href=\"#resolve\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>resolve</span></a><a href=\"#then\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>then</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/classes/util.ValidationError.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>ValidationError | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.ValidationError.html\">ValidationError</a></li></ul><h1>Class ValidationError</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>A generic error that can be thrown to indicate a validation error when\nhandling the <code>apply</code> event for a node title or the <code>change</code> event for a\ngrid cell.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1876\"><h4>Hierarchy</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-signature-type\">Error</span><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">ValidationError</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L49\">src/util.ts:49</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Constructors</h3><div class=\"tsd-index-list\"><a href=\"util.ValidationError.html#constructor\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Constructor\"><use href=\"../assets/icons.svg#icon-512\"></use></svg><span>constructor</span></a>\n</div></section><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"util.ValidationError.html#message\" class=\"tsd-index-link tsd-is-inherited tsd-is-external\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>message</span></a>\n<a href=\"util.ValidationError.html#name\" class=\"tsd-index-link tsd-is-inherited tsd-is-external\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>name</span></a>\n<a href=\"util.ValidationError.html#stack\" class=\"tsd-index-link tsd-is-inherited tsd-is-external\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>stack?</span></a>\n<a href=\"util.ValidationError.html#stacktracelimit\" class=\"tsd-index-link tsd-is-inherited tsd-is-external\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>stack<wbr/>Trace<wbr/>Limit</span></a>\n</div></section><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Methods</h3><div class=\"tsd-index-list\"><a href=\"util.ValidationError.html#capturestacktrace\" class=\"tsd-index-link tsd-is-inherited tsd-is-external\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>capture<wbr/>Stack<wbr/>Trace</span></a>\n<a href=\"util.ValidationError.html#preparestacktrace\" class=\"tsd-index-link tsd-is-inherited tsd-is-external\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>prepare<wbr/>Stack<wbr/>Trace</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Constructors\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Constructors</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"constructor\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>constructor</span><a href=\"#constructor\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"constructorvalidationerror\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-keyword\">new</span> <span class=\"tsd-kind-constructor-signature\">ValidationError</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">message</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"util.ValidationError.html\" class=\"tsd-signature-type tsd-kind-class\">ValidationError</a><a href=\"#constructorvalidationerror\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">message</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"util.ValidationError.html\" class=\"tsd-signature-type tsd-kind-class\">ValidationError</a></h4><aside class=\"tsd-sources\"><p>Overrides Error.constructor</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L50\">src/util.ts:50</a></li></ul></aside></div></li></ul></section></section></details><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member tsd-is-inherited tsd-is-external\"><a id=\"message\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>message</span><a href=\"#message\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">message</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><p>Inherited from Error.message</p><ul><li>Defined in node_modules/typescript/lib/lib.es5.d.ts:1077</li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited tsd-is-external\"><a id=\"name\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>name</span><a href=\"#name\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">name</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><p>Inherited from Error.name</p><ul><li>Defined in node_modules/typescript/lib/lib.es5.d.ts:1076</li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited tsd-is-external\"><a id=\"stack\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>stack</span><a href=\"#stack\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">stack</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><p>Inherited from Error.stack</p><ul><li>Defined in node_modules/typescript/lib/lib.es5.d.ts:1078</li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited tsd-is-external\"><a id=\"stacktracelimit\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Static</code><span>stack<wbr/>Trace<wbr/>Limit</span><a href=\"#stacktracelimit\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">stackTraceLimit</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>The <code>Error.stackTraceLimit</code> property specifies the number of stack frames\ncollected by a stack trace (whether generated by <code>new Error().stack</code> or\n<code>Error.captureStackTrace(obj)</code>).</p>\n<p>The default value is <code>10</code> but may be set to any valid JavaScript number. Changes\nwill affect any stack trace captured <em>after</em> the value has been changed.</p>\n<p>If set to a non-number value, or set to a negative number, stack traces will\nnot capture any frames.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Error.stackTraceLimit</p><ul><li>Defined in node_modules/@types/node/globals.d.ts:67</li></ul></aside></section></section></details><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Methods\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Methods</h2></summary><section><section class=\"tsd-panel tsd-member tsd-is-inherited tsd-is-external\"><a id=\"capturestacktrace\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Static</code><span>capture<wbr/>Stack<wbr/>Trace</span><a href=\"#capturestacktrace\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures tsd-is-inherited tsd-is-external\"><li class=\"tsd-is-inherited tsd-is-external\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"capturestacktrace-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">captureStackTrace</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">targetObject</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">object</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">constructorOpt</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Function</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#capturestacktrace-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Creates a <code>.stack</code> property on <code>targetObject</code>, which when accessed returns\na string representing the location in the code at which\n<code>Error.captureStackTrace()</code> was called.</p>\n<pre><code class=\"js\"><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">myObject</span><span class=\"hl-1\"> = {};</span><br/><span class=\"hl-2\">Error</span><span class=\"hl-1\">.</span><span class=\"hl-6\">captureStackTrace</span><span class=\"hl-1\">(</span><span class=\"hl-2\">myObject</span><span class=\"hl-1\">);</span><br/><span class=\"hl-2\">myObject</span><span class=\"hl-1\">.</span><span class=\"hl-2\">stack</span><span class=\"hl-1\">;  </span><span class=\"hl-9\">// Similar to `new Error().stack`</span>\n</code><button type=\"button\">Copy</button></pre>\n\n<p>The first line of the trace will be prefixed with\n<code>${myObject.name}: ${myObject.message}</code>.</p>\n<p>The optional <code>constructorOpt</code> argument accepts a function. If given, all frames\nabove <code>constructorOpt</code>, including <code>constructorOpt</code>, will be omitted from the\ngenerated stack trace.</p>\n<p>The <code>constructorOpt</code> argument is useful for hiding implementation\ndetails of error generation from the user. For instance:</p>\n<pre><code class=\"js\"><span class=\"hl-0\">function</span><span class=\"hl-1\"> </span><span class=\"hl-6\">a</span><span class=\"hl-1\">() {</span><br/><span class=\"hl-1\">  </span><span class=\"hl-6\">b</span><span class=\"hl-1\">();</span><br/><span class=\"hl-1\">}</span><br/><br/><span class=\"hl-0\">function</span><span class=\"hl-1\"> </span><span class=\"hl-6\">b</span><span class=\"hl-1\">() {</span><br/><span class=\"hl-1\">  </span><span class=\"hl-6\">c</span><span class=\"hl-1\">();</span><br/><span class=\"hl-1\">}</span><br/><br/><span class=\"hl-0\">function</span><span class=\"hl-1\"> </span><span class=\"hl-6\">c</span><span class=\"hl-1\">() {</span><br/><span class=\"hl-1\">  </span><span class=\"hl-9\">// Create an error without stack trace to avoid calculating the stack trace twice.</span><br/><span class=\"hl-1\">  </span><span class=\"hl-0\">const</span><span class=\"hl-1\"> { </span><span class=\"hl-8\">stackTraceLimit</span><span class=\"hl-1\"> } = </span><span class=\"hl-2\">Error</span><span class=\"hl-1\">;</span><br/><span class=\"hl-1\">  </span><span class=\"hl-2\">Error</span><span class=\"hl-1\">.</span><span class=\"hl-2\">stackTraceLimit</span><span class=\"hl-1\"> = </span><span class=\"hl-10\">0</span><span class=\"hl-1\">;</span><br/><span class=\"hl-1\">  </span><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">error</span><span class=\"hl-1\"> = </span><span class=\"hl-0\">new</span><span class=\"hl-1\"> </span><span class=\"hl-6\">Error</span><span class=\"hl-1\">();</span><br/><span class=\"hl-1\">  </span><span class=\"hl-2\">Error</span><span class=\"hl-1\">.</span><span class=\"hl-2\">stackTraceLimit</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">stackTraceLimit</span><span class=\"hl-1\">;</span><br/><br/><span class=\"hl-1\">  </span><span class=\"hl-9\">// Capture the stack trace above function b</span><br/><span class=\"hl-1\">  </span><span class=\"hl-2\">Error</span><span class=\"hl-1\">.</span><span class=\"hl-6\">captureStackTrace</span><span class=\"hl-1\">(</span><span class=\"hl-2\">error</span><span class=\"hl-1\">, </span><span class=\"hl-2\">b</span><span class=\"hl-1\">); </span><span class=\"hl-9\">// Neither function c, nor b is included in the stack trace</span><br/><span class=\"hl-1\">  </span><span class=\"hl-4\">throw</span><span class=\"hl-1\"> </span><span class=\"hl-2\">error</span><span class=\"hl-1\">;</span><br/><span class=\"hl-1\">}</span><br/><br/><span class=\"hl-6\">a</span><span class=\"hl-1\">();</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">targetObject</span>: <span class=\"tsd-signature-type\">object</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">constructorOpt</span>: <span class=\"tsd-signature-type\">Function</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Error.captureStackTrace</p><ul><li>Defined in node_modules/@types/node/globals.d.ts:51</li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member tsd-is-inherited tsd-is-external\"><a id=\"preparestacktrace\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Static</code><span>prepare<wbr/>Stack<wbr/>Trace</span><a href=\"#preparestacktrace\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures tsd-is-inherited tsd-is-external\"><li class=\"tsd-is-inherited tsd-is-external\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"preparestacktrace-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">prepareStackTrace</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">err</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Error</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">stackTraces</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">CallSite</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#preparestacktrace-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">err</span>: <span class=\"tsd-signature-type\">Error</span></span></li><li><span><span class=\"tsd-kind-parameter\">stackTraces</span>: <span class=\"tsd-signature-type\">CallSite</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"https://v8.dev/docs/stack-trace-api#customizing-stack-traces\">https://v8.dev/docs/stack-trace-api#customizing-stack-traces</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Error.prepareStackTrace</p><ul><li>Defined in node_modules/@types/node/globals.d.ts:55</li></ul></aside></div></li></ul></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Constructors\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Constructors</summary><div><a href=\"#constructor\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Constructor\"><use href=\"../assets/icons.svg#icon-512\"></use></svg><span>constructor</span></a></div></details><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#message\" class=\"tsd-is-inherited tsd-is-external\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>message</span></a><a href=\"#name\" class=\"tsd-is-inherited tsd-is-external\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>name</span></a><a href=\"#stack\" class=\"tsd-is-inherited tsd-is-external\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>stack</span></a><a href=\"#stacktracelimit\" class=\"tsd-is-inherited tsd-is-external\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>stack<wbr/>Trace<wbr/>Limit</span></a></div></details><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Methods\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Methods</summary><div><a href=\"#capturestacktrace\" class=\"tsd-is-inherited tsd-is-external\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>capture<wbr/>Stack<wbr/>Trace</span></a><a href=\"#preparestacktrace\" class=\"tsd-is-inherited tsd-is-external\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>prepare<wbr/>Stack<wbr/>Trace</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/classes/wb_node.WunderbaumNode.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WunderbaumNode | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/wb_node.html\">wb_node</a></li><li><a href=\"wb_node.WunderbaumNode.html\">WunderbaumNode</a></li></ul><h1>Class WunderbaumNode</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>A single tree node.</p>\n<p><strong>NOTE:</strong> <br>\nGenerally you should not modify properties directly, since this may break\nthe internal bookkeeping.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L109\">src/wb_node.ts:109</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Constructors</h3><div class=\"tsd-index-list\"><a href=\"wb_node.WunderbaumNode.html#constructor\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Constructor\"><use href=\"../assets/icons.svg#icon-512\"></use></svg><span>constructor</span></a>\n</div></section><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"wb_node.WunderbaumNode.html#_errorinfo\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_error<wbr/>Info</span></a>\n<a href=\"wb_node.WunderbaumNode.html#_filterautoexpanded\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_filter<wbr/>Auto<wbr/>Expanded?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#_isloading\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_is<wbr/>Loading</span></a>\n<a href=\"wb_node.WunderbaumNode.html#_partload\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_partload</span></a>\n<a href=\"wb_node.WunderbaumNode.html#_partsel\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_partsel</span></a>\n<a href=\"wb_node.WunderbaumNode.html#_requestid\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_request<wbr/>Id</span></a>\n<a href=\"wb_node.WunderbaumNode.html#_rowelem\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_row<wbr/>Elem</span></a>\n<a href=\"wb_node.WunderbaumNode.html#_rowidx\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_row<wbr/>Idx</span></a>\n<a href=\"wb_node.WunderbaumNode.html#checkbox\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>checkbox?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#children\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>children</span></a>\n<a href=\"wb_node.WunderbaumNode.html#classes\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>classes</span></a>\n<a href=\"wb_node.WunderbaumNode.html#colspan\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>colspan?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#data\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>data</span></a>\n<a href=\"wb_node.WunderbaumNode.html#expanded\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expanded?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#icon\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#icontooltip\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Tooltip?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#key\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>key</span></a>\n<a href=\"wb_node.WunderbaumNode.html#lazy\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>lazy?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#match\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>match?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#parent\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>parent</span></a>\n<a href=\"wb_node.WunderbaumNode.html#radiogroup\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>radiogroup?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#refkey\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>ref<wbr/>Key</span></a>\n<a href=\"wb_node.WunderbaumNode.html#selected\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>selected?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#statusnodetype\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>status<wbr/>Node<wbr/>Type?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#submatchcount\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>sub<wbr/>Match<wbr/>Count?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#title\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>title</span></a>\n<a href=\"wb_node.WunderbaumNode.html#titlewithhighlight\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>title<wbr/>With<wbr/>Highlight?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#tooltip\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tooltip?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#tree\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"wb_node.WunderbaumNode.html#type\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#unselectable\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>unselectable?</span></a>\n<a href=\"wb_node.WunderbaumNode.html#sequence\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>sequence</span></a>\n</div></section><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Methods</h3><div class=\"tsd-index-list\"><a href=\"wb_node.WunderbaumNode.html#_anyselectable\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_any<wbr/>Selectable</span></a>\n<a href=\"wb_node.WunderbaumNode.html#_callevent\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_call<wbr/>Event</span></a>\n<a href=\"wb_node.WunderbaumNode.html#_fetchwithoptions\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_fetch<wbr/>With<wbr/>Options</span></a>\n<a href=\"wb_node.WunderbaumNode.html#_render\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_render</span></a>\n<a href=\"wb_node.WunderbaumNode.html#iterator\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>[iterator]</span></a>\n<a href=\"wb_node.WunderbaumNode.html#addchildren\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>add<wbr/>Children</span></a>\n<a href=\"wb_node.WunderbaumNode.html#addnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>add<wbr/>Node</span></a>\n<a href=\"wb_node.WunderbaumNode.html#applycommand\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>apply<wbr/>Command</span></a>\n<a href=\"wb_node.WunderbaumNode.html#collapsesiblings\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>collapse<wbr/>Siblings</span></a>\n<a href=\"wb_node.WunderbaumNode.html#expandall\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>expand<wbr/>All</span></a>\n<a href=\"wb_node.WunderbaumNode.html#findall\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>All</span></a>\n<a href=\"wb_node.WunderbaumNode.html#finddirectchild\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>Direct<wbr/>Child</span></a>\n<a href=\"wb_node.WunderbaumNode.html#findfirst\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>First</span></a>\n<a href=\"wb_node.WunderbaumNode.html#findrelatednode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>Related<wbr/>Node</span></a>\n<a href=\"wb_node.WunderbaumNode.html#fixselection3afterclick\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>fix<wbr/>Selection3<wbr/>After<wbr/>Click</span></a>\n<a href=\"wb_node.WunderbaumNode.html#fixselection3fromendnodes\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>fix<wbr/>Selection3<wbr/>From<wbr/>End<wbr/>Nodes</span></a>\n<a href=\"wb_node.WunderbaumNode.html#format\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>format</span></a>\n<a href=\"wb_node.WunderbaumNode.html#format_iter\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>format_<wbr/>iter</span></a>\n<a href=\"wb_node.WunderbaumNode.html#getclonelist\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Clone<wbr/>List</span></a>\n<a href=\"wb_node.WunderbaumNode.html#getcolelem\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Col<wbr/>Elem</span></a>\n<a href=\"wb_node.WunderbaumNode.html#getfirstchild\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>First<wbr/>Child</span></a>\n<a href=\"wb_node.WunderbaumNode.html#getlastchild\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Last<wbr/>Child</span></a>\n<a href=\"wb_node.WunderbaumNode.html#getlevel\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Level</span></a>\n<a href=\"wb_node.WunderbaumNode.html#getnextsibling\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Next<wbr/>Sibling</span></a>\n<a href=\"wb_node.WunderbaumNode.html#getoption\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Option</span></a>\n<a href=\"wb_node.WunderbaumNode.html#getparent\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Parent</span></a>\n<a href=\"wb_node.WunderbaumNode.html#getparentlist\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Parent<wbr/>List</span></a>\n<a href=\"wb_node.WunderbaumNode.html#getpath\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Path</span></a>\n<a href=\"wb_node.WunderbaumNode.html#getprevsibling\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Prev<wbr/>Sibling</span></a>\n<a href=\"wb_node.WunderbaumNode.html#getrefkeys\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Ref<wbr/>Keys</span></a>\n<a href=\"wb_node.WunderbaumNode.html#getselectednodes\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Selected<wbr/>Nodes</span></a>\n<a href=\"wb_node.WunderbaumNode.html#haschildren\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>has<wbr/>Children</span></a>\n<a href=\"wb_node.WunderbaumNode.html#hasclass\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>has<wbr/>Class</span></a>\n<a href=\"wb_node.WunderbaumNode.html#hasfocus\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>has<wbr/>Focus</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isactive\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Active</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isancestorof\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Ancestor<wbr/>Of</span></a>\n<a href=\"wb_node.WunderbaumNode.html#ischildof\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Child<wbr/>Of</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isclone\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Clone</span></a>\n<a href=\"wb_node.WunderbaumNode.html#iscolspan\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Colspan</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isdescendantof\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Descendant<wbr/>Of</span></a>\n<a href=\"wb_node.WunderbaumNode.html#iseditingtitle\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Editing<wbr/>Title</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isexpandable\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Expandable</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isexpanded\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Expanded</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isfirstsibling\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>First<wbr/>Sibling</span></a>\n<a href=\"wb_node.WunderbaumNode.html#islastsibling\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Last<wbr/>Sibling</span></a>\n<a href=\"wb_node.WunderbaumNode.html#islazy\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Lazy</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isloaded\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Loaded</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isloading\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Loading</span></a>\n<a href=\"wb_node.WunderbaumNode.html#ismatched\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Matched</span></a>\n<a href=\"wb_node.WunderbaumNode.html#ispagingnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Paging<wbr/>Node</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isparentof\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Parent<wbr/>Of</span></a>\n<a href=\"wb_node.WunderbaumNode.html#ispartload\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Partload</span></a>\n<a href=\"wb_node.WunderbaumNode.html#ispartsel\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Partsel</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isradio\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Radio</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isrendered\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Rendered</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isrootnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Root<wbr/>Node</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isselected\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Selected</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isstatusnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Status<wbr/>Node</span></a>\n<a href=\"wb_node.WunderbaumNode.html#istoplevel\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Top<wbr/>Level</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isunloaded\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Unloaded</span></a>\n<a href=\"wb_node.WunderbaumNode.html#isvisible\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Visible</span></a>\n<a href=\"wb_node.WunderbaumNode.html#load\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>load</span></a>\n<a href=\"wb_node.WunderbaumNode.html#loadlazy\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>load<wbr/>Lazy</span></a>\n<a href=\"wb_node.WunderbaumNode.html#log\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log</span></a>\n<a href=\"wb_node.WunderbaumNode.html#logdebug\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Debug</span></a>\n<a href=\"wb_node.WunderbaumNode.html#logerror\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Error</span></a>\n<a href=\"wb_node.WunderbaumNode.html#loginfo\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Info</span></a>\n<a href=\"wb_node.WunderbaumNode.html#logwarn\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Warn</span></a>\n<a href=\"wb_node.WunderbaumNode.html#makevisible\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>make<wbr/>Visible</span></a>\n<a href=\"wb_node.WunderbaumNode.html#moveto\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>move<wbr/>To</span></a>\n<a href=\"wb_node.WunderbaumNode.html#navigate\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>navigate</span></a>\n<a href=\"wb_node.WunderbaumNode.html#remove\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>remove</span></a>\n<a href=\"wb_node.WunderbaumNode.html#removechildren\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>remove<wbr/>Children</span></a>\n<a href=\"wb_node.WunderbaumNode.html#removemarkup\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>remove<wbr/>Markup</span></a>\n<a href=\"wb_node.WunderbaumNode.html#resetlazy\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>reset<wbr/>Lazy</span></a>\n<a href=\"wb_node.WunderbaumNode.html#resetnativechildorder\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>reset<wbr/>Native<wbr/>Child<wbr/>Order</span></a>\n<a href=\"wb_node.WunderbaumNode.html#resort\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>resort</span></a>\n<a href=\"wb_node.WunderbaumNode.html#scrollintoview\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>scroll<wbr/>Into<wbr/>View</span></a>\n<a href=\"wb_node.WunderbaumNode.html#setactive\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Active</span></a>\n<a href=\"wb_node.WunderbaumNode.html#setclass\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Class</span></a>\n<a href=\"wb_node.WunderbaumNode.html#setexpanded\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Expanded</span></a>\n<a href=\"wb_node.WunderbaumNode.html#setfocus\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Focus</span></a>\n<a href=\"wb_node.WunderbaumNode.html#seticon\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Icon</span></a>\n<a href=\"wb_node.WunderbaumNode.html#setkey\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Key</span></a>\n<a href=\"wb_node.WunderbaumNode.html#setselected\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Selected</span></a>\n<a href=\"wb_node.WunderbaumNode.html#setstatus\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Status</span></a>\n<a href=\"wb_node.WunderbaumNode.html#settitle\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Title</span></a>\n<a href=\"wb_node.WunderbaumNode.html#settooltip\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Tooltip</span></a>\n<a href=\"wb_node.WunderbaumNode.html#sort\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>sort</span></a>\n<a href=\"wb_node.WunderbaumNode.html#sortbyproperty\" class=\"tsd-index-link deprecated\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>sort<wbr/>By<wbr/>Property</span></a>\n<a href=\"wb_node.WunderbaumNode.html#sortchildren\" class=\"tsd-index-link deprecated\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>sort<wbr/>Children</span></a>\n<a href=\"wb_node.WunderbaumNode.html#startedittitle\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>start<wbr/>Edit<wbr/>Title</span></a>\n<a href=\"wb_node.WunderbaumNode.html#todict\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>to<wbr/>Dict</span></a>\n<a href=\"wb_node.WunderbaumNode.html#toggleselected\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>toggle<wbr/>Selected</span></a>\n<a href=\"wb_node.WunderbaumNode.html#tostring\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>to<wbr/>String</span></a>\n<a href=\"wb_node.WunderbaumNode.html#triggermodify\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>trigger<wbr/>Modify</span></a>\n<a href=\"wb_node.WunderbaumNode.html#triggermodifychild\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>trigger<wbr/>Modify<wbr/>Child</span></a>\n<a href=\"wb_node.WunderbaumNode.html#update\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>update</span></a>\n<a href=\"wb_node.WunderbaumNode.html#visit\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>visit</span></a>\n<a href=\"wb_node.WunderbaumNode.html#visitparents\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>visit<wbr/>Parents</span></a>\n<a href=\"wb_node.WunderbaumNode.html#visitsiblings\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>visit<wbr/>Siblings</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Constructors\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Constructors</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"constructor\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>constructor</span><a href=\"#constructor\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"constructorwunderbaumnode\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-keyword\">new</span> <span class=\"tsd-kind-constructor-signature\">WunderbaumNode</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">parent</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">data</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#constructorwunderbaumnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">tree</span>: <a href=\"wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></span></li><li><span><span class=\"tsd-kind-parameter\">parent</span>: <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li><li><span><span class=\"tsd-kind-parameter\">data</span>: <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L190\">src/wb_node.ts:190</a></li></ul></aside></div></li></ul></section></section></details><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"_errorinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_error<wbr/>Info</span><a href=\"#_errorinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_errorInfo</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\"> = null</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L172\">src/wb_node.ts:172</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"_filterautoexpanded\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>_filter<wbr/>Auto<wbr/>Expanded</span><a href=\"#_filterautoexpanded\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_filterAutoExpanded</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L185\">src/wb_node.ts:185</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"_isloading\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_is<wbr/>Loading</span><a href=\"#_isloading\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_isLoading</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L170\">src/wb_node.ts:170</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"_partload\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_partload</span><a href=\"#_partload\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_partload</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L174\">src/wb_node.ts:174</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"_partsel\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_partsel</span><a href=\"#_partsel\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_partsel</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L173\">src/wb_node.ts:173</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"_requestid\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_request<wbr/>Id</span><a href=\"#_requestid\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_requestId</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\"> = 0</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L171\">src/wb_node.ts:171</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"_rowelem\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_row<wbr/>Elem</span><a href=\"#_rowelem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_rowElem</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLDivElement</span><span class=\"tsd-signature-symbol\"> = undefined</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L188\">src/wb_node.ts:188</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"_rowidx\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_row<wbr/>Idx</span><a href=\"#_rowidx\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_rowIdx</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\"> = 0</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L187\">src/wb_node.ts:187</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"checkbox\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>checkbox</span><a href=\"#checkbox\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">checkbox</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.CheckboxOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">CheckboxOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Render a checkbox or radio button</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#selected\" class=\"tsd-kind-property\">selected</a>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L135\">src/wb_node.ts:135</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"children\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>children</span><a href=\"#children\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">children</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\"> = null</span></div><div class=\"tsd-comment tsd-typography\"><p>Array of child nodes (null for leaf nodes).\nFor lazy nodes, this is <code>null</code> or ùndefined<code>until the children are loaded and leaf nodes may be</code>[]` (empty array).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-1\" class=\"tsd-anchor\"></a>See<a href=\"#see-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#haschildren\" class=\"tsd-kind-method\">hasChildren</a>, <a href=\"wb_node.WunderbaumNode.html#addchildren\" class=\"tsd-kind-method\">addChildren</a>, <a href=\"wb_node.WunderbaumNode.html#lazy\" class=\"tsd-kind-property\">lazy</a>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L133\">src/wb_node.ts:133</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"classes\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>classes</span><a href=\"#classes\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">classes</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">Set</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">&gt;</span><span class=\"tsd-signature-symbol\"> = null</span></div><div class=\"tsd-comment tsd-typography\"><p>Additional classes added to <code>div.wb-row</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-2\" class=\"tsd-anchor\"></a>See<a href=\"#see-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#hasclass\" class=\"tsd-kind-method\">hasClass</a>, <a href=\"wb_node.WunderbaumNode.html#setclass\" class=\"tsd-kind-method\">setClass</a>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L165\">src/wb_node.ts:165</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"colspan\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>colspan</span><a href=\"#colspan\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colspan</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>If true, (in grid mode) no cells are rendered, except for the node title.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L141\">src/wb_node.ts:141</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"data\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>data</span><a href=\"#data\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">data</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\"> = {}</span></div><div class=\"tsd-comment tsd-typography\"><p>Custom data that was passed to the constructor</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L167\">src/wb_node.ts:167</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"expanded\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>expanded</span><a href=\"#expanded\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">expanded</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Expansion state.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-3\" class=\"tsd-anchor\"></a>See<a href=\"#see-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#isexpandable\" class=\"tsd-kind-method\">isExpandable</a>, <a href=\"wb_node.WunderbaumNode.html#isexpanded\" class=\"tsd-kind-method\">isExpanded</a>, <a href=\"wb_node.WunderbaumNode.html#setexpanded\" class=\"tsd-kind-method\">setExpanded</a>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L150\">src/wb_node.ts:150</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"icon\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>icon</span><a href=\"#icon\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">icon</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.IconOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">IconOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Icon definition.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L143\">src/wb_node.ts:143</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"icontooltip\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>icon<wbr/>Tooltip</span><a href=\"#icontooltip\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">iconTooltip</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.TooltipOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TooltipOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Icon tooltip definition (<code>true</code>: use node's title).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L162\">src/wb_node.ts:162</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"key\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Readonly</code><span>key</span><a href=\"#key\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Unique key. Passed with constructor or defaults to <code>SEQUENCE</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-4\" class=\"tsd-anchor\"></a>See<a href=\"#see-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>Use <a href=\"wb_node.WunderbaumNode.html#setkey\" class=\"tsd-kind-method\">setKey</a> to modify.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L121\">src/wb_node.ts:121</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"lazy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>lazy</span><a href=\"#lazy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">lazy</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Lazy loading flag.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-5\" class=\"tsd-anchor\"></a>See<a href=\"#see-5\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#islazy\" class=\"tsd-kind-method\">isLazy</a>, <a href=\"wb_node.WunderbaumNode.html#isloaded\" class=\"tsd-kind-method\">isLoaded</a>, <a href=\"wb_node.WunderbaumNode.html#isunloaded\" class=\"tsd-kind-method\">isUnloaded</a>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L147\">src/wb_node.ts:147</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"match\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>match</span><a href=\"#match\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">match</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><blockquote>\n<p>0 if matched (-1 to keep system nodes visible);\nAdded and removed by filter code.</p>\n</blockquote>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L180\">src/wb_node.ts:180</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"parent\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>parent</span><a href=\"#parent\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">parent</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>Parent node (null for the invisible root node <code>tree.root</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L115\">src/wb_node.ts:115</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"radiogroup\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>radiogroup</span><a href=\"#radiogroup\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">radiogroup</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>If true, this node's children are considerd radio buttons.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-6\" class=\"tsd-anchor\"></a>See<a href=\"#see-6\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#isradio\" class=\"tsd-kind-method\">isRadio</a>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L139\">src/wb_node.ts:139</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"refkey\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Readonly</code><span>ref<wbr/>Key</span><a href=\"#refkey\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">refKey</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\"> = undefined</span></div><div class=\"tsd-comment tsd-typography\"><p>Reference key. Unlike <a href=\"wb_node.WunderbaumNode.html#key\" class=\"tsd-kind-property\">key</a>, a <code>refKey</code> may occur multiple\ntimes within a tree (in this case we have 'clone nodes').</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-7\" class=\"tsd-anchor\"></a>See<a href=\"#see-7\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>Use <a href=\"wb_node.WunderbaumNode.html#setkey\" class=\"tsd-kind-method\">setKey</a> to modify.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L126\">src/wb_node.ts:126</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"selected\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>selected</span><a href=\"#selected\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">selected</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Selection state.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-8\" class=\"tsd-anchor\"></a>See<a href=\"#see-8\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#isselected\" class=\"tsd-kind-method\">isSelected</a>, <a href=\"wb_node.WunderbaumNode.html#setselected\" class=\"tsd-kind-method\">setSelected</a>, <a href=\"wb_node.WunderbaumNode.html#toggleselected\" class=\"tsd-kind-method\">toggleSelected</a>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L153\">src/wb_node.ts:153</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"statusnodetype\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>status<wbr/>Node<wbr/>Type</span><a href=\"#statusnodetype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">statusNodeType</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../enums/types.NodeStatusType.html\" class=\"tsd-signature-type tsd-kind-enum\">NodeStatusType</a></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L169\">src/wb_node.ts:169</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"submatchcount\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>sub<wbr/>Match<wbr/>Count</span><a href=\"#submatchcount\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">subMatchCount</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\"> = 0</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L181\">src/wb_node.ts:181</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"title\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>title</span><a href=\"#title\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">title</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the node.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-9\" class=\"tsd-anchor\"></a>See<a href=\"#see-9\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>Use <a href=\"wb_node.WunderbaumNode.html#settitle\" class=\"tsd-kind-method\">setTitle</a> to modify.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L118\">src/wb_node.ts:118</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"titlewithhighlight\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code> <code class=\"tsd-tag\">Internal</code><span>title<wbr/>With<wbr/>Highlight</span><a href=\"#titlewithhighlight\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">titleWithHighlight</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L184\">src/wb_node.ts:184</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"tooltip\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>tooltip</span><a href=\"#tooltip\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tooltip</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.TooltipOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TooltipOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Tooltip definition (<code>true</code>: use node's title).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L160\">src/wb_node.ts:160</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>Reference to owning tree.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L113\">src/wb_node.ts:113</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Node type (used for styling).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-10\" class=\"tsd-anchor\"></a>See<a href=\"#see-10\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L158\">src/wb_node.ts:158</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"unselectable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>unselectable</span><a href=\"#unselectable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">unselectable</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L154\">src/wb_node.ts:154</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"sequence\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Static</code><span>sequence</span><a href=\"#sequence\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">sequence</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\"> = 0</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L110\">src/wb_node.ts:110</a></li></ul></aside></section></section></details><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Methods\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Methods</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"_anyselectable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_any<wbr/>Selectable</span><a href=\"#_anyselectable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"_anyselectable-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">_anySelectable</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#_anyselectable-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Internal</code><div class=\"tsd-comment tsd-typography\"><p>Return true if at least on selectable descendant end-node is unselected.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2389\">src/wb_node.ts:2389</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"_callevent\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_call<wbr/>Event</span><a href=\"#_callevent\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"_callevent-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">_callEvent</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">extra</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#_callevent-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Call event handler if defined in tree.options.\nExample:</p>\n<pre><code class=\"js\"><span class=\"hl-2\">node</span><span class=\"hl-1\">.</span><span class=\"hl-6\">_callEvent</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&quot;edit.beforeEdit&quot;</span><span class=\"hl-1\">, {</span><span class=\"hl-2\">foo:</span><span class=\"hl-1\"> </span><span class=\"hl-10\">42</span><span class=\"hl-1\">})</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">type</span>: <span class=\"tsd-signature-type\">string</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">extra</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L300\">src/wb_node.ts:300</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"_fetchwithoptions\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_fetch<wbr/>With<wbr/>Options</span><a href=\"#_fetchwithoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"_fetchwithoptions-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">_fetchWithOptions</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">source</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#_fetchwithoptions-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">source</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1148\">src/wb_node.ts:1148</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"_render\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_render</span><a href=\"#_render\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"_render-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">_render</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.RenderOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">RenderOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#_render-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.RenderOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">RenderOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2001\">src/wb_node.ts:2001</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"iterator\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>[iterator]</span><a href=\"#iterator\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"iterator-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">&quot;[iterator]&quot;</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">IterableIterator</span><span class=\"tsd-signature-symbol\">&lt;</span><a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#iterator-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Iterate all descendant nodes depth-first, pre-order using <code>for ... of ...</code> syntax.\nMore concise, but slightly slower than <a href=\"wb_node.WunderbaumNode.html#visit\" class=\"tsd-kind-method\">WunderbaumNode.visit</a>.</p>\n<p>Example:</p>\n<pre><code class=\"js\"><span class=\"hl-4\">for</span><span class=\"hl-1\">(</span><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">n</span><span class=\"hl-1\"> </span><span class=\"hl-0\">of</span><span class=\"hl-1\"> </span><span class=\"hl-2\">node</span><span class=\"hl-1\">) {</span><br/><span class=\"hl-1\">  ...</span><br/><span class=\"hl-1\">}</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">IterableIterator</span><span class=\"tsd-signature-symbol\">&lt;</span><a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L259\">src/wb_node.ts:259</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"addchildren\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>add<wbr/>Children</span><a href=\"#addchildren\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"addchildren-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">addChildren</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">nodeData</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.AddChildrenOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">AddChildrenOptions</a><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#addchildren-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Append (or insert) a list of child nodes.</p>\n<p>Tip: pass <code>{ before: 0 }</code> to prepend new nodes as first children.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">nodeData</span>: <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><span class=\"tsd-signature-symbol\">[]</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.AddChildrenOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">AddChildrenOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><p>first child added</p>\n<div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L320\">src/wb_node.ts:320</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"addnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>add<wbr/>Node</span><a href=\"#addnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"addnode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">addNode</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">nodeData</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">mode</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.InsertNodeType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">InsertNodeType</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#addnode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Append or prepend a node, or append a child node.</p>\n<p>This a convenience function that calls addChildren()</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">nodeData</span>: <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a></span><div class=\"tsd-comment tsd-typography\"><p>node definition</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">mode</span>: <a href=\"../types/types.InsertNodeType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">InsertNodeType</a><span class=\"tsd-signature-symbol\"> = &quot;appendChild&quot;</span></span><div class=\"tsd-comment tsd-typography\"><p>'before', 'after', 'firstChild', or 'child' ('over' is a synonym for 'child')</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><p>new node</p>\n<div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L402\">src/wb_node.ts:402</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"applycommand\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>apply<wbr/>Command</span><a href=\"#applycommand\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"applycommand-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">applyCommand</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">cmd</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.ApplyCommandType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ApplyCommandType</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.ApplyCommandOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ApplyCommandOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#applycommand-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Apply a modification (or navigation) operation.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">cmd</span>: <a href=\"../types/types.ApplyCommandType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ApplyCommandType</a></span></li><li><span><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.ApplyCommandOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ApplyCommandOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-11\" class=\"tsd-anchor\"></a>See<a href=\"#see-11\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wunderbaum.Wunderbaum.html#applycommand\" class=\"tsd-kind-method\">Wunderbaum.applyCommand</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L432\">src/wb_node.ts:432</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"collapsesiblings\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>collapse<wbr/>Siblings</span><a href=\"#collapsesiblings\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"collapsesiblings-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">collapseSiblings</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.SetExpandedOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetExpandedOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#collapsesiblings-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Collapse all expanded sibling nodes if any.\n(Automatically called when <code>autoCollapse</code> is true.)</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SetExpandedOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetExpandedOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L440\">src/wb_node.ts:440</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"expandall\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>expand<wbr/>All</span><a href=\"#expandall\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"expandall-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">expandAll</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">flag</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.ExpandAllOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ExpandAllOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#expandall-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Call <code>setExpanded()</code> on all descendant nodes.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">flag</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span><div class=\"tsd-comment tsd-typography\"><p>true to expand, false to collapse.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.ExpandAllOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ExpandAllOptions</a></span><div class=\"tsd-comment tsd-typography\"><p>Additional options.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-12\" class=\"tsd-anchor\"></a>See<a href=\"#see-12\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><ul>\n<li><a href=\"wunderbaum.Wunderbaum.html#expandall\" class=\"tsd-kind-method\">Wunderbaum.expandAll</a></li>\n<li><a href=\"wb_node.WunderbaumNode.html#setexpanded\" class=\"tsd-kind-method\">WunderbaumNode.setExpanded</a></li>\n</ul>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L496\">src/wb_node.ts:496</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"findall\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>find<wbr/>All</span><a href=\"#findall\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"findall-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">findAll</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">match</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">RegExp</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.MatcherCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">MatcherCallback</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span><a href=\"#findall-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Find all descendant nodes that match condition (excluding self).</p>\n<p>If <code>match</code> is a string, search for exact node title.\nIf <code>match</code> is a RegExp expression, apply it to node.title, using\n<a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test\">RegExp.test()</a>.\nIf <code>match</code> is a callback, match all nodes for that the callback(node) returns true.</p>\n<p>Returns an empty array if no nodes were found.</p>\n<p>Examples:</p>\n<pre><code class=\"js\"><span class=\"hl-9\">// Match all node titles that match exactly &#39;Joe&#39;:</span><br/><span class=\"hl-2\">nodeList</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">node</span><span class=\"hl-1\">.</span><span class=\"hl-6\">findAll</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&quot;Joe&quot;</span><span class=\"hl-1\">)</span><br/><span class=\"hl-9\">// Match all node titles that start with &#39;Joe&#39; case sensitive:</span><br/><span class=\"hl-2\">nodeList</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">node</span><span class=\"hl-1\">.</span><span class=\"hl-6\">findAll</span><span class=\"hl-1\">(</span><span class=\"hl-11\">/</span><span class=\"hl-12\">^</span><span class=\"hl-11\">Joe/</span><span class=\"hl-1\">)</span><br/><span class=\"hl-9\">// Match all node titles that contain &#39;oe&#39;, case insensitive:</span><br/><span class=\"hl-2\">nodeList</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">node</span><span class=\"hl-1\">.</span><span class=\"hl-6\">findAll</span><span class=\"hl-1\">(</span><span class=\"hl-11\">/oe/</span><span class=\"hl-0\">i</span><span class=\"hl-1\">)</span><br/><span class=\"hl-9\">// Match all nodes with `data.price` &gt;= 99:</span><br/><span class=\"hl-2\">nodeList</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">node</span><span class=\"hl-1\">.</span><span class=\"hl-6\">findAll</span><span class=\"hl-1\">((</span><span class=\"hl-2\">n</span><span class=\"hl-1\">) </span><span class=\"hl-0\">=&gt;</span><span class=\"hl-1\"> {</span><br/><span class=\"hl-1\">  </span><span class=\"hl-4\">return</span><span class=\"hl-1\"> </span><span class=\"hl-2\">n</span><span class=\"hl-1\">.</span><span class=\"hl-2\">data</span><span class=\"hl-1\">.</span><span class=\"hl-2\">price</span><span class=\"hl-1\"> &gt;= </span><span class=\"hl-10\">99</span><span class=\"hl-1\">;</span><br/><span class=\"hl-1\">})</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">match</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">RegExp</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.MatcherCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">MatcherCallback</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L616\">src/wb_node.ts:616</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"finddirectchild\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>find<wbr/>Direct<wbr/>Child</span><a href=\"#finddirectchild\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"finddirectchild-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">findDirectChild</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">ptr</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#finddirectchild-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the direct child with a given key, index or null.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">ptr</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L629\">src/wb_node.ts:629</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"findfirst\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>find<wbr/>First</span><a href=\"#findfirst\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"findfirst-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">findFirst</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">match</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">RegExp</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.MatcherCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">MatcherCallback</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#findfirst-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Find first descendant node that matches condition (excluding self) or null.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">match</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">RegExp</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.MatcherCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">MatcherCallback</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-13\" class=\"tsd-anchor\"></a>See<a href=\"#see-13\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#findall\" class=\"tsd-kind-method\">WunderbaumNode.findAll</a> for examples.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L657\">src/wb_node.ts:657</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"findrelatednode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>find<wbr/>Related<wbr/>Node</span><a href=\"#findrelatednode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"findrelatednode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">findRelatedNode</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">where</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.NavigationType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NavigationType</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">includeHidden</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#findrelatednode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Find a node relative to self.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">where</span>: <a href=\"../types/types.NavigationType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NavigationType</a></span></li><li><span><span class=\"tsd-kind-parameter\">includeHidden</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-14\" class=\"tsd-anchor\"></a>See<a href=\"#see-14\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wunderbaum.Wunderbaum.html#findrelatednode\" class=\"tsd-kind-method\">tree.findRelatedNode()</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L674\">src/wb_node.ts:674</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"fixselection3afterclick\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>fix<wbr/>Selection3<wbr/>After<wbr/>Click</span><a href=\"#fixselection3afterclick\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"fixselection3afterclick-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">fixSelection3AfterClick</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">opts</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.SetSelectedOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetSelectedOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#fixselection3afterclick-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Fix selection status, after this node was (de)selected in <code>selectMode: 'hier'</code>.\nThis includes (de)selecting all descendants.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">opts</span>: <a href=\"../interfaces/types.SetSelectedOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetSelectedOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2437\">src/wb_node.ts:2437</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"fixselection3fromendnodes\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>fix<wbr/>Selection3<wbr/>From<wbr/>End<wbr/>Nodes</span><a href=\"#fixselection3fromendnodes\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"fixselection3fromendnodes-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">fixSelection3FromEndNodes</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">opts</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.SetSelectedOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetSelectedOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#fixselection3fromendnodes-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Fix selection status for multi-hier mode.\nOnly end-nodes are considered to update the descendants branch and parents.\nShould be called after this node has loaded new children or after\nchildren have been modified using the API.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">opts</span>: <a href=\"../interfaces/types.SetSelectedOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetSelectedOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2458\">src/wb_node.ts:2458</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"format\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>format</span><a href=\"#format\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"format-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">format</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">name_cb</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.NodeStringCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeStringCallback</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">connectors</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><a href=\"#format-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return a multiline string representation of a node/subnode hierarchy.\nMostly useful for debugging.</p>\n<p>Example:</p>\n<pre><code class=\"js\"><span class=\"hl-2\">console</span><span class=\"hl-1\">.</span><span class=\"hl-6\">info</span><span class=\"hl-1\">(</span><span class=\"hl-2\">tree</span><span class=\"hl-1\">.</span><span class=\"hl-6\">getActiveNode</span><span class=\"hl-1\">().</span><span class=\"hl-6\">format</span><span class=\"hl-1\">((</span><span class=\"hl-2\">n</span><span class=\"hl-1\">)</span><span class=\"hl-0\">=&gt;</span><span class=\"hl-2\">n</span><span class=\"hl-1\">.</span><span class=\"hl-2\">title</span><span class=\"hl-1\">));</span>\n</code><button type=\"button\">Copy</button></pre>\n\n<p>logs</p>\n<pre><code><span class=\"hl-2\">Books</span><br/><span class=\"hl-1\"> ├─ </span><span class=\"hl-2\">Art</span><span class=\"hl-1\"> </span><span class=\"hl-0\">of</span><span class=\"hl-1\"> </span><span class=\"hl-2\">War</span><br/><span class=\"hl-1\"> ╰─ </span><span class=\"hl-2\">Don</span><span class=\"hl-1\"> </span><span class=\"hl-2\">Quixote</span>\n</code><button>Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">name_cb</span>: <a href=\"../types/types.NodeStringCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeStringCallback</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">connectors</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-15\" class=\"tsd-anchor\"></a>See<a href=\"#see-15\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#format_iter\" class=\"tsd-kind-method\">WunderbaumNode.format_iter</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L728\">src/wb_node.ts:728</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"format_iter\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>format_<wbr/>iter</span><a href=\"#format_iter\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"format_iter-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">format_iter</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">name_cb</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.NodeStringCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeStringCallback</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">connectors</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">IterableIterator</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#format_iter-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Iterator version of <a href=\"wb_node.WunderbaumNode.html#format\" class=\"tsd-kind-method\">WunderbaumNode.format</a>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">name_cb</span>: <a href=\"../types/types.NodeStringCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeStringCallback</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">connectors</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">IterableIterator</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L681\">src/wb_node.ts:681</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getclonelist\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Clone<wbr/>List</span><a href=\"#getclonelist\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getclonelist-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getCloneList</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">includeSelf</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span><a href=\"#getclonelist-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return all nodes with the same refKey.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">includeSelf</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>Include this node itself.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-16\" class=\"tsd-anchor\"></a>See<a href=\"#see-16\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wunderbaum.Wunderbaum.html#findbyrefkey\" class=\"tsd-kind-method\">Wunderbaum.findByRefKey</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L752\">src/wb_node.ts:752</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getcolelem\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Col<wbr/>Elem</span><a href=\"#getcolelem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getcolelem-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getColElem</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">colIdx</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLSpanElement</span><a href=\"#getcolelem-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the <code>&lt;span class='wb-col'&gt;</code> element with a given index or id.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">colIdx</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLSpanElement</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L739\">src/wb_node.ts:739</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getfirstchild\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>First<wbr/>Child</span><a href=\"#getfirstchild\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getfirstchild-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getFirstChild</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#getfirstchild-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the first child node or null.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L766\">src/wb_node.ts:766</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getlastchild\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Last<wbr/>Child</span><a href=\"#getlastchild\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getlastchild-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getLastChild</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#getlastchild-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the last child node or null.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L773\">src/wb_node.ts:773</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getlevel\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Level</span><a href=\"#getlevel\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getlevel-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getLevel</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><a href=\"#getlevel-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return node depth (starting with 1 for top level nodes).</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">number</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L778\">src/wb_node.ts:778</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getnextsibling\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Next<wbr/>Sibling</span><a href=\"#getnextsibling\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getnextsibling-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getNextSibling</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#getnextsibling-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the successive node (under the same parent) or null.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L790\">src/wb_node.ts:790</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getoption\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Option</span><a href=\"#getoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getoption-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getOption</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">name</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">defaultValue</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#getoption-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return an option value that has a default, but may be overridden by a\ncallback or a node instance attribute.</p>\n<p>Evaluation sequence:</p>\n<ul>\n<li>If <code>tree.options.&lt;name&gt;</code> is a callback that returns something, use that.</li>\n<li>Else if <code>node.&lt;name&gt;</code> is defined, use that.</li>\n<li>Else if <code>tree.types[&lt;node.type&gt;]</code> is a value, use that.</li>\n<li>Else if <code>tree.options.&lt;name&gt;</code> is a value, use that.</li>\n<li>Else use <code>defaultValue</code>.</li>\n</ul>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">name</span>: <span class=\"tsd-signature-type\">string</span></span><div class=\"tsd-comment tsd-typography\"><p>name of the option property (on node and tree)</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">defaultValue</span>: <span class=\"tsd-signature-type\">any</span></span><div class=\"tsd-comment tsd-typography\"><p>return this if nothing else matched\n<a href=\"wunderbaum.Wunderbaum.html#getoption\" class=\"tsd-kind-method\">Wunderbaum.getOption</a></p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2110\">src/wb_node.ts:2110</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getparent\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Parent</span><a href=\"#getparent\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getparent-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getParent</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#getparent-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the parent node (null for the system root node).</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L797\">src/wb_node.ts:797</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getparentlist\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Parent<wbr/>List</span><a href=\"#getparentlist\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getparentlist-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getParentList</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">includeRoot</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">includeSelf</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span><a href=\"#getparentlist-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return an array of all parent nodes (top-down).</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">includeRoot</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>Include the invisible system root node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">includeSelf</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>Include the node itself.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L806\">src/wb_node.ts:806</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getpath\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Path</span><a href=\"#getpath\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getpath-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getPath</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">includeSelf</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">part</span><span class=\"tsd-signature-symbol\">?:</span> (keyof WunderbaumNode) <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.NodeAnyCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeAnyCallback</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">separator</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><a href=\"#getpath-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return a string representing the hierarchical node path, e.g. &quot;a/b/c&quot;.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">includeSelf</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">part</span>: (keyof WunderbaumNode) <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.NodeAnyCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeAnyCallback</a><span class=\"tsd-signature-symbol\"> = &quot;title&quot;</span></span><div class=\"tsd-comment tsd-typography\"><p>property name or callback</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">separator</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\"> = &quot;/&quot;</span></span><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L822\">src/wb_node.ts:822</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getprevsibling\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Prev<wbr/>Sibling</span><a href=\"#getprevsibling\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getprevsibling-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getPrevSibling</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#getprevsibling-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the preceding node (under the same parent) or null.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L844\">src/wb_node.ts:844</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getrefkeys\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Ref<wbr/>Keys</span><a href=\"#getrefkeys\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getrefkeys-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getRefKeys</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">selected</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span><a href=\"#getrefkeys-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return an array of refKey values.</p>\n<p>RefKeys are unique identifiers for a node data, and are used to identify\nclones.\nIf more than one node has the same refKey, it is only returned once.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">selected</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>if true, only return refKeys of selected nodes.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2367\">src/wb_node.ts:2367</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getselectednodes\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Selected<wbr/>Nodes</span><a href=\"#getselectednodes\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getselectednodes-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getSelectedNodes</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">stopOnParents</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span><a href=\"#getselectednodes-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return an array of selected nodes.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">stopOnParents</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>only return the topmost selected node (useful with selectMode 'hier')</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2346\">src/wb_node.ts:2346</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"haschildren\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>has<wbr/>Children</span><a href=\"#haschildren\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"haschildren-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">hasChildren</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#haschildren-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if node has children.\nReturn undefined if not sure, i.e. the node is lazy and not yet loaded.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L853\">src/wb_node.ts:853</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"hasclass\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>has<wbr/>Class</span><a href=\"#hasclass\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"hasclass-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">hasClass</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">className</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#hasclass-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if node has className set.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">className</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L871\">src/wb_node.ts:871</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"hasfocus\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>has<wbr/>Focus</span><a href=\"#hasfocus\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"hasfocus-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">hasFocus</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#hasfocus-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if node is the currently focused node.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since\" class=\"tsd-anchor\"></a>Since<a href=\"#since\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.9.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L876\">src/wb_node.ts:876</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isactive\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Active</span><a href=\"#isactive\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isactive-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isActive</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isactive-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is the currently active tree node.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L881\">src/wb_node.ts:881</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isancestorof\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Ancestor<wbr/>Of</span><a href=\"#isancestorof\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isancestorof-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isAncestorOf</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">other</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isancestorof-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is a direct or indirect parent of <code>other</code>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">other</span>: <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-17\" class=\"tsd-anchor\"></a>See<a href=\"#see-17\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#isparentof\" class=\"tsd-kind-method\">WunderbaumNode.isParentOf</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L888\">src/wb_node.ts:888</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"ischildof\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Child<wbr/>Of</span><a href=\"#ischildof\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"ischildof-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isChildOf</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">other</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#ischildof-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is a <strong>direct</strong> subnode of <code>other</code>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">other</span>: <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-18\" class=\"tsd-anchor\"></a>See<a href=\"#see-18\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#isdescendantof\" class=\"tsd-kind-method\">WunderbaumNode.isDescendantOf</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L895\">src/wb_node.ts:895</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isclone\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Clone</span><a href=\"#isclone\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isclone-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isClone</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isclone-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node's refKey is used by at least one other node.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L901\">src/wb_node.ts:901</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"iscolspan\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Colspan</span><a href=\"#iscolspan\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"iscolspan-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isColspan</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#iscolspan-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node's title spans all columns, i.e. the node has no\ngrid cells.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L907\">src/wb_node.ts:907</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isdescendantof\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Descendant<wbr/>Of</span><a href=\"#isdescendantof\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isdescendantof-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isDescendantOf</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">other</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isdescendantof-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is a direct or indirect subnode of <code>other</code>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">other</span>: <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-19\" class=\"tsd-anchor\"></a>See<a href=\"#see-19\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#ischildof\" class=\"tsd-kind-method\">WunderbaumNode.isChildOf</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L914\">src/wb_node.ts:914</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"iseditingtitle\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Editing<wbr/>Title</span><a href=\"#iseditingtitle\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"iseditingtitle-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isEditingTitle</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#iseditingtitle-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if <em>this</em> node is currently in edit-title mode.</p>\n<p>See <a href=\"wb_node.WunderbaumNode.html#startedittitle\" class=\"tsd-kind-method\">WunderbaumNode.startEditTitle</a>.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L953\">src/wb_node.ts:953</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isexpandable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Expandable</span><a href=\"#isexpandable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isexpandable-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isExpandable</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">andCollapsed</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isexpandable-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node has children, i.e. the node is generally expandable.\nIf <code>andCollapsed</code> is set, we also check if this node is collapsed, i.e.\nan expand operation is currently possible.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">andCollapsed</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L935\">src/wb_node.ts:935</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isexpanded\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Expanded</span><a href=\"#isexpanded\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isexpanded-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isExpanded</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isexpanded-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is currently expanded.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L958\">src/wb_node.ts:958</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isfirstsibling\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>First<wbr/>Sibling</span><a href=\"#isfirstsibling\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isfirstsibling-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isFirstSibling</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isfirstsibling-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is the first node of its parent's children.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L963\">src/wb_node.ts:963</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"islastsibling\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Last<wbr/>Sibling</span><a href=\"#islastsibling\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"islastsibling-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isLastSibling</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#islastsibling-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is the last node of its parent's children.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L969\">src/wb_node.ts:969</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"islazy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Lazy</span><a href=\"#islazy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"islazy-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isLazy</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#islazy-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is lazy (even if data was already loaded)</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L975\">src/wb_node.ts:975</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isloaded\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Loaded</span><a href=\"#isloaded\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isloaded-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isLoaded</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isloaded-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if node is lazy and loaded. For non-lazy nodes always return true.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L980\">src/wb_node.ts:980</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isloading\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Loading</span><a href=\"#isloading\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isloading-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isLoading</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isloading-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if node is currently loading, i.e. a GET request is pending.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L985\">src/wb_node.ts:985</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"ismatched\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Matched</span><a href=\"#ismatched\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"ismatched-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isMatched</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#ismatched-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>[ext-filter] Return true if this node is matched by current filter (or no filter is active).</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L3019\">src/wb_node.ts:3019</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"ispagingnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Paging<wbr/>Node</span><a href=\"#ispagingnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"ispagingnode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isPagingNode</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#ispagingnode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is a temporarily generated status node of type 'paging'.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L990\">src/wb_node.ts:990</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isparentof\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Parent<wbr/>Of</span><a href=\"#isparentof\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isparentof-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isParentOf</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">other</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isparentof-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is a <strong>direct</strong> parent of <code>other</code>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">other</span>: <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-20\" class=\"tsd-anchor\"></a>See<a href=\"#see-20\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#isancestorof\" class=\"tsd-kind-method\">WunderbaumNode.isAncestorOf</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L997\">src/wb_node.ts:997</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"ispartload\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Partload</span><a href=\"#ispartload\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"ispartload-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isPartload</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#ispartload-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Experimental</code><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is partially loaded.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1002\">src/wb_node.ts:1002</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"ispartsel\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Partsel</span><a href=\"#ispartsel\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"ispartsel-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isPartsel</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#ispartsel-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is partially selected (tri-state).</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1007\">src/wb_node.ts:1007</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isradio\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Radio</span><a href=\"#isradio\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isradio-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isRadio</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isradio-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node has DOM representation, i.e. is displayed in the viewport.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1012\">src/wb_node.ts:1012</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isrendered\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Rendered</span><a href=\"#isrendered\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isrendered-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isRendered</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isrendered-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node has DOM representation, i.e. is displayed in the viewport.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1017\">src/wb_node.ts:1017</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isrootnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Root<wbr/>Node</span><a href=\"#isrootnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isrootnode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isRootNode</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isrootnode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is the (invisible) system root node.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-21\" class=\"tsd-anchor\"></a>See<a href=\"#see-21\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#istoplevel\" class=\"tsd-kind-method\">WunderbaumNode.isTopLevel</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1024\">src/wb_node.ts:1024</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isselected\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Selected</span><a href=\"#isselected\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isselected-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isSelected</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.TristateType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TristateType</a><a href=\"#isselected-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is selected, i.e. the checkbox is set.\n<code>undefined</code> if partly selected (tri-state), false otherwise.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <a href=\"../types/types.TristateType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TristateType</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1031\">src/wb_node.ts:1031</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isstatusnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Status<wbr/>Node</span><a href=\"#isstatusnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isstatusnode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isStatusNode</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isstatusnode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this node is a temporarily generated system node like\n'loading', 'paging', or 'error' (node.statusNodeType contains the type).</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1038\">src/wb_node.ts:1038</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"istoplevel\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Top<wbr/>Level</span><a href=\"#istoplevel\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"istoplevel-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isTopLevel</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#istoplevel-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if this a top level node, i.e. a direct child of the (invisible) system root node.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1043\">src/wb_node.ts:1043</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isunloaded\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Unloaded</span><a href=\"#isunloaded\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isunloaded-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isUnloaded</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isunloaded-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if node is marked lazy but not yet loaded.\nFor non-lazy nodes always return false.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1050\">src/wb_node.ts:1050</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isvisible\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Visible</span><a href=\"#isvisible\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isvisible-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isVisible</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isvisible-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if all parent nodes are expanded. Note: this does not check\nwhether the node is scrolled into the visible part of the screen or viewport.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1058\">src/wb_node.ts:1058</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"load\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>load</span><a href=\"#load\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"load-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">load</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">source</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.SourceType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SourceType</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#load-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Download  data from the cloud, then call <code>.update()</code>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">source</span>: <a href=\"../types/types.SourceType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SourceType</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1194\">src/wb_node.ts:1194</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"loadlazy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>load<wbr/>Lazy</span><a href=\"#loadlazy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"loadlazy-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">loadLazy</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">forceReload</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#loadlazy-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Load content of a lazy node.\nIf the node is already loaded, nothing happens.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">forceReload</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>If true, reload even if already loaded.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1282\">src/wb_node.ts:1282</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"log\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>log</span><a href=\"#log\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"log-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">log</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#log-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Write to <code>console.log</code> with node name as prefix if opts.debugLevel &gt;= 4.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-22\" class=\"tsd-anchor\"></a>See<a href=\"#see-22\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#logdebug\" class=\"tsd-kind-method\">WunderbaumNode.logDebug</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1333\">src/wb_node.ts:1333</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"logdebug\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>log<wbr/>Debug</span><a href=\"#logdebug\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"logdebug-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">logDebug</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#logdebug-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Write to <code>console.debug</code> with node name as prefix if opts.debugLevel &gt;= 4\nand browser console level includes debug/verbose messages.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-23\" class=\"tsd-anchor\"></a>See<a href=\"#see-23\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#log\" class=\"tsd-kind-method\">WunderbaumNode.log</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1343\">src/wb_node.ts:1343</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"logerror\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>log<wbr/>Error</span><a href=\"#logerror\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"logerror-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">logError</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#logerror-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Write to <code>console.error</code> with node name as prefix if opts.debugLevel &gt;= 1.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1350\">src/wb_node.ts:1350</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"loginfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>log<wbr/>Info</span><a href=\"#loginfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"loginfo-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">logInfo</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#loginfo-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Write to <code>console.info</code> with node name as prefix if opts.debugLevel &gt;= 3.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1357\">src/wb_node.ts:1357</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"logwarn\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>log<wbr/>Warn</span><a href=\"#logwarn\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"logwarn-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">logWarn</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#logwarn-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Write to <code>console.warn</code> with node name as prefix if opts.debugLevel &gt;= 2.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1364\">src/wb_node.ts:1364</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"makevisible\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>make<wbr/>Visible</span><a href=\"#makevisible\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"makevisible-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">makeVisible</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.MakeVisibleOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">MakeVisibleOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">unknown</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#makevisible-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Expand all parents and optionally scroll into visible area as neccessary.\nPromise is resolved, when lazy loading and animations are done.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.MakeVisibleOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">MakeVisibleOptions</a></span><div class=\"tsd-comment tsd-typography\"><p>passed to <code>setExpanded()</code>.\nDefaults to {noAnimation: false, noEvents: false, scrollIntoView: true}</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">unknown</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1375\">src/wb_node.ts:1375</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"moveto\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>move<wbr/>To</span><a href=\"#moveto\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"moveto-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">moveTo</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">targetNode</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">mode</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.InsertNodeType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">InsertNodeType</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">map</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.NodeAnyCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeAnyCallback</a><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#moveto-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Move this node to targetNode.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">targetNode</span>: <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li><li><span><span class=\"tsd-kind-parameter\">mode</span>: <a href=\"../types/types.InsertNodeType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">InsertNodeType</a><span class=\"tsd-signature-symbol\"> = &quot;appendChild&quot;</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">map</span>: <a href=\"../types/types.NodeAnyCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeAnyCallback</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1409\">src/wb_node.ts:1409</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"navigate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>navigate</span><a href=\"#navigate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"navigate-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">navigate</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">where</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.NavigateOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">NavigateOptions</a><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#navigate-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Set focus relative to this node and optionally activate.</p>\n<p>'left' collapses the node if it is expanded, or move to the parent\notherwise.\n'right' expands the node if it is collapsed, or move to the first\nchild otherwise.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">where</span>: <span class=\"tsd-signature-type\">string</span></span><div class=\"tsd-comment tsd-typography\"><p>'down', 'first', 'last', 'left', 'parent', 'right', or 'up'.\n(Alternatively the <code>event.key</code> that would normally trigger this move,\ne.g. <code>ArrowLeft</code> = 'left'.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.NavigateOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">NavigateOptions</a></span><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1523\">src/wb_node.ts:1523</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"remove\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>remove</span><a href=\"#remove\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"remove-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">remove</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#remove-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Delete this node and all descendants.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1547\">src/wb_node.ts:1547</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"removechildren\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>remove<wbr/>Children</span><a href=\"#removechildren\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"removechildren-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">removeChildren</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#removechildren-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Remove all descendants of this node.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1560\">src/wb_node.ts:1560</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"removemarkup\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>remove<wbr/>Markup</span><a href=\"#removemarkup\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"removemarkup-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">removeMarkup</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#removemarkup-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Remove all HTML markup from the DOM.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L1593\">src/wb_node.ts:1593</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"resetlazy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>reset<wbr/>Lazy</span><a href=\"#resetlazy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"resetlazy-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">resetLazy</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#resetlazy-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Remove all children, collapse, and set the lazy-flag, so that the lazyLoad\nevent is triggered on next expand.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2027\">src/wb_node.ts:2027</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"resetnativechildorder\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>reset<wbr/>Native<wbr/>Child<wbr/>Order</span><a href=\"#resetnativechildorder\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"resetnativechildorder-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">resetNativeChildOrder</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.ResetOrderOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ResetOrderOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#resetnativechildorder-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Renumber nodes <code>_nativeIndex</code>. This is useful to allow to restore the\norder after sorting a column.\nThis method is automatically called after loading new child nodes.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.ResetOrderOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ResetOrderOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-1\" class=\"tsd-anchor\"></a>Since<a href=\"#since-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.11.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2726\">src/wb_node.ts:2726</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"resort\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>resort</span><a href=\"#resort\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"resort-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">resort</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.SortOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SortOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#resort-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Re-apply current sorting if any (use after lazy load).\nExample:</p>\n<pre><code class=\"js\"><span class=\"hl-3\">load</span><span class=\"hl-1\">: </span><span class=\"hl-0\">function</span><span class=\"hl-1\"> (</span><span class=\"hl-2\">e</span><span class=\"hl-1\">) {</span><br/><span class=\"hl-1\">  </span><span class=\"hl-9\">// Whe loading a lazy branch, apply current sort order if any</span><br/><span class=\"hl-1\">  </span><span class=\"hl-2\">e</span><span class=\"hl-1\">.</span><span class=\"hl-2\">node</span><span class=\"hl-1\">.</span><span class=\"hl-6\">resort</span><span class=\"hl-1\">();</span><br/><span class=\"hl-1\">},</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SortOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SortOptions</a><span class=\"tsd-signature-symbol\"> = {}</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-2\" class=\"tsd-anchor\"></a>Since<a href=\"#since-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.14.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2886\">src/wb_node.ts:2886</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"scrollintoview\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>scroll<wbr/>Into<wbr/>View</span><a href=\"#scrollintoview\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"scrollintoview-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">scrollIntoView</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.ScrollIntoViewOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ScrollIntoViewOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#scrollintoview-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Make sure that this node is visible in the viewport.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.ScrollIntoViewOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ScrollIntoViewOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-24\" class=\"tsd-anchor\"></a>See<a href=\"#see-24\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wunderbaum.Wunderbaum.html#scrollto\" class=\"tsd-kind-method\">Wunderbaum.scrollTo</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2149\">src/wb_node.ts:2149</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setactive\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Active</span><a href=\"#setactive\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setactive-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setActive</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">flag</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.SetActiveOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetActiveOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#setactive-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Activate this node, deactivate previous, send events, activate column and\nscroll into viewport.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">flag</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SetActiveOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetActiveOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2158\">src/wb_node.ts:2158</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setclass\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Class</span><a href=\"#setclass\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setclass-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setClass</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">className</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">Set</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">&gt;</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">flag</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#setclass-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Add/remove one or more classes to <code>&lt;div class='wb-row'&gt;</code>.</p>\n<p>This also maintains <code>node.classes</code>, so the class will survive a re-render.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">className</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">Set</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">&gt;</span></span><div class=\"tsd-comment tsd-typography\"><p>one or more class names. Multiple classes can be passed\nas space-separated string, array of strings, or set of strings.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">flag</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L456\">src/wb_node.ts:456</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setexpanded\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Expanded</span><a href=\"#setexpanded\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setexpanded-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setExpanded</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">flag</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.SetExpandedOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetExpandedOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#setexpanded-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Expand or collapse this node.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">flag</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SetExpandedOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetExpandedOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2226\">src/wb_node.ts:2226</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setfocus\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Focus</span><a href=\"#setfocus\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setfocus-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setFocus</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">flag</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#setfocus-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Set keyboard focus here.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">flag</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-25\" class=\"tsd-anchor\"></a>See<a href=\"#see-25\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#setactive\" class=\"tsd-kind-method\">setActive</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2278\">src/wb_node.ts:2278</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"seticon\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Icon</span><a href=\"#seticon\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"seticon-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setIcon</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">icon</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#seticon-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Set a new icon path or class.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">icon</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2287\">src/wb_node.ts:2287</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setkey\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Key</span><a href=\"#setkey\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setkey-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setKey</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">refKey</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#setkey-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Change node's <a href=\"wb_node.WunderbaumNode.html#key\" class=\"tsd-kind-property\">key</a> and/or <a href=\"wb_node.WunderbaumNode.html#refkey\" class=\"tsd-kind-property\">refKey</a>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">key</span>: <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span></span></li><li><span><span class=\"tsd-kind-parameter\">refKey</span>: <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2293\">src/wb_node.ts:2293</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setselected\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Selected</span><a href=\"#setselected\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setselected-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setSelected</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">flag</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.SetSelectedOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetSelectedOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.TristateType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TristateType</a><a href=\"#setselected-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Modify the check/uncheck state.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">flag</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SetSelectedOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetSelectedOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"../types/types.TristateType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TristateType</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2533\">src/wb_node.ts:2533</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setstatus\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Status</span><a href=\"#setstatus\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setstatus-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setStatus</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">status</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../enums/types.NodeStatusType.html\" class=\"tsd-signature-type tsd-kind-enum\">NodeStatusType</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.SetStatusOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetStatusOptions</a><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#setstatus-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Display node status (ok, loading, error, noData) using styles and a dummy child node.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">status</span>: <a href=\"../enums/types.NodeStatusType.html\" class=\"tsd-signature-type tsd-kind-enum\">NodeStatusType</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SetStatusOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetStatusOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2595\">src/wb_node.ts:2595</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"settitle\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Title</span><a href=\"#settitle\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"settitle-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setTitle</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">title</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#settitle-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Rename this node.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">title</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2693\">src/wb_node.ts:2693</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"settooltip\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Tooltip</span><a href=\"#settooltip\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"settooltip-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setTooltip</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">tooltip</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.TooltipOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TooltipOption</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#settooltip-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Set the node tooltip.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">tooltip</span>: <a href=\"../types/types.TooltipOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TooltipOption</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2700\">src/wb_node.ts:2700</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"sort\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>sort</span><a href=\"#sort\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"sort-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">sort</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.SortOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SortOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#sort-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Implement column sorting.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SortOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SortOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-3\" class=\"tsd-anchor\"></a>Since<a href=\"#since-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.14.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2753\">src/wb_node.ts:2753</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"sortbyproperty\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span class=\"deprecated\">sort<wbr/>By<wbr/>Property</span><a href=\"#sortbyproperty\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"sortbyproperty-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">sortByProperty</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.SortOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SortOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#sortbyproperty-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Convenience method to implement column sorting.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SortOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SortOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-4\" class=\"tsd-anchor\"></a>Since<a href=\"#since-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.11.0</p>\n</div><div class=\"tsd-tag-deprecated\"><h4 class=\"tsd-anchor-link\"><a id=\"deprecated\" class=\"tsd-anchor\"></a>Deprecated<a href=\"#deprecated\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>use <a href=\"wb_node.WunderbaumNode.html#sort\" class=\"tsd-kind-method\">sort</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2744\">src/wb_node.ts:2744</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"sortchildren\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span class=\"deprecated\">sort<wbr/>Children</span><a href=\"#sortchildren\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"sortchildren-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">sortChildren</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">cmp</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.SortCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SortCallback</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">deep</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#sortchildren-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Sort child list by title or custom criteria.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">cmp</span>: <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.SortCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SortCallback</a><span class=\"tsd-signature-symbol\"> = nodeTitleSorter</span></span><div class=\"tsd-comment tsd-typography\"><p>custom compare function(a, b) that returns -1, 0, or 1\n(defaults to sorting by title).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">deep</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>pass true to sort all descendant nodes recursively</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-deprecated\"><h4 class=\"tsd-anchor-link\"><a id=\"deprecated-1\" class=\"tsd-anchor\"></a>Deprecated<a href=\"#deprecated-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>use <a href=\"wb_node.WunderbaumNode.html#sort\" class=\"tsd-kind-method\">sort</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2712\">src/wb_node.ts:2712</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"startedittitle\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>start<wbr/>Edit<wbr/>Title</span><a href=\"#startedittitle\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"startedittitle-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">startEditTitle</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#startedittitle-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Start editing this node's title.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L484\">src/wb_node.ts:484</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"todict\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>to<wbr/>Dict</span><a href=\"#todict\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"todict-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">toDict</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">recursive</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">callback</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.NodeToDictCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeToDictCallback</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><a href=\"#todict-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Convert node (or whole branch) into a plain object.</p>\n<p>The result is compatible with node.addChildren().</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">recursive</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>include child nodes</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">callback</span>: <a href=\"../types/types.NodeToDictCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeToDictCallback</a></span><div class=\"tsd-comment tsd-typography\"><p>is called for every node, in order to allow\nmodifications.\nReturn <code>false</code> to ignore this node or <code>&quot;skip&quot;</code> to include this node\nwithout its children.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-26\" class=\"tsd-anchor\"></a>See<a href=\"#see-26\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wunderbaum.Wunderbaum.html#todictarray\" class=\"tsd-kind-method\">Wunderbaum.toDictArray</a>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2046\">src/wb_node.ts:2046</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"toggleselected\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>toggle<wbr/>Selected</span><a href=\"#toggleselected\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"toggleselected-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">toggleSelected</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.SetSelectedOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetSelectedOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.TristateType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TristateType</a><a href=\"#toggleselected-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Toggle the check/uncheck state.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SetSelectedOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetSelectedOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"../types/types.TristateType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TristateType</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2378\">src/wb_node.ts:2378</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"tostring\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>to<wbr/>String</span><a href=\"#tostring\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"tostring-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">toString</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><a href=\"#tostring-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Internal</code><div class=\"tsd-comment tsd-typography\"><p>Return readable string representation for this instance.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L243\">src/wb_node.ts:243</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"triggermodify\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>trigger<wbr/>Modify</span><a href=\"#triggermodify\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"triggermodify-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">triggerModify</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">operation</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">extra</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#triggermodify-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Trigger <code>modifyChild</code> event on node.parent(!).</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">operation</span>: <span class=\"tsd-signature-type\">string</span></span><div class=\"tsd-comment tsd-typography\"><p>Type of change: 'add', 'remove', 'rename', 'move', 'data', ...</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">extra</span>: <span class=\"tsd-signature-type\">any</span></span><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2924\">src/wb_node.ts:2924</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"triggermodifychild\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>trigger<wbr/>Modify<wbr/>Child</span><a href=\"#triggermodifychild\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"triggermodifychild-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">triggerModifyChild</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">operation</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">child</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">extra</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#triggermodifychild-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Trigger <code>modifyChild</code> event on a parent to signal that a child was modified.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">operation</span>: <span class=\"tsd-signature-type\">string</span></span><div class=\"tsd-comment tsd-typography\"><p>Type of change: 'add', 'remove', 'rename', 'move', 'data', ...</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">child</span>: <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">extra</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2901\">src/wb_node.ts:2901</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"update\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>update</span><a href=\"#update\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"update-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">update</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">change</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../enums/types.ChangeType.html\" class=\"tsd-signature-type tsd-kind-enum\">ChangeType</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#update-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Trigger a repaint, typically after a status or data change.</p>\n<p><code>change</code> defaults to 'data', which handles modifcations of title, icon,\nand column content. It can be reduced to 'ChangeType.status' if only\nactive/focus/selected state has changed.</p>\n<p>This method will eventually call  <a href=\"wb_node.WunderbaumNode.html#_render\" class=\"tsd-kind-method\">WunderbaumNode._render</a> with\ndefault options, but may be more consistent with the tree's\n<a href=\"wunderbaum.Wunderbaum.html#update\" class=\"tsd-kind-method\">Wunderbaum.update</a> API.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">change</span>: <a href=\"../enums/types.ChangeType.html\" class=\"tsd-signature-type tsd-kind-enum\">ChangeType</a><span class=\"tsd-signature-symbol\"> = ChangeType.data</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2334\">src/wb_node.ts:2334</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"visit\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>visit</span><a href=\"#visit\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"visit-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">visit</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">callback</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.NodeVisitCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeVisitCallback</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">includeSelf</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.NodeVisitResponse.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeVisitResponse</a><a href=\"#visit-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Call <code>callback(node)</code> for all descendant nodes in hierarchical order (depth-first, pre-order).</p>\n<p>Stop iteration, if fn() returns false. Skip current branch, if fn()\nreturns &quot;skip&quot;.<br>\nReturn false if iteration was stopped.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">callback</span>: <a href=\"../types/types.NodeVisitCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeVisitCallback</a></span><div class=\"tsd-comment tsd-typography\"><p>the callback function.\nReturn false to stop iteration, return &quot;skip&quot; to skip this node and\nits children only.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">includeSelf</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"../types/types.NodeVisitResponse.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeVisitResponse</a></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-27\" class=\"tsd-anchor\"></a>See<a href=\"#see-27\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><ul>\n<li><code>wb_node.WunderbaumNode.IterableIterator&lt;WunderbaumNode&gt;</code></li>\n<li><a href=\"wunderbaum.Wunderbaum.html#visit\" class=\"tsd-kind-method\">Wunderbaum.visit</a>.</li>\n</ul>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2944\">src/wb_node.ts:2944</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"visitparents\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>visit<wbr/>Parents</span><a href=\"#visitparents\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"visitparents-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">visitParents</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">callback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">includeSelf</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#visitparents-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Call fn(node) for all parent nodes, bottom-up, including invisible system root.<br>\nStop iteration, if callback() returns false.<br>\nReturn false if iteration was stopped.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">callback</span>: <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span></span><div class=\"tsd-comment tsd-typography\"><p>the callback function. Return false to stop iteration</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">includeSelf</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L2974\">src/wb_node.ts:2974</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"visitsiblings\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>visit<wbr/>Siblings</span><a href=\"#visitsiblings\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"visitsiblings-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">visitSiblings</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">callback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">includeSelf</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#visitsiblings-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Call fn(node) for all sibling nodes.<br>\nStop iteration, if fn() returns false.<br>\nReturn false if iteration was stopped.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">callback</span>: <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span></span><div class=\"tsd-comment tsd-typography\"><p>the callback function.\nReturn false to stop iteration.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">includeSelf</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>include this node in the iteration.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_node.ts#L3000\">src/wb_node.ts:3000</a></li></ul></aside></div></li></ul></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Constructors\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Constructors</summary><div><a href=\"#constructor\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Constructor\"><use href=\"../assets/icons.svg#icon-512\"></use></svg><span>constructor</span></a></div></details><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#_errorinfo\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_error<wbr/>Info</span></a><a href=\"#_filterautoexpanded\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_filter<wbr/>Auto<wbr/>Expanded</span></a><a href=\"#_isloading\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_is<wbr/>Loading</span></a><a href=\"#_partload\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_partload</span></a><a href=\"#_partsel\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_partsel</span></a><a href=\"#_requestid\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_request<wbr/>Id</span></a><a href=\"#_rowelem\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_row<wbr/>Elem</span></a><a href=\"#_rowidx\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_row<wbr/>Idx</span></a><a href=\"#checkbox\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>checkbox</span></a><a href=\"#children\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>children</span></a><a href=\"#classes\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>classes</span></a><a href=\"#colspan\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>colspan</span></a><a href=\"#data\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>data</span></a><a href=\"#expanded\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expanded</span></a><a href=\"#icon\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon</span></a><a href=\"#icontooltip\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Tooltip</span></a><a href=\"#key\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>key</span></a><a href=\"#lazy\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>lazy</span></a><a href=\"#match\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>match</span></a><a href=\"#parent\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>parent</span></a><a href=\"#radiogroup\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>radiogroup</span></a><a href=\"#refkey\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>ref<wbr/>Key</span></a><a href=\"#selected\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>selected</span></a><a href=\"#statusnodetype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>status<wbr/>Node<wbr/>Type</span></a><a href=\"#submatchcount\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>sub<wbr/>Match<wbr/>Count</span></a><a href=\"#title\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>title</span></a><a href=\"#titlewithhighlight\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>title<wbr/>With<wbr/>Highlight</span></a><a href=\"#tooltip\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tooltip</span></a><a href=\"#tree\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#unselectable\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>unselectable</span></a><a href=\"#sequence\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>sequence</span></a></div></details><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Methods\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Methods</summary><div><a href=\"#_anyselectable\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_any<wbr/>Selectable</span></a><a href=\"#_callevent\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_call<wbr/>Event</span></a><a href=\"#_fetchwithoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_fetch<wbr/>With<wbr/>Options</span></a><a href=\"#_render\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_render</span></a><a href=\"#iterator\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>[iterator]</span></a><a href=\"#addchildren\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>add<wbr/>Children</span></a><a href=\"#addnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>add<wbr/>Node</span></a><a href=\"#applycommand\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>apply<wbr/>Command</span></a><a href=\"#collapsesiblings\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>collapse<wbr/>Siblings</span></a><a href=\"#expandall\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>expand<wbr/>All</span></a><a href=\"#findall\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>All</span></a><a href=\"#finddirectchild\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>Direct<wbr/>Child</span></a><a href=\"#findfirst\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>First</span></a><a href=\"#findrelatednode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>Related<wbr/>Node</span></a><a href=\"#fixselection3afterclick\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>fix<wbr/>Selection3<wbr/>After<wbr/>Click</span></a><a href=\"#fixselection3fromendnodes\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>fix<wbr/>Selection3<wbr/>From<wbr/>End<wbr/>Nodes</span></a><a href=\"#format\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>format</span></a><a href=\"#format_iter\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>format_<wbr/>iter</span></a><a href=\"#getclonelist\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Clone<wbr/>List</span></a><a href=\"#getcolelem\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Col<wbr/>Elem</span></a><a href=\"#getfirstchild\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>First<wbr/>Child</span></a><a href=\"#getlastchild\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Last<wbr/>Child</span></a><a href=\"#getlevel\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Level</span></a><a href=\"#getnextsibling\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Next<wbr/>Sibling</span></a><a href=\"#getoption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Option</span></a><a href=\"#getparent\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Parent</span></a><a href=\"#getparentlist\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Parent<wbr/>List</span></a><a href=\"#getpath\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Path</span></a><a href=\"#getprevsibling\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Prev<wbr/>Sibling</span></a><a href=\"#getrefkeys\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Ref<wbr/>Keys</span></a><a href=\"#getselectednodes\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Selected<wbr/>Nodes</span></a><a href=\"#haschildren\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>has<wbr/>Children</span></a><a href=\"#hasclass\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>has<wbr/>Class</span></a><a href=\"#hasfocus\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>has<wbr/>Focus</span></a><a href=\"#isactive\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Active</span></a><a href=\"#isancestorof\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Ancestor<wbr/>Of</span></a><a href=\"#ischildof\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Child<wbr/>Of</span></a><a href=\"#isclone\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Clone</span></a><a href=\"#iscolspan\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Colspan</span></a><a href=\"#isdescendantof\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Descendant<wbr/>Of</span></a><a href=\"#iseditingtitle\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Editing<wbr/>Title</span></a><a href=\"#isexpandable\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Expandable</span></a><a href=\"#isexpanded\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Expanded</span></a><a href=\"#isfirstsibling\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>First<wbr/>Sibling</span></a><a href=\"#islastsibling\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Last<wbr/>Sibling</span></a><a href=\"#islazy\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Lazy</span></a><a href=\"#isloaded\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Loaded</span></a><a href=\"#isloading\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Loading</span></a><a href=\"#ismatched\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Matched</span></a><a href=\"#ispagingnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Paging<wbr/>Node</span></a><a href=\"#isparentof\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Parent<wbr/>Of</span></a><a href=\"#ispartload\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Partload</span></a><a href=\"#ispartsel\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Partsel</span></a><a href=\"#isradio\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Radio</span></a><a href=\"#isrendered\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Rendered</span></a><a href=\"#isrootnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Root<wbr/>Node</span></a><a href=\"#isselected\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Selected</span></a><a href=\"#isstatusnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Status<wbr/>Node</span></a><a href=\"#istoplevel\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Top<wbr/>Level</span></a><a href=\"#isunloaded\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Unloaded</span></a><a href=\"#isvisible\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Visible</span></a><a href=\"#load\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>load</span></a><a href=\"#loadlazy\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>load<wbr/>Lazy</span></a><a href=\"#log\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log</span></a><a href=\"#logdebug\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Debug</span></a><a href=\"#logerror\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Error</span></a><a href=\"#loginfo\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Info</span></a><a href=\"#logwarn\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Warn</span></a><a href=\"#makevisible\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>make<wbr/>Visible</span></a><a href=\"#moveto\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>move<wbr/>To</span></a><a href=\"#navigate\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>navigate</span></a><a href=\"#remove\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>remove</span></a><a href=\"#removechildren\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>remove<wbr/>Children</span></a><a href=\"#removemarkup\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>remove<wbr/>Markup</span></a><a href=\"#resetlazy\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>reset<wbr/>Lazy</span></a><a href=\"#resetnativechildorder\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>reset<wbr/>Native<wbr/>Child<wbr/>Order</span></a><a href=\"#resort\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>resort</span></a><a href=\"#scrollintoview\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>scroll<wbr/>Into<wbr/>View</span></a><a href=\"#setactive\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Active</span></a><a href=\"#setclass\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Class</span></a><a href=\"#setexpanded\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Expanded</span></a><a href=\"#setfocus\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Focus</span></a><a href=\"#seticon\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Icon</span></a><a href=\"#setkey\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Key</span></a><a href=\"#setselected\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Selected</span></a><a href=\"#setstatus\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Status</span></a><a href=\"#settitle\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Title</span></a><a href=\"#settooltip\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Tooltip</span></a><a href=\"#sort\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>sort</span></a><a href=\"#sortbyproperty\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>sort<wbr/>By<wbr/>Property</span></a><a href=\"#sortchildren\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>sort<wbr/>Children</span></a><a href=\"#startedittitle\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>start<wbr/>Edit<wbr/>Title</span></a><a href=\"#todict\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>to<wbr/>Dict</span></a><a href=\"#toggleselected\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>toggle<wbr/>Selected</span></a><a href=\"#tostring\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>to<wbr/>String</span></a><a href=\"#triggermodify\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>trigger<wbr/>Modify</span></a><a href=\"#triggermodifychild\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>trigger<wbr/>Modify<wbr/>Child</span></a><a href=\"#update\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>update</span></a><a href=\"#visit\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>visit</span></a><a href=\"#visitparents\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>visit<wbr/>Parents</span></a><a href=\"#visitsiblings\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>visit<wbr/>Siblings</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/classes/wunderbaum.Wunderbaum.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>Wunderbaum | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/wunderbaum.html\">wunderbaum</a></li><li><a href=\"wunderbaum.Wunderbaum.html\">Wunderbaum</a></li></ul><h1>Class Wunderbaum</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>A persistent plain object or array.</p>\n<p>See also <a href=\"../interfaces/wb_options.WunderbaumOptions.html\" class=\"tsd-kind-interface\">WunderbaumOptions</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L98\">src/wunderbaum.ts:98</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Constructors</h3><div class=\"tsd-index-list\"><a href=\"wunderbaum.Wunderbaum.html#constructor\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Constructor\"><use href=\"../assets/icons.svg#icon-512\"></use></svg><span>constructor</span></a>\n</div></section><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"wunderbaum.Wunderbaum.html#_cellnavmode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_cell<wbr/>Nav<wbr/>Mode</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#_util\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_util</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#activecolidx\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>active<wbr/>Col<wbr/>Idx</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#breadcrumb\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>breadcrumb</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#columns\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#data\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>data</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#element\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>element</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#filtermode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>filter<wbr/>Mode</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#headerelement\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>header<wbr/>Element</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#id\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>id</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#lastquicksearchterm\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>last<wbr/>Quicksearch<wbr/>Term</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#lastquicksearchtime\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>last<wbr/>Quicksearch<wbr/>Time</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#listcontainerelement\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>list<wbr/>Container<wbr/>Element</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#nodelistelement\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node<wbr/>List<wbr/>Element</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#options\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>options</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#ready\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>ready</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#root\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>root</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#types\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>types</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#iconmaps\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Maps</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#util\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#version\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>version</span></a>\n</div></section><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Accessors</h3><div class=\"tsd-index-list\"><a href=\"wunderbaum.Wunderbaum.html#activenode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Accessor\"><use href=\"../assets/icons.svg#icon-262144\"></use></svg><span>active<wbr/>Node</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#children\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Accessor\"><use href=\"../assets/icons.svg#icon-262144\"></use></svg><span>children</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#focusnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Accessor\"><use href=\"../assets/icons.svg#icon-262144\"></use></svg><span>focus<wbr/>Node</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#iconmap\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Accessor\"><use href=\"../assets/icons.svg#icon-262144\"></use></svg><span>icon<wbr/>Map</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#parent\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Accessor\"><use href=\"../assets/icons.svg#icon-262144\"></use></svg><span>parent</span></a>\n</div></section><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Methods</h3><div class=\"tsd-index-list\"><a href=\"wunderbaum.Wunderbaum.html#_calculatekey\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_calculate<wbr/>Key</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#_callevent\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_call<wbr/>Event</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#_callmethod\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_call<wbr/>Method</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#_check\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_check</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#_createnodeicon\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_create<wbr/>Node<wbr/>Icon</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#_registernode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_register<wbr/>Node</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#_setactivenode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_set<wbr/>Active<wbr/>Node</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#_setfocusnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_set<wbr/>Focus<wbr/>Node</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#_unregisternode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_unregister<wbr/>Node</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#_updatecolumnwidths\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_update<wbr/>Column<wbr/>Widths</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#iterator\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>[iterator]</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#addchildren\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>add<wbr/>Children</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#applycommand\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>apply<wbr/>Command</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#clear\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>clear</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#clearfilter\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>clear<wbr/>Filter</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#count\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>count</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#countmatches\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>count<wbr/>Matches</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#countunique\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>count<wbr/>Unique</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#destroy\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>destroy</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#enableupdate\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>enable<wbr/>Update</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#expandall\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>expand<wbr/>All</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#filterbranches\" class=\"tsd-index-link deprecated\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>filter<wbr/>Branches</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#filternodes\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>filter<wbr/>Nodes</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#findall\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>All</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#findbyrefkey\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>By<wbr/>Ref<wbr/>Key</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#findfirst\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>First</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#findkey\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>Key</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#findnextnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>Next<wbr/>Node</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#findrelatednode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>Related<wbr/>Node</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#format\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>format</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#format_iter\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>format_<wbr/>iter</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#getactivecolelem\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Active<wbr/>Col<wbr/>Elem</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#getactivenode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Active<wbr/>Node</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#getfirstchild\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>First<wbr/>Child</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#getfocusnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Focus<wbr/>Node</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#getlastchild\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Last<wbr/>Child</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#getlowestvpnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Lowest<wbr/>Vp<wbr/>Node</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#getoption\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Option</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#getrefkeys\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Ref<wbr/>Keys</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#getselectednodes\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Selected<wbr/>Nodes</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#getstate\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>State</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#gettopmostvpnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Topmost<wbr/>Vp<wbr/>Node</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#hasfocus\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>has<wbr/>Focus</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#hasheader\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>has<wbr/>Header</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#iscellnav\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Cell<wbr/>Nav</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#isediting\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Editing</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#iseditingtitle\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Editing<wbr/>Title</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#isenabled\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Enabled</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#isfilteractive\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Filter<wbr/>Active</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#isgrid\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Grid</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#isloading\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Loading</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#isrownav\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Row<wbr/>Nav</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#load\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>load</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#log\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#logdebug\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Debug</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#logdeprecate\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Deprecate</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#logerror\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Error</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#loginfo\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Info</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#logtime\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Time</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#logtimeend\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Time<wbr/>End</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#logwarn\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Warn</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#reload\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>reload</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#resetcolumns\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>reset<wbr/>Columns</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#runwithdeferredupdate\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>run<wbr/>With<wbr/>Deferred<wbr/>Update</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#runwithdeferredupdateasync\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>run<wbr/>With<wbr/>Deferred<wbr/>Update<wbr/>Async</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#scrollto\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>scroll<wbr/>To</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#selectall\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>select<wbr/>All</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#setactivenode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Active<wbr/>Node</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#setcellnav\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Cell<wbr/>Nav</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#setcolumn\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Column</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#setenabled\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Enabled</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#setfocus\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Focus</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#setnavigationoption\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Navigation<wbr/>Option</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#setoption\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Option</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#setstate\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>State</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#setstatus\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Status</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#settypes\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Types</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#sort\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>sort</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#sortbyproperty\" class=\"tsd-index-link deprecated\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>sort<wbr/>By<wbr/>Property</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#sortchildren\" class=\"tsd-index-link deprecated\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>sort<wbr/>Children</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#todictarray\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>to<wbr/>Dict<wbr/>Array</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#toggleselect\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>toggle<wbr/>Select</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#tostring\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>to<wbr/>String</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#update\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>update</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#updatefilter\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>update<wbr/>Filter</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#updatependingmodifications\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>update<wbr/>Pending<wbr/>Modifications</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#visit\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>visit</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#visitrows\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>visit<wbr/>Rows</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#geteventinfo\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Event<wbr/>Info</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#getnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Node</span></a>\n<a href=\"wunderbaum.Wunderbaum.html#gettree\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Tree</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Constructors\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Constructors</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"constructor\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>constructor</span><a href=\"#constructor\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"constructorwunderbaum\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-keyword\">new</span> <span class=\"tsd-kind-constructor-signature\">Wunderbaum</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/wb_options.InitWunderbaumOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">InitWunderbaumOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><a href=\"#constructorwunderbaum\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/wb_options.InitWunderbaumOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">InitWunderbaumOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></h4><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L205\">src/wunderbaum.ts:205</a></li></ul></aside></div></li></ul></section></section></details><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"_cellnavmode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Internal</code><span>_cell<wbr/>Nav<wbr/>Mode</span><a href=\"#_cellnavmode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_cellNavMode</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L196\">src/wunderbaum.ts:196</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"_util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_util</span><a href=\"#_util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_util</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../modules/util.html\" class=\"tsd-signature-type tsd-kind-module\">util</a><span class=\"tsd-signature-symbol\"> = util</span></div><div class=\"tsd-comment tsd-typography\"><p>Expose some useful methods of the util.ts module as <code>tree._util</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L179\">src/wunderbaum.ts:179</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"activecolidx\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Internal</code><span>active<wbr/>Col<wbr/>Idx</span><a href=\"#activecolidx\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">activeColIdx</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\"> = 0</span></div><div class=\"tsd-comment tsd-typography\"><p>Use <code>setColumn()</code>/<code>getActiveColElem()</code> to access.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L194\">src/wunderbaum.ts:194</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"breadcrumb\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>breadcrumb</span><a href=\"#breadcrumb\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">breadcrumb</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLElement</span><span class=\"tsd-signature-symbol\"> = null</span></div><div class=\"tsd-comment tsd-typography\"><p>Filter options (used as defaults for calls to <a href=\"wunderbaum.Wunderbaum.html#filternodes\" class=\"tsd-kind-method\">Wunderbaum.filterNodes</a> )</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L186\">src/wunderbaum.ts:186</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"columns\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>columns</span><a href=\"#columns\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">columns</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.ColumnDefinitionList.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ColumnDefinitionList</a><span class=\"tsd-signature-symbol\"> = []</span></div><div class=\"tsd-comment tsd-typography\"><p>List of column definitions.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L155\">src/wunderbaum.ts:155</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"data\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Readonly</code><span>data</span><a href=\"#data\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">data</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]:</span> <span class=\"tsd-signature-type\">any</span> <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\"> = {}</span></div><div class=\"tsd-comment tsd-typography\"><p>Contains additional data that was sent as response to an Ajax source load request.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L118\">src/wunderbaum.ts:118</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"element\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Readonly</code><span>element</span><a href=\"#element\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">element</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLDivElement</span></div><div class=\"tsd-comment tsd-typography\"><p>The <code>div</code> container element that was passed to the constructor.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L110\">src/wunderbaum.ts:110</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"filtermode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>filter<wbr/>Mode</span><a href=\"#filtermode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">filterMode</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.FilterModeType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">FilterModeType</a><span class=\"tsd-signature-symbol\"> = null</span></div><div class=\"tsd-comment tsd-typography\"><p>Filter options (used as defaults for calls to <a href=\"wunderbaum.Wunderbaum.html#filternodes\" class=\"tsd-kind-method\">Wunderbaum.filterNodes</a> )</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L190\">src/wunderbaum.ts:190</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"headerelement\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Readonly</code><span>header<wbr/>Element</span><a href=\"#headerelement\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">headerElement</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLDivElement</span></div><div class=\"tsd-comment tsd-typography\"><p>The <code>div.wb-header</code> element if any.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L112\">src/wunderbaum.ts:112</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"id\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Readonly</code><span>id</span><a href=\"#id\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">id</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Unique tree ID as passed to constructor. Defaults to <code>&quot;wb_SEQUENCE&quot;</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L108\">src/wunderbaum.ts:108</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"lastquicksearchterm\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Internal</code><span>last<wbr/>Quicksearch<wbr/>Term</span><a href=\"#lastquicksearchterm\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">lastQuicksearchTerm</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\"> = &quot;&quot;</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L200\">src/wunderbaum.ts:200</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"lastquicksearchtime\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Internal</code><span>last<wbr/>Quicksearch<wbr/>Time</span><a href=\"#lastquicksearchtime\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">lastQuicksearchTime</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\"> = 0</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L198\">src/wunderbaum.ts:198</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"listcontainerelement\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Readonly</code><span>list<wbr/>Container<wbr/>Element</span><a href=\"#listcontainerelement\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">listContainerElement</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLDivElement</span></div><div class=\"tsd-comment tsd-typography\"><p>The <code>div.wb-list-container</code> element that contains the <code>nodeListElement</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L114\">src/wunderbaum.ts:114</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"nodelistelement\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Readonly</code><span>node<wbr/>List<wbr/>Element</span><a href=\"#nodelistelement\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">nodeListElement</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLDivElement</span></div><div class=\"tsd-comment tsd-typography\"><p>The <code>div.wb-node-list</code> element that contains all visible div.wb-row child elements.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L116\">src/wunderbaum.ts:116</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"options\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>options</span><a href=\"#options\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">options</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/wb_options.WunderbaumOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">WunderbaumOptions</a></div><div class=\"tsd-comment tsd-typography\"><p>Merged options from constructor args and tree- and extension defaults.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L125\">src/wunderbaum.ts:125</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"ready\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Readonly</code><span>ready</span><a href=\"#ready\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">ready</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">&gt;</span></div><div class=\"tsd-comment tsd-typography\"><p>A Promise that is resolved when the tree was initialized (similar to <code>init(e)</code> event).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L163\">src/wunderbaum.ts:163</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"root\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Readonly</code><span>root</span><a href=\"#root\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">root</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The invisible root node, that holds all visible top level nodes.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L106\">src/wunderbaum.ts:106</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"types\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>types</span><a href=\"#types\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">types</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.NodeTypeDefinitionMap.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeTypeDefinitionMap</a><span class=\"tsd-signature-symbol\"> = {}</span></div><div class=\"tsd-comment tsd-typography\"><p>Shared properties, referenced by <code>node.type</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L153\">src/wunderbaum.ts:153</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"iconmaps\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Static</code><span>icon<wbr/>Maps</span><a href=\"#iconmaps\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">iconMaps</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-kind-property\">bootstrap</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.IconMapType.html\" class=\"tsd-signature-type tsd-kind-interface\">IconMapType</a><span class=\"tsd-signature-symbol\">;</span> <span class=\"tsd-kind-property\">fontawesome6</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.IconMapType.html\" class=\"tsd-signature-type tsd-kind-interface\">IconMapType</a> <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\"> = defaultIconMaps</span></div><div class=\"tsd-comment tsd-typography\"><p>A map of default iconMaps.\nMay be used as default, when passing partial icon definition maps:</p>\n<pre><code class=\"js\"><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">tree</span><span class=\"hl-1\"> = </span><span class=\"hl-0\">new</span><span class=\"hl-1\"> </span><span class=\"hl-2\">mar10</span><span class=\"hl-1\">.</span><span class=\"hl-6\">Wunderbaum</span><span class=\"hl-1\">({</span><br/><span class=\"hl-1\">  ...</span><br/><span class=\"hl-1\">  </span><span class=\"hl-2\">iconMap</span><span class=\"hl-1\">: </span><span class=\"hl-2\">Object</span><span class=\"hl-1\">.</span><span class=\"hl-6\">assign</span><span class=\"hl-1\">(</span><span class=\"hl-2\">Wunderbaum</span><span class=\"hl-1\">.</span><span class=\"hl-2\">iconMaps</span><span class=\"hl-1\">.</span><span class=\"hl-2\">bootstrap</span><span class=\"hl-1\">, {</span><br/><span class=\"hl-1\">    </span><span class=\"hl-2\">folder:</span><span class=\"hl-1\"> </span><span class=\"hl-7\">&quot;bi bi-archive&quot;</span><span class=\"hl-1\">,</span><br/><span class=\"hl-1\">  }),</span><br/><span class=\"hl-1\">});</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L177\">src/wunderbaum.ts:177</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Static</code><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../modules/util.html\" class=\"tsd-signature-type tsd-kind-module\">util</a><span class=\"tsd-signature-symbol\"> = util</span></div><div class=\"tsd-comment tsd-typography\"><p>Expose some useful methods of the util.ts module as <code>Wunderbaum.util</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L165\">src/wunderbaum.ts:165</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"version\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Static</code><span>version</span><a href=\"#version\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">version</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\"> = &quot;@VERSION&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>Wunderbaum release version number &quot;MAJOR.MINOR.PATCH&quot;.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L103\">src/wunderbaum.ts:103</a></li></ul></aside></section></section></details><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Accessors\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Accessors</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"activenode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>active<wbr/>Node</span><a href=\"#activenode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature\" id=\"activenode-1\"><span class=\"tsd-signature-keyword\">get</span> <span class=\"tsd-kind-get-signature\">activeNode</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Currently active node if any.\nUse <a href=\"wb_node.WunderbaumNode.html#setactive\" class=\"tsd-kind-method\">setActive</a> to modify.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L140\">src/wunderbaum.ts:140</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"children\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>children</span><a href=\"#children\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature\" id=\"children-1\"><span class=\"tsd-signature-keyword\">get</span> <span class=\"tsd-kind-get-signature\">children</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return a list of top-level nodes.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1608\">src/wunderbaum.ts:1608</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"focusnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>focus<wbr/>Node</span><a href=\"#focusnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature\" id=\"focusnode-1\"><span class=\"tsd-signature-keyword\">get</span> <span class=\"tsd-kind-get-signature\">focusNode</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Current node hat has keyboard focus if any.\nUse <a href=\"wb_node.WunderbaumNode.html#setfocus\" class=\"tsd-kind-method\">setFocus()</a> to modify.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L147\">src/wunderbaum.ts:147</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"iconmap\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>icon<wbr/>Map</span><a href=\"#iconmap\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature\" id=\"iconmap-1\"><span class=\"tsd-signature-keyword\">get</span> <span class=\"tsd-kind-get-signature\">iconMap</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.IconMapType.html\" class=\"tsd-signature-type tsd-kind-interface\">IconMapType</a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the icon-function -&gt; icon-definition mapping.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <a href=\"../interfaces/types.IconMapType.html\" class=\"tsd-signature-type tsd-kind-interface\">IconMapType</a></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-deprecated\"><h4 class=\"tsd-anchor-link\"><a id=\"deprecated\" class=\"tsd-anchor\"></a>Deprecated<a href=\"#deprecated\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>Use <a href=\"wunderbaum.Wunderbaum.html#iconmaps\" class=\"tsd-kind-property\">Wunderbaum.iconMaps</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L653\">src/wunderbaum.ts:653</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"parent\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>parent</span><a href=\"#parent\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature\" id=\"parent-1\"><span class=\"tsd-signature-keyword\">get</span> <span class=\"tsd-kind-get-signature\">parent</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Always returns null (so a tree instance behaves as <code>tree.root</code>).</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1601\">src/wunderbaum.ts:1601</a></li></ul></aside></div></li></ul></section></section></details><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Methods\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Methods</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"_calculatekey\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_calculate<wbr/>Key</span><a href=\"#_calculatekey\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"_calculatekey-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">_calculateKey</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">data</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">parent</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><a href=\"#_calculatekey-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Internal</code><div class=\"tsd-comment tsd-typography\"><p>Calculate a <em>stable</em>, unique key for a node from its refKey (or title).\nWe also add information from the parent, because a refKey may occur multiple\ntimes in a tree (but not as child of the same parent).</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">data</span>: <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">parent</span>: <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L719\">src/wunderbaum.ts:719</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"_callevent\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_call<wbr/>Event</span><a href=\"#_callevent\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"_callevent-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">_callEvent</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">extra</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#_callevent-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Call event handler if defined in tree or tree.EXTENSION options.</p>\n<p>Example:</p>\n<pre><code class=\"js\"><span class=\"hl-2\">tree</span><span class=\"hl-1\">.</span><span class=\"hl-6\">_callEvent</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&quot;edit.beforeEdit&quot;</span><span class=\"hl-1\">, {</span><span class=\"hl-2\">foo:</span><span class=\"hl-1\"> </span><span class=\"hl-10\">42</span><span class=\"hl-1\">})</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">type</span>: <span class=\"tsd-signature-type\">string</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">extra</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L836\">src/wunderbaum.ts:836</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"_callmethod\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_call<wbr/>Method</span><a href=\"#_callmethod\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"_callmethod-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">_callMethod</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">name</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#_callmethod-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Call tree method or extension method if defined.</p>\n<p>Example:</p>\n<pre><code class=\"js\"><span class=\"hl-2\">tree</span><span class=\"hl-1\">.</span><span class=\"hl-6\">_callMethod</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&quot;edit.startEdit&quot;</span><span class=\"hl-1\">, </span><span class=\"hl-7\">&quot;arg1&quot;</span><span class=\"hl-1\">, </span><span class=\"hl-7\">&quot;arg2&quot;</span><span class=\"hl-1\">)</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">name</span>: <span class=\"tsd-signature-type\">string</span></span></li><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L817\">src/wunderbaum.ts:817</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"_check\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_check</span><a href=\"#_check\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"_check-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">_check</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#_check-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Internal</code><div class=\"tsd-comment tsd-typography\"><p>sanity check.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1335\">src/wunderbaum.ts:1335</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"_createnodeicon\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_create<wbr/>Node<wbr/>Icon</span><a href=\"#_createnodeicon\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"_createnodeicon-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">_createNodeIcon</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">showLoading</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">showBadge</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLElement</span><a href=\"#_createnodeicon-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Internal</code><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li><li><span><span class=\"tsd-kind-parameter\">showLoading</span>: <span class=\"tsd-signature-type\">boolean</span></span></li><li><span><span class=\"tsd-kind-parameter\">showBadge</span>: <span class=\"tsd-signature-type\">boolean</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLElement</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2552\">src/wunderbaum.ts:2552</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"_registernode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_register<wbr/>Node</span><a href=\"#_registernode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"_registernode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">_registerNode</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#_registernode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Internal</code><div class=\"tsd-comment tsd-typography\"><p>Add node to tree's bookkeeping data structures.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L749\">src/wunderbaum.ts:749</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"_setactivenode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_set<wbr/>Active<wbr/>Node</span><a href=\"#_setactivenode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"_setactivenode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">_setActiveNode</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#_setactivenode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2002\">src/wunderbaum.ts:2002</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"_setfocusnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_set<wbr/>Focus<wbr/>Node</span><a href=\"#_setfocusnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"_setfocusnode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">_setFocusNode</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#_setfocusnode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2021\">src/wunderbaum.ts:2021</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"_unregisternode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_unregister<wbr/>Node</span><a href=\"#_unregisternode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"_unregisternode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">_unregisterNode</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#_unregisternode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Internal</code><div class=\"tsd-comment tsd-typography\"><p>Remove node from tree's bookkeeping data structures.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L766\">src/wunderbaum.ts:766</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"_updatecolumnwidths\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>_update<wbr/>Column<wbr/>Widths</span><a href=\"#_updatecolumnwidths\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"_updatecolumnwidths-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">_updateColumnWidths</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#_updatecolumnwidths-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Update column headers and column width.\nReturn true if at least one column width changed.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2340\">src/wunderbaum.ts:2340</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"iterator\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>[iterator]</span><a href=\"#iterator\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"iterator-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">&quot;[iterator]&quot;</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">IterableIterator</span><span class=\"tsd-signature-symbol\">&lt;</span><a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#iterator-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Iterate all descendant nodes depth-first, pre-order using <code>for ... of ...</code> syntax.\nMore concise, but slightly slower than <a href=\"wunderbaum.Wunderbaum.html#visit\" class=\"tsd-kind-method\">Wunderbaum.visit</a>.</p>\n<p>Example:</p>\n<pre><code class=\"js\"><span class=\"hl-4\">for</span><span class=\"hl-1\">(</span><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">node</span><span class=\"hl-1\"> </span><span class=\"hl-0\">of</span><span class=\"hl-1\"> </span><span class=\"hl-2\">tree</span><span class=\"hl-1\">) {</span><br/><span class=\"hl-1\">  ...</span><br/><span class=\"hl-1\">}</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">IterableIterator</span><span class=\"tsd-signature-symbol\">&lt;</span><a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L695\">src/wunderbaum.ts:695</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"addchildren\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>add<wbr/>Children</span><a href=\"#addchildren\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"addchildren-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">addChildren</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">nodeData</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.AddChildrenOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">AddChildrenOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#addchildren-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Append (or insert) a list of toplevel nodes.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">nodeData</span>: <span class=\"tsd-signature-type\">any</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.AddChildrenOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">AddChildrenOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#addchildren\" class=\"tsd-kind-method\">WunderbaumNode.addChildren</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L947\">src/wunderbaum.ts:947</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"applycommand\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>apply<wbr/>Command</span><a href=\"#applycommand\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"applycommand-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">applyCommand</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">cmd</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.ApplyCommandType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ApplyCommandType</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.ApplyCommandOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ApplyCommandOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#applycommand-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Apply a modification (or navigation) operation on the <strong>tree or active node</strong>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">cmd</span>: <a href=\"../types/types.ApplyCommandType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ApplyCommandType</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.ApplyCommandOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ApplyCommandOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L954\">src/wunderbaum.ts:954</a></li></ul></aside></div></li><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"applycommand-2\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">applyCommand</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">cmd</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.ApplyCommandType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ApplyCommandType</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.ApplyCommandOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ApplyCommandOptions</a><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#applycommand-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Apply a modification (or navigation) operation on a <strong>node</strong>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">cmd</span>: <a href=\"../types/types.ApplyCommandType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ApplyCommandType</a></span></li><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.ApplyCommandOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ApplyCommandOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-1\" class=\"tsd-anchor\"></a>See<a href=\"#see-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#applycommand\" class=\"tsd-kind-method\">WunderbaumNode.applyCommand</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L960\">src/wunderbaum.ts:960</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"clear\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>clear</span><a href=\"#clear\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"clear-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">clear</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#clear-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Delete all nodes.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1094\">src/wunderbaum.ts:1094</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"clearfilter\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>clear<wbr/>Filter</span><a href=\"#clearfilter\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"clearfilter-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">clearFilter</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#clearfilter-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Reset the filter.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L3188\">src/wunderbaum.ts:3188</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"count\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>count</span><a href=\"#count\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"count-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">count</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">visible</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><a href=\"#count-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the number of nodes in the data model.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">visible</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>if true, nodes that are hidden due to collapsed parents are ignored.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">number</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1324\">src/wunderbaum.ts:1324</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"countmatches\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>count<wbr/>Matches</span><a href=\"#countmatches\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"countmatches-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">countMatches</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><a href=\"#countmatches-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the number of nodes that match the current filter.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">number</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-2\" class=\"tsd-anchor\"></a>See<a href=\"#see-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wunderbaum.Wunderbaum.html#filternodes\" class=\"tsd-kind-method\">Wunderbaum.filterNodes</a></p>\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since\" class=\"tsd-anchor\"></a>Since<a href=\"#since\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.9.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L3170\">src/wunderbaum.ts:3170</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"countunique\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>count<wbr/>Unique</span><a href=\"#countunique\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"countunique-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">countUnique</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><a href=\"#countunique-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the number of <em>unique</em> nodes in the data model, i.e. unique <code>node.refKey</code>.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">number</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1330\">src/wunderbaum.ts:1330</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"destroy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>destroy</span><a href=\"#destroy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"destroy-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">destroy</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#destroy-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Clear nodes and markup and detach events and observers.</p>\n<p>This method may be useful to free up resources before re-creating a tree\non an existing div, for example in unittest suites.\nNote that this Wunderbaum instance becomes unusable afterwards.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1130\">src/wunderbaum.ts:1130</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"enableupdate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>enable<wbr/>Update</span><a href=\"#enableupdate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"enableupdate-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">enableUpdate</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">flag</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#enableupdate-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Disable render requests during operations that would trigger many updates.</p>\n<pre><code class=\"js\"><span class=\"hl-4\">try</span><span class=\"hl-1\"> {</span><br/><span class=\"hl-1\">  </span><span class=\"hl-2\">tree</span><span class=\"hl-1\">.</span><span class=\"hl-6\">enableUpdate</span><span class=\"hl-1\">(</span><span class=\"hl-0\">false</span><span class=\"hl-1\">);</span><br/><span class=\"hl-1\">  </span><span class=\"hl-9\">// ... (long running operation that would trigger many updates)</span><br/><span class=\"hl-1\">  </span><span class=\"hl-6\">foo</span><span class=\"hl-1\">();</span><br/><span class=\"hl-1\">  </span><span class=\"hl-9\">// ... NOTE: make sure that async operations have finished, e.g.</span><br/><span class=\"hl-1\">  </span><span class=\"hl-4\">await</span><span class=\"hl-1\"> </span><span class=\"hl-6\">foo</span><span class=\"hl-1\">();</span><br/><span class=\"hl-1\">} </span><span class=\"hl-4\">finally</span><span class=\"hl-1\"> {</span><br/><span class=\"hl-1\">  </span><span class=\"hl-2\">tree</span><span class=\"hl-1\">.</span><span class=\"hl-6\">enableUpdate</span><span class=\"hl-1\">(</span><span class=\"hl-0\">true</span><span class=\"hl-1\">);</span><br/><span class=\"hl-1\">}</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">flag</span>: <span class=\"tsd-signature-type\">boolean</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L3110\">src/wunderbaum.ts:3110</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"expandall\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>expand<wbr/>All</span><a href=\"#expandall\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"expandall-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">expandAll</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">flag</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.ExpandAllOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ExpandAllOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#expandall-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Recursively expand all expandable nodes (triggers lazy load if needed).</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">flag</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.ExpandAllOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ExpandAllOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1249\">src/wunderbaum.ts:1249</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"filterbranches\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span class=\"deprecated\">filter<wbr/>Branches</span><a href=\"#filterbranches\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"filterbranches-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">filterBranches</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">filter</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.NodeFilterCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeFilterCallback</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.FilterNodesOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">FilterNodesOptions</a><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><a href=\"#filterbranches-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Dim or hide whole branches.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">filter</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.NodeFilterCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeFilterCallback</a></span></li><li><span><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.FilterNodesOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">FilterNodesOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">number</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-deprecated\"><h4 class=\"tsd-anchor-link\"><a id=\"deprecated-1\" class=\"tsd-anchor\"></a>Deprecated<a href=\"#deprecated-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>Use <a href=\"wunderbaum.Wunderbaum.html#filternodes\" class=\"tsd-kind-method\">filterNodes</a> instead and set <code>options.matchBranch: true</code>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L3178\">src/wunderbaum.ts:3178</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"filternodes\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>filter<wbr/>Nodes</span><a href=\"#filternodes\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"filternodes-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">filterNodes</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">filter</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">RegExp</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.NodeFilterCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeFilterCallback</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.FilterNodesOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">FilterNodesOptions</a><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><a href=\"#filternodes-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Dim or hide unmatched nodes.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">filter</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">RegExp</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.NodeFilterCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeFilterCallback</a></span><div class=\"tsd-comment tsd-typography\"><p>a string to match against node titles, or a callback function.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.FilterNodesOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">FilterNodesOptions</a></span><div class=\"tsd-comment tsd-typography\"><p>filter options. Defaults to the <code>tree.options.filter</code> settings.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">number</span></h4><p>the number of nodes that match the filter.</p>\n<div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-example\"><h4 class=\"tsd-anchor-link\"><a id=\"example\" class=\"tsd-anchor\"></a>Example<a href=\"#example\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-2\">tree</span><span class=\"hl-1\">.</span><span class=\"hl-6\">filterNodes</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&quot;foo&quot;</span><span class=\"hl-1\">, {</span><span class=\"hl-2\">mode:</span><span class=\"hl-1\"> </span><span class=\"hl-7\">&#39;dim&#39;</span><span class=\"hl-1\">, </span><span class=\"hl-2\">fuzzy:</span><span class=\"hl-1\"> </span><span class=\"hl-0\">true</span><span class=\"hl-1\">});</span><br/><span class=\"hl-9\">// or pass a callback</span><br/><span class=\"hl-2\">tree</span><span class=\"hl-1\">.</span><span class=\"hl-6\">filterNodes</span><span class=\"hl-1\">((</span><span class=\"hl-2\">node</span><span class=\"hl-1\">) </span><span class=\"hl-0\">=&gt;</span><span class=\"hl-1\"> { </span><span class=\"hl-4\">return</span><span class=\"hl-1\"> </span><span class=\"hl-2\">node</span><span class=\"hl-1\">.</span><span class=\"hl-2\">data</span><span class=\"hl-1\">.</span><span class=\"hl-2\">foo</span><span class=\"hl-1\"> === </span><span class=\"hl-0\">true</span><span class=\"hl-1\"> }, {</span><span class=\"hl-2\">mode:</span><span class=\"hl-1\"> </span><span class=\"hl-7\">&#39;hide&#39;</span><span class=\"hl-1\">});</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L3158\">src/wunderbaum.ts:3158</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"findall\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>find<wbr/>All</span><a href=\"#findall\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"findall-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">findAll</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">match</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">RegExp</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.MatcherCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">MatcherCallback</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span><a href=\"#findall-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Find all nodes that match condition.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">match</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">RegExp</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.MatcherCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">MatcherCallback</a></span><div class=\"tsd-comment tsd-typography\"><p>title string to search for, or a\ncallback function that returns <code>true</code> if a node is matched.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-3\" class=\"tsd-anchor\"></a>See<a href=\"#see-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#findall\" class=\"tsd-kind-method\">WunderbaumNode.findAll</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1353\">src/wunderbaum.ts:1353</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"findbyrefkey\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>find<wbr/>By<wbr/>Ref<wbr/>Key</span><a href=\"#findbyrefkey\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"findbyrefkey-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">findByRefKey</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">refKey</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span><a href=\"#findbyrefkey-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Find all nodes with a given <em>refKey</em> (aka a list of clones).</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">refKey</span>: <span class=\"tsd-signature-type\">string</span></span><div class=\"tsd-comment tsd-typography\"><p>a <code>node.refKey</code> value to search for.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span></h4><p>an array of matching nodes with at least two element or <code>[]</code>\nif nothing found.</p>\n<div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-4\" class=\"tsd-anchor\"></a>See<a href=\"#see-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#getclonelist\" class=\"tsd-kind-method\">WunderbaumNode.getCloneList</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1366\">src/wunderbaum.ts:1366</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"findfirst\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>find<wbr/>First</span><a href=\"#findfirst\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"findfirst-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">findFirst</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">match</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">RegExp</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.MatcherCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">MatcherCallback</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#findfirst-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Find first node that matches condition.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">match</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">RegExp</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.MatcherCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">MatcherCallback</a></span><div class=\"tsd-comment tsd-typography\"><p>title string to search for, or a\ncallback function that returns <code>true</code> if a node is matched.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-5\" class=\"tsd-anchor\"></a>See<a href=\"#see-5\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#findfirst\" class=\"tsd-kind-method\">WunderbaumNode.findFirst</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1378\">src/wunderbaum.ts:1378</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"findkey\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>find<wbr/>Key</span><a href=\"#findkey\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"findkey-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">findKey</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#findkey-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Find first node that matches condition.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">key</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-6\" class=\"tsd-anchor\"></a>See<a href=\"#see-6\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#findfirst\" class=\"tsd-kind-method\">WunderbaumNode.findFirst</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1388\">src/wunderbaum.ts:1388</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"findnextnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>find<wbr/>Next<wbr/>Node</span><a href=\"#findnextnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"findnextnode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">findNextNode</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">match</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.MatcherCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">MatcherCallback</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">startNode</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">reverse</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#findnextnode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Find the next visible node that starts with <code>match</code>, starting at <code>startNode</code>\nand wrap-around at the end.\nUsed by quicksearch and keyboard navigation.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">match</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.MatcherCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">MatcherCallback</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">startNode</span>: <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li><li><span><span class=\"tsd-kind-parameter\">reverse</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1397\">src/wunderbaum.ts:1397</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"findrelatednode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>find<wbr/>Related<wbr/>Node</span><a href=\"#findrelatednode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"findrelatednode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">findRelatedNode</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">where</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.NavigationType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NavigationType</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">includeHidden</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#findrelatednode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Find a node relative to another node.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">where</span>: <a href=\"../types/types.NavigationType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NavigationType</a></span><div class=\"tsd-comment tsd-typography\"><p>'down', 'first', 'last', 'left', 'parent', 'right', or 'up'.\n(Alternatively the keyCode that would normally trigger this move,\ne.g. <code>$.ui.keyCode.LEFT</code> = 'left'.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">includeHidden</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>Not yet implemented</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1446\">src/wunderbaum.ts:1446</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"format\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>format</span><a href=\"#format\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"format-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">format</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">name_cb</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.NodeStringCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeStringCallback</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">connectors</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><a href=\"#format-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return multiline string representation of the node hierarchy.\nMostly useful for debugging.</p>\n<p>Example:</p>\n<pre><code class=\"js\"><span class=\"hl-2\">console</span><span class=\"hl-1\">.</span><span class=\"hl-6\">info</span><span class=\"hl-1\">(</span><span class=\"hl-2\">tree</span><span class=\"hl-1\">.</span><span class=\"hl-6\">format</span><span class=\"hl-1\">((</span><span class=\"hl-2\">n</span><span class=\"hl-1\">)</span><span class=\"hl-0\">=&gt;</span><span class=\"hl-2\">n</span><span class=\"hl-1\">.</span><span class=\"hl-2\">title</span><span class=\"hl-1\">));</span>\n</code><button type=\"button\">Copy</button></pre>\n\n<p>logs</p>\n<pre><code><span class=\"hl-2\">Playground</span><br/><span class=\"hl-1\">├─ </span><span class=\"hl-2\">Books</span><br/><span class=\"hl-1\">|   ├─ </span><span class=\"hl-2\">Art</span><span class=\"hl-1\"> </span><span class=\"hl-0\">of</span><span class=\"hl-1\"> </span><span class=\"hl-2\">War</span><br/><span class=\"hl-1\">|   ╰─ </span><span class=\"hl-2\">Don</span><span class=\"hl-1\"> </span><span class=\"hl-2\">Quixote</span><br/><span class=\"hl-1\">├─ </span><span class=\"hl-2\">Music</span><br/><span class=\"hl-1\">...</span>\n</code><button>Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">name_cb</span>: <a href=\"../types/types.NodeStringCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeStringCallback</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">connectors</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-7\" class=\"tsd-anchor\"></a>See<a href=\"#see-7\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wunderbaum.Wunderbaum.html#format_iter\" class=\"tsd-kind-method\">Wunderbaum.format_iter</a> and <a href=\"wb_node.WunderbaumNode.html#format\" class=\"tsd-kind-method\">WunderbaumNode.format</a>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1594\">src/wunderbaum.ts:1594</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"format_iter\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>format_<wbr/>iter</span><a href=\"#format_iter\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"format_iter-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">format_iter</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">name_cb</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.NodeStringCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeStringCallback</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">connectors</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">IterableIterator</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#format_iter-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Iterator version of <a href=\"wunderbaum.Wunderbaum.html#format\" class=\"tsd-kind-method\">Wunderbaum.format</a>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">name_cb</span>: <a href=\"../types/types.NodeStringCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeStringCallback</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">connectors</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">IterableIterator</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1567\">src/wunderbaum.ts:1567</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getactivecolelem\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Active<wbr/>Col<wbr/>Elem</span><a href=\"#getactivecolelem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getactivecolelem-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getActiveColElem</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLSpanElement</span><a href=\"#getactivecolelem-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the active cell (<code>span.wb-col</code>) of the currently active node or null.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLSpanElement</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1615\">src/wunderbaum.ts:1615</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getactivenode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Active<wbr/>Node</span><a href=\"#getactivenode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getactivenode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getActiveNode</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#getactivenode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the currently active node or null (alias for <code>tree.activeNode</code>).\nAlias for <a href=\"wunderbaum.Wunderbaum.html#activenode\" class=\"tsd-kind-accessor\">Wunderbaum.activeNode</a>.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-8\" class=\"tsd-anchor\"></a>See<a href=\"#see-8\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><ul>\n<li><a href=\"wb_node.WunderbaumNode.html#setactive\" class=\"tsd-kind-method\">WunderbaumNode.setActive</a></li>\n<li><a href=\"wb_node.WunderbaumNode.html#isactive\" class=\"tsd-kind-method\">WunderbaumNode.isActive</a></li>\n<li><a href=\"wunderbaum.Wunderbaum.html#activenode\" class=\"tsd-kind-accessor\">Wunderbaum.activeNode</a></li>\n<li><a href=\"wunderbaum.Wunderbaum.html#focusnode\" class=\"tsd-kind-accessor\">Wunderbaum.focusNode</a></li>\n</ul>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1631\">src/wunderbaum.ts:1631</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getfirstchild\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>First<wbr/>Child</span><a href=\"#getfirstchild\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getfirstchild-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getFirstChild</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#getfirstchild-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the first top level node if any (not the invisible root node).</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1638\">src/wunderbaum.ts:1638</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getfocusnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Focus<wbr/>Node</span><a href=\"#getfocusnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getfocusnode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getFocusNode</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#getfocusnode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the node that currently has keyboard focus or null.\nAlias for <a href=\"wunderbaum.Wunderbaum.html#focusnode\" class=\"tsd-kind-accessor\">Wunderbaum.focusNode</a>.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-9\" class=\"tsd-anchor\"></a>See<a href=\"#see-9\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><ul>\n<li><a href=\"wb_node.WunderbaumNode.html#setfocus\" class=\"tsd-kind-method\">WunderbaumNode.setFocus</a></li>\n<li><a href=\"wb_node.WunderbaumNode.html#hasfocus\" class=\"tsd-kind-method\">WunderbaumNode.hasFocus</a></li>\n<li><a href=\"wunderbaum.Wunderbaum.html#activenode\" class=\"tsd-kind-accessor\">Wunderbaum.activeNode</a></li>\n<li><a href=\"wunderbaum.Wunderbaum.html#focusnode\" class=\"tsd-kind-accessor\">Wunderbaum.focusNode</a></li>\n</ul>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1657\">src/wunderbaum.ts:1657</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getlastchild\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Last<wbr/>Child</span><a href=\"#getlastchild\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getlastchild-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getLastChild</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#getlastchild-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the last top level node if any (not the invisible root node).</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1645\">src/wunderbaum.ts:1645</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getlowestvpnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Lowest<wbr/>Vp<wbr/>Node</span><a href=\"#getlowestvpnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getlowestvpnode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getLowestVpNode</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">complete</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#getlowestvpnode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the lowest visible node in the viewport.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">complete</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L884\">src/wunderbaum.ts:884</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getoption\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Option</span><a href=\"#getoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getoption-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getOption</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">name</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">defaultValue</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#getoption-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return <code>tree.option.NAME</code> (also resolving if this is a callback).</p>\n<p>See also <a href=\"wb_node.WunderbaumNode.html#getoption\" class=\"tsd-kind-method\">WunderbaumNode.getOption()</a>\nto evaluate <code>node.NAME</code> setting and <code>tree.types[node.type].NAME</code>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">name</span>: <span class=\"tsd-signature-type\">string</span></span><div class=\"tsd-comment tsd-typography\"><p>option name (use dot notation to access extension option, e.g.\n<code>filter.mode</code>)</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">defaultValue</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1149\">src/wunderbaum.ts:1149</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getrefkeys\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Ref<wbr/>Keys</span><a href=\"#getrefkeys\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getrefkeys-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getRefKeys</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">selected</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span><a href=\"#getrefkeys-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return an array of refKey values.</p>\n<p>RefKeys are unique identifiers for a node data, and are used to identify\nclones.\nIf more than one node has the same refKey, it is only returned once.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">selected</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>if true, only return refKeys of selected nodes.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1279\">src/wunderbaum.ts:1279</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getselectednodes\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Selected<wbr/>Nodes</span><a href=\"#getselectednodes\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getselectednodes-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getSelectedNodes</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">stopOnParents</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span><a href=\"#getselectednodes-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return an array of selected nodes.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">stopOnParents</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>only return the topmost selected node (useful with selectMode 'hier')</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">[]</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1267\">src/wunderbaum.ts:1267</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getstate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>State</span><a href=\"#getstate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getstate-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getState</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.GetStateOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">GetStateOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.TreeStateDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">TreeStateDefinition</a><a href=\"#getstate-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Experimental</code><div class=\"tsd-comment tsd-typography\"><p>Return the current selection/expansion/activation status.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.GetStateOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">GetStateOptions</a><span class=\"tsd-signature-symbol\"> = {}</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"../interfaces/types.TreeStateDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">TreeStateDefinition</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2026\">src/wunderbaum.ts:2026</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"gettopmostvpnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>get<wbr/>Topmost<wbr/>Vp<wbr/>Node</span><a href=\"#gettopmostvpnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"gettopmostvpnode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getTopmostVpNode</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">complete</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#gettopmostvpnode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the topmost visible node in the viewport.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">complete</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span><div class=\"tsd-comment tsd-typography\"><p>If <code>false</code>, the node is considered visible if at least one\npixel is visible.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L867\">src/wunderbaum.ts:867</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"hasfocus\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>has<wbr/>Focus</span><a href=\"#hasfocus\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"hasfocus-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">hasFocus</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#hasfocus-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if the tree (or one of its nodes) has the input focus.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1196\">src/wunderbaum.ts:1196</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"hasheader\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>has<wbr/>Header</span><a href=\"#hasheader\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"hasheader-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">hasHeader</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#hasheader-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if the tree displays a header. Grids have a header unless the\n<code>header</code> option is set to <code>false</code>. Plain trees have a header if the <code>header</code>\noption is a string or <code>true</code>.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1205\">src/wunderbaum.ts:1205</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"iscellnav\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Cell<wbr/>Nav</span><a href=\"#iscellnav\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"iscellnav-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isCellNav</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#iscellnav-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if cell-navigation mode is active.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2207\">src/wunderbaum.ts:2207</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isediting\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Editing</span><a href=\"#isediting\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isediting-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isEditing</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isediting-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if any node title or grid cell is currently beeing edited.</p>\n<p>See also <a href=\"wunderbaum.Wunderbaum.html#iseditingtitle\" class=\"tsd-kind-method\">isEditingTitle</a>.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1736\">src/wunderbaum.ts:1736</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"iseditingtitle\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Editing<wbr/>Title</span><a href=\"#iseditingtitle\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"iseditingtitle-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isEditingTitle</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#iseditingtitle-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if any node is currently in edit-title mode.</p>\n<p>See also <a href=\"wb_node.WunderbaumNode.html#iseditingtitle\" class=\"tsd-kind-method\">WunderbaumNode.isEditingTitle</a> and <a href=\"wunderbaum.Wunderbaum.html#isediting\" class=\"tsd-kind-method\">isEditing</a>.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1747\">src/wunderbaum.ts:1747</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isenabled\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Enabled</span><a href=\"#isenabled\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isenabled-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isEnabled</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isenabled-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return false if tree is disabled.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2197\">src/wunderbaum.ts:2197</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isfilteractive\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Filter<wbr/>Active</span><a href=\"#isfilteractive\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isfilteractive-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isFilterActive</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isfilteractive-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if a filter is currently applied.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L3194\">src/wunderbaum.ts:3194</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isgrid\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Grid</span><a href=\"#isgrid\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isgrid-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isGrid</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isgrid-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if tree has more than one column, i.e. has additional data columns.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2202\">src/wunderbaum.ts:2202</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isloading\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Loading</span><a href=\"#isloading\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isloading-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isLoading</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isloading-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if any node is currently beeing loaded, i.e. a Ajax request is pending.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1754\">src/wunderbaum.ts:1754</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"isrownav\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Row<wbr/>Nav</span><a href=\"#isrownav\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isrownav-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isRowNav</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isrownav-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if row-navigation mode is active.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2211\">src/wunderbaum.ts:2211</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"load\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>load</span><a href=\"#load\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"load-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">load</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">source</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.SourceType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SourceType</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#load-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Reload the tree with a new source.</p>\n<p>Previous data is cleared. Note that also column- and type defintions may\nbe passed with the <code>source</code> object.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">source</span>: <a href=\"../types/types.SourceType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SourceType</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-10\" class=\"tsd-anchor\"></a>See<a href=\"#see-10\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wunderbaum.Wunderbaum.html#reload\" class=\"tsd-kind-method\">Wunderbaum.reload</a> for a shortcut to reload the last ajax request\nand restore the previous state.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L3027\">src/wunderbaum.ts:3027</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"log\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>log</span><a href=\"#log\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"log-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">log</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#log-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Write to <code>console.log</code> with tree name as prefix if opts.debugLevel &gt;= 4.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-11\" class=\"tsd-anchor\"></a>See<a href=\"#see-11\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wunderbaum.Wunderbaum.html#logdebug\" class=\"tsd-kind-method\">logDebug</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1770\">src/wunderbaum.ts:1770</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"logdebug\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>log<wbr/>Debug</span><a href=\"#logdebug\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"logdebug-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">logDebug</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#logdebug-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Write to <code>console.debug</code>  with tree name as prefix if opts.debugLevel &gt;= 4.\nand browser console level includes debug/verbose messages.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-12\" class=\"tsd-anchor\"></a>See<a href=\"#see-12\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wunderbaum.Wunderbaum.html#log\" class=\"tsd-kind-method\">log</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1780\">src/wunderbaum.ts:1780</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"logdeprecate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>log<wbr/>Deprecate</span><a href=\"#logdeprecate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"logdeprecate-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">logDeprecate</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">method</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DeprecationOptions.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DeprecationOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#logdeprecate-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Internal</code><div class=\"tsd-comment tsd-typography\"><p>Emit a warning for deprecated methods.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">method</span>: <span class=\"tsd-signature-type\">string</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../types/types.DeprecationOptions.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DeprecationOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1823\">src/wunderbaum.ts:1823</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"logerror\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>log<wbr/>Error</span><a href=\"#logerror\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"logerror-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">logError</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#logerror-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Write to <code>console.error</code> with tree name as prefix.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1787\">src/wunderbaum.ts:1787</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"loginfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>log<wbr/>Info</span><a href=\"#loginfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"loginfo-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">logInfo</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#loginfo-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Write to <code>console.info</code>  with tree name as prefix if opts.debugLevel &gt;= 3.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1794\">src/wunderbaum.ts:1794</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"logtime\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>log<wbr/>Time</span><a href=\"#logtime\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"logtime-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">logTime</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">label</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><a href=\"#logtime-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Internal</code><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">label</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1801\">src/wunderbaum.ts:1801</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"logtimeend\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>log<wbr/>Time<wbr/>End</span><a href=\"#logtimeend\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"logtimeend-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">logTimeEnd</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">label</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#logtimeend-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Internal</code><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">label</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1809\">src/wunderbaum.ts:1809</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"logwarn\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>log<wbr/>Warn</span><a href=\"#logwarn\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"logwarn-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">logWarn</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#logwarn-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Write to <code>console.warn</code> with tree name as prefix with if opts.debugLevel &gt;= 2.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1816\">src/wunderbaum.ts:1816</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"reload\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>reload</span><a href=\"#reload\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"reload-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">reload</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.ReloadOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ReloadOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#reload-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Experimental</code><div class=\"tsd-comment tsd-typography\"><p>Reload the tree and optionally restore state.\nSource defaults to last ajax url if any.\nRestoring the active node requires stable keys</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.ReloadOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ReloadOptions</a><span class=\"tsd-signature-symbol\"> = {}</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-13\" class=\"tsd-anchor\"></a>See<a href=\"#see-13\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><ul>\n<li><a href=\"../interfaces/wb_options.WunderbaumOptions.html#autokeys\" class=\"tsd-kind-property\">WunderbaumOptions.autoKeys</a></li>\n<li><a href=\"wunderbaum.Wunderbaum.html#load\" class=\"tsd-kind-method\">Wunderbaum.load</a></li>\n</ul>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L3040\">src/wunderbaum.ts:3040</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"resetcolumns\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>reset<wbr/>Columns</span><a href=\"#resetcolumns\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"resetcolumns-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">resetColumns</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#resetcolumns-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Reset column widths to default.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-1\" class=\"tsd-anchor\"></a>Since<a href=\"#since-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.10.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1837\">src/wunderbaum.ts:1837</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"runwithdeferredupdate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>run<wbr/>With<wbr/>Deferred<wbr/>Update</span><a href=\"#runwithdeferredupdate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"runwithdeferredupdate-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">runWithDeferredUpdate</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"wunderbaum.Wunderbaum.html#runwithdeferredupdatet\">T</a><span class=\"tsd-signature-symbol\">&gt;</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">func</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">()</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/util.NotPromise.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NotPromise</a><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"wunderbaum.Wunderbaum.html#runwithdeferredupdatet\">T</a><span class=\"tsd-signature-symbol\">&gt;</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"wunderbaum.Wunderbaum.html#runwithdeferredupdatet\">T</a><a href=\"#runwithdeferredupdate-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Run code, but defer rendering of viewport until done.</p>\n<pre><code class=\"js\"><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">res</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">tree</span><span class=\"hl-1\">.</span><span class=\"hl-6\">runWithDeferredUpdate</span><span class=\"hl-1\">(() </span><span class=\"hl-0\">=&gt;</span><span class=\"hl-1\"> {</span><br/><span class=\"hl-1\">  </span><span class=\"hl-4\">return</span><span class=\"hl-1\"> </span><span class=\"hl-6\">someFunctionThatWouldUpdateManyNodes</span><span class=\"hl-1\">();</span><br/><span class=\"hl-1\">});</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><section class=\"tsd-panel\"><h4>Type Parameters</h4><ul class=\"tsd-type-parameter-list\"><li><span><a id=\"runwithdeferredupdatet\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-type-parameter\">T</span></span></li></ul></section><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">func</span>: <span class=\"tsd-signature-symbol\">()</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/util.NotPromise.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NotPromise</a><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"wunderbaum.Wunderbaum.html#runwithdeferredupdatet\">T</a><span class=\"tsd-signature-symbol\">&gt;</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"wunderbaum.Wunderbaum.html#runwithdeferredupdatet\">T</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1218\">src/wunderbaum.ts:1218</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"runwithdeferredupdateasync\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>run<wbr/>With<wbr/>Deferred<wbr/>Update<wbr/>Async</span><a href=\"#runwithdeferredupdateasync\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"runwithdeferredupdateasync-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">runWithDeferredUpdateAsync</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"wunderbaum.Wunderbaum.html#runwithdeferredupdateasynct\">T</a><span class=\"tsd-signature-symbol\">&gt;</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">func</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">()</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"wunderbaum.Wunderbaum.html#runwithdeferredupdateasynct\">T</a><span class=\"tsd-signature-symbol\">&gt;</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"wunderbaum.Wunderbaum.html#runwithdeferredupdateasynct\">T</a><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#runwithdeferredupdateasync-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Run code, but defer rendering of viewport until done.</p>\n<pre><code class=\"js\"><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">res</span><span class=\"hl-1\"> = </span><span class=\"hl-4\">await</span><span class=\"hl-1\"> </span><span class=\"hl-2\">tree</span><span class=\"hl-1\">.</span><span class=\"hl-6\">runWithDeferredUpdate</span><span class=\"hl-1\">(</span><span class=\"hl-0\">async</span><span class=\"hl-1\"> () </span><span class=\"hl-0\">=&gt;</span><span class=\"hl-1\"> {</span><br/><span class=\"hl-1\">  </span><span class=\"hl-4\">return</span><span class=\"hl-1\"> </span><span class=\"hl-6\">someAsyncFunctionThatWouldUpdateManyNodes</span><span class=\"hl-1\">();</span><br/><span class=\"hl-1\">});</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><section class=\"tsd-panel\"><h4>Type Parameters</h4><ul class=\"tsd-type-parameter-list\"><li><span><a id=\"runwithdeferredupdateasynct\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-type-parameter\">T</span></span></li></ul></section><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">func</span>: <span class=\"tsd-signature-symbol\">()</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"wunderbaum.Wunderbaum.html#runwithdeferredupdateasynct\">T</a><span class=\"tsd-signature-symbol\">&gt;</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"wunderbaum.Wunderbaum.html#runwithdeferredupdateasynct\">T</a><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1239\">src/wunderbaum.ts:1239</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"scrollto\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>scroll<wbr/>To</span><a href=\"#scrollto\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"scrollto-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">scrollTo</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">nodeOrOpts</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../interfaces/types.ScrollToOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ScrollToOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#scrollto-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Make sure that this node is vertically scrolled into the viewport.</p>\n<p>Nodes that are above the visible area become the top row, nodes that are\nbelow the viewport become the bottom row.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">nodeOrOpts</span>: <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../interfaces/types.ScrollToOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ScrollToOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1855\">src/wunderbaum.ts:1855</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"selectall\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>select<wbr/>All</span><a href=\"#selectall\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"selectall-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">selectAll</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">flag</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.TristateType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TristateType</a><a href=\"#selectall-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Recursively select all nodes.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">flag</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"../types/types.TristateType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TristateType</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1254\">src/wunderbaum.ts:1254</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setactivenode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Active<wbr/>Node</span><a href=\"#setactivenode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setactivenode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setActiveNode</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">flag</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.SetActiveOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetActiveOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#setactivenode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Set or remove keyboard focus to the tree container.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">key</span>: <span class=\"tsd-signature-type\">string</span></span></li><li><span><span class=\"tsd-kind-parameter\">flag</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SetActiveOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetActiveOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2007\">src/wunderbaum.ts:2007</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setcellnav\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Cell<wbr/>Nav</span><a href=\"#setcellnav\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setcellnav-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setCellNav</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">flag</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#setcellnav-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Set the tree's navigation mode.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">flag</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2216\">src/wunderbaum.ts:2216</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setcolumn\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Column</span><a href=\"#setcolumn\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setcolumn-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setColumn</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">colIdx</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.SetColumnOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetColumnOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#setcolumn-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Set column #colIdx to 'active'.</p>\n<p>This higlights the column header and -cells by adding the <code>wb-active</code>\nclass to all grid cells of the active column. <br>\nAvailable in cell-nav mode only.</p>\n<p>If <em>options.edit</em> is true, the embedded input element is focused, or if\ncolIdx is 0, the node title is put into edit mode.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">colIdx</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SetColumnOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetColumnOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1948\">src/wunderbaum.ts:1948</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setenabled\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Enabled</span><a href=\"#setenabled\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setenabled-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setEnabled</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">flag</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#setenabled-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Disable mouse and keyboard interaction (return prev. state).</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">flag</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2189\">src/wunderbaum.ts:2189</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setfocus\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Focus</span><a href=\"#setfocus\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setfocus-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setFocus</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">flag</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#setfocus-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Set or remove keyboard focus to the tree container.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">flag</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2012\">src/wunderbaum.ts:2012</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setnavigationoption\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Navigation<wbr/>Option</span><a href=\"#setnavigationoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setnavigationoption-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setNavigationOption</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">mode</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../enums/types.NavModeEnum.html\" class=\"tsd-signature-type tsd-kind-enum\">NavModeEnum</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">reset</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#setnavigationoption-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Set the tree's navigation mode option.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">mode</span>: <a href=\"../enums/types.NavModeEnum.html\" class=\"tsd-signature-type tsd-kind-enum\">NavModeEnum</a></span></li><li><span><span class=\"tsd-kind-parameter\">reset</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2231\">src/wunderbaum.ts:2231</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setoption\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Option</span><a href=\"#setoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setoption-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setOption</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">name</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">value</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#setoption-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Set tree option.\nUse dot notation to set plugin option, e.g. &quot;filter.mode&quot;.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">name</span>: <span class=\"tsd-signature-type\">string</span></span></li><li><span><span class=\"tsd-kind-parameter\">value</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1173\">src/wunderbaum.ts:1173</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setstate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>State</span><a href=\"#setstate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setstate-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setState</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">state</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.TreeStateDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">TreeStateDefinition</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.SetStateOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetStateOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#setstate-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Experimental</code><div class=\"tsd-comment tsd-typography\"><p>Apply selection/expansion/activation status.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">state</span>: <a href=\"../interfaces/types.TreeStateDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">TreeStateDefinition</a></span></li><li><span><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SetStateOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetStateOptions</a><span class=\"tsd-signature-symbol\"> = {}</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2063\">src/wunderbaum.ts:2063</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"setstatus\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Status</span><a href=\"#setstatus\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setstatus-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setStatus</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">status</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../enums/types.NodeStatusType.html\" class=\"tsd-signature-type tsd-kind-enum\">NodeStatusType</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.SetStatusOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetStatusOptions</a><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#setstatus-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Display tree status (ok, loading, error, noData) using styles and a dummy root node.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">status</span>: <a href=\"../enums/types.NodeStatusType.html\" class=\"tsd-signature-type tsd-kind-enum\">NodeStatusType</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SetStatusOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SetStatusOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2261\">src/wunderbaum.ts:2261</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"settypes\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>set<wbr/>Types</span><a href=\"#settypes\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"settypes-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setTypes</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">types</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">replace</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#settypes-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Add or redefine node type definitions.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">types</span>: <span class=\"tsd-signature-type\">any</span></span></li><li><span><span class=\"tsd-kind-parameter\">replace</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2269\">src/wunderbaum.ts:2269</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"sort\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>sort</span><a href=\"#sort\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"sort-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">sort</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.SortOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SortOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#sort-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Sort nodes list by title or custom criteria.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SortOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SortOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-2\" class=\"tsd-anchor\"></a>Since<a href=\"#since-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.14.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2318\">src/wunderbaum.ts:2318</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"sortbyproperty\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span class=\"deprecated\">sort<wbr/>By<wbr/>Property</span><a href=\"#sortbyproperty\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"sortbyproperty-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">sortByProperty</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.SortOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SortOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#sortbyproperty-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Convenience method to implement column sorting.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.SortOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SortOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-14\" class=\"tsd-anchor\"></a>See<a href=\"#see-14\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#sortbyproperty\" class=\"tsd-kind-method\">WunderbaumNode.sortByProperty</a>.</p>\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-3\" class=\"tsd-anchor\"></a>Since<a href=\"#since-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.11.0</p>\n</div><div class=\"tsd-tag-deprecated\"><h4 class=\"tsd-anchor-link\"><a id=\"deprecated-2\" class=\"tsd-anchor\"></a>Deprecated<a href=\"#deprecated-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>use <a href=\"wunderbaum.Wunderbaum.html#sort\" class=\"tsd-kind-method\">sort</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2309\">src/wunderbaum.ts:2309</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"sortchildren\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span class=\"deprecated\">sort<wbr/>Children</span><a href=\"#sortchildren\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"sortchildren-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">sortChildren</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">cmp</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.SortCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SortCallback</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">deep</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#sortchildren-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Sort nodes list by title or custom criteria.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">cmp</span>: <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../types/types.SortCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SortCallback</a><span class=\"tsd-signature-symbol\"> = nodeTitleSorter</span></span><div class=\"tsd-comment tsd-typography\"><p>custom compare function(a, b) that returns -1, 0, or 1\n(defaults to sorting by title).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">deep</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>pass true to sort all descendant nodes recursively</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-deprecated\"><h4 class=\"tsd-anchor-link\"><a id=\"deprecated-3\" class=\"tsd-anchor\"></a>Deprecated<a href=\"#deprecated-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>use <a href=\"wunderbaum.Wunderbaum.html#sort\" class=\"tsd-kind-method\">sort</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2291\">src/wunderbaum.ts:2291</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"todictarray\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>to<wbr/>Dict<wbr/>Array</span><a href=\"#todictarray\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"todictarray-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">toDictArray</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">callback</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.NodeToDictCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeToDictCallback</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><span class=\"tsd-signature-symbol\">[]</span><a href=\"#todictarray-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Convert tree to an array of plain objects.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">callback</span>: <a href=\"../types/types.NodeToDictCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeToDictCallback</a></span><div class=\"tsd-comment tsd-typography\"><p>is called for every node, in order to allow\nmodifications.\nReturn <code>false</code> to ignore this node or <code>&quot;skip&quot;</code> to include this node\nwithout its children.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><span class=\"tsd-signature-symbol\">[]</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-15\" class=\"tsd-anchor\"></a>See<a href=\"#see-15\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#todict\" class=\"tsd-kind-method\">WunderbaumNode.toDict</a>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2330\">src/wunderbaum.ts:2330</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"toggleselect\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>toggle<wbr/>Select</span><a href=\"#toggleselect\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"toggleselect-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">toggleSelect</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#toggleselect-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Toggle select all nodes.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1259\">src/wunderbaum.ts:1259</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"tostring\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>to<wbr/>String</span><a href=\"#tostring\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"tostring-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">toString</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><a href=\"#tostring-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><code class=\"tsd-tag\">Internal</code><div class=\"tsd-comment tsd-typography\"><p>Return readable string representation for this instance.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1728\">src/wunderbaum.ts:1728</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"update\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>update</span><a href=\"#update\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"update-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">update</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">change</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../enums/types.ChangeType.html\" class=\"tsd-signature-type tsd-kind-enum\">ChangeType</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.UpdateOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">UpdateOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#update-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Schedule an update request to reflect a tree change.\nThe render operation is async and debounced unless the <code>immediate</code> option\nis set.</p>\n<p>Use <a href=\"wb_node.WunderbaumNode.html#update\" class=\"tsd-kind-method\">WunderbaumNode.update</a> if only a single node has changed,\nor <a href=\"wb_node.WunderbaumNode.html#_render\" class=\"tsd-kind-method\">WunderbaumNode._render</a>) to pass special options.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">change</span>: <a href=\"../enums/types.ChangeType.html\" class=\"tsd-signature-type tsd-kind-enum\">ChangeType</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.UpdateOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">UpdateOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2102\">src/wunderbaum.ts:2102</a></li></ul></aside></div></li><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"update-2\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">update</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">change</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../enums/types.ChangeType.html\" class=\"tsd-signature-type tsd-kind-enum\">ChangeType</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.UpdateOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">UpdateOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#update-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Update a row to reflect a single node's modification.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">change</span>: <a href=\"../enums/types.ChangeType.html\" class=\"tsd-signature-type tsd-kind-enum\">ChangeType</a></span></li><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.UpdateOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">UpdateOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-16\" class=\"tsd-anchor\"></a>See<a href=\"#see-16\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_node.WunderbaumNode.html#update\" class=\"tsd-kind-method\">WunderbaumNode.update</a>, <a href=\"wb_node.WunderbaumNode.html#_render\" class=\"tsd-kind-method\">WunderbaumNode._render</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2109\">src/wunderbaum.ts:2109</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"updatefilter\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>update<wbr/>Filter</span><a href=\"#updatefilter\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"updatefilter-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">updateFilter</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#updatefilter-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Re-apply current filter.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L3200\">src/wunderbaum.ts:3200</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"updatependingmodifications\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>update<wbr/>Pending<wbr/>Modifications</span><a href=\"#updatependingmodifications\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"updatependingmodifications-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">updatePendingModifications</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#updatependingmodifications-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Render pending changes that were scheduled using <a href=\"wb_node.WunderbaumNode.html#update\" class=\"tsd-kind-method\">WunderbaumNode.update</a> if any.</p>\n<p>This is hardly ever neccessary, since we normally either</p>\n<ul>\n<li>call <code>update(ChangeType.TYPE)</code> (async, throttled), or</li>\n<li>call <code>update(ChangeType.TYPE, {immediate: true})</code> (synchronous)</li>\n</ul>\n<p><code>updatePendingModifications()</code> will only force immediate execution of\npending async changes if any.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2545\">src/wunderbaum.ts:2545</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"visit\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>visit</span><a href=\"#visit\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"visit-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">visit</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">callback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.NodeVisitResponse.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeVisitResponse</a><a href=\"#visit-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Call <code>callback(node)</code> for all nodes in hierarchical order (depth-first, pre-order).</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">callback</span>: <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">any</span></span><div class=\"tsd-comment tsd-typography\"><p>the callback function.\nReturn false to stop iteration, return &quot;skip&quot; to skip this node and\nchildren only.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"../types/types.NodeVisitResponse.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeVisitResponse</a></h4><p>false, if the iterator was stopped.</p>\n<div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-17\" class=\"tsd-anchor\"></a>See<a href=\"#see-17\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><ul>\n<li><code>wb_node.WunderbaumNode.IterableIterator&lt;WunderbaumNode&gt;</code></li>\n<li><a href=\"wb_node.WunderbaumNode.html#visit\" class=\"tsd-kind-method\">WunderbaumNode.visit</a>.</li>\n</ul>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2859\">src/wunderbaum.ts:2859</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"visitrows\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>visit<wbr/>Rows</span><a href=\"#visitrows\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"visitrows-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">visitRows</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">callback</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.NodeVisitCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeVisitCallback</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../interfaces/types.VisitRowsOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">VisitRowsOptions</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#visitrows-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Call callback(node) for all nodes in vertical order, top down (or bottom up).</p>\n<p>Note that this considers expansion state, i.e. filtered nodes and children\nof collapsed nodes are skipped, unless <code>includeHidden</code> is set.</p>\n<p>Stop iteration if callback() returns false.<br>\nReturn false if iteration was stopped.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">callback</span>: <a href=\"../types/types.NodeVisitCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeVisitCallback</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <a href=\"../interfaces/types.VisitRowsOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">VisitRowsOptions</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><p>false if iteration was canceled</p>\n<div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L2874\">src/wunderbaum.ts:2874</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"geteventinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Static</code><span>get<wbr/>Event<wbr/>Info</span><a href=\"#geteventinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"geteventinfo-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getEventInfo</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">event</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbEventInfo.html\" class=\"tsd-signature-type tsd-kind-interface\">WbEventInfo</a><a href=\"#geteventinfo-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return a {node: WunderbaumNode, region: TYPE} object for a mouse event.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">event</span>: <span class=\"tsd-signature-type\">Event</span></span><div class=\"tsd-comment tsd-typography\"><p>Mouse event, e.g. click, ...</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"../interfaces/types.WbEventInfo.html\" class=\"tsd-signature-type tsd-kind-interface\">WbEventInfo</a></h4><p>Return a {node: WunderbaumNode, region: TYPE} object\nTYPE: 'title' | 'prefix' | 'expander' | 'checkbox' | 'icon' | undefined</p>\n<div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L1667\">src/wunderbaum.ts:1667</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"getnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Static</code><span>get<wbr/>Node</span><a href=\"#getnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getnode-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getNode</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">el</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Element</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><a href=\"#getnode-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return a WunderbaumNode instance from element or event.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">el</span>: <span class=\"tsd-signature-type\">Element</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">Event</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L664\">src/wunderbaum.ts:664</a></li></ul></aside></div></li></ul></section><section class=\"tsd-panel tsd-member\"><a id=\"gettree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Static</code><span>get<wbr/>Tree</span><a href=\"#gettree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"gettree-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getTree</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">el</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">Element</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">Event</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><a href=\"#gettree-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return a Wunderbaum instance, from element, id, index, or event.</p>\n<pre><code class=\"js\"><span class=\"hl-6\">getTree</span><span class=\"hl-1\">();         </span><span class=\"hl-9\">// Get first Wunderbaum instance on page</span><br/><span class=\"hl-6\">getTree</span><span class=\"hl-1\">(</span><span class=\"hl-10\">1</span><span class=\"hl-1\">);        </span><span class=\"hl-9\">// Get second Wunderbaum instance on page</span><br/><span class=\"hl-6\">getTree</span><span class=\"hl-1\">(</span><span class=\"hl-2\">event</span><span class=\"hl-1\">);    </span><span class=\"hl-9\">// Get tree for this mouse- or keyboard event</span><br/><span class=\"hl-6\">getTree</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&quot;foo&quot;</span><span class=\"hl-1\">);    </span><span class=\"hl-9\">// Get tree for this `tree.options.id`</span><br/><span class=\"hl-6\">getTree</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&quot;#tree&quot;</span><span class=\"hl-1\">);  </span><span class=\"hl-9\">// Get tree for first matching element selector</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">el</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">Element</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">Event</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wunderbaum.ts#L609\">src/wunderbaum.ts:609</a></li></ul></aside></div></li></ul></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Constructors\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Constructors</summary><div><a href=\"#constructor\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Constructor\"><use href=\"../assets/icons.svg#icon-512\"></use></svg><span>constructor</span></a></div></details><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#_cellnavmode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_cell<wbr/>Nav<wbr/>Mode</span></a><a href=\"#_util\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_util</span></a><a href=\"#activecolidx\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>active<wbr/>Col<wbr/>Idx</span></a><a href=\"#breadcrumb\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>breadcrumb</span></a><a href=\"#columns\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns</span></a><a href=\"#data\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>data</span></a><a href=\"#element\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>element</span></a><a href=\"#filtermode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>filter<wbr/>Mode</span></a><a href=\"#headerelement\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>header<wbr/>Element</span></a><a href=\"#id\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>id</span></a><a href=\"#lastquicksearchterm\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>last<wbr/>Quicksearch<wbr/>Term</span></a><a href=\"#lastquicksearchtime\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>last<wbr/>Quicksearch<wbr/>Time</span></a><a href=\"#listcontainerelement\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>list<wbr/>Container<wbr/>Element</span></a><a href=\"#nodelistelement\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node<wbr/>List<wbr/>Element</span></a><a href=\"#options\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>options</span></a><a href=\"#ready\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>ready</span></a><a href=\"#root\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>root</span></a><a href=\"#types\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>types</span></a><a href=\"#iconmaps\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Maps</span></a><a href=\"#util\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a><a href=\"#version\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>version</span></a></div></details><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Accessors\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Accessors</summary><div><a href=\"#activenode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Accessor\"><use href=\"../assets/icons.svg#icon-262144\"></use></svg><span>active<wbr/>Node</span></a><a href=\"#children\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Accessor\"><use href=\"../assets/icons.svg#icon-262144\"></use></svg><span>children</span></a><a href=\"#focusnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Accessor\"><use href=\"../assets/icons.svg#icon-262144\"></use></svg><span>focus<wbr/>Node</span></a><a href=\"#iconmap\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Accessor\"><use href=\"../assets/icons.svg#icon-262144\"></use></svg><span>icon<wbr/>Map</span></a><a href=\"#parent\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Accessor\"><use href=\"../assets/icons.svg#icon-262144\"></use></svg><span>parent</span></a></div></details><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Methods\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Methods</summary><div><a href=\"#_calculatekey\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_calculate<wbr/>Key</span></a><a href=\"#_callevent\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_call<wbr/>Event</span></a><a href=\"#_callmethod\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_call<wbr/>Method</span></a><a href=\"#_check\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_check</span></a><a href=\"#_createnodeicon\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_create<wbr/>Node<wbr/>Icon</span></a><a href=\"#_registernode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_register<wbr/>Node</span></a><a href=\"#_setactivenode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_set<wbr/>Active<wbr/>Node</span></a><a href=\"#_setfocusnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_set<wbr/>Focus<wbr/>Node</span></a><a href=\"#_unregisternode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_unregister<wbr/>Node</span></a><a href=\"#_updatecolumnwidths\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>_update<wbr/>Column<wbr/>Widths</span></a><a href=\"#iterator\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>[iterator]</span></a><a href=\"#addchildren\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>add<wbr/>Children</span></a><a href=\"#applycommand\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>apply<wbr/>Command</span></a><a href=\"#clear\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>clear</span></a><a href=\"#clearfilter\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>clear<wbr/>Filter</span></a><a href=\"#count\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>count</span></a><a href=\"#countmatches\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>count<wbr/>Matches</span></a><a href=\"#countunique\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>count<wbr/>Unique</span></a><a href=\"#destroy\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>destroy</span></a><a href=\"#enableupdate\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>enable<wbr/>Update</span></a><a href=\"#expandall\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>expand<wbr/>All</span></a><a href=\"#filterbranches\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>filter<wbr/>Branches</span></a><a href=\"#filternodes\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>filter<wbr/>Nodes</span></a><a href=\"#findall\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>All</span></a><a href=\"#findbyrefkey\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>By<wbr/>Ref<wbr/>Key</span></a><a href=\"#findfirst\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>First</span></a><a href=\"#findkey\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>Key</span></a><a href=\"#findnextnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>Next<wbr/>Node</span></a><a href=\"#findrelatednode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>find<wbr/>Related<wbr/>Node</span></a><a href=\"#format\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>format</span></a><a href=\"#format_iter\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>format_<wbr/>iter</span></a><a href=\"#getactivecolelem\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Active<wbr/>Col<wbr/>Elem</span></a><a href=\"#getactivenode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Active<wbr/>Node</span></a><a href=\"#getfirstchild\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>First<wbr/>Child</span></a><a href=\"#getfocusnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Focus<wbr/>Node</span></a><a href=\"#getlastchild\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Last<wbr/>Child</span></a><a href=\"#getlowestvpnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Lowest<wbr/>Vp<wbr/>Node</span></a><a href=\"#getoption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Option</span></a><a href=\"#getrefkeys\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Ref<wbr/>Keys</span></a><a href=\"#getselectednodes\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Selected<wbr/>Nodes</span></a><a href=\"#getstate\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>State</span></a><a href=\"#gettopmostvpnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Topmost<wbr/>Vp<wbr/>Node</span></a><a href=\"#hasfocus\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>has<wbr/>Focus</span></a><a href=\"#hasheader\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>has<wbr/>Header</span></a><a href=\"#iscellnav\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Cell<wbr/>Nav</span></a><a href=\"#isediting\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Editing</span></a><a href=\"#iseditingtitle\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Editing<wbr/>Title</span></a><a href=\"#isenabled\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Enabled</span></a><a href=\"#isfilteractive\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Filter<wbr/>Active</span></a><a href=\"#isgrid\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Grid</span></a><a href=\"#isloading\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Loading</span></a><a href=\"#isrownav\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>is<wbr/>Row<wbr/>Nav</span></a><a href=\"#load\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>load</span></a><a href=\"#log\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log</span></a><a href=\"#logdebug\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Debug</span></a><a href=\"#logdeprecate\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Deprecate</span></a><a href=\"#logerror\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Error</span></a><a href=\"#loginfo\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Info</span></a><a href=\"#logtime\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Time</span></a><a href=\"#logtimeend\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Time<wbr/>End</span></a><a href=\"#logwarn\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>log<wbr/>Warn</span></a><a href=\"#reload\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>reload</span></a><a href=\"#resetcolumns\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>reset<wbr/>Columns</span></a><a href=\"#runwithdeferredupdate\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>run<wbr/>With<wbr/>Deferred<wbr/>Update</span></a><a href=\"#runwithdeferredupdateasync\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>run<wbr/>With<wbr/>Deferred<wbr/>Update<wbr/>Async</span></a><a href=\"#scrollto\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>scroll<wbr/>To</span></a><a href=\"#selectall\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>select<wbr/>All</span></a><a href=\"#setactivenode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Active<wbr/>Node</span></a><a href=\"#setcellnav\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Cell<wbr/>Nav</span></a><a href=\"#setcolumn\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Column</span></a><a href=\"#setenabled\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Enabled</span></a><a href=\"#setfocus\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Focus</span></a><a href=\"#setnavigationoption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Navigation<wbr/>Option</span></a><a href=\"#setoption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Option</span></a><a href=\"#setstate\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>State</span></a><a href=\"#setstatus\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Status</span></a><a href=\"#settypes\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>set<wbr/>Types</span></a><a href=\"#sort\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>sort</span></a><a href=\"#sortbyproperty\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>sort<wbr/>By<wbr/>Property</span></a><a href=\"#sortchildren\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>sort<wbr/>Children</span></a><a href=\"#todictarray\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>to<wbr/>Dict<wbr/>Array</span></a><a href=\"#toggleselect\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>toggle<wbr/>Select</span></a><a href=\"#tostring\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>to<wbr/>String</span></a><a href=\"#update\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>update</span></a><a href=\"#updatefilter\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>update<wbr/>Filter</span></a><a href=\"#updatependingmodifications\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>update<wbr/>Pending<wbr/>Modifications</span></a><a href=\"#visit\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>visit</span></a><a href=\"#visitrows\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>visit<wbr/>Rows</span></a><a href=\"#geteventinfo\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Event<wbr/>Info</span></a><a href=\"#getnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Node</span></a><a href=\"#gettree\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Method\"><use href=\"../assets/icons.svg#icon-2048\"></use></svg><span>get<wbr/>Tree</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/enums/types.ChangeType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>ChangeType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.ChangeType.html\">ChangeType</a></li></ul><h1>Enumeration ChangeType</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wb_node.WunderbaumNode.html#update\" class=\"tsd-kind-method\">WunderbaumNode.update</a> and <a href=\"../classes/wunderbaum.Wunderbaum.html#update\" class=\"tsd-kind-method\">Wunderbaum.update</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L602\">src/types.ts:602</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Enumeration Members</h3><div class=\"tsd-index-list\"><a href=\"types.ChangeType.html#any\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>any</span></a>\n<a href=\"types.ChangeType.html#colstructure\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>col<wbr/>Structure</span></a>\n<a href=\"types.ChangeType.html#data\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>data</span></a>\n<a href=\"types.ChangeType.html#resize\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>resize</span></a>\n<a href=\"types.ChangeType.html#row\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>row</span></a>\n<a href=\"types.ChangeType.html#scroll\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>scroll</span></a>\n<a href=\"types.ChangeType.html#status\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>status</span></a>\n<a href=\"types.ChangeType.html#structure\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>structure</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Enumeration Members\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Enumeration Members</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"any\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>any</span><a href=\"#any\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">any</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;any&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>Re-render the whole viewport, headers, and all rows.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L604\">src/types.ts:604</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"colstructure\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>col<wbr/>Structure</span><a href=\"#colstructure\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">colStructure</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;colStructure&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>The <code>tree.columns</code> definition has changed beyond simple width adjustments.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L608\">src/types.ts:608</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"data\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>data</span><a href=\"#data\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">data</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;data&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>A node's title, icon, columns, or status have changed. Update the existing row markup.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L606\">src/types.ts:606</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"resize\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>resize</span><a href=\"#resize\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">resize</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;resize&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>The viewport/window was resized. Adjust layout attributes for all elements.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L610\">src/types.ts:610</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"row\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>row</span><a href=\"#row\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">row</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;row&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>A node's definition has changed beyond status and data. Re-render the whole row's markup.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L612\">src/types.ts:612</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"scroll\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>scroll</span><a href=\"#scroll\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">scroll</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;scroll&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>Vertical scroll event. Update the 'top' property of all rows.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L618\">src/types.ts:618</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"status\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>status</span><a href=\"#status\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">status</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;status&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>A node's status has changed. Update current row's classes, to reflect active, selected, ...</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L616\">src/types.ts:616</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"structure\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>structure</span><a href=\"#structure\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">structure</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;structure&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>Nodes have been added, removed, etc. Update markup.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L614\">src/types.ts:614</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Enumeration Members\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Enumeration Members</summary><div><a href=\"#any\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>any</span></a><a href=\"#colstructure\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>col<wbr/>Structure</span></a><a href=\"#data\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>data</span></a><a href=\"#resize\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>resize</span></a><a href=\"#row\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>row</span></a><a href=\"#scroll\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>scroll</span></a><a href=\"#status\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>status</span></a><a href=\"#structure\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>structure</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/enums/types.NavModeEnum.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NavModeEnum | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NavModeEnum.html\">NavModeEnum</a></li></ul><h1>Enumeration NavModeEnum</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Initial navigation mode and possible transition.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L650\">src/types.ts:650</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Enumeration Members</h3><div class=\"tsd-index-list\"><a href=\"types.NavModeEnum.html#cell\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>cell</span></a>\n<a href=\"types.NavModeEnum.html#row\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>row</span></a>\n<a href=\"types.NavModeEnum.html#startcell\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>start<wbr/>Cell</span></a>\n<a href=\"types.NavModeEnum.html#startrow\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>start<wbr/>Row</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Enumeration Members\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Enumeration Members</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"cell\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>cell</span><a href=\"#cell\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">cell</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;cell&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>Cell-nav mode only</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L654\">src/types.ts:654</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"row\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>row</span><a href=\"#row\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">row</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;row&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>Row mode only</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L658\">src/types.ts:658</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"startcell\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>start<wbr/>Cell</span><a href=\"#startcell\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">startCell</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;startCell&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>Start in cell-nav mode, but allow row mode</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L656\">src/types.ts:656</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"startrow\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>start<wbr/>Row</span><a href=\"#startrow\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">startRow</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;startRow&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>Start with row mode, but allow cell-nav mode</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L652\">src/types.ts:652</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Enumeration Members\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Enumeration Members</summary><div><a href=\"#cell\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>cell</span></a><a href=\"#row\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>row</span></a><a href=\"#startcell\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>start<wbr/>Cell</span></a><a href=\"#startrow\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>start<wbr/>Row</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/enums/types.NodeRegion.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NodeRegion | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NodeRegion.html\">NodeRegion</a></li></ul><h1>Enumeration NodeRegion</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Define the subregion of a node, where an event occurred.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L639\">src/types.ts:639</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Enumeration Members</h3><div class=\"tsd-index-list\"><a href=\"types.NodeRegion.html#checkbox\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>checkbox</span></a>\n<a href=\"types.NodeRegion.html#column\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>column</span></a>\n<a href=\"types.NodeRegion.html#expander\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>expander</span></a>\n<a href=\"types.NodeRegion.html#icon\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>icon</span></a>\n<a href=\"types.NodeRegion.html#prefix\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>prefix</span></a>\n<a href=\"types.NodeRegion.html#title\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>title</span></a>\n<a href=\"types.NodeRegion.html#unknown\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>unknown</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Enumeration Members\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Enumeration Members</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"checkbox\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>checkbox</span><a href=\"#checkbox\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">checkbox</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;checkbox&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L641\">src/types.ts:641</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"column\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>column</span><a href=\"#column\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">column</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;column&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L642\">src/types.ts:642</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"expander\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>expander</span><a href=\"#expander\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">expander</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;expander&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L643\">src/types.ts:643</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"icon\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>icon</span><a href=\"#icon\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">icon</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;icon&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L644\">src/types.ts:644</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"prefix\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>prefix</span><a href=\"#prefix\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">prefix</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;prefix&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L645\">src/types.ts:645</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"title\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>title</span><a href=\"#title\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">title</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;title&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L646\">src/types.ts:646</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"unknown\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>unknown</span><a href=\"#unknown\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">unknown</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L640\">src/types.ts:640</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Enumeration Members\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Enumeration Members</summary><div><a href=\"#checkbox\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>checkbox</span></a><a href=\"#column\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>column</span></a><a href=\"#expander\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>expander</span></a><a href=\"#icon\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>icon</span></a><a href=\"#prefix\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>prefix</span></a><a href=\"#title\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>title</span></a><a href=\"#unknown\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>unknown</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/enums/types.NodeStatusType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NodeStatusType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NodeStatusType.html\">NodeStatusType</a></li></ul><h1>Enumeration NodeStatusType</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wb_node.WunderbaumNode.html#setstatus\" class=\"tsd-kind-method\">WunderbaumNode.setStatus</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L630\">src/types.ts:630</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Enumeration Members</h3><div class=\"tsd-index-list\"><a href=\"types.NodeStatusType.html#error\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>error</span></a>\n<a href=\"types.NodeStatusType.html#loading\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>loading</span></a>\n<a href=\"types.NodeStatusType.html#nodata\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>no<wbr/>Data</span></a>\n<a href=\"types.NodeStatusType.html#ok\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>ok</span></a>\n<a href=\"types.NodeStatusType.html#paging\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>paging</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Enumeration Members\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Enumeration Members</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"error\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>error</span><a href=\"#error\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">error</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;error&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L633\">src/types.ts:633</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"loading\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>loading</span><a href=\"#loading\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">loading</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;loading&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L632\">src/types.ts:632</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"nodata\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>no<wbr/>Data</span><a href=\"#nodata\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">noData</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;noData&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L634\">src/types.ts:634</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"ok\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>ok</span><a href=\"#ok\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">ok</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;ok&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L631\">src/types.ts:631</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"paging\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>paging</span><a href=\"#paging\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">paging</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;paging&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L635\">src/types.ts:635</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Enumeration Members\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Enumeration Members</summary><div><a href=\"#error\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>error</span></a><a href=\"#loading\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>loading</span></a><a href=\"#nodata\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>no<wbr/>Data</span></a><a href=\"#ok\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>ok</span></a><a href=\"#paging\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>paging</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/enums/types.RenderFlag.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>RenderFlag | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.RenderFlag.html\">RenderFlag</a></li></ul><h1>Enumeration RenderFlag<code class=\"tsd-tag\">Internal</code></h1></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L622\">src/types.ts:622</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Enumeration Members</h3><div class=\"tsd-index-list\"><a href=\"types.RenderFlag.html#clearmarkup\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>clear<wbr/>Markup</span></a>\n<a href=\"types.RenderFlag.html#header\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>header</span></a>\n<a href=\"types.RenderFlag.html#redraw\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>redraw</span></a>\n<a href=\"types.RenderFlag.html#scroll\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>scroll</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Enumeration Members\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Enumeration Members</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"clearmarkup\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>clear<wbr/>Markup</span><a href=\"#clearmarkup\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">clearMarkup</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;clearMarkup&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L623\">src/types.ts:623</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"header\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>header</span><a href=\"#header\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">header</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;header&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L624\">src/types.ts:624</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"redraw\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>redraw</span><a href=\"#redraw\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">redraw</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;redraw&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L625\">src/types.ts:625</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"scroll\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>scroll</span><a href=\"#scroll\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-enum-member\">scroll</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;scroll&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L626\">src/types.ts:626</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Enumeration Members\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Enumeration Members</summary><div><a href=\"#clearmarkup\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>clear<wbr/>Markup</span></a><a href=\"#header\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>header</span></a><a href=\"#redraw\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>redraw</span></a><a href=\"#scroll\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration Member\"><use href=\"../assets/icons.svg#icon-16\"></use></svg><span>scroll</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/common.decompressSourceData.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>decompressSourceData | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.decompressSourceData.html\">decompressSourceData</a></li></ul><h1>Function decompressSourceData</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"decompresssourcedata\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">decompressSourceData</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">source</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.SourceObjectType.html\" class=\"tsd-signature-type tsd-kind-interface\">SourceObjectType</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#decompresssourcedata\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Decompresses the source data by</p>\n<ul>\n<li>converting from 'flat' to 'nested' format</li>\n<li>expanding short alias names to long names (if defined in _keyMap)</li>\n<li>resolving value indexes to value strings (if defined in _valueMap)</li>\n</ul>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">source</span>: <a href=\"../interfaces/types.SourceObjectType.html\" class=\"tsd-signature-type tsd-kind-interface\">SourceObjectType</a></span><div class=\"tsd-comment tsd-typography\"><p>The source object to be decompressed.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><p>void</p>\n<div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L372\">src/common.ts:372</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/common.makeNodeTitleMatcher.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>makeNodeTitleMatcher | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.makeNodeTitleMatcher.html\">makeNodeTitleMatcher</a></li></ul><h1>Function makeNodeTitleMatcher</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"makenodetitlematcher\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">makeNodeTitleMatcher</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">match</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">RegExp</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.MatcherCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">MatcherCallback</a><a href=\"#makenodetitlematcher\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return a callback that returns true if the node title matches the string\nor regular expression.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">match</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">RegExp</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"../types/types.MatcherCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">MatcherCallback</a></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wb_node.WunderbaumNode.html#findall\" class=\"tsd-kind-method\">WunderbaumNode.findAll</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L206\">src/common.ts:206</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/common.makeNodeTitleStartMatcher.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>makeNodeTitleStartMatcher | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.makeNodeTitleStartMatcher.html\">makeNodeTitleStartMatcher</a></li></ul><h1>Function makeNodeTitleStartMatcher</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"makenodetitlestartmatcher\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">makeNodeTitleStartMatcher</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">s</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.MatcherCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">MatcherCallback</a><a href=\"#makenodetitlestartmatcher\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return a callback that returns true if the node title starts with a string (case-insensitive).</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">s</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"../types/types.MatcherCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">MatcherCallback</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L226\">src/common.ts:226</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/common.nodeTitleSorter.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>nodeTitleSorter | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.nodeTitleSorter.html\">nodeTitleSorter</a></li></ul><h1 class=\"deprecated\">Function nodeTitleSorter</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"nodetitlesorter\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">nodeTitleSorter</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">a</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">b</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><a href=\"#nodetitlesorter\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Compare two nodes by title (case-insensitive).</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">a</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li><li><span><span class=\"tsd-kind-parameter\">b</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">number</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-deprecated\"><h4 class=\"tsd-anchor-link\"><a id=\"deprecated\" class=\"tsd-anchor\"></a>Deprecated<a href=\"#deprecated\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>Use <code>key</code> option instead of <code>cmp</code> in sort methods.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L237\">src/common.ts:237</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.adaptiveThrottle.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>adaptiveThrottle | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.adaptiveThrottle.html\">adaptiveThrottle</a></li></ul><h1>Function adaptiveThrottle</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"adaptivethrottle\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">adaptiveThrottle</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">this</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">unknown</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">callback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">object</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">DebouncedFunction</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#adaptivethrottle\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return a function that can be called instead of <code>callback</code>, but guarantees\na limited execution rate.\nThe execution rate is calculated based on the runtime duration of the\nprevious call.\nExample:</p>\n<pre><code class=\"js\"><span class=\"hl-2\">throttledFoo</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">util</span><span class=\"hl-1\">.</span><span class=\"hl-6\">adaptiveThrottle</span><span class=\"hl-1\">(</span><span class=\"hl-2\">foo</span><span class=\"hl-1\">.</span><span class=\"hl-6\">bind</span><span class=\"hl-1\">(</span><span class=\"hl-0\">this</span><span class=\"hl-1\">), {});</span><br/><span class=\"hl-6\">throttledFoo</span><span class=\"hl-1\">();</span><br/><span class=\"hl-6\">throttledFoo</span><span class=\"hl-1\">();</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">this</span>: <span class=\"tsd-signature-type\">unknown</span></span></li><li><span><span class=\"tsd-kind-parameter\">callback</span>: <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></span></li><li><span><span class=\"tsd-kind-parameter\">options</span>: <span class=\"tsd-signature-type\">object</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">DebouncedFunction</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L860\">src/util.ts:860</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.assert.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>assert | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.assert.html\">assert</a></li></ul><h1>Function assert</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"assert\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">assert</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">cond</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">msg</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#assert\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Throw an <code>Error</code> if <code>cond</code> is falsey.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">cond</span>: <span class=\"tsd-signature-type\">any</span></span></li><li><span><span class=\"tsd-kind-parameter\">msg</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L113\">src/util.ts:113</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.debounce.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>debounce | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.debounce.html\">debounce</a></li></ul><h1>Function debounce</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"debounce\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">debounce</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.debounce.html#debouncef\">F</a> <span class=\"tsd-signature-keyword\">extends</span> <span class=\"tsd-signature-type\">Procedure</span><span class=\"tsd-signature-symbol\">&gt;</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">func</span><span class=\"tsd-signature-symbol\">:</span> <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.debounce.html#debouncef\">F</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">wait</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">DebounceOptions</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">DebouncedFunction</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.debounce.html#debouncef\">F</a><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#debounce\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Creates a debounced function that delays invoking <code>func</code> until after <code>wait</code>\nmilliseconds have elapsed since the last time the debounced function was\ninvoked, or until the next browser frame is drawn. The debounced function\ncomes with a <code>cancel</code> method to cancel delayed <code>func</code> invocations and a\n<code>flush</code> method to immediately invoke them. Provide <code>options</code> to indicate\nwhether <code>func</code> should be invoked on the leading and/or trailing edge of the\n<code>wait</code> timeout. The <code>func</code> is invoked with the last arguments provided to the\ndebounced function. Subsequent calls to the debounced function return the\nresult of the last <code>func</code> invocation.</p>\n<p><strong>Note:</strong> If <code>leading</code> and <code>trailing</code> options are <code>true</code>, <code>func</code> is\ninvoked on the trailing edge of the timeout only if the debounced function\nis invoked more than once during the <code>wait</code> timeout.</p>\n<p>If <code>wait</code> is <code>0</code> and <code>leading</code> is <code>false</code>, <code>func</code> invocation is deferred\nuntil the next tick, similar to <code>setTimeout</code> with a timeout of <code>0</code>.</p>\n<p>If <code>wait</code> is omitted in an environment with <code>requestAnimationFrame</code>, <code>func</code>\ninvocation will be deferred until the next frame is drawn (typically about\n16ms).</p>\n<p>See <a href=\"https://css-tricks.com/debouncing-throttling-explained-examples/\">David Corbacho's article</a>\nfor details over the differences between <code>debounce</code> and <code>throttle</code>.</p>\n</div><section class=\"tsd-panel\"><h4>Type Parameters</h4><ul class=\"tsd-type-parameter-list\"><li><span><a id=\"debouncef\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-type-parameter\">F</span><span class=\"tsd-signature-keyword\"> extends </span><span class=\"tsd-signature-type\">Procedure</span></span></li></ul></section><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">func</span>: <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.debounce.html#debouncef\">F</a></span><div class=\"tsd-comment tsd-typography\"><p>The function to debounce.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">wait</span>: <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\"> = 0</span></span><div class=\"tsd-comment tsd-typography\"><p>The number of milliseconds to delay; if omitted, <code>requestAnimationFrame</code> is\nused (if available).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <span class=\"tsd-signature-type\">DebounceOptions</span><span class=\"tsd-signature-symbol\"> = {}</span></span><div class=\"tsd-comment tsd-typography\"><p>The options object.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">DebouncedFunction</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.debounce.html#debouncef\">F</a><span class=\"tsd-signature-symbol\">&gt;</span></h4><p>Returns the new debounced function.</p>\n<div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since\" class=\"tsd-anchor\"></a>Since<a href=\"#since\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.1.0</p>\n</div><div class=\"tsd-tag-example\"><h4 class=\"tsd-anchor-link\"><a id=\"example\" class=\"tsd-anchor\"></a>Example<a href=\"#example\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-9\">// Avoid costly calculations while the window size is in flux.</span><br/><span class=\"hl-6\">jQuery</span><span class=\"hl-1\">(</span><span class=\"hl-2\">window</span><span class=\"hl-1\">).</span><span class=\"hl-6\">on</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&#39;resize&#39;</span><span class=\"hl-1\">, </span><span class=\"hl-6\">debounce</span><span class=\"hl-1\">(</span><span class=\"hl-2\">calculateLayout</span><span class=\"hl-1\">, </span><span class=\"hl-10\">150</span><span class=\"hl-1\">))</span><br/><br/><span class=\"hl-9\">// Invoke `sendMail` when clicked, debouncing subsequent calls.</span><br/><span class=\"hl-6\">jQuery</span><span class=\"hl-1\">(</span><span class=\"hl-2\">element</span><span class=\"hl-1\">).</span><span class=\"hl-6\">on</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&#39;click&#39;</span><span class=\"hl-1\">, </span><span class=\"hl-6\">debounce</span><span class=\"hl-1\">(</span><span class=\"hl-2\">sendMail</span><span class=\"hl-1\">, </span><span class=\"hl-10\">300</span><span class=\"hl-1\">, {</span><br/><span class=\"hl-1\">  </span><span class=\"hl-7\">&#39;leading&#39;</span><span class=\"hl-2\">:</span><span class=\"hl-1\"> </span><span class=\"hl-0\">true</span><span class=\"hl-1\">,</span><br/><span class=\"hl-1\">  </span><span class=\"hl-7\">&#39;trailing&#39;</span><span class=\"hl-2\">:</span><span class=\"hl-1\"> </span><span class=\"hl-0\">false</span><br/><span class=\"hl-1\">}))</span><br/><br/><span class=\"hl-9\">// Ensure `batchLog` is invoked once after 1 second of debounced calls.</span><br/><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">debounced</span><span class=\"hl-1\"> = </span><span class=\"hl-6\">debounce</span><span class=\"hl-1\">(</span><span class=\"hl-2\">batchLog</span><span class=\"hl-1\">, </span><span class=\"hl-10\">250</span><span class=\"hl-1\">, { </span><span class=\"hl-7\">&#39;maxWait&#39;</span><span class=\"hl-2\">:</span><span class=\"hl-1\"> </span><span class=\"hl-10\">1000</span><span class=\"hl-1\"> })</span><br/><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">source</span><span class=\"hl-1\"> = </span><span class=\"hl-0\">new</span><span class=\"hl-1\"> </span><span class=\"hl-6\">EventSource</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&#39;/stream&#39;</span><span class=\"hl-1\">)</span><br/><span class=\"hl-6\">jQuery</span><span class=\"hl-1\">(</span><span class=\"hl-2\">source</span><span class=\"hl-1\">).</span><span class=\"hl-6\">on</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&#39;message&#39;</span><span class=\"hl-1\">, </span><span class=\"hl-2\">debounced</span><span class=\"hl-1\">)</span><br/><br/><span class=\"hl-9\">// Cancel the trailing debounced invocation.</span><br/><span class=\"hl-6\">jQuery</span><span class=\"hl-1\">(</span><span class=\"hl-2\">window</span><span class=\"hl-1\">).</span><span class=\"hl-6\">on</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&#39;popstate&#39;</span><span class=\"hl-1\">, </span><span class=\"hl-2\">debounced</span><span class=\"hl-1\">.</span><span class=\"hl-2\">cancel</span><span class=\"hl-1\">)</span><br/><br/><span class=\"hl-9\">// Check for pending invocations.</span><br/><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">status</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">debounced</span><span class=\"hl-1\">.</span><span class=\"hl-6\">pending</span><span class=\"hl-1\">() ? </span><span class=\"hl-7\">&quot;Pending...&quot;</span><span class=\"hl-1\"> : </span><span class=\"hl-7\">&quot;Ready&quot;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/debounce.ts#L144\">src/debounce.ts:144</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.documentReady.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>documentReady | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.documentReady.html\">documentReady</a></li></ul><h1>Function documentReady</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"documentready\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">documentReady</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">callback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">()</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#documentready\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Run <code>callback</code> when document was loaded.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">callback</span>: <span class=\"tsd-signature-symbol\">()</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L130\">src/util.ts:130</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.documentReadyPromise.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>documentReadyPromise | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.documentReadyPromise.html\">documentReadyPromise</a></li></ul><h1>Function documentReadyPromise</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"documentreadypromise\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">documentReadyPromise</span><span class=\"tsd-signature-symbol\">()</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#documentreadypromise\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Resolve when document was loaded.</p>\n</div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L139\">src/util.ts:139</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.each.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>each | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.each.html\">each</a></li></ul><h1>Function each</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"each\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">each</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">obj</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">callback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">index</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">item</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#each\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Iterate over Object properties or array elements.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">obj</span>: <span class=\"tsd-signature-type\">any</span></span><div class=\"tsd-comment tsd-typography\"><p><code>Object</code>, <code>Array</code> or null</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">callback</span>: <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">index</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">item</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span></span><div class=\"tsd-comment tsd-typography\"><p>called for every item.\n<code>this</code> also contains the item.\nReturn <code>false</code> to stop the iteration.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L153\">src/util.ts:153</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.elemFromHtml.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>elemFromHtml | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.elemFromHtml.html\">elemFromHtml</a></li></ul><h1>Function elemFromHtml</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"elemfromhtml\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">elemFromHtml</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.elemFromHtml.html#elemfromhtmlt\">T</a> <span class=\"tsd-signature-symbol\">=</span> <span class=\"tsd-signature-type\">HTMLElement</span><span class=\"tsd-signature-symbol\">&gt;</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">html</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.elemFromHtml.html#elemfromhtmlt\">T</a><a href=\"#elemfromhtml\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Create and return an unconnected <code>HTMLElement</code> from a HTML string.</p>\n</div><section class=\"tsd-panel\"><h4>Type Parameters</h4><ul class=\"tsd-type-parameter-list\"><li><span><a id=\"elemfromhtmlt\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-type-parameter\">T</span> = <span class=\"tsd-signature-type\">HTMLElement</span></span></li></ul></section><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">html</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.elemFromHtml.html#elemfromhtmlt\">T</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L410\">src/util.ts:410</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.elemFromSelector.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>elemFromSelector | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.elemFromSelector.html\">elemFromSelector</a></li></ul><h1>Function elemFromSelector</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"elemfromselector\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">elemFromSelector</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.elemFromSelector.html#elemfromselectort\">T</a> <span class=\"tsd-signature-symbol\">=</span> <span class=\"tsd-signature-type\">HTMLElement</span><span class=\"tsd-signature-symbol\">&gt;</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">obj</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.elemFromSelector.html#elemfromselectort\">T</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.elemFromSelector.html#elemfromselectort\">T</a><a href=\"#elemfromselector\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return a HtmlElement from selector or cast an existing element.</p>\n</div><section class=\"tsd-panel\"><h4>Type Parameters</h4><ul class=\"tsd-type-parameter-list\"><li><span><a id=\"elemfromselectort\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-type-parameter\">T</span> = <span class=\"tsd-signature-type\">HTMLElement</span></span></li></ul></section><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">obj</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.elemFromSelector.html#elemfromselectort\">T</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.elemFromSelector.html#elemfromselectort\">T</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L419\">src/util.ts:419</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.error.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>error | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.error.html\">error</a></li></ul><h1>Function error</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"error\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">error</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">msg</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#error\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Shortcut for <code>throw new Error(msg)</code>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">msg</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L181\">src/util.ts:181</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.escapeHtml.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>escapeHtml | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.escapeHtml.html\">escapeHtml</a></li></ul><h1>Function escapeHtml</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"escapehtml\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">escapeHtml</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">s</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><a href=\"#escapehtml\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Convert <code>&lt;</code>, <code>&gt;</code>, <code>&amp;</code>, <code>&quot;</code>, <code>'</code>, and <code>/</code> to the equivalent entities.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">s</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L186\">src/util.ts:186</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.escapeRegex.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>escapeRegex | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.escapeRegex.html\">escapeRegex</a></li></ul><h1>Function escapeRegex</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"escaperegex\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">escapeRegex</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">s</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><a href=\"#escaperegex\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Convert a regular expression string by escaping special characters (e.g. <code>&quot;$&quot;</code> -&gt; <code>&quot;\\$&quot;</code>)</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">s</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L197\">src/util.ts:197</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.escapeTooltip.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>escapeTooltip | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.escapeTooltip.html\">escapeTooltip</a></li></ul><h1>Function escapeTooltip</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"escapetooltip\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">escapeTooltip</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">s</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><a href=\"#escapetooltip\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Convert <code>&lt;</code>, <code>&gt;</code>, <code>&quot;</code>, <code>'</code>, and <code>/</code> (but not <code>&amp;</code>) to the equivalent entities.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">s</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L202\">src/util.ts:202</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.eventToString.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>eventToString | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.eventToString.html\">eventToString</a></li></ul><h1>Function eventToString</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"eventtostring\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">eventToString</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">event</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><a href=\"#eventtostring\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return a canonical descriptive string for a keyboard or mouse event.</p>\n<p>The result also contains a prefix for modifiers if any, for example\n<code>&quot;x&quot;</code>, <code>&quot;F2&quot;</code>, <code>&quot;Control+Home&quot;</code>, or <code>&quot;Shift+clickright&quot;</code>.\nThis is especially useful in <code>switch</code> statements, to make sure that modifier\nkeys are considered and handled correctly:</p>\n<pre><code class=\"ts\"><span class=\"hl-1\">  </span><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">eventName</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">util</span><span class=\"hl-1\">.</span><span class=\"hl-6\">eventToString</span><span class=\"hl-1\">(</span><span class=\"hl-2\">e</span><span class=\"hl-1\">);</span><br/><span class=\"hl-1\">  </span><span class=\"hl-4\">switch</span><span class=\"hl-1\"> (</span><span class=\"hl-2\">eventName</span><span class=\"hl-1\">) {</span><br/><span class=\"hl-1\">    </span><span class=\"hl-4\">case</span><span class=\"hl-1\"> </span><span class=\"hl-7\">&quot;+&quot;</span><span class=\"hl-1\">:</span><br/><span class=\"hl-1\">    </span><span class=\"hl-4\">case</span><span class=\"hl-1\"> </span><span class=\"hl-7\">&quot;Add&quot;</span><span class=\"hl-1\">:</span><br/><span class=\"hl-1\">      ...</span><br/><span class=\"hl-1\">      </span><span class=\"hl-4\">break</span><span class=\"hl-1\">;</span><br/><span class=\"hl-1\">    </span><span class=\"hl-4\">case</span><span class=\"hl-1\"> </span><span class=\"hl-7\">&quot;Enter&quot;</span><span class=\"hl-1\">:</span><br/><span class=\"hl-1\">    </span><span class=\"hl-4\">case</span><span class=\"hl-1\"> </span><span class=\"hl-7\">&quot;End&quot;</span><span class=\"hl-1\">:</span><br/><span class=\"hl-1\">    </span><span class=\"hl-4\">case</span><span class=\"hl-1\"> </span><span class=\"hl-7\">&quot;Control+End&quot;</span><span class=\"hl-1\">:</span><br/><span class=\"hl-1\">    </span><span class=\"hl-4\">case</span><span class=\"hl-1\"> </span><span class=\"hl-7\">&quot;Meta+ArrowDown&quot;</span><span class=\"hl-1\">:</span><br/><span class=\"hl-1\">    </span><span class=\"hl-4\">case</span><span class=\"hl-1\"> </span><span class=\"hl-7\">&quot;PageDown&quot;</span><span class=\"hl-1\">:</span><br/><span class=\"hl-1\">      ...</span><br/><span class=\"hl-1\">      </span><span class=\"hl-4\">break</span><span class=\"hl-1\">;</span><br/><span class=\"hl-1\">  }</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">event</span>: <span class=\"tsd-signature-type\">Event</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L453\">src/util.ts:453</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.extend.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>extend | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.extend.html\">extend</a></li></ul><h1>Function extend</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"extend\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">extend</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#extend\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Copy allproperties from one or more source objects to a target object.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><p>the modified target object.</p>\n<div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L493\">src/util.ts:493</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.extractHtmlText.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>extractHtmlText | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.extractHtmlText.html\">extractHtmlText</a></li></ul><h1>Function extractHtmlText</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"extracthtmltext\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">extractHtmlText</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">s</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><a href=\"#extracthtmltext\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>TODO</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">s</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L209\">src/util.ts:209</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.getOption.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>getOption | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.getOption.html\">getOption</a></li></ul><h1>Function getOption</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getoption\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getOption</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">opts</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">name</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">defaultValue</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#getoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return <code>opts.NAME</code> if opts is valid and</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">opts</span>: <span class=\"tsd-signature-type\">any</span></span><div class=\"tsd-comment tsd-typography\"><p>dict, object, or null</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">name</span>: <span class=\"tsd-signature-type\">string</span></span><div class=\"tsd-comment tsd-typography\"><p>option name (use dot notation to access extension option, e.g. <code>filter.mode</code>)</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">defaultValue</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\"> = undefined</span></span><div class=\"tsd-comment tsd-typography\"><p>returned when <code>opts</code> is not an object, or does not have a NAME property</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L721\">src/util.ts:721</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.getValueFromElem.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>getValueFromElem | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.getValueFromElem.html\">getValueFromElem</a></li></ul><h1>Function getValueFromElem</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"getvaluefromelem\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">getValueFromElem</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">elem</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLElement</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">coerce</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#getvaluefromelem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Read the value from an HTML input element.</p>\n<p>If a <code>&lt;span class=&quot;wb-col&quot;&gt;</code> is passed, the first child input is used.\nDepending on the target element type, <code>value</code> is interpreted accordingly.\nFor example for a checkbox, a value of true, false, or null is returned if\nthe element is checked, unchecked, or indeterminate.\nFor datetime input control a numerical value is assumed, etc.</p>\n<p>Common use case: store the new user input in a <code>change</code> event handler:</p>\n<pre><code class=\"ts\"><span class=\"hl-1\">  </span><span class=\"hl-3\">change</span><span class=\"hl-1\">: (</span><span class=\"hl-2\">e</span><span class=\"hl-1\">) </span><span class=\"hl-0\">=&gt;</span><span class=\"hl-1\"> {</span><br/><span class=\"hl-1\">    </span><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">tree</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">e</span><span class=\"hl-1\">.</span><span class=\"hl-2\">tree</span><span class=\"hl-1\">;</span><br/><span class=\"hl-1\">    </span><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">node</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">e</span><span class=\"hl-1\">.</span><span class=\"hl-2\">node</span><span class=\"hl-1\">;</span><br/><span class=\"hl-1\">    </span><span class=\"hl-9\">// Read the value from the input control that triggered the change event:</span><br/><span class=\"hl-1\">    </span><span class=\"hl-0\">let</span><span class=\"hl-1\"> </span><span class=\"hl-2\">value</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">tree</span><span class=\"hl-1\">.</span><span class=\"hl-6\">getValueFromElem</span><span class=\"hl-1\">(</span><span class=\"hl-2\">e</span><span class=\"hl-1\">.</span><span class=\"hl-2\">element</span><span class=\"hl-1\">);</span><br/><span class=\"hl-1\">    </span><span class=\"hl-9\">// and store it to the node model (assuming the column id matches the property name)</span><br/><span class=\"hl-1\">    </span><span class=\"hl-2\">node</span><span class=\"hl-1\">.</span><span class=\"hl-2\">data</span><span class=\"hl-1\">[</span><span class=\"hl-2\">e</span><span class=\"hl-1\">.</span><span class=\"hl-2\">info</span><span class=\"hl-1\">.</span><span class=\"hl-2\">colId</span><span class=\"hl-1\">] = </span><span class=\"hl-2\">value</span><span class=\"hl-1\">;</span><br/><span class=\"hl-1\">  },</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">elem</span>: <span class=\"tsd-signature-type\">HTMLElement</span></span><div class=\"tsd-comment tsd-typography\"><p><code>&lt;input&gt;</code> or <code>&lt;select&gt;</code> element. Also a parent <code>span.wb-col</code> is accepted.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">coerce</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = false</span></span><div class=\"tsd-comment tsd-typography\"><p>pass true to convert date/time inputs to <code>Date</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><p>the value</p>\n<div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L242\">src/util.ts:242</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.intToBool.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>intToBool | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.intToBool.html\">intToBool</a></li></ul><h1>Function intToBool</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"inttobool\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">intToBool</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">val</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#inttobool\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return <code>val</code> unless <code>val</code> is a number in which case we convert to boolean.\nThis is useful when a boolean value is stored as a 0/1 (e.g. in JSON) and\nwe still want to maintain string values. null and undefined are returned as\nis. E.g. <code>checkbox</code> may be boolean or 'radio'.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">val</span>: <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L817\">src/util.ts:817</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.isArray.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>isArray | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.isArray.html\">isArray</a></li></ul><h1>Function isArray</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isarray\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isArray</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">obj</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-kind-parameter\">obj</span> <span class=\"tsd-signature-keyword\">is</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><a href=\"#isarray\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if <code>obj</code> is of type <code>array</code>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">obj</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-kind-parameter\">obj</span> <span class=\"tsd-signature-keyword\">is</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L509\">src/util.ts:509</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.isEmptyObject.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>isEmptyObject | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.isEmptyObject.html\">isEmptyObject</a></li></ul><h1>Function isEmptyObject</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isemptyobject\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isEmptyObject</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">obj</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isemptyobject\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if <code>obj</code> is of type <code>Object</code> and has no properties.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">obj</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L514\">src/util.ts:514</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.isFunction.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>isFunction | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.isFunction.html\">isFunction</a></li></ul><h1>Function isFunction</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isfunction\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isFunction</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">obj</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isfunction\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if <code>obj</code> is of type <code>function</code>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">obj</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L519\">src/util.ts:519</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.isPlainObject.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>isPlainObject | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.isPlainObject.html\">isPlainObject</a></li></ul><h1>Function isPlainObject</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"isplainobject\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">isPlainObject</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">obj</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#isplainobject\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return true if <code>obj</code> is of type <code>Object</code>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">obj</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L524\">src/util.ts:524</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.murmurHash3.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>murmurHash3 | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.murmurHash3.html\">murmurHash3</a></li></ul><h1>Function murmurHash3</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"murmurhash3\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">murmurHash3</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">asString</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">seed</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span><a href=\"#murmurhash3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>MurmurHash3 implementation for strings.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">key</span>: <span class=\"tsd-signature-type\">string</span></span><div class=\"tsd-comment tsd-typography\"><p>The input string to hash.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">asString</span>: <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = true</span></span><div class=\"tsd-comment tsd-typography\"><p>Optional convert result to zero-padded string of 8 characters.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">seed</span>: <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\"> = 0</span></span><div class=\"tsd-comment tsd-typography\"><p>Optional seed value.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span></h4><p>A 32-bit hash as a number or string.</p>\n<div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L950\">src/util.ts:950</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.noop.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>noop | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.noop.html\">noop</a></li></ul><h1>Function noop</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"noop\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">noop</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#noop\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>A dummy function that does nothing ('no operation').</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L529\">src/util.ts:529</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.onEvent.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>onEvent | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.onEvent.html\">onEvent</a></li></ul><h1>Function onEvent</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"onevent\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">onEvent</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">rootTarget</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">EventTarget</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">eventNames</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">handler</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/util.EventCallbackType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">EventCallbackType</a><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#onevent\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Bind one or more event handlers directly to an <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\">EventTarget</a>.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">rootTarget</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">EventTarget</span></span><div class=\"tsd-comment tsd-typography\"><p>EventTarget or selector</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">eventNames</span>: <span class=\"tsd-signature-type\">string</span></span><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">handler</span>: <a href=\"../types/util.EventCallbackType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">EventCallbackType</a></span><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L538\">src/util.ts:538</a></li></ul></aside></div></li><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"onevent-1\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">onEvent</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">rootTarget</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">EventTarget</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">eventNames</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">selector</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">handler</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/util.EventCallbackType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">EventCallbackType</a><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#onevent-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Bind one or more event handlers using event delegation.</p>\n<p>E.g. handle all 'input' events for input and textarea elements of a given\nform:</p>\n<pre><code class=\"ts\"><span class=\"hl-6\">onEvent</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&quot;#form_1&quot;</span><span class=\"hl-1\">, </span><span class=\"hl-7\">&quot;input&quot;</span><span class=\"hl-1\">, </span><span class=\"hl-7\">&quot;input,textarea&quot;</span><span class=\"hl-1\">, </span><span class=\"hl-0\">function</span><span class=\"hl-1\"> (</span><span class=\"hl-2\">e</span><span class=\"hl-1\">: </span><span class=\"hl-5\">Event</span><span class=\"hl-1\">) {</span><br/><span class=\"hl-1\">  </span><span class=\"hl-2\">console</span><span class=\"hl-1\">.</span><span class=\"hl-6\">log</span><span class=\"hl-1\">(</span><span class=\"hl-2\">e</span><span class=\"hl-1\">.</span><span class=\"hl-2\">type</span><span class=\"hl-1\">, </span><span class=\"hl-2\">e</span><span class=\"hl-1\">.</span><span class=\"hl-2\">target</span><span class=\"hl-1\">);</span><br/><span class=\"hl-1\">});</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">rootTarget</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">EventTarget</span></span><div class=\"tsd-comment tsd-typography\"><p>EventTarget or selector</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">eventNames</span>: <span class=\"tsd-signature-type\">string</span></span><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">selector</span>: <span class=\"tsd-signature-type\">string</span></span><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">handler</span>: <a href=\"../types/util.EventCallbackType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">EventCallbackType</a></span><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L560\">src/util.ts:560</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.overrideMethod.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>overrideMethod | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.overrideMethod.html\">overrideMethod</a></li></ul><h1>Function overrideMethod</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"overridemethod\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">overrideMethod</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">instance</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">methodName</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">handler</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/util.FunctionType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">FunctionType</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">ctx</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#overridemethod\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return a wrapped handler method, that provides <code>this._super</code> and <code>this._superApply</code>.</p>\n<pre><code class=\"ts\"><span class=\"hl-1\"> </span><span class=\"hl-9\">// Implement `opts.createNode` event to add the &#39;draggable&#39; attribute</span><br/><span class=\"hl-1\"> </span><span class=\"hl-6\">overrideMethod</span><span class=\"hl-1\">(</span><span class=\"hl-2\">ctx</span><span class=\"hl-1\">.</span><span class=\"hl-2\">options</span><span class=\"hl-1\">, </span><span class=\"hl-7\">&quot;createNode&quot;</span><span class=\"hl-1\">, (</span><span class=\"hl-2\">event</span><span class=\"hl-1\">, </span><span class=\"hl-2\">data</span><span class=\"hl-1\">) </span><span class=\"hl-0\">=&gt;</span><span class=\"hl-1\"> {</span><br/><span class=\"hl-1\">   </span><span class=\"hl-9\">// Default processing if any</span><br/><span class=\"hl-1\">   </span><span class=\"hl-0\">this</span><span class=\"hl-1\">.</span><span class=\"hl-2\">_super</span><span class=\"hl-1\">.</span><span class=\"hl-6\">apply</span><span class=\"hl-1\">(</span><span class=\"hl-0\">this</span><span class=\"hl-1\">, </span><span class=\"hl-2\">event</span><span class=\"hl-1\">, </span><span class=\"hl-2\">data</span><span class=\"hl-1\">);</span><br/><span class=\"hl-1\">   </span><span class=\"hl-9\">// Add &#39;draggable&#39; attribute</span><br/><span class=\"hl-1\">   </span><span class=\"hl-2\">data</span><span class=\"hl-1\">.</span><span class=\"hl-2\">node</span><span class=\"hl-1\">.</span><span class=\"hl-2\">span</span><span class=\"hl-1\">.</span><span class=\"hl-2\">draggable</span><span class=\"hl-1\"> = </span><span class=\"hl-0\">true</span><span class=\"hl-1\">;</span><br/><span class=\"hl-1\"> });</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">instance</span>: <span class=\"tsd-signature-type\">any</span></span></li><li><span><span class=\"tsd-kind-parameter\">methodName</span>: <span class=\"tsd-signature-type\">string</span></span></li><li><span><span class=\"tsd-kind-parameter\">handler</span>: <a href=\"../types/util.FunctionType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">FunctionType</a></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">ctx</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L615\">src/util.ts:615</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.rotate.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>rotate | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.rotate.html\">rotate</a></li></ul><h1>Function rotate</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"rotate\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">rotate</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">value</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">values</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><a href=\"#rotate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the next value from a list of values (rotating).</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">value</span>: <span class=\"tsd-signature-type\">any</span></span></li><li><span><span class=\"tsd-kind-parameter\">values</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since\" class=\"tsd-anchor\"></a>Since<a href=\"#since\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.11</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L739\">src/util.ts:739</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.setElemDisplay.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>setElemDisplay | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.setElemDisplay.html\">setElemDisplay</a></li></ul><h1>Function setElemDisplay</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setelemdisplay\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setElemDisplay</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">elem</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLElement</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">flag</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#setelemdisplay\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Show/hide element by setting the <code>display</code> style to 'none'.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">elem</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLElement</span></span></li><li><span><span class=\"tsd-kind-parameter\">flag</span>: <span class=\"tsd-signature-type\">boolean</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L395\">src/util.ts:395</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.setTimeoutPromise.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>setTimeoutPromise | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.setTimeoutPromise.html\">setTimeoutPromise</a></li></ul><h1>Function setTimeoutPromise</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"settimeoutpromise\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setTimeoutPromise</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.setTimeoutPromise.html#settimeoutpromiset\">T</a> <span class=\"tsd-signature-symbol\">=</span> <span class=\"tsd-signature-type\">unknown</span><span class=\"tsd-signature-symbol\">&gt;</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">this</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">unknown</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">callback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.setTimeoutPromise.html#settimeoutpromiset\">T</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">ms</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.setTimeoutPromise.html#settimeoutpromiset\">T</a><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#settimeoutpromise\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Run function after ms milliseconds and return a promise that resolves when done.</p>\n</div><section class=\"tsd-panel\"><h4>Type Parameters</h4><ul class=\"tsd-type-parameter-list\"><li><span><a id=\"settimeoutpromiset\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-type-parameter\">T</span> = <span class=\"tsd-signature-type\">unknown</span></span></li></ul></section><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">this</span>: <span class=\"tsd-signature-type\">unknown</span></span></li><li><span><span class=\"tsd-kind-parameter\">callback</span>: <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.setTimeoutPromise.html#settimeoutpromiset\">T</a></span></li><li><span><span class=\"tsd-kind-parameter\">ms</span>: <span class=\"tsd-signature-type\">number</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.setTimeoutPromise.html#settimeoutpromiset\">T</a><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L647\">src/util.ts:647</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.setValueToElem.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>setValueToElem | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.setValueToElem.html\">setValueToElem</a></li></ul><h1>Function setValueToElem</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"setvaluetoelem\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">setValueToElem</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">elem</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLElement</span><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">value</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#setvaluetoelem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Set the value of an HTML input element.</p>\n<p>If a <code>&lt;span class=&quot;wb-col&quot;&gt;</code> is passed, the first child input is used.\nDepending on the target element type, <code>value</code> is interpreted accordingly.\nFor example a checkbox is set to checked, unchecked, or indeterminate if the\nvalue is truethy, falsy, or <code>null</code>.\nFor datetime input control a numerical value is assumed, etc.</p>\n<p>Common use case: update embedded input controls in a <code>render</code> event handler:</p>\n<pre><code class=\"ts\"><span class=\"hl-1\">  </span><span class=\"hl-3\">render</span><span class=\"hl-1\">: (</span><span class=\"hl-2\">e</span><span class=\"hl-1\">) </span><span class=\"hl-0\">=&gt;</span><span class=\"hl-1\"> {</span><br/><span class=\"hl-1\">    </span><span class=\"hl-9\">// e.node.log(e.type, e, e.node.data);</span><br/><br/><span class=\"hl-1\">    </span><span class=\"hl-4\">for</span><span class=\"hl-1\"> (</span><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">col</span><span class=\"hl-1\"> </span><span class=\"hl-0\">of</span><span class=\"hl-1\"> </span><span class=\"hl-2\">Object</span><span class=\"hl-1\">.</span><span class=\"hl-6\">values</span><span class=\"hl-1\">(</span><span class=\"hl-2\">e</span><span class=\"hl-1\">.</span><span class=\"hl-2\">renderColInfosById</span><span class=\"hl-1\">)) {</span><br/><span class=\"hl-1\">      </span><span class=\"hl-4\">switch</span><span class=\"hl-1\"> (</span><span class=\"hl-2\">col</span><span class=\"hl-1\">.</span><span class=\"hl-2\">id</span><span class=\"hl-1\">) {</span><br/><span class=\"hl-1\">        </span><span class=\"hl-4\">default</span><span class=\"hl-1\">:</span><br/><span class=\"hl-1\">          </span><span class=\"hl-9\">// Assumption: we named column.id === node.data.NAME</span><br/><span class=\"hl-1\">          </span><span class=\"hl-2\">util</span><span class=\"hl-1\">.</span><span class=\"hl-6\">setValueToElem</span><span class=\"hl-1\">(</span><span class=\"hl-2\">col</span><span class=\"hl-1\">.</span><span class=\"hl-2\">elem</span><span class=\"hl-1\">, </span><span class=\"hl-2\">e</span><span class=\"hl-1\">.</span><span class=\"hl-2\">node</span><span class=\"hl-1\">.</span><span class=\"hl-2\">data</span><span class=\"hl-1\">[</span><span class=\"hl-2\">col</span><span class=\"hl-1\">.</span><span class=\"hl-2\">id</span><span class=\"hl-1\">]);</span><br/><span class=\"hl-1\">          </span><span class=\"hl-4\">break</span><span class=\"hl-1\">;</span><br/><span class=\"hl-1\">      }</span><br/><span class=\"hl-1\">    }</span><br/><span class=\"hl-1\">  },</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">elem</span>: <span class=\"tsd-signature-type\">HTMLElement</span></span><div class=\"tsd-comment tsd-typography\"><p><code>&lt;input&gt;</code> or <code>&lt;select&gt;</code> element Also a parent <code>span.wb-col</code> is accepted.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><span class=\"tsd-kind-parameter\">value</span>: <span class=\"tsd-signature-type\">any</span></span><div class=\"tsd-comment tsd-typography\"><p>a value that matches the target element.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L328\">src/util.ts:328</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.sleep.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>sleep | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.sleep.html\">sleep</a></li></ul><h1>Function sleep</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"sleep\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">sleep</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">ms</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">unknown</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#sleep\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Wait <code>ms</code> microseconds.</p>\n<p>Example:</p>\n<pre><code class=\"js\"><span class=\"hl-4\">await</span><span class=\"hl-1\"> </span><span class=\"hl-6\">sleep</span><span class=\"hl-1\">(</span><span class=\"hl-10\">1000</span><span class=\"hl-1\">);</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">ms</span>: <span class=\"tsd-signature-type\">number</span></span><div class=\"tsd-comment tsd-typography\"><p>duration</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">unknown</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L673\">src/util.ts:673</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.throttle.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>throttle | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.throttle.html\">throttle</a></li></ul><h1>Function throttle</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"throttle\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">throttle</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.throttle.html#throttlef\">F</a> <span class=\"tsd-signature-keyword\">extends</span> <span class=\"tsd-signature-type\">Procedure</span><span class=\"tsd-signature-symbol\">&gt;</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">func</span><span class=\"tsd-signature-symbol\">:</span> <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.throttle.html#throttlef\">F</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">wait</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">options</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">ThrottleOptions</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">DebouncedFunction</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.throttle.html#throttlef\">F</a><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#throttle\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Creates a throttled function that only invokes <code>func</code> at most once per\nevery <code>wait</code> milliseconds (or once per browser frame). The throttled function\ncomes with a <code>cancel</code> method to cancel delayed <code>func</code> invocations and a\n<code>flush</code> method to immediately invoke them. Provide <code>options</code> to indicate\nwhether <code>func</code> should be invoked on the leading and/or trailing edge of the\n<code>wait</code> timeout. The <code>func</code> is invoked with the last arguments provided to the\nthrottled function. Subsequent calls to the throttled function return the\nresult of the last <code>func</code> invocation.</p>\n<p><strong>Note:</strong> If <code>leading</code> and <code>trailing</code> options are <code>true</code>, <code>func</code> is\ninvoked on the trailing edge of the timeout only if the throttled function\nis invoked more than once during the <code>wait</code> timeout.</p>\n<p>If <code>wait</code> is <code>0</code> and <code>leading</code> is <code>false</code>, <code>func</code> invocation is deferred\nuntil the next tick, similar to <code>setTimeout</code> with a timeout of <code>0</code>.</p>\n<p>If <code>wait</code> is omitted in an environment with <code>requestAnimationFrame</code>, <code>func</code>\ninvocation will be deferred until the next frame is drawn (typically about\n16ms).</p>\n<p>See <a href=\"https://css-tricks.com/debouncing-throttling-explained-examples/\">David Corbacho's article</a>\nfor details over the differences between <code>throttle</code> and <code>debounce</code>.</p>\n</div><section class=\"tsd-panel\"><h4>Type Parameters</h4><ul class=\"tsd-type-parameter-list\"><li><span><a id=\"throttlef\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-type-parameter\">F</span><span class=\"tsd-signature-keyword\"> extends </span><span class=\"tsd-signature-type\">Procedure</span></span></li></ul></section><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">func</span>: <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.throttle.html#throttlef\">F</a></span><div class=\"tsd-comment tsd-typography\"><p>The function to throttle.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">wait</span>: <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\"> = 0</span></span><div class=\"tsd-comment tsd-typography\"><p>The number of milliseconds to throttle invocations to; if omitted,\n<code>requestAnimationFrame</code> is used (if available).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">options</span>: <span class=\"tsd-signature-type\">ThrottleOptions</span><span class=\"tsd-signature-symbol\"> = {}</span></span><div class=\"tsd-comment tsd-typography\"><p>The options object.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">DebouncedFunction</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.throttle.html#throttlef\">F</a><span class=\"tsd-signature-symbol\">&gt;</span></h4><p>Returns the new throttled function.</p>\n<div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since\" class=\"tsd-anchor\"></a>Since<a href=\"#since\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.1.0</p>\n</div><div class=\"tsd-tag-example\"><h4 class=\"tsd-anchor-link\"><a id=\"example\" class=\"tsd-anchor\"></a>Example<a href=\"#example\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-9\">// Avoid excessively updating the position while scrolling.</span><br/><span class=\"hl-6\">jQuery</span><span class=\"hl-1\">(</span><span class=\"hl-2\">window</span><span class=\"hl-1\">).</span><span class=\"hl-6\">on</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&#39;scroll&#39;</span><span class=\"hl-1\">, </span><span class=\"hl-6\">throttle</span><span class=\"hl-1\">(</span><span class=\"hl-2\">updatePosition</span><span class=\"hl-1\">, </span><span class=\"hl-10\">100</span><span class=\"hl-1\">))</span><br/><br/><span class=\"hl-9\">// Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.</span><br/><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">throttled</span><span class=\"hl-1\"> = </span><span class=\"hl-6\">throttle</span><span class=\"hl-1\">(</span><span class=\"hl-2\">renewToken</span><span class=\"hl-1\">, </span><span class=\"hl-10\">300000</span><span class=\"hl-1\">, { </span><span class=\"hl-7\">&#39;trailing&#39;</span><span class=\"hl-2\">:</span><span class=\"hl-1\"> </span><span class=\"hl-0\">false</span><span class=\"hl-1\"> })</span><br/><span class=\"hl-6\">jQuery</span><span class=\"hl-1\">(</span><span class=\"hl-2\">element</span><span class=\"hl-1\">).</span><span class=\"hl-6\">on</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&#39;click&#39;</span><span class=\"hl-1\">, </span><span class=\"hl-2\">throttled</span><span class=\"hl-1\">)</span><br/><br/><span class=\"hl-9\">// Cancel the trailing throttled invocation.</span><br/><span class=\"hl-6\">jQuery</span><span class=\"hl-1\">(</span><span class=\"hl-2\">window</span><span class=\"hl-1\">).</span><span class=\"hl-6\">on</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&#39;popstate&#39;</span><span class=\"hl-1\">, </span><span class=\"hl-2\">throttled</span><span class=\"hl-1\">.</span><span class=\"hl-2\">cancel</span><span class=\"hl-1\">)</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/debounce.ts#L346\">src/debounce.ts:346</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.toBool.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>toBool | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.toBool.html\">toBool</a></li></ul><h1>Function toBool</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"tobool\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">toBool</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">boolDefaults</span><span class=\"tsd-signature-symbol\">:</span> (<span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span>)<span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><a href=\"#tobool\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return the the boolean value of the first non-null element.\nExample:</p>\n<pre><code class=\"js\"><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">opts</span><span class=\"hl-1\"> = { </span><span class=\"hl-2\">flag:</span><span class=\"hl-1\"> </span><span class=\"hl-0\">true</span><span class=\"hl-1\"> };</span><br/><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">value</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">util</span><span class=\"hl-1\">.</span><span class=\"hl-6\">toBool</span><span class=\"hl-1\">(</span><span class=\"hl-2\">opts</span><span class=\"hl-1\">.</span><span class=\"hl-2\">foo</span><span class=\"hl-1\">, </span><span class=\"hl-2\">opts</span><span class=\"hl-1\">.</span><span class=\"hl-2\">flag</span><span class=\"hl-1\">, </span><span class=\"hl-0\">false</span><span class=\"hl-1\">);  </span><span class=\"hl-9\">// returns true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">boolDefaults</span>: (<span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span>)<span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L800\">src/util.ts:800</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.toPixel.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>toPixel | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.toPixel.html\">toPixel</a></li></ul><h1>Function toPixel</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"topixel\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">toPixel</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">defaults</span><span class=\"tsd-signature-symbol\">:</span> (<span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span>)<span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><a href=\"#topixel\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Convert a pixel string to number.\nWe accept a number or a string like '123px'. If undefined, the first default\nvalue that is a number or a string ending with 'px' is returned.</p>\n<p>Example:</p>\n<pre><code class=\"js\"><span class=\"hl-0\">let</span><span class=\"hl-1\"> </span><span class=\"hl-2\">x</span><span class=\"hl-1\"> = </span><span class=\"hl-0\">undefined</span><span class=\"hl-1\">;</span><br/><span class=\"hl-0\">let</span><span class=\"hl-1\"> </span><span class=\"hl-2\">y</span><span class=\"hl-1\"> = </span><span class=\"hl-7\">&quot;123px&quot;</span><span class=\"hl-1\">;</span><br/><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">width</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">util</span><span class=\"hl-1\">.</span><span class=\"hl-6\">toPixel</span><span class=\"hl-1\">(</span><span class=\"hl-2\">x</span><span class=\"hl-1\">, </span><span class=\"hl-2\">y</span><span class=\"hl-1\">, </span><span class=\"hl-10\">100</span><span class=\"hl-1\">);  </span><span class=\"hl-9\">// returns 123</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">defaults</span>: (<span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span>)<span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">number</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L773\">src/util.ts:773</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.toSet.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>toSet | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.toSet.html\">toSet</a></li></ul><h1>Function toSet</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"toset\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">toSet</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">val</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Set</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">&gt;</span><a href=\"#toset\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Convert an Array or space-separated string to a Set.</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">val</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">Set</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">&gt;</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L745\">src/util.ts:745</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.toggleCheckbox.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>toggleCheckbox | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.toggleCheckbox.html\">toggleCheckbox</a></li></ul><h1>Function toggleCheckbox</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"togglecheckbox\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">toggleCheckbox</span><span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">element</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLElement</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">value</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">tristate</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">void</span><a href=\"#togglecheckbox\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Set or rotate checkbox status with support for tri-state.</p>\n<p>An initial 'indeterminate' state becomes 'checked' on the first call.</p>\n<p>If the input element has the class 'wb-tristate' assigned, the sequence is:<br>\n'indeterminate' -&gt; 'checked' -&gt; 'unchecked' -&gt; 'indeterminate' -&gt; ...<br>\nOtherwise we toggle like <br>\n'checked' -&gt; 'unchecked' -&gt; 'checked' -&gt; ...</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">element</span>: <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLElement</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">value</span>: <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span></span></li><li><span><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-parameter\">tristate</span>: <span class=\"tsd-signature-type\">boolean</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">void</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L687\">src/util.ts:687</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.type.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>type | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.type.html\">type</a></li></ul><h1>Function type</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"type\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">type</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">obj</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Return a canonical string representation for an object's type (e.g. 'array', 'number', ...).</p>\n</div><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">obj</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L841\">src/util.ts:841</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/functions/util.unsafeCast.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>unsafeCast | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.unsafeCast.html\">unsafeCast</a></li></ul><h1>Function unsafeCast</h1></div><section class=\"tsd-panel\"><ul class=\"tsd-signatures\"><li class=\"\"><div class=\"tsd-signature tsd-anchor-link\"><a id=\"unsafecast\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-call-signature\">unsafeCast</span><span class=\"tsd-signature-symbol\">&lt;</span><a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.unsafeCast.html#unsafecastt\">T</a><span class=\"tsd-signature-symbol\">&gt;</span><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">value</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.unsafeCast.html#unsafecastt\">T</a><a href=\"#unsafecast\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></div><div class=\"tsd-description\"><div class=\"tsd-comment tsd-typography\"><p>Cast any value to <T>.</p>\n</div><section class=\"tsd-panel\"><h4>Type Parameters</h4><ul class=\"tsd-type-parameter-list\"><li><span><a id=\"unsafecastt\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-type-parameter\">T</span></span></li></ul></section><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">value</span>: <span class=\"tsd-signature-type\">any</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.unsafeCast.html#unsafecastt\">T</a></h4><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L789\">src/util.ts:789</a></li></ul></aside></div></li></ul></section></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/hierarchy.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\".\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"assets/style.css\"/><link rel=\"stylesheet\" href=\"assets/highlight.css\"/><script defer src=\"assets/main.js\"></script><script async src=\"assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><h1>wunderbaum - v0.14.1</h1></div><h2>Hierarchy Summary</h2><ul class=\"tsd-full-hierarchy\"><li data-refl=\"1524\"><a id=\"types.ScrollIntoViewOptions\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.ScrollIntoViewOptions.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>ScrollIntoViewOptions</a><ul><li data-refl=\"1529\"><a id=\"types.ScrollToOptions\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.ScrollToOptions.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>ScrollToOptions</a></li></ul></li></ul><ul class=\"tsd-full-hierarchy\"><li data-refl=\"1209\"><a id=\"types.WbTreeEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbTreeEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbTreeEventType</a><ul><li data-refl=\"1214\"><a id=\"types.WbNodeEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbNodeEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbNodeEventType</a><ul><li data-refl=\"1221\"><a id=\"types.WbActivateEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbActivateEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbActivateEventType</a></li><li data-refl=\"1229\"><a id=\"types.WbChangeEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbChangeEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbChangeEventType</a></li><li data-refl=\"1247\"><a id=\"types.WbDeactivateEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbDeactivateEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbDeactivateEventType</a></li><li data-refl=\"1255\"><a id=\"types.WbEditApplyEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbEditApplyEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbEditApplyEventType</a></li><li data-refl=\"1267\"><a id=\"types.WbEditEditEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbEditEditEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbEditEditEventType</a></li><li data-refl=\"1275\"><a id=\"types.WbErrorEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbErrorEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbErrorEventType</a></li><li data-refl=\"1283\"><a id=\"types.WbExpandEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbExpandEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbExpandEventType</a></li><li data-refl=\"1297\"><a id=\"types.WbIconBadgeEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbIconBadgeEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbIconBadgeEventType</a></li><li data-refl=\"1322\"><a id=\"types.WbModifyChildEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbModifyChildEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbModifyChildEventType</a></li><li data-refl=\"1331\"><a id=\"types.WbReceiveEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbReceiveEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbReceiveEventType</a></li><li data-refl=\"1339\"><a id=\"types.WbSelectEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbSelectEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbSelectEventType</a></li><li data-refl=\"1354\"><a id=\"types.WbRenderEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbRenderEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbRenderEventType</a></li><li data-refl=\"1627\"><a id=\"types.DragEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.DragEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>DragEventType</a></li><li data-refl=\"1634\"><a id=\"types.DropEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.DropEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>DropEventType</a></li></ul></li><li data-refl=\"1240\"><a id=\"types.WbClickEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbClickEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbClickEventType</a></li><li data-refl=\"1291\"><a id=\"types.WbFocusEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbFocusEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbFocusEventType</a></li><li data-refl=\"1309\"><a id=\"types.WbInitEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbInitEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbInitEventType</a></li><li data-refl=\"1315\"><a id=\"types.WbKeydownEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbKeydownEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbKeydownEventType</a></li><li data-refl=\"1347\"><a id=\"types.WbButtonClickEventType\" class=\"tsd-anchor\"></a><a href=\"interfaces/types.WbButtonClickEventType.html\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"assets/icons.svg#icon-256\"></use></svg>WbButtonClickEventType</a></li></ul></li></ul></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/index.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\".\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"assets/style.css\"/><link rel=\"stylesheet\" href=\"assets/highlight.css\"/><script defer src=\"assets/main.js\"></script><script async src=\"assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><h1>wunderbaum - v0.14.1</h1></div><div class=\"tsd-panel tsd-typography\"><a id=\"wunderbaum-1\" class=\"tsd-anchor\"></a><h1 class=\"tsd-anchor-link\"><img src=\"media/tree_logo_32.png\" alt=\"\"> wunderbaum<a href=\"#wunderbaum-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-anchor\"></use></svg></a></h1><p><a href=\"https://github.com/mar10/wunderbaum/releases/latest\"><img src=\"https://img.shields.io/github/v/release/mar10/wunderbaum?display_name=tag&amp;sort=semver\" alt=\"GitHub version\"></a>\n<a href=\"https://github.com/mar10/wunderbaum/actions/workflows/node.js.yml\"><img src=\"https://github.com/mar10/wunderbaum/actions/workflows/node.js.yml/badge.svg\" alt=\"Node.js CI\"></a>\n<a href=\"https://www.npmjs.com/package/wunderbaum\"><img src=\"https://img.shields.io/npm/dm/wunderbaum.svg\" alt=\"npm\"></a>\n<a href=\"https://www.jsdelivr.com/package/npm/wunderbaum\"><img src=\"https://data.jsdelivr.com/v1/package/npm/wunderbaum/badge\" alt=\"jsDelivr\"></a>\n<a href=\"https://github.com/mar10/grunt-yabs\"><img src=\"https://img.shields.io/badge/released%20with-grunt--yabs-yellowgreen\" alt=\"Released with: grunt-yabs\"></a>\n<a href=\"https://stackoverflow.com/questions/tagged/wunderbaum\"><img src=\"https://img.shields.io/badge/StackOverflow-wunderbaum-blue.svg\" alt=\"StackOverflow: wunderbaum\"></a></p>\n<blockquote>\n<p>A modern tree/treegrid control for the web.</p>\n</blockquote>\n<p>Designated successor of <a href=\"https://github.com/mar10/fancytree\">Fancytree</a>.<br>\nSee the <a href=\"https://mar10.github.io/wunderbaum/tutorial/migrate/#what-has-changed\">upgrade guide</a>\nfor details.</p>\n<p><a href=\"https://mar10.github.io/wunderbaum/demo/\"><img src=\"https://mar10.github.io/wunderbaum/assets/teaser_2.png\" alt=\"Demo\"></a></p>\n<ul>\n<li>Supports drag and drop, editing, filtering, sorting, and multi-selection.</li>\n<li>Written in TypeScript, transpiled to ES6 (esm &amp; umd).</li>\n<li>Performant handling of big data structures.</li>\n<li>Provide an object oriented API.</li>\n<li>Framework agnostic.</li>\n<li>Zero dependencies.</li>\n<li>Keyboard support.</li>\n</ul>\n<a id=\"details\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\">Details<a href=\"#details\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-anchor\"></use></svg></a></h3><ul>\n<li><a href=\"https://mar10.github.io/wunderbaum/demo/\">Online Demo</a></li>\n<li><a href=\"https://mar10.github.io/wunderbaum/\">Documentation</a></li>\n<li><a href=\"https://mar10.github.io/wunderbaum/api/index.html\">API Reference</a></li>\n<li><a href=\"https://mar10.github.io/wunderbaum/#/tutorial/quick_start\">Quick Start</a></li>\n</ul>\n</div></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><a href=\"#wunderbaum-1\"><span> wunderbaum</span></a><ul><li><a href=\"#details\"><span>Details</span></a></li></ul></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.AddChildrenOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>AddChildrenOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.AddChildrenOptions.html\">AddChildrenOptions</a></li></ul><h1>Interface AddChildrenOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wb_node.WunderbaumNode.html#addchildren\" class=\"tsd-kind-method\">WunderbaumNode.addChildren</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">AddChildrenOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.AddChildrenOptions.html#_level\">_level</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.AddChildrenOptions.html#applyminexpanlevel\">applyMinExpanLevel</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.AddChildrenOptions.html#before\">before</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L683\">src/types.ts:683</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.AddChildrenOptions.html#_level\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_level?</span></a>\n<a href=\"types.AddChildrenOptions.html#applyminexpanlevel\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>apply<wbr/>Min<wbr/>Expan<wbr/>Level?</span></a>\n<a href=\"types.AddChildrenOptions.html#before\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>before?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"_level\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>_level</span><a href=\"#_level\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_level</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>(@internal Internal use, do not set! )</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L695\">src/types.ts:695</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"applyminexpanlevel\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>apply<wbr/>Min<wbr/>Expan<wbr/>Level</span><a href=\"#applyminexpanlevel\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">applyMinExpanLevel</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Set <code>node.expanded = true</code> according to tree.options.minExpandLevel.\nThis does <em>not</em> load lazy nodes.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L693\">src/types.ts:693</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"before\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>before</span><a href=\"#before\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">before</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>Insert children before this node (or index)</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">undefined</span><span class=\"hl-1\"> </span><span class=\"hl-2\">or</span><span class=\"hl-1\"> </span><span class=\"hl-3\">null</span><span class=\"hl-1\">:  </span><span class=\"hl-2\">append</span><span class=\"hl-1\"> </span><span class=\"hl-4\">as</span><span class=\"hl-1\"> </span><span class=\"hl-5\">last</span><span class=\"hl-1\"> </span><span class=\"hl-5\">child</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L687\">src/types.ts:687</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#_level\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_level</span></a><a href=\"#applyminexpanlevel\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>apply<wbr/>Min<wbr/>Expan<wbr/>Level</span></a><a href=\"#before\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>before</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.ApplyCommandOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>ApplyCommandOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.ApplyCommandOptions.html\">ApplyCommandOptions</a></li></ul><h1>Interface ApplyCommandOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wunderbaum.Wunderbaum.html#applycommand\" class=\"tsd-kind-method\">Wunderbaum.applyCommand</a> and <a href=\"../classes/wb_node.WunderbaumNode.html#applycommand\" class=\"tsd-kind-method\">WunderbaumNode.applyCommand</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><section class=\"tsd-panel\"><h4 class=\"tsd-before-signature\">Indexable</h4><ul class=\"tsd-signatures\"><li class=\"tsd-index-signature\"><div class=\"tsd-signature\"><span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-parameter\">key</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]: </span><span class=\"tsd-signature-type\">unknown</span></div></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L699\">src/types.ts:699</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.ColumnDefinition.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>ColumnDefinition | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.ColumnDefinition.html\">ColumnDefinition</a></li></ul><h1>Interface ColumnDefinition</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Column type definitions.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#columns\" class=\"tsd-kind-property\">Wunderbaum.columns</a></p>\n</div></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">ColumnDefinition</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#_ofspx\">_ofsPx</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#_weight\">_weight</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#_widthpx\">_widthPx</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#classes\">classes</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#customwidthpx\">customWidthPx</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#filterable\">filterable</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#filteractive\">filterActive</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#headerclasses\">headerClasses</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#html\">html</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#id\">id</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#menu\">menu</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#minwidth\">minWidth</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#resizable\">resizable</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#sortable\">sortable</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#sortorder\">sortOrder</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.SortOrderType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SortOrderType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#title\">title</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#tooltip\">tooltip</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnDefinition.html#width\">width</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]:</span> <span class=\"tsd-signature-type\">unknown</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel\"><h4 class=\"tsd-before-signature\">Indexable</h4><ul class=\"tsd-signatures\"><li class=\"tsd-index-signature\"><div class=\"tsd-signature\"><span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-parameter\">key</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]: </span><span class=\"tsd-signature-type\">unknown</span></div></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L427\">src/types.ts:427</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.ColumnDefinition.html#_ofspx\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_ofs<wbr/>Px?</span></a>\n<a href=\"types.ColumnDefinition.html#_weight\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_weight?</span></a>\n<a href=\"types.ColumnDefinition.html#_widthpx\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_width<wbr/>Px?</span></a>\n<a href=\"types.ColumnDefinition.html#classes\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>classes?</span></a>\n<a href=\"types.ColumnDefinition.html#customwidthpx\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>custom<wbr/>Width<wbr/>Px?</span></a>\n<a href=\"types.ColumnDefinition.html#filterable\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>filterable?</span></a>\n<a href=\"types.ColumnDefinition.html#filteractive\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>filter<wbr/>Active?</span></a>\n<a href=\"types.ColumnDefinition.html#headerclasses\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>header<wbr/>Classes?</span></a>\n<a href=\"types.ColumnDefinition.html#html\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>html?</span></a>\n<a href=\"types.ColumnDefinition.html#id\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>id</span></a>\n<a href=\"types.ColumnDefinition.html#menu\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>menu?</span></a>\n<a href=\"types.ColumnDefinition.html#minwidth\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>min<wbr/>Width?</span></a>\n<a href=\"types.ColumnDefinition.html#resizable\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>resizable?</span></a>\n<a href=\"types.ColumnDefinition.html#sortable\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>sortable?</span></a>\n<a href=\"types.ColumnDefinition.html#sortorder\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>sort<wbr/>Order?</span></a>\n<a href=\"types.ColumnDefinition.html#title\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>title</span></a>\n<a href=\"types.ColumnDefinition.html#tooltip\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tooltip?</span></a>\n<a href=\"types.ColumnDefinition.html#width\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>width?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"_ofspx\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code> <code class=\"tsd-tag\">Internal</code><span>_ofs<wbr/>Px</span><a href=\"#_ofspx\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_ofsPx</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L504\">src/types.ts:504</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"_weight\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code> <code class=\"tsd-tag\">Internal</code><span>_weight</span><a href=\"#_weight\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_weight</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L500\">src/types.ts:500</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"_widthpx\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code> <code class=\"tsd-tag\">Internal</code><span>_width<wbr/>Px</span><a href=\"#_widthpx\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_widthPx</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L502\">src/types.ts:502</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"classes\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>classes</span><a href=\"#classes\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">classes</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Optional class names that are added to all <code>span.wb-col</code> header AND data\nelements of that column. Separate multiple classes with space.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L488\">src/types.ts:488</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"customwidthpx\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>custom<wbr/>Width<wbr/>Px</span><a href=\"#customwidthpx\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">customWidthPx</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>Optional custom column width when user resized by mouse drag.\nDefault: unset.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L453\">src/types.ts:453</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"filterable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>filterable</span><a href=\"#filterable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">filterable</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Display a 'filter' button in the column header. Default: false. <br>\nNote: The actual filtering must be implemented in the <code>buttonClick()</code> event.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>false (or global tree option <code>columnsFilterable</code>)</p>\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since\" class=\"tsd-anchor\"></a>Since<a href=\"#since\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.11.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L459\">src/types.ts:459</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"filteractive\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>filter<wbr/>Active</span><a href=\"#filteractive\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">filterActive</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>.\nDefault: inactive. <br>\nNote: The actual filtering must be implemented in the <code>buttonClick()</code> event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L464\">src/types.ts:464</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"headerclasses\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>header<wbr/>Classes</span><a href=\"#headerclasses\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">headerClasses</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>If <code>headerClasses</code> is a set, it will be used for the header element only\n(unlike <code>classes</code>, which is used for body and header cells).\nSeparate multiple classes with space.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L493\">src/types.ts:493</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"html\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>html</span><a href=\"#html\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">html</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Optional HTML content that is rendered into all <code>span.wb-col</code> elements of that column.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L498\">src/types.ts:498</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"id\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>id</span><a href=\"#id\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">id</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Column ID as defined in <code>tree.columns</code> definition (&quot;*&quot; for title column).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L429\">src/types.ts:429</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"menu\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>menu</span><a href=\"#menu\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">menu</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Display a menu icon that may open a context menu for this column.\nNote: The actual functionality must be implemented in the <code>buttonClick()</code> event.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>false (or global tree option <code>columnsMenu</code>)</p>\n</div><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-1\" class=\"tsd-anchor\"></a>See<a href=\"#see-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_options.WunderbaumOptions.html#columnsmenu\" class=\"tsd-kind-property\">WunderbaumOptions.columnsMenu</a>.</p>\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-1\" class=\"tsd-anchor\"></a>Since<a href=\"#since-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.11.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L484\">src/types.ts:484</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"minwidth\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>min<wbr/>Width</span><a href=\"#minwidth\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">minWidth</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>Only used for columns with a relative weight.\nDefault: <code>4px</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L443\">src/types.ts:443</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"resizable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>resizable</span><a href=\"#resizable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">resizable</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Allow user to resize the column.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>false (or global tree option <code>columnsSortable</code>)</p>\n</div><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-2\" class=\"tsd-anchor\"></a>See<a href=\"#see-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_options.WunderbaumOptions.html#columnsresizable\" class=\"tsd-kind-property\">WunderbaumOptions.columnsResizable</a>.</p>\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-2\" class=\"tsd-anchor\"></a>Since<a href=\"#since-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.10.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L449\">src/types.ts:449</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"sortable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>sortable</span><a href=\"#sortable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">sortable</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Display a 'sort' button in the column header. Default: false. <br>\nNote: The actual sorting must be implemented in the <code>buttonClick()</code> event.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-3\" class=\"tsd-anchor\"></a>Default<a href=\"#default-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>false (or global tree option <code>columnsSortable</code>)</p>\n</div><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-3\" class=\"tsd-anchor\"></a>See<a href=\"#see-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"wb_options.WunderbaumOptions.html#columnssortable\" class=\"tsd-kind-property\">WunderbaumOptions.columnsSortable</a>.</p>\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-3\" class=\"tsd-anchor\"></a>Since<a href=\"#since-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.11.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L471\">src/types.ts:471</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"sortorder\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>sort<wbr/>Order</span><a href=\"#sortorder\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">sortOrder</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.SortOrderType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SortOrderType</a></div><div class=\"tsd-comment tsd-typography\"><p>Optional custom column sort orde when user clicked the sort icon.\nDefault: unset, e.g. not sorted. <br>\nNote: The actual sorting must be implemented in the <code>buttonClick()</code> event.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-4\" class=\"tsd-anchor\"></a>Since<a href=\"#since-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.11.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L477\">src/types.ts:477</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"title\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>title</span><a href=\"#title\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">title</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Column header (defaults to id)</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L431\">src/types.ts:431</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"tooltip\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>tooltip</span><a href=\"#tooltip\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tooltip</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Column header tooltip (optional)</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L433\">src/types.ts:433</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"width\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>width</span><a href=\"#width\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">width</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>Column width or weight.\nEither an absolute pixel value (e.g. <code>&quot;50px&quot;</code>) or a relative weight (e.g. <code>1</code>)\nthat is used to calculate the width  inside the remaining available space.\nDefault: <code>&quot;*&quot;</code>, which is interpreted as <code>1</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L439\">src/types.ts:439</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#_ofspx\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_ofs<wbr/>Px</span></a><a href=\"#_weight\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_weight</span></a><a href=\"#_widthpx\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_width<wbr/>Px</span></a><a href=\"#classes\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>classes</span></a><a href=\"#customwidthpx\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>custom<wbr/>Width<wbr/>Px</span></a><a href=\"#filterable\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>filterable</span></a><a href=\"#filteractive\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>filter<wbr/>Active</span></a><a href=\"#headerclasses\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>header<wbr/>Classes</span></a><a href=\"#html\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>html</span></a><a href=\"#id\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>id</span></a><a href=\"#menu\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>menu</span></a><a href=\"#minwidth\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>min<wbr/>Width</span></a><a href=\"#resizable\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>resizable</span></a><a href=\"#sortable\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>sortable</span></a><a href=\"#sortorder\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>sort<wbr/>Order</span></a><a href=\"#title\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>title</span></a><a href=\"#tooltip\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tooltip</span></a><a href=\"#width\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>width</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.ColumnEventInfo.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>ColumnEventInfo | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.ColumnEventInfo.html\">ColumnEventInfo</a></li></ul><h1>Interface ColumnEventInfo</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Column information (passed to the <code>render</code> event).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">ColumnEventInfo</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnEventInfo.html#elem\">elem</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLSpanElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnEventInfo.html#id\">id</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnEventInfo.html#idx\">idx</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ColumnEventInfo.html#info\">info</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.ColumnDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">ColumnDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L514\">src/types.ts:514</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.ColumnEventInfo.html#elem\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>elem</span></a>\n<a href=\"types.ColumnEventInfo.html#id\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>id</span></a>\n<a href=\"types.ColumnEventInfo.html#idx\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>idx</span></a>\n<a href=\"types.ColumnEventInfo.html#info\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>info</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"elem\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>elem</span><a href=\"#elem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">elem</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLSpanElement</span></div><div class=\"tsd-comment tsd-typography\"><p>The cell's <code>&lt;span class='wb-col'&gt;</code> element (null for plain trees).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L520\">src/types.ts:520</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"id\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>id</span><a href=\"#id\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">id</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Column ID as defined in <code>tree.columns</code> definition (&quot;*&quot; for title column).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L516\">src/types.ts:516</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"idx\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>idx</span><a href=\"#idx\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">idx</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>Column index (0: leftmost title column).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L518\">src/types.ts:518</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"info\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>info</span><a href=\"#info\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">info</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.ColumnDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">ColumnDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>The value of <code>tree.columns[]</code> for the current index.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L522\">src/types.ts:522</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#elem\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>elem</span></a><a href=\"#id\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>id</span></a><a href=\"#idx\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>idx</span></a><a href=\"#info\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>info</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.DragEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DragEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DragEventType.html\">DragEventType</a></li></ul><h1>Interface DragEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">DragEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.DragEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">DragEvent</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.DragEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.DragEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.DragEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.DragEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.DragEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1627\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.DragEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">DragEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1178\">src/types.ts:1178</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.DragEventType.html#event\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a>\n<a href=\"types.DragEventType.html#node\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.DragEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.DragEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.DragEventType.html#typeinfo\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.DragEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">DragEvent</span></div><div class=\"tsd-comment tsd-typography\"><p>The original event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Overrides <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1180\">src/types.ts:1180</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The source node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Overrides <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#node\">node</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1182\">src/types.ts:1182</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#node\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.DropEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DropEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DropEventType.html\">DropEventType</a></li></ul><h1>Interface DropEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">DropEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.DropEventType.html#datatransfer\">dataTransfer</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">DataTransfer</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.DropEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">DragEvent</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.DropEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.DropEventType.html#sourcenode\">sourceNode</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.DropEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.DropEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.DropEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.DropEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1634\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.DropEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">DropEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1185\">src/types.ts:1185</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.DropEventType.html#datatransfer\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>data<wbr/>Transfer</span></a>\n<a href=\"types.DropEventType.html#event\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a>\n<a href=\"types.DropEventType.html#node\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.DropEventType.html#sourcenode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>source<wbr/>Node</span></a>\n<a href=\"types.DropEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.DropEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.DropEventType.html#typeinfo\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.DropEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"datatransfer\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>data<wbr/>Transfer</span><a href=\"#datatransfer\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">dataTransfer</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">DataTransfer</span></div><div class=\"tsd-comment tsd-typography\"><p>The DataTransfer object.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1193\">src/types.ts:1193</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">DragEvent</span></div><div class=\"tsd-comment tsd-typography\"><p>The original event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Overrides <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1187\">src/types.ts:1187</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The target node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Overrides <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#node\">node</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1189\">src/types.ts:1189</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"sourcenode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>source<wbr/>Node</span><a href=\"#sourcenode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">sourceNode</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The source node if any.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1191\">src/types.ts:1191</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#datatransfer\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>data<wbr/>Transfer</span></a><a href=\"#event\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#node\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#sourcenode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>source<wbr/>Node</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.ExpandAllOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>ExpandAllOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.ExpandAllOptions.html\">ExpandAllOptions</a></li></ul><h1>Interface ExpandAllOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wunderbaum.Wunderbaum.html#expandall\" class=\"tsd-kind-method\">Wunderbaum.expandAll</a> and <a href=\"../classes/wb_node.WunderbaumNode.html#expandall\" class=\"tsd-kind-method\">WunderbaumNode.expandAll</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">ExpandAllOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ExpandAllOptions.html#collapseothers\">collapseOthers</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ExpandAllOptions.html#deep\">deep</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ExpandAllOptions.html#depth\">depth</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ExpandAllOptions.html#force\">force</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ExpandAllOptions.html#keepactivenodevisible\">keepActiveNodeVisible</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ExpandAllOptions.html#loadlazy\">loadLazy</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ExpandAllOptions.html#resetlazy\">resetLazy</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L704\">src/types.ts:704</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.ExpandAllOptions.html#collapseothers\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>collapse<wbr/>Others?</span></a>\n<a href=\"types.ExpandAllOptions.html#deep\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>deep?</span></a>\n<a href=\"types.ExpandAllOptions.html#depth\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>depth?</span></a>\n<a href=\"types.ExpandAllOptions.html#force\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>force?</span></a>\n<a href=\"types.ExpandAllOptions.html#keepactivenodevisible\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>keep<wbr/>Active<wbr/>Node<wbr/>Visible?</span></a>\n<a href=\"types.ExpandAllOptions.html#loadlazy\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>load<wbr/>Lazy?</span></a>\n<a href=\"types.ExpandAllOptions.html#resetlazy\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>reset<wbr/>Lazy?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"collapseothers\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>collapse<wbr/>Others</span><a href=\"#collapseothers\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">collapseOthers</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Expand up to level=depth and collapse all other branches.\nOnly in combination with <code>flag == true</code>, <code>depth &gt; 0</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L732\">src/types.ts:732</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"deep\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>deep</span><a href=\"#deep\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">deep</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Also collapse child nodes beyond the <code>depth</code> level.\nOtherwise only the <code>depth</code> level is collapsed and the expand state of the\ndescendants is retained.\nOnly in combination with collapse and <code>depth</code>.\nExpanding with <code>deep</code> option is not supported as recursion depth implied by\nthe <code>depth</code> option. However a <code>deep</code> option will be considered if\n<code>collapseOthers</code> is set.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L726\">src/types.ts:726</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"depth\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>depth</span><a href=\"#depth\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">depth</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>Restrict expand level.\nPass 0 to make only toplevel nodes visible, 1 to expand one level deeper, etc.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-6\">unset</span><span class=\"hl-1\"> (</span><span class=\"hl-2\">unlimited</span><span class=\"hl-1\">)</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L715\">src/types.ts:715</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"force\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>force</span><a href=\"#force\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">force</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Ignore tree's <code>minExpandLevel</code> option</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-3\" class=\"tsd-anchor\"></a>Default<a href=\"#default-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L710\">src/types.ts:710</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"keepactivenodevisible\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>keep<wbr/>Active<wbr/>Node<wbr/>Visible</span><a href=\"#keepactivenodevisible\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">keepActiveNodeVisible</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Keep active node visible</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-4\" class=\"tsd-anchor\"></a>Default<a href=\"#default-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L734\">src/types.ts:734</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"loadlazy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>load<wbr/>Lazy</span><a href=\"#loadlazy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">loadLazy</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Expand and load lazy nodes</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-5\" class=\"tsd-anchor\"></a>Default<a href=\"#default-5\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L706\">src/types.ts:706</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"resetlazy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>reset<wbr/>Lazy</span><a href=\"#resetlazy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">resetLazy</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Unload lazily loaded children if any (if collapsing).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-6\" class=\"tsd-anchor\"></a>Default<a href=\"#default-6\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L708\">src/types.ts:708</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#collapseothers\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>collapse<wbr/>Others</span></a><a href=\"#deep\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>deep</span></a><a href=\"#depth\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>depth</span></a><a href=\"#force\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>force</span></a><a href=\"#keepactivenodevisible\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>keep<wbr/>Active<wbr/>Node<wbr/>Visible</span></a><a href=\"#loadlazy\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>load<wbr/>Lazy</span></a><a href=\"#resetlazy\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>reset<wbr/>Lazy</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.FilterConnectType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>FilterConnectType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.FilterConnectType.html\">FilterConnectType</a></li></ul><h1>Interface FilterConnectType<code class=\"tsd-tag\">Experimental</code></h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Passed as tree option.filer.connect to configure automatic integration of\nfilter UI controls.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">FilterConnectType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.FilterConnectType.html#inputelem\">inputElem</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLInputElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.FilterConnectType.html#matchinfoelem\">matchInfoElem</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.FilterConnectType.html#modebutton\">modeButton</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLButtonElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.FilterConnectType.html#nextbutton\">nextButton</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLAnchorElement</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLButtonElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.FilterConnectType.html#prevbutton\">prevButton</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLAnchorElement</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLButtonElement</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1034\">src/types.ts:1034</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.FilterConnectType.html#inputelem\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>input<wbr/>Elem</span></a>\n<a href=\"types.FilterConnectType.html#matchinfoelem\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>match<wbr/>Info<wbr/>Elem?</span></a>\n<a href=\"types.FilterConnectType.html#modebutton\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>mode<wbr/>Button?</span></a>\n<a href=\"types.FilterConnectType.html#nextbutton\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>next<wbr/>Button?</span></a>\n<a href=\"types.FilterConnectType.html#prevbutton\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>prev<wbr/>Button?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"inputelem\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Experimental</code><span>input<wbr/>Elem</span><a href=\"#inputelem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">inputElem</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLInputElement</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1035\">src/types.ts:1035</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"matchinfoelem\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code> <code class=\"tsd-tag\">Experimental</code><span>match<wbr/>Info<wbr/>Elem</span><a href=\"#matchinfoelem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">matchInfoElem</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLElement</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1039\">src/types.ts:1039</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"modebutton\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code> <code class=\"tsd-tag\">Experimental</code><span>mode<wbr/>Button</span><a href=\"#modebutton\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">modeButton</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLButtonElement</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1036\">src/types.ts:1036</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"nextbutton\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code> <code class=\"tsd-tag\">Experimental</code><span>next<wbr/>Button</span><a href=\"#nextbutton\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">nextButton</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLAnchorElement</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLButtonElement</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1037\">src/types.ts:1037</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"prevbutton\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code> <code class=\"tsd-tag\">Experimental</code><span>prev<wbr/>Button</span><a href=\"#prevbutton\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">prevButton</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLAnchorElement</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLButtonElement</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1038\">src/types.ts:1038</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#inputelem\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>input<wbr/>Elem</span></a><a href=\"#matchinfoelem\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>match<wbr/>Info<wbr/>Elem</span></a><a href=\"#modebutton\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>mode<wbr/>Button</span></a><a href=\"#nextbutton\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>next<wbr/>Button</span></a><a href=\"#prevbutton\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>prev<wbr/>Button</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.FilterNodesOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>FilterNodesOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.FilterNodesOptions.html\">FilterNodesOptions</a></li></ul><h1>Interface FilterNodesOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible option values for <a href=\"../classes/wunderbaum.Wunderbaum.html#filternodes\" class=\"tsd-kind-method\">Wunderbaum.filterNodes</a>.\nThe defaults are inherited from the tree instances ´tree.options.filter`\nsettings (see also <a href=\"../types/types.FilterOptionsType.html\" class=\"tsd-kind-type-alias\">FilterOptionsType</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">FilterNodesOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.FilterNodesOptions.html#autoexpand\">autoExpand</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.FilterNodesOptions.html#fuzzy\">fuzzy</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.FilterNodesOptions.html#hideexpanders\">hideExpanders</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.FilterNodesOptions.html#highlight\">highlight</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.FilterNodesOptions.html#leavesonly\">leavesOnly</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.FilterNodesOptions.html#matchbranch\">matchBranch</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.FilterNodesOptions.html#mode\">mode</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.FilterModeType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">FilterModeType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.FilterNodesOptions.html#nodata\">noData</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L742\">src/types.ts:742</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.FilterNodesOptions.html#autoexpand\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>auto<wbr/>Expand?</span></a>\n<a href=\"types.FilterNodesOptions.html#fuzzy\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>fuzzy?</span></a>\n<a href=\"types.FilterNodesOptions.html#hideexpanders\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>hide<wbr/>Expanders?</span></a>\n<a href=\"types.FilterNodesOptions.html#highlight\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>highlight?</span></a>\n<a href=\"types.FilterNodesOptions.html#leavesonly\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>leaves<wbr/>Only?</span></a>\n<a href=\"types.FilterNodesOptions.html#matchbranch\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>match<wbr/>Branch?</span></a>\n<a href=\"types.FilterNodesOptions.html#mode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>mode?</span></a>\n<a href=\"types.FilterNodesOptions.html#nodata\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Data?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"autoexpand\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>auto<wbr/>Expand</span><a href=\"#autoexpand\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">autoExpand</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Expand all branches that contain matches while filtered</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L744\">src/types.ts:744</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"fuzzy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>fuzzy</span><a href=\"#fuzzy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">fuzzy</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Match single characters in order, e.g. 'fb' will match 'FooBar'</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L748\">src/types.ts:748</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"hideexpanders\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>hide<wbr/>Expanders</span><a href=\"#hideexpanders\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">hideExpanders</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Hide expanders if all child nodes are hidden by filter</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L750\">src/types.ts:750</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"highlight\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>highlight</span><a href=\"#highlight\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">highlight</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Highlight matches by wrapping inside <code>&lt;mark&gt;</code> tags.\nDoes not work for filter callbacks.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-3\" class=\"tsd-anchor\"></a>Default<a href=\"#default-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L754\">src/types.ts:754</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"leavesonly\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>leaves<wbr/>Only</span><a href=\"#leavesonly\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">leavesOnly</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Match end nodes only</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-4\" class=\"tsd-anchor\"></a>Default<a href=\"#default-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L756\">src/types.ts:756</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"matchbranch\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>match<wbr/>Branch</span><a href=\"#matchbranch\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">matchBranch</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Whether to implicitly match all children of matched nodes</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-5\" class=\"tsd-anchor\"></a>Default<a href=\"#default-5\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L746\">src/types.ts:746</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"mode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>mode</span><a href=\"#mode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">mode</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.FilterModeType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">FilterModeType</a></div><div class=\"tsd-comment tsd-typography\"><p>Grayout unmatched nodes (pass 'hide' to remove instead)</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-6\" class=\"tsd-anchor\"></a>Default<a href=\"#default-6\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&#39;dim&#39;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L758\">src/types.ts:758</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"nodata\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>no<wbr/>Data</span><a href=\"#nodata\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">noData</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Display a 'no data' status node if result is empty</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-7\" class=\"tsd-anchor\"></a>Default<a href=\"#default-7\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L760\">src/types.ts:760</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#autoexpand\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>auto<wbr/>Expand</span></a><a href=\"#fuzzy\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>fuzzy</span></a><a href=\"#hideexpanders\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>hide<wbr/>Expanders</span></a><a href=\"#highlight\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>highlight</span></a><a href=\"#leavesonly\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>leaves<wbr/>Only</span></a><a href=\"#matchbranch\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>match<wbr/>Branch</span></a><a href=\"#mode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>mode</span></a><a href=\"#nodata\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Data</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.GetStateOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>GetStateOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.GetStateOptions.html\">GetStateOptions</a></li></ul><h1>Interface GetStateOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wunderbaum.Wunderbaum.html#getstate\" class=\"tsd-kind-method\">Wunderbaum.getState</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">GetStateOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.GetStateOptions.html#activekey\">activeKey</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.GetStateOptions.html#expandedkeys\">expandedKeys</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.GetStateOptions.html#selectedkeys\">selectedKeys</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L764\">src/types.ts:764</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.GetStateOptions.html#activekey\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>active<wbr/>Key?</span></a>\n<a href=\"types.GetStateOptions.html#expandedkeys\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expanded<wbr/>Keys?</span></a>\n<a href=\"types.GetStateOptions.html#selectedkeys\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>selected<wbr/>Keys?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"activekey\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>active<wbr/>Key</span><a href=\"#activekey\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">activeKey</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Include the active node's key (and expand its parents).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L766\">src/types.ts:766</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"expandedkeys\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>expanded<wbr/>Keys</span><a href=\"#expandedkeys\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">expandedKeys</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Include the expanded keys.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L768\">src/types.ts:768</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"selectedkeys\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>selected<wbr/>Keys</span><a href=\"#selectedkeys\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">selectedKeys</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Include the selected keys.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L770\">src/types.ts:770</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#activekey\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>active<wbr/>Key</span></a><a href=\"#expandedkeys\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expanded<wbr/>Keys</span></a><a href=\"#selectedkeys\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>selected<wbr/>Keys</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.IconMapType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>IconMapType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.IconMapType.html\">IconMapType</a></li></ul><h1>Interface IconMapType</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>A plain object (dictionary) that defines node icons.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">IconMapType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#checkchecked\">checkChecked</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#checkunchecked\">checkUnchecked</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#checkunknown\">checkUnknown</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#colfilter\">colFilter</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#colfilteractive\">colFilterActive</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#colmenu\">colMenu</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#colsortable\">colSortable</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#colsortasc\">colSortAsc</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#colsortdesc\">colSortDesc</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#doc\">doc</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#error\">error</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#expandercollapsed\">expanderCollapsed</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#expanderexpanded\">expanderExpanded</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#expanderlazy\">expanderLazy</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#folder\">folder</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#folderlazy\">folderLazy</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#folderopen\">folderOpen</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#loading\">loading</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#nodata\">noData</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#radiochecked\">radioChecked</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#radiounchecked\">radioUnchecked</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.IconMapType.html#radiounknown\">radioUnknown</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel\"><h4 class=\"tsd-before-signature\">Indexable</h4><ul class=\"tsd-signatures\"><li class=\"tsd-index-signature\"><div class=\"tsd-signature\"><span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-parameter\">key</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]: </span><span class=\"tsd-signature-type\">string</span></div></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L188\">src/types.ts:188</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.IconMapType.html#checkchecked\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>check<wbr/>Checked</span></a>\n<a href=\"types.IconMapType.html#checkunchecked\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>check<wbr/>Unchecked</span></a>\n<a href=\"types.IconMapType.html#checkunknown\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>check<wbr/>Unknown</span></a>\n<a href=\"types.IconMapType.html#colfilter\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Filter</span></a>\n<a href=\"types.IconMapType.html#colfilteractive\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Filter<wbr/>Active</span></a>\n<a href=\"types.IconMapType.html#colmenu\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Menu</span></a>\n<a href=\"types.IconMapType.html#colsortable\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Sortable</span></a>\n<a href=\"types.IconMapType.html#colsortasc\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Sort<wbr/>Asc</span></a>\n<a href=\"types.IconMapType.html#colsortdesc\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Sort<wbr/>Desc</span></a>\n<a href=\"types.IconMapType.html#doc\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>doc</span></a>\n<a href=\"types.IconMapType.html#error\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>error</span></a>\n<a href=\"types.IconMapType.html#expandercollapsed\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expander<wbr/>Collapsed</span></a>\n<a href=\"types.IconMapType.html#expanderexpanded\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expander<wbr/>Expanded</span></a>\n<a href=\"types.IconMapType.html#expanderlazy\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expander<wbr/>Lazy</span></a>\n<a href=\"types.IconMapType.html#folder\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>folder</span></a>\n<a href=\"types.IconMapType.html#folderlazy\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>folder<wbr/>Lazy</span></a>\n<a href=\"types.IconMapType.html#folderopen\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>folder<wbr/>Open</span></a>\n<a href=\"types.IconMapType.html#loading\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>loading</span></a>\n<a href=\"types.IconMapType.html#nodata\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Data</span></a>\n<a href=\"types.IconMapType.html#radiochecked\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>radio<wbr/>Checked</span></a>\n<a href=\"types.IconMapType.html#radiounchecked\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>radio<wbr/>Unchecked</span></a>\n<a href=\"types.IconMapType.html#radiounknown\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>radio<wbr/>Unknown</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"checkchecked\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>check<wbr/>Checked</span><a href=\"#checkchecked\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">checkChecked</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L195\">src/types.ts:195</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"checkunchecked\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>check<wbr/>Unchecked</span><a href=\"#checkunchecked\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">checkUnchecked</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L196\">src/types.ts:196</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"checkunknown\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>check<wbr/>Unknown</span><a href=\"#checkunknown\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">checkUnknown</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L197\">src/types.ts:197</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"colfilter\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>col<wbr/>Filter</span><a href=\"#colfilter\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colFilter</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L208\">src/types.ts:208</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"colfilteractive\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>col<wbr/>Filter<wbr/>Active</span><a href=\"#colfilteractive\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colFilterActive</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L209\">src/types.ts:209</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"colmenu\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>col<wbr/>Menu</span><a href=\"#colmenu\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colMenu</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L210\">src/types.ts:210</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"colsortable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>col<wbr/>Sortable</span><a href=\"#colsortable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colSortable</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L205\">src/types.ts:205</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"colsortasc\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>col<wbr/>Sort<wbr/>Asc</span><a href=\"#colsortasc\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colSortAsc</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L206\">src/types.ts:206</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"colsortdesc\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>col<wbr/>Sort<wbr/>Desc</span><a href=\"#colsortdesc\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colSortDesc</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L207\">src/types.ts:207</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"doc\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>doc</span><a href=\"#doc\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">doc</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L204\">src/types.ts:204</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"error\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>error</span><a href=\"#error\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">error</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L189\">src/types.ts:189</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"expandercollapsed\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>expander<wbr/>Collapsed</span><a href=\"#expandercollapsed\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">expanderCollapsed</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L193\">src/types.ts:193</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"expanderexpanded\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>expander<wbr/>Expanded</span><a href=\"#expanderexpanded\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">expanderExpanded</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L192\">src/types.ts:192</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"expanderlazy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>expander<wbr/>Lazy</span><a href=\"#expanderlazy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">expanderLazy</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L194\">src/types.ts:194</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"folder\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>folder</span><a href=\"#folder\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">folder</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L201\">src/types.ts:201</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"folderlazy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>folder<wbr/>Lazy</span><a href=\"#folderlazy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">folderLazy</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L203\">src/types.ts:203</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"folderopen\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>folder<wbr/>Open</span><a href=\"#folderopen\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">folderOpen</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L202\">src/types.ts:202</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"loading\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>loading</span><a href=\"#loading\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">loading</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L190\">src/types.ts:190</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"nodata\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>no<wbr/>Data</span><a href=\"#nodata\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">noData</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L191\">src/types.ts:191</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"radiochecked\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>radio<wbr/>Checked</span><a href=\"#radiochecked\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">radioChecked</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L198\">src/types.ts:198</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"radiounchecked\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>radio<wbr/>Unchecked</span><a href=\"#radiounchecked\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">radioUnchecked</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L199\">src/types.ts:199</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"radiounknown\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>radio<wbr/>Unknown</span><a href=\"#radiounknown\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">radioUnknown</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L200\">src/types.ts:200</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#checkchecked\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>check<wbr/>Checked</span></a><a href=\"#checkunchecked\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>check<wbr/>Unchecked</span></a><a href=\"#checkunknown\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>check<wbr/>Unknown</span></a><a href=\"#colfilter\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Filter</span></a><a href=\"#colfilteractive\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Filter<wbr/>Active</span></a><a href=\"#colmenu\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Menu</span></a><a href=\"#colsortable\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Sortable</span></a><a href=\"#colsortasc\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Sort<wbr/>Asc</span></a><a href=\"#colsortdesc\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Sort<wbr/>Desc</span></a><a href=\"#doc\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>doc</span></a><a href=\"#error\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>error</span></a><a href=\"#expandercollapsed\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expander<wbr/>Collapsed</span></a><a href=\"#expanderexpanded\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expander<wbr/>Expanded</span></a><a href=\"#expanderlazy\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expander<wbr/>Lazy</span></a><a href=\"#folder\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>folder</span></a><a href=\"#folderlazy\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>folder<wbr/>Lazy</span></a><a href=\"#folderopen\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>folder<wbr/>Open</span></a><a href=\"#loading\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>loading</span></a><a href=\"#nodata\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Data</span></a><a href=\"#radiochecked\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>radio<wbr/>Checked</span></a><a href=\"#radiounchecked\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>radio<wbr/>Unchecked</span></a><a href=\"#radiounknown\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>radio<wbr/>Unknown</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.LoadLazyNodesOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>LoadLazyNodesOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.LoadLazyNodesOptions.html\">LoadLazyNodesOptions</a></li></ul><h1>Interface LoadLazyNodesOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for Wunderbaum.loadLazyNodes <code>options</code> argument.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">LoadLazyNodesOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.LoadLazyNodesOptions.html#expand\">expand</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.LoadLazyNodesOptions.html#force\">force</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.LoadLazyNodesOptions.html#noevents\">noEvents</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L792\">src/types.ts:792</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.LoadLazyNodesOptions.html#expand\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expand?</span></a>\n<a href=\"types.LoadLazyNodesOptions.html#force\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>force?</span></a>\n<a href=\"types.LoadLazyNodesOptions.html#noevents\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Events?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"expand\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>expand</span><a href=\"#expand\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">expand</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Expand node (otherwise load, but keep collapsed).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L794\">src/types.ts:794</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"force\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>force</span><a href=\"#force\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">force</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Force reloading even if already loaded.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L796\">src/types.ts:796</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"noevents\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>no<wbr/>Events</span><a href=\"#noevents\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">noEvents</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Do not send events.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L798\">src/types.ts:798</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#expand\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expand</span></a><a href=\"#force\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>force</span></a><a href=\"#noevents\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Events</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.MakeVisibleOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>MakeVisibleOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.MakeVisibleOptions.html\">MakeVisibleOptions</a></li></ul><h1>Interface MakeVisibleOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wb_node.WunderbaumNode.html#makevisible\" class=\"tsd-kind-method\">WunderbaumNode.makeVisible</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">MakeVisibleOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.MakeVisibleOptions.html#noanimation\">noAnimation</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.MakeVisibleOptions.html#noevents\">noEvents</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.MakeVisibleOptions.html#scrollintoview\">scrollIntoView</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L802\">src/types.ts:802</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.MakeVisibleOptions.html#noanimation\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Animation?</span></a>\n<a href=\"types.MakeVisibleOptions.html#noevents\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Events?</span></a>\n<a href=\"types.MakeVisibleOptions.html#scrollintoview\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>scroll<wbr/>Into<wbr/>View?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"noanimation\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>no<wbr/>Animation</span><a href=\"#noanimation\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">noAnimation</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Do not animate expand (currently not implemented).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L804\">src/types.ts:804</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"noevents\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>no<wbr/>Events</span><a href=\"#noevents\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">noEvents</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Do not send events.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L808\">src/types.ts:808</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"scrollintoview\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>scroll<wbr/>Into<wbr/>View</span><a href=\"#scrollintoview\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">scrollIntoView</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Scroll node into visible viewport area if required.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L806\">src/types.ts:806</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#noanimation\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Animation</span></a><a href=\"#noevents\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Events</span></a><a href=\"#scrollintoview\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>scroll<wbr/>Into<wbr/>View</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.NavigateOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NavigateOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NavigateOptions.html\">NavigateOptions</a></li></ul><h1>Interface NavigateOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wb_node.WunderbaumNode.html#navigate\" class=\"tsd-kind-method\">WunderbaumNode.navigate</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">NavigateOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.NavigateOptions.html#activate\">activate</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.NavigateOptions.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L812\">src/types.ts:812</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.NavigateOptions.html#activate\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>activate?</span></a>\n<a href=\"types.NavigateOptions.html#event\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"activate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>activate</span><a href=\"#activate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">activate</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Activate the new node (otherwise focus only).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L814\">src/types.ts:814</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating event (e.g. KeyboardEvent) if any.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L816\">src/types.ts:816</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#activate\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>activate</span></a><a href=\"#event\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.NodeTypeDefinition.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NodeTypeDefinition | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NodeTypeDefinition.html\">NodeTypeDefinition</a></li></ul><h1>Interface NodeTypeDefinition</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a> and <a href=\"../classes/wb_node.WunderbaumNode.html#getoption\" class=\"tsd-kind-method\">WunderbaumNode.getOption()</a>\nto evaluate <code>node.NAME</code> setting and <code>tree.types[node.type].NAME</code>.</p>\n</div></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">NodeTypeDefinition</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.NodeTypeDefinition.html#checkbox\">checkbox</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.CheckboxOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">CheckboxOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.NodeTypeDefinition.html#classes\">classes</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.NodeTypeDefinition.html#colspan\">colspan</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.NodeTypeDefinition.html#icon\">icon</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.IconOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">IconOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.NodeTypeDefinition.html#icontooltip\">iconTooltip</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.TooltipOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TooltipOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]:</span> <span class=\"tsd-signature-type\">unknown</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel\"><h4 class=\"tsd-before-signature\">Indexable</h4><ul class=\"tsd-signatures\"><li class=\"tsd-index-signature\"><div class=\"tsd-signature\"><span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-parameter\">key</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]: </span><span class=\"tsd-signature-type\">unknown</span></div></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L402\">src/types.ts:402</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.NodeTypeDefinition.html#checkbox\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>checkbox?</span></a>\n<a href=\"types.NodeTypeDefinition.html#classes\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>classes?</span></a>\n<a href=\"types.NodeTypeDefinition.html#colspan\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>colspan?</span></a>\n<a href=\"types.NodeTypeDefinition.html#icon\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon?</span></a>\n<a href=\"types.NodeTypeDefinition.html#icontooltip\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Tooltip?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"checkbox\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>checkbox</span><a href=\"#checkbox\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">checkbox</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.CheckboxOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">CheckboxOption</a></div><div class=\"tsd-comment tsd-typography\"><p>En/disable checkbox for matching nodes.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L404\">src/types.ts:404</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"classes\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>classes</span><a href=\"#classes\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">classes</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Optional class names that are added to all <code>div.wb-row</code> elements of matching nodes.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L406\">src/types.ts:406</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"colspan\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>colspan</span><a href=\"#colspan\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colspan</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Only show title and hide other columns if any.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L408\">src/types.ts:408</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"icon\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>icon</span><a href=\"#icon\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">icon</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.IconOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">IconOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Default icon for matching nodes.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L410\">src/types.ts:410</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"icontooltip\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>icon<wbr/>Tooltip</span><a href=\"#icontooltip\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">iconTooltip</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.TooltipOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TooltipOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Default icon tooltip for matching nodes.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L412\">src/types.ts:412</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#checkbox\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>checkbox</span></a><a href=\"#classes\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>classes</span></a><a href=\"#colspan\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>colspan</span></a><a href=\"#icon\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon</span></a><a href=\"#icontooltip\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Tooltip</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.ReloadOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>ReloadOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.ReloadOptions.html\">ReloadOptions</a></li></ul><h1>Interface ReloadOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wunderbaum.Wunderbaum.html#reload\" class=\"tsd-kind-method\">Wunderbaum.reload</a> <code>options</code> argument.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">ReloadOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ReloadOptions.html#reactivate\">reactivate</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ReloadOptions.html#source\">source</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.SourceType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SourceType</a><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L940\">src/types.ts:940</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.ReloadOptions.html#reactivate\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>reactivate?</span></a>\n<a href=\"types.ReloadOptions.html#source\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>source?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"reactivate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>reactivate</span><a href=\"#reactivate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">reactivate</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Reactivate currently active node if any.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L944\">src/types.ts:944</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"source\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>source</span><a href=\"#source\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">source</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.SourceType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SourceType</a></div><div class=\"tsd-comment tsd-typography\"><p>Load this source instead.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-2\">initial</span><span class=\"hl-1\"> </span><span class=\"hl-6\">source</span><span class=\"hl-1\"> (</span><span class=\"hl-2\">if</span><span class=\"hl-1\"> </span><span class=\"hl-2\">loaded</span><span class=\"hl-1\"> </span><span class=\"hl-2\">via</span><span class=\"hl-1\"> </span><span class=\"hl-2\">ajax</span><span class=\"hl-1\">)</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L942\">src/types.ts:942</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#reactivate\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>reactivate</span></a><a href=\"#source\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>source</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.RenderOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>RenderOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.RenderOptions.html\">RenderOptions</a></li></ul><h1>Interface RenderOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wb_node.WunderbaumNode.html#_render\" class=\"tsd-kind-method\">WunderbaumNode._render</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">RenderOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.RenderOptions.html#after\">after</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.RenderOptions.html#change\">change</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../enums/types.ChangeType.html\" class=\"tsd-signature-type tsd-kind-enum\">ChangeType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.RenderOptions.html#isdatachange\">isDataChange</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.RenderOptions.html#isnew\">isNew</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.RenderOptions.html#preventscroll\">preventScroll</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.RenderOptions.html#resizecols\">resizeCols</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.RenderOptions.html#top\">top</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L820\">src/types.ts:820</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.RenderOptions.html#after\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>after?</span></a>\n<a href=\"types.RenderOptions.html#change\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>change?</span></a>\n<a href=\"types.RenderOptions.html#isdatachange\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>is<wbr/>Data<wbr/>Change?</span></a>\n<a href=\"types.RenderOptions.html#isnew\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>is<wbr/>New?</span></a>\n<a href=\"types.RenderOptions.html#preventscroll\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>prevent<wbr/>Scroll?</span></a>\n<a href=\"types.RenderOptions.html#resizecols\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>resize<wbr/>Cols?</span></a>\n<a href=\"types.RenderOptions.html#top\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>top?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"after\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>after</span><a href=\"#after\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">after</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Where to append a new node.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&#39;last&#39;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L824\">src/types.ts:824</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"change\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>change</span><a href=\"#change\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">change</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../enums/types.ChangeType.html\" class=\"tsd-signature-type tsd-kind-enum\">ChangeType</a></div><div class=\"tsd-comment tsd-typography\"><p>Which parts need update?</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-2\">ChangeType</span><span class=\"hl-1\">.</span><span class=\"hl-2\">data</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L822\">src/types.ts:822</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"isdatachange\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>is<wbr/>Data<wbr/>Change</span><a href=\"#isdatachange\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">isDataChange</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>@internal.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L830\">src/types.ts:830</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"isnew\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>is<wbr/>New</span><a href=\"#isnew\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">isNew</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>@internal.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-3\" class=\"tsd-anchor\"></a>Default<a href=\"#default-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L826\">src/types.ts:826</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"preventscroll\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>prevent<wbr/>Scroll</span><a href=\"#preventscroll\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">preventScroll</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>@internal.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-4\" class=\"tsd-anchor\"></a>Default<a href=\"#default-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L828\">src/types.ts:828</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"resizecols\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>resize<wbr/>Cols</span><a href=\"#resizecols\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">resizeCols</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>@internal.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-5\" class=\"tsd-anchor\"></a>Default<a href=\"#default-5\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L834\">src/types.ts:834</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"top\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>top</span><a href=\"#top\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">top</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>@internal.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-6\" class=\"tsd-anchor\"></a>Default<a href=\"#default-6\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L832\">src/types.ts:832</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#after\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>after</span></a><a href=\"#change\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>change</span></a><a href=\"#isdatachange\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>is<wbr/>Data<wbr/>Change</span></a><a href=\"#isnew\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>is<wbr/>New</span></a><a href=\"#preventscroll\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>prevent<wbr/>Scroll</span></a><a href=\"#resizecols\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>resize<wbr/>Cols</span></a><a href=\"#top\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>top</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.ResetOrderOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>ResetOrderOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.ResetOrderOptions.html\">ResetOrderOptions</a></li></ul><h1>Interface ResetOrderOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wb_node.WunderbaumNode.html#resetnativechildorder\" class=\"tsd-kind-method\">WunderbaumNode.resetNativeChildOrder</a> <code>options</code> argument.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">ResetOrderOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ResetOrderOptions.html#propname\">propName</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ResetOrderOptions.html#recursive\">recursive</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L950\">src/types.ts:950</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.ResetOrderOptions.html#propname\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>prop<wbr/>Name?</span></a>\n<a href=\"types.ResetOrderOptions.html#recursive\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>recursive?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"propname\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>prop<wbr/>Name</span><a href=\"#propname\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">propName</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>The name of the node property that will be renumbered.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><code>_nativeIndex</code>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L956\">src/types.ts:956</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"recursive\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>recursive</span><a href=\"#recursive\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">recursive</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Sort descendants recursively.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L952\">src/types.ts:952</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#propname\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>prop<wbr/>Name</span></a><a href=\"#recursive\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>recursive</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.ScrollIntoViewOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>ScrollIntoViewOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.ScrollIntoViewOptions.html\">ScrollIntoViewOptions</a></li></ul><h1>Interface ScrollIntoViewOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wb_node.WunderbaumNode.html#scrollintoview\" class=\"tsd-kind-method\">WunderbaumNode.scrollIntoView</a> <code>options</code> argument.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">ScrollIntoViewOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ScrollIntoViewOptions.html#noanimation\">noAnimation</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ScrollIntoViewOptions.html#noevents\">noEvents</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ScrollIntoViewOptions.html#ofsy\">ofsY</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ScrollIntoViewOptions.html#topnode\">topNode</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1524\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.ScrollIntoViewOptions\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">ScrollIntoViewOptions</span><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.ScrollToOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ScrollToOptions</a></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L838\">src/types.ts:838</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.ScrollIntoViewOptions.html#noanimation\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Animation?</span></a>\n<a href=\"types.ScrollIntoViewOptions.html#noevents\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Events?</span></a>\n<a href=\"types.ScrollIntoViewOptions.html#ofsy\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>ofsY?</span></a>\n<a href=\"types.ScrollIntoViewOptions.html#topnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>top<wbr/>Node?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"noanimation\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>no<wbr/>Animation</span><a href=\"#noanimation\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">noAnimation</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Do not animate (currently not implemented).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L840\">src/types.ts:840</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"noevents\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>no<wbr/>Events</span><a href=\"#noevents\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">noEvents</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Do not send events.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L842\">src/types.ts:842</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"ofsy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>ofsY</span><a href=\"#ofsy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">ofsY</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>Add N pixel offset at top.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L846\">src/types.ts:846</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"topnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>top<wbr/>Node</span><a href=\"#topnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">topNode</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>Keep this node visible at the top in any case.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L844\">src/types.ts:844</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#noanimation\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Animation</span></a><a href=\"#noevents\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Events</span></a><a href=\"#ofsy\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>ofsY</span></a><a href=\"#topnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>top<wbr/>Node</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.ScrollToOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>ScrollToOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.ScrollToOptions.html\">ScrollToOptions</a></li></ul><h1>Interface ScrollToOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wunderbaum.Wunderbaum.html#scrollto\" class=\"tsd-kind-method\">Wunderbaum.scrollTo</a> <code>options</code> argument.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">ScrollToOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ScrollToOptions.html#noanimation\">noAnimation</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ScrollToOptions.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ScrollToOptions.html#noevents\">noEvents</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ScrollToOptions.html#ofsy\">ofsY</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.ScrollToOptions.html#topnode\">topNode</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1529\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.ScrollToOptions\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.ScrollIntoViewOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">ScrollIntoViewOptions</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">ScrollToOptions</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L850\">src/types.ts:850</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.ScrollToOptions.html#noanimation\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Animation?</span></a>\n<a href=\"types.ScrollToOptions.html#node\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.ScrollToOptions.html#noevents\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Events?</span></a>\n<a href=\"types.ScrollToOptions.html#ofsy\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>ofsY?</span></a>\n<a href=\"types.ScrollToOptions.html#topnode\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>top<wbr/>Node?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"noanimation\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>no<wbr/>Animation</span><a href=\"#noanimation\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">noAnimation</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Do not animate (currently not implemented).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.ScrollIntoViewOptions.html\">ScrollIntoViewOptions</a>.<a href=\"types.ScrollIntoViewOptions.html#noanimation\">noAnimation</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L840\">src/types.ts:840</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>Which node to scroll into the viewport.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L852\">src/types.ts:852</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"noevents\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>no<wbr/>Events</span><a href=\"#noevents\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">noEvents</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Do not send events.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.ScrollIntoViewOptions.html\">ScrollIntoViewOptions</a>.<a href=\"types.ScrollIntoViewOptions.html#noevents\">noEvents</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L842\">src/types.ts:842</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"ofsy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>ofsY</span><a href=\"#ofsy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">ofsY</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>Add N pixel offset at top.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.ScrollIntoViewOptions.html\">ScrollIntoViewOptions</a>.<a href=\"types.ScrollIntoViewOptions.html#ofsy\">ofsY</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L846\">src/types.ts:846</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"topnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>top<wbr/>Node</span><a href=\"#topnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">topNode</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>Keep this node visible at the top in any case.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.ScrollIntoViewOptions.html\">ScrollIntoViewOptions</a>.<a href=\"types.ScrollIntoViewOptions.html#topnode\">topNode</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L844\">src/types.ts:844</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#noanimation\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Animation</span></a><a href=\"#node\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#noevents\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Events</span></a><a href=\"#ofsy\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>ofsY</span></a><a href=\"#topnode\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>top<wbr/>Node</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.SetActiveOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SetActiveOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SetActiveOptions.html\">SetActiveOptions</a></li></ul><h1>Interface SetActiveOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wb_node.WunderbaumNode.html#setactive\" class=\"tsd-kind-method\">WunderbaumNode.setActive</a> <code>options</code> argument.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">SetActiveOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetActiveOptions.html#colidx\">colIdx</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetActiveOptions.html#edit\">edit</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetActiveOptions.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetActiveOptions.html#focustree\">focusTree</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetActiveOptions.html#noevents\">noEvents</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetActiveOptions.html#retrigger\">retrigger</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L856\">src/types.ts:856</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.SetActiveOptions.html#colidx\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Idx?</span></a>\n<a href=\"types.SetActiveOptions.html#edit\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>edit?</span></a>\n<a href=\"types.SetActiveOptions.html#event\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.SetActiveOptions.html#focustree\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>focus<wbr/>Tree?</span></a>\n<a href=\"types.SetActiveOptions.html#noevents\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Events?</span></a>\n<a href=\"types.SetActiveOptions.html#retrigger\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>retrigger?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"colidx\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>col<wbr/>Idx</span><a href=\"#colidx\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colIdx</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>Also call <a href=\"../classes/wunderbaum.Wunderbaum.html#setcolumn\" class=\"tsd-kind-method\">Wunderbaum.setColumn</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L870\">src/types.ts:870</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"edit\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>edit</span><a href=\"#edit\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">edit</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Focus embedded input control of the grid cell if any (requires colIdx &gt;= 0).\nIf colIdx is 0 or '*', the node title is put into edit mode.\nImplies <code>focusTree: true</code>, requires <code>colIdx</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L876\">src/types.ts:876</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Optional original event that will be passed to the (de)activate handler.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L868\">src/types.ts:868</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"focustree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>focus<wbr/>Tree</span><a href=\"#focustree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">focusTree</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Call <code>tree.setFocus()</code> to acquire keyboard focus (@default: false).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L866\">src/types.ts:866</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"noevents\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>no<wbr/>Events</span><a href=\"#noevents\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">noEvents</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Do not generate (de)activate event  (@default: false).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L860\">src/types.ts:860</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"retrigger\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>retrigger</span><a href=\"#retrigger\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">retrigger</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Generate (de)activate event, even if node already has this status (@default: false).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L858\">src/types.ts:858</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#colidx\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Idx</span></a><a href=\"#edit\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>edit</span></a><a href=\"#event\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#focustree\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>focus<wbr/>Tree</span></a><a href=\"#noevents\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Events</span></a><a href=\"#retrigger\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>retrigger</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.SetColumnOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SetColumnOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SetColumnOptions.html\">SetColumnOptions</a></li></ul><h1>Interface SetColumnOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wunderbaum.Wunderbaum.html#setcolumn\" class=\"tsd-kind-method\">Wunderbaum.setColumn</a> <code>options</code> argument.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">SetColumnOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetColumnOptions.html#edit\">edit</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetColumnOptions.html#scrollintoview\">scrollIntoView</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L880\">src/types.ts:880</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.SetColumnOptions.html#edit\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>edit?</span></a>\n<a href=\"types.SetColumnOptions.html#scrollintoview\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>scroll<wbr/>Into<wbr/>View?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"edit\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>edit</span><a href=\"#edit\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">edit</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Focus embedded input control of the grid cell if any .\nIf colIdx is 0 or '*', the node title is put into edit mode.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L886\">src/types.ts:886</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"scrollintoview\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>scroll<wbr/>Into<wbr/>View</span><a href=\"#scrollintoview\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">scrollIntoView</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Horizontically scroll into view. @default: true</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L888\">src/types.ts:888</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#edit\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>edit</span></a><a href=\"#scrollintoview\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>scroll<wbr/>Into<wbr/>View</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.SetExpandedOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SetExpandedOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SetExpandedOptions.html\">SetExpandedOptions</a></li></ul><h1>Interface SetExpandedOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wb_node.WunderbaumNode.html#setexpanded\" class=\"tsd-kind-method\">WunderbaumNode.setExpanded</a> <code>options</code> argument.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">SetExpandedOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetExpandedOptions.html#force\">force</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetExpandedOptions.html#immediate\">immediate</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetExpandedOptions.html#noanimation\">noAnimation</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetExpandedOptions.html#noevents\">noEvents</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetExpandedOptions.html#resetlazy\">resetLazy</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetExpandedOptions.html#scrollintoview\">scrollIntoView</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L892\">src/types.ts:892</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.SetExpandedOptions.html#force\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>force?</span></a>\n<a href=\"types.SetExpandedOptions.html#immediate\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>immediate?</span></a>\n<a href=\"types.SetExpandedOptions.html#noanimation\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Animation?</span></a>\n<a href=\"types.SetExpandedOptions.html#noevents\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Events?</span></a>\n<a href=\"types.SetExpandedOptions.html#resetlazy\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>reset<wbr/>Lazy?</span></a>\n<a href=\"types.SetExpandedOptions.html#scrollintoview\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>scroll<wbr/>Into<wbr/>View?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"force\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>force</span><a href=\"#force\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">force</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Ignore <a href=\"wb_options.WunderbaumOptions.html\" class=\"tsd-kind-interface\">WunderbaumOptions</a>.minExpandLevel.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L894\">src/types.ts:894</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"immediate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>immediate</span><a href=\"#immediate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">immediate</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Immediately update viewport (async otherwise).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L896\">src/types.ts:896</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"noanimation\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>no<wbr/>Animation</span><a href=\"#noanimation\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">noAnimation</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Do not animate expand (currently not implemented).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L898\">src/types.ts:898</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"noevents\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>no<wbr/>Events</span><a href=\"#noevents\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">noEvents</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Do not send events.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-3\" class=\"tsd-anchor\"></a>Default<a href=\"#default-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L900\">src/types.ts:900</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"resetlazy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>reset<wbr/>Lazy</span><a href=\"#resetlazy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">resetLazy</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Unload lazily loaded children if any (if collapsing).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-4\" class=\"tsd-anchor\"></a>Default<a href=\"#default-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L902\">src/types.ts:902</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"scrollintoview\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>scroll<wbr/>Into<wbr/>View</span><a href=\"#scrollintoview\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">scrollIntoView</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Scroll up to bring expanded nodes into viewport.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-5\" class=\"tsd-anchor\"></a>Default<a href=\"#default-5\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L904\">src/types.ts:904</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#force\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>force</span></a><a href=\"#immediate\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>immediate</span></a><a href=\"#noanimation\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Animation</span></a><a href=\"#noevents\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Events</span></a><a href=\"#resetlazy\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>reset<wbr/>Lazy</span></a><a href=\"#scrollintoview\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>scroll<wbr/>Into<wbr/>View</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.SetSelectedOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SetSelectedOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SetSelectedOptions.html\">SetSelectedOptions</a></li></ul><h1>Interface SetSelectedOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wb_node.WunderbaumNode.html#setselected\" class=\"tsd-kind-method\">WunderbaumNode.setSelected</a> <code>options</code> argument.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">SetSelectedOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetSelectedOptions.html#callback\">callback</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.NodeSelectCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeSelectCallback</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetSelectedOptions.html#force\">force</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetSelectedOptions.html#noevents\">noEvents</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetSelectedOptions.html#propagatedown\">propagateDown</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L916\">src/types.ts:916</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.SetSelectedOptions.html#callback\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>callback?</span></a>\n<a href=\"types.SetSelectedOptions.html#force\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>force?</span></a>\n<a href=\"types.SetSelectedOptions.html#noevents\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Events?</span></a>\n<a href=\"types.SetSelectedOptions.html#propagatedown\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>propagate<wbr/>Down?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"callback\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>callback</span><a href=\"#callback\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">callback</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.NodeSelectCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeSelectCallback</a></div><div class=\"tsd-comment tsd-typography\"><p>Called for every node. May return false to prevent action.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">null</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L926\">src/types.ts:926</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"force\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>force</span><a href=\"#force\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">force</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Ignore restrictions, e.g. (<code>unselectable</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L918\">src/types.ts:918</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"noevents\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>no<wbr/>Events</span><a href=\"#noevents\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">noEvents</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Do not send <code>beforeSelect</code> or <code>select</code> events.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L920\">src/types.ts:920</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"propagatedown\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>propagate<wbr/>Down</span><a href=\"#propagatedown\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">propagateDown</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Apply to all descendant nodes (only for <code>selectMode: 'multi'</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-3\" class=\"tsd-anchor\"></a>Default<a href=\"#default-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L922\">src/types.ts:922</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#callback\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>callback</span></a><a href=\"#force\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>force</span></a><a href=\"#noevents\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>no<wbr/>Events</span></a><a href=\"#propagatedown\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>propagate<wbr/>Down</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.SetStateOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SetStateOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SetStateOptions.html\">SetStateOptions</a></li></ul><h1>Interface SetStateOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wunderbaum.Wunderbaum.html#setstate\" class=\"tsd-kind-method\">Wunderbaum.setState</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">SetStateOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetStateOptions.html#expandlazy\">expandLazy</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L774\">src/types.ts:774</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.SetStateOptions.html#expandlazy\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expand<wbr/>Lazy?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"expandlazy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>expand<wbr/>Lazy</span><a href=\"#expandlazy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">expandLazy</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Recursively load lazy nodes as needed.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L776\">src/types.ts:776</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#expandlazy\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expand<wbr/>Lazy</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.SetStatusOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SetStatusOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SetStatusOptions.html\">SetStatusOptions</a></li></ul><h1>Interface SetStatusOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wb_node.WunderbaumNode.html#setstatus\" class=\"tsd-kind-method\">WunderbaumNode.setStatus</a> <code>options</code> argument.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">SetStatusOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetStatusOptions.html#details\">details</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SetStatusOptions.html#message\">message</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L930\">src/types.ts:930</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.SetStatusOptions.html#details\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>details?</span></a>\n<a href=\"types.SetStatusOptions.html#message\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>message?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"details\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>details</span><a href=\"#details\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">details</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Used as tooltip.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L934\">src/types.ts:934</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"message\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>message</span><a href=\"#message\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">message</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Displayed as status node title.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L932\">src/types.ts:932</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#details\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>details</span></a><a href=\"#message\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>message</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.SortOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SortOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SortOptions.html\">SortOptions</a></li></ul><h1>Interface SortOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wunderbaum.Wunderbaum.html#sort\" class=\"tsd-kind-method\">Wunderbaum.sort</a> and <a href=\"../classes/wb_node.WunderbaumNode.html#sort\" class=\"tsd-kind-method\">WunderbaumNode.sort</a>\n<code>options</code> argument.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">SortOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SortOptions.html#caseinsensitive\">caseInsensitive</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SortOptions.html#cmp\">cmp</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.SortCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SortCallback</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SortOptions.html#colid\">colId</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SortOptions.html#deep\">deep</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SortOptions.html#key\">key</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.SortKeyCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SortKeyCallback</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SortOptions.html#nativeorderpropname\">nativeOrderPropName</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SortOptions.html#order\">order</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.SortOrderType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SortOrderType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SortOptions.html#propname\">propName</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SortOptions.html#updatecolinfo\">updateColInfo</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L963\">src/types.ts:963</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.SortOptions.html#caseinsensitive\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>case<wbr/>Insensitive?</span></a>\n<a href=\"types.SortOptions.html#cmp\" class=\"tsd-index-link deprecated\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>cmp?</span></a>\n<a href=\"types.SortOptions.html#colid\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Id?</span></a>\n<a href=\"types.SortOptions.html#deep\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>deep?</span></a>\n<a href=\"types.SortOptions.html#key\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>key?</span></a>\n<a href=\"types.SortOptions.html#nativeorderpropname\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>native<wbr/>Order<wbr/>Prop<wbr/>Name?</span></a>\n<a href=\"types.SortOptions.html#order\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>order?</span></a>\n<a href=\"types.SortOptions.html#propname\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>prop<wbr/>Name?</span></a>\n<a href=\"types.SortOptions.html#updatecolinfo\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>update<wbr/>Col<wbr/>Info?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"caseinsensitive\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>case<wbr/>Insensitive</span><a href=\"#caseinsensitive\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">caseInsensitive</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Sort string values case insensitive.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L984\">src/types.ts:984</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"cmp\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span class=\"deprecated\">cmp</span><a href=\"#cmp\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">cmp</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.SortCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SortCallback</a></div><div class=\"tsd-comment tsd-typography\"><p>Callback that determines the order.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../functions/common.nodeTitleSorter.html\" class=\"tsd-kind-function\">common.nodeTitleSorter</a></p>\n</div><div class=\"tsd-tag-deprecated\"><h4 class=\"tsd-anchor-link\"><a id=\"deprecated\" class=\"tsd-anchor\"></a>Deprecated<a href=\"#deprecated\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>use <a href=\"types.SortOptions.html#key\" class=\"tsd-kind-property\">key</a> instead</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L974\">src/types.ts:974</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"colid\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>col<wbr/>Id</span><a href=\"#colid\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colId</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Column ID as defined in <code>tree.columns</code> definition. Required if updateColInfo is true.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1002\">src/types.ts:1002</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"deep\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>deep</span><a href=\"#deep\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">deep</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Sort descendants recursively.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L982\">src/types.ts:982</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"key\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>key</span><a href=\"#key\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">key</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.SortKeyCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SortKeyCallback</a></div><div class=\"tsd-comment tsd-typography\"><p>Callback that determines a node representation for comparison.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-3\" class=\"tsd-anchor\"></a>Default<a href=\"#default-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>common.nodeTitleKeyGetter</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L970\">src/types.ts:970</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"nativeorderpropname\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>native<wbr/>Order<wbr/>Prop<wbr/>Name</span><a href=\"#nativeorderpropname\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">nativeOrderPropName</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Sort by this property if order is <code>undefined</code>.\nSee also <a href=\"../classes/wb_node.WunderbaumNode.html#resetnativechildorder\" class=\"tsd-kind-method\">WunderbaumNode.resetNativeChildOrder</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-4\" class=\"tsd-anchor\"></a>Default<a href=\"#default-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><code>_nativeIndex</code>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L990\">src/types.ts:990</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"order\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>order</span><a href=\"#order\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">order</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.SortOrderType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SortOrderType</a></div><div class=\"tsd-comment tsd-typography\"><p>Sort order 'asc' or 'desc'.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-5\" class=\"tsd-anchor\"></a>Default<a href=\"#default-5\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>'asc' (or if <code>updateColInfo</code> is true, the rotated status of the\ncolumn definition.\nSee also <a href=\"wb_options.WunderbaumOptions.html#sortfoldersfirst\" class=\"tsd-kind-property\">WunderbaumOptions.sortFoldersFirst</a>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L980\">src/types.ts:980</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"propname\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>prop<wbr/>Name</span><a href=\"#propname\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">propName</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>The name of the node property that will be used for sorting.\nMandatory, unless  <a href=\"types.SortOptions.html#key\" class=\"tsd-kind-property\">key</a> or  <a href=\"types.SortOptions.html#colid\" class=\"tsd-kind-property\">colId</a> are given.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L967\">src/types.ts:967</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"updatecolinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>update<wbr/>Col<wbr/>Info</span><a href=\"#updatecolinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">updateColInfo</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Rotate sort order (asc -&gt; desc -&gt; none) before sorting.\nUpdate the sort icons in the column header\nNote:\nSorting is done in-place. There is no 'unsorted' state, but we can\ncall <code>setCurrentSortOrder()</code> to renumber the <code>node._sortIdx</code> property,\nwhich will be used as sort key, when <code>order</code> is <code>undefined</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-6\" class=\"tsd-anchor\"></a>Default<a href=\"#default-6\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1000\">src/types.ts:1000</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#caseinsensitive\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>case<wbr/>Insensitive</span></a><a href=\"#cmp\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>cmp</span></a><a href=\"#colid\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Id</span></a><a href=\"#deep\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>deep</span></a><a href=\"#key\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>key</span></a><a href=\"#nativeorderpropname\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>native<wbr/>Order<wbr/>Prop<wbr/>Name</span></a><a href=\"#order\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>order</span></a><a href=\"#propname\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>prop<wbr/>Name</span></a><a href=\"#updatecolinfo\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>update<wbr/>Col<wbr/>Info</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.SourceAjaxType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SourceAjaxType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SourceAjaxType.html\">SourceAjaxType</a></li></ul><h1>Interface SourceAjaxType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">SourceAjaxType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SourceAjaxType.html#body\">body</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SourceAjaxType.html#options\">options</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">RequestInit</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SourceAjaxType.html#params\">params</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SourceAjaxType.html#url\">url</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L31\">src/types.ts:31</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.SourceAjaxType.html#body\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>body?</span></a>\n<a href=\"types.SourceAjaxType.html#options\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>options?</span></a>\n<a href=\"types.SourceAjaxType.html#params\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>params?</span></a>\n<a href=\"types.SourceAjaxType.html#url\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>url</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"body\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>body</span><a href=\"#body\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">body</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L34\">src/types.ts:34</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"options\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>options</span><a href=\"#options\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">options</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">RequestInit</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L35\">src/types.ts:35</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"params\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>params</span><a href=\"#params\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">params</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L33\">src/types.ts:33</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"url\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>url</span><a href=\"#url\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">url</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L32\">src/types.ts:32</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#body\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>body</span></a><a href=\"#options\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>options</span></a><a href=\"#params\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>params</span></a><a href=\"#url\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>url</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.SourceObjectType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SourceObjectType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SourceObjectType.html\">SourceObjectType</a></li></ul><h1>Interface SourceObjectType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">SourceObjectType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SourceObjectType.html#_format\">_format</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">&quot;flat&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;nested&quot;</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SourceObjectType.html#_keymap\">_keyMap</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SourceObjectType.html#_positional\">_positional</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SourceObjectType.html#_valuemap\">_valueMap</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span> <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SourceObjectType.html#_version\">_version</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SourceObjectType.html#children\">children</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.SourceListType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SourceListType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SourceObjectType.html#columns\">columns</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.ColumnDefinitionList.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ColumnDefinitionList</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.SourceObjectType.html#types\">types</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.NodeTypeDefinitionMap.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeTypeDefinitionMap</a><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L38\">src/types.ts:38</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.SourceObjectType.html#_format\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_format?</span></a>\n<a href=\"types.SourceObjectType.html#_keymap\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_key<wbr/>Map?</span></a>\n<a href=\"types.SourceObjectType.html#_positional\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_positional?</span></a>\n<a href=\"types.SourceObjectType.html#_valuemap\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_value<wbr/>Map?</span></a>\n<a href=\"types.SourceObjectType.html#_version\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_version?</span></a>\n<a href=\"types.SourceObjectType.html#children\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>children</span></a>\n<a href=\"types.SourceObjectType.html#columns\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns?</span></a>\n<a href=\"types.SourceObjectType.html#types\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>types?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"_format\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>_format</span><a href=\"#_format\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_format</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">&quot;flat&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;nested&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L39\">src/types.ts:39</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"_keymap\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>_key<wbr/>Map</span><a href=\"#_keymap\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_keyMap</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L44\">src/types.ts:44</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"_positional\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>_positional</span><a href=\"#_positional\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_positional</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L45\">src/types.ts:45</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"_valuemap\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>_value<wbr/>Map</span><a href=\"#_valuemap\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_valueMap</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span> <span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L47\">src/types.ts:47</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"_version\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>_version</span><a href=\"#_version\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_version</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L40\">src/types.ts:40</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"children\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>children</span><a href=\"#children\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">children</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.SourceListType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SourceListType</a></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L43\">src/types.ts:43</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"columns\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>columns</span><a href=\"#columns\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">columns</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.ColumnDefinitionList.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ColumnDefinitionList</a></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L42\">src/types.ts:42</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"types\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>types</span><a href=\"#types\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">types</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.NodeTypeDefinitionMap.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeTypeDefinitionMap</a></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L41\">src/types.ts:41</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#_format\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_format</span></a><a href=\"#_keymap\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_key<wbr/>Map</span></a><a href=\"#_positional\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_positional</span></a><a href=\"#_valuemap\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_value<wbr/>Map</span></a><a href=\"#_version\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_version</span></a><a href=\"#children\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>children</span></a><a href=\"#columns\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns</span></a><a href=\"#types\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>types</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.TreeStateDefinition.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>TreeStateDefinition | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.TreeStateDefinition.html\">TreeStateDefinition</a></li></ul><h1>Interface TreeStateDefinition</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Used by <a href=\"../classes/wunderbaum.Wunderbaum.html#getstate\" class=\"tsd-kind-method\">Wunderbaum.getState</a> and <a href=\"../classes/wunderbaum.Wunderbaum.html#setstate\" class=\"tsd-kind-method\">Wunderbaum.setState</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">TreeStateDefinition</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.TreeStateDefinition.html#activecolidx\">activeColIdx</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.TreeStateDefinition.html#activekey\">activeKey</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.TreeStateDefinition.html#expandedkeys\">expandedKeys</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.TreeStateDefinition.html#selectedkeys\">selectedKeys</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L780\">src/types.ts:780</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.TreeStateDefinition.html#activecolidx\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>active<wbr/>Col<wbr/>Idx</span></a>\n<a href=\"types.TreeStateDefinition.html#activekey\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>active<wbr/>Key</span></a>\n<a href=\"types.TreeStateDefinition.html#expandedkeys\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expanded<wbr/>Keys</span></a>\n<a href=\"types.TreeStateDefinition.html#selectedkeys\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>selected<wbr/>Keys</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"activecolidx\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>active<wbr/>Col<wbr/>Idx</span><a href=\"#activecolidx\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">activeColIdx</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>The active column index if any.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L786\">src/types.ts:786</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"activekey\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>active<wbr/>Key</span><a href=\"#activekey\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">activeKey</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>The active node's key if any.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L784\">src/types.ts:784</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"expandedkeys\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>expanded<wbr/>Keys</span><a href=\"#expandedkeys\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">expandedKeys</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span></div><div class=\"tsd-comment tsd-typography\"><p>List of expanded node's keys.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L782\">src/types.ts:782</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"selectedkeys\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>selected<wbr/>Keys</span><a href=\"#selectedkeys\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">selectedKeys</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">undefined</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span></div><div class=\"tsd-comment tsd-typography\"><p>List of selected node's keys.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L788\">src/types.ts:788</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#activecolidx\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>active<wbr/>Col<wbr/>Idx</span></a><a href=\"#activekey\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>active<wbr/>Key</span></a><a href=\"#expandedkeys\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expanded<wbr/>Keys</span></a><a href=\"#selectedkeys\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>selected<wbr/>Keys</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.UpdateOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>UpdateOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.UpdateOptions.html\">UpdateOptions</a></li></ul><h1>Interface UpdateOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wb_node.WunderbaumNode.html#update\" class=\"tsd-kind-method\">WunderbaumNode.update</a> <code>options</code> argument.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">UpdateOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.UpdateOptions.html#immediate\">immediate</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L908\">src/types.ts:908</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.UpdateOptions.html#immediate\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>immediate?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"immediate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>immediate</span><a href=\"#immediate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">immediate</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Force immediate redraw instead of throttled/async mode.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L910\">src/types.ts:910</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#immediate\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>immediate</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.VisitRowsOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>VisitRowsOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.VisitRowsOptions.html\">VisitRowsOptions</a></li></ul><h1>Interface VisitRowsOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Options passed to <a href=\"../classes/wunderbaum.Wunderbaum.html#visitrows\" class=\"tsd-kind-method\">Wunderbaum.visitRows</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">VisitRowsOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.VisitRowsOptions.html#includehidden\">includeHidden</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.VisitRowsOptions.html#includeself\">includeSelf</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.VisitRowsOptions.html#reverse\">reverse</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.VisitRowsOptions.html#start\">start</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.VisitRowsOptions.html#wrap\">wrap</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1012\">src/types.ts:1012</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.VisitRowsOptions.html#includehidden\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>include<wbr/>Hidden?</span></a>\n<a href=\"types.VisitRowsOptions.html#includeself\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>include<wbr/>Self?</span></a>\n<a href=\"types.VisitRowsOptions.html#reverse\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>reverse?</span></a>\n<a href=\"types.VisitRowsOptions.html#start\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>start?</span></a>\n<a href=\"types.VisitRowsOptions.html#wrap\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>wrap?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"includehidden\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>include<wbr/>Hidden</span><a href=\"#includehidden\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">includeHidden</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Skip filtered nodes and children of collapsed nodes.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1014\">src/types.ts:1014</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"includeself\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>include<wbr/>Self</span><a href=\"#includeself\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">includeSelf</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Return the start node as first result.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1016\">src/types.ts:1016</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"reverse\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>reverse</span><a href=\"#reverse\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">reverse</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Traverse in opposite direction, i.e. bottom up.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1018\">src/types.ts:1018</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"start\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>start</span><a href=\"#start\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">start</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>Start traversal at this node</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-3\" class=\"tsd-anchor\"></a>Default<a href=\"#default-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-6\">first</span><span class=\"hl-1\"> (</span><span class=\"hl-2\">topmost</span><span class=\"hl-1\">) </span><span class=\"hl-2\">tree</span><span class=\"hl-1\"> </span><span class=\"hl-2\">node</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1020\">src/types.ts:1020</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"wrap\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>wrap</span><a href=\"#wrap\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">wrap</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Wrap around at last node and continue at the top,\nuntil the start node is reached again</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-4\" class=\"tsd-anchor\"></a>Default<a href=\"#default-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1023\">src/types.ts:1023</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#includehidden\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>include<wbr/>Hidden</span></a><a href=\"#includeself\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>include<wbr/>Self</span></a><a href=\"#reverse\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>reverse</span></a><a href=\"#start\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>start</span></a><a href=\"#wrap\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>wrap</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbActivateEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbActivateEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbActivateEventType.html\">WbActivateEventType</a></li></ul><h1>Interface WbActivateEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbActivateEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbActivateEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbActivateEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbActivateEventType.html#prevnode\">prevNode</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbActivateEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbActivateEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbActivateEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbActivateEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1221\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbActivateEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbActivateEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L244\">src/types.ts:244</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbActivateEventType.html#event\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a>\n<a href=\"types.WbActivateEventType.html#node\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbActivateEventType.html#prevnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>prev<wbr/>Node</span></a>\n<a href=\"types.WbActivateEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbActivateEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbActivateEventType.html#typeinfo\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.WbActivateEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>The original event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Overrides <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L247\">src/types.ts:247</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected target node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#node\">node</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L236\">src/types.ts:236</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"prevnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>prev<wbr/>Node</span><a href=\"#prevnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">prevNode</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L245\">src/types.ts:245</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#node\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#prevnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>prev<wbr/>Node</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbButtonClickEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbButtonClickEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbButtonClickEventType.html\">WbButtonClickEventType</a></li></ul><h1>Interface WbButtonClickEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbButtonClickEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbButtonClickEventType.html#command\">command</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbButtonClickEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbButtonClickEventType.html#info\">info</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbEventInfo.html\" class=\"tsd-signature-type tsd-kind-interface\">WbEventInfo</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbButtonClickEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbButtonClickEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbButtonClickEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1347\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbButtonClickEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbButtonClickEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L352\">src/types.ts:352</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbButtonClickEventType.html#command\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>command</span></a>\n<a href=\"types.WbButtonClickEventType.html#event\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.WbButtonClickEventType.html#info\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>info</span></a>\n<a href=\"types.WbButtonClickEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbButtonClickEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbButtonClickEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"command\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>command</span><a href=\"#command\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">command</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>The associated command, e.g. 'menu', 'sort', 'filter', ...</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L355\">src/types.ts:355</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating HTML event if any (e.g. <code>click</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L230\">src/types.ts:230</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"info\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>info</span><a href=\"#info\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">info</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbEventInfo.html\" class=\"tsd-signature-type tsd-kind-interface\">WbEventInfo</a></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L353\">src/types.ts:353</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#command\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>command</span></a><a href=\"#event\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#info\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>info</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbChangeEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbChangeEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbChangeEventType.html\">WbChangeEventType</a></li></ul><h1>Interface WbChangeEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbChangeEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbChangeEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbChangeEventType.html#info\">info</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbEventInfo.html\" class=\"tsd-signature-type tsd-kind-interface\">WbEventInfo</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbChangeEventType.html#inputelem\">inputElem</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLInputElement</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLSelectElement</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLTextAreaElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbChangeEventType.html#inputvalid\">inputValid</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbChangeEventType.html#inputvalue\">inputValue</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbChangeEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbChangeEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbChangeEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbChangeEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbChangeEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1229\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbChangeEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbChangeEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L250\">src/types.ts:250</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbChangeEventType.html#event\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.WbChangeEventType.html#info\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>info</span></a>\n<a href=\"types.WbChangeEventType.html#inputelem\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>input<wbr/>Elem</span></a>\n<a href=\"types.WbChangeEventType.html#inputvalid\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>input<wbr/>Valid</span></a>\n<a href=\"types.WbChangeEventType.html#inputvalue\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>input<wbr/>Value</span></a>\n<a href=\"types.WbChangeEventType.html#node\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbChangeEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbChangeEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbChangeEventType.html#typeinfo\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.WbChangeEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating HTML event if any (e.g. <code>click</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L230\">src/types.ts:230</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"info\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>info</span><a href=\"#info\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">info</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbEventInfo.html\" class=\"tsd-signature-type tsd-kind-interface\">WbEventInfo</a></div><div class=\"tsd-comment tsd-typography\"><p>Additional information derived from the original change event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L252\">src/types.ts:252</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"inputelem\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>input<wbr/>Elem</span><a href=\"#inputelem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">inputElem</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLInputElement</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLSelectElement</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLTextAreaElement</span></div><div class=\"tsd-comment tsd-typography\"><p>The embedded element that fired the change event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L254\">src/types.ts:254</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"inputvalid\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>input<wbr/>Valid</span><a href=\"#inputvalid\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">inputValid</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Result of <code>inputElem.checkValidity()</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L258\">src/types.ts:258</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"inputvalue\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>input<wbr/>Value</span><a href=\"#inputvalue\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">inputValue</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>The new value of the embedded element, depending on the input element type.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L256\">src/types.ts:256</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected target node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#node\">node</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L236\">src/types.ts:236</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#info\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>info</span></a><a href=\"#inputelem\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>input<wbr/>Elem</span></a><a href=\"#inputvalid\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>input<wbr/>Valid</span></a><a href=\"#inputvalue\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>input<wbr/>Value</span></a><a href=\"#node\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbClickEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbClickEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbClickEventType.html\">WbClickEventType</a></li></ul><h1>Interface WbClickEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbClickEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbClickEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">MouseEvent</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbClickEventType.html#info\">info</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbEventInfo.html\" class=\"tsd-signature-type tsd-kind-interface\">WbEventInfo</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbClickEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbClickEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbClickEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbClickEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1240\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbClickEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbClickEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L261\">src/types.ts:261</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbClickEventType.html#event\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a>\n<a href=\"types.WbClickEventType.html#info\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>info</span></a>\n<a href=\"types.WbClickEventType.html#node\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbClickEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbClickEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbClickEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">MouseEvent</span></div><div class=\"tsd-comment tsd-typography\"><p>The original event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Overrides <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L263\">src/types.ts:263</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"info\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>info</span><a href=\"#info\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">info</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbEventInfo.html\" class=\"tsd-signature-type tsd-kind-interface\">WbEventInfo</a></div><div class=\"tsd-comment tsd-typography\"><p>Additional information derived from the original mouse event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L267\">src/types.ts:267</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The clicked node if any.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L265\">src/types.ts:265</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#info\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>info</span></a><a href=\"#node\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbDeactivateEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbDeactivateEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbDeactivateEventType.html\">WbDeactivateEventType</a></li></ul><h1>Interface WbDeactivateEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbDeactivateEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbDeactivateEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbDeactivateEventType.html#nextnode\">nextNode</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbDeactivateEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbDeactivateEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbDeactivateEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbDeactivateEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbDeactivateEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1247\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbDeactivateEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbDeactivateEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L270\">src/types.ts:270</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbDeactivateEventType.html#event\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a>\n<a href=\"types.WbDeactivateEventType.html#nextnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>next<wbr/>Node</span></a>\n<a href=\"types.WbDeactivateEventType.html#node\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbDeactivateEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbDeactivateEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbDeactivateEventType.html#typeinfo\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.WbDeactivateEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>The original event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Overrides <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L273\">src/types.ts:273</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"nextnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>next<wbr/>Node</span><a href=\"#nextnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">nextNode</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L271\">src/types.ts:271</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected target node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#node\">node</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L236\">src/types.ts:236</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#nextnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>next<wbr/>Node</span></a><a href=\"#node\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbEditApplyEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbEditApplyEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbEditApplyEventType.html\">WbEditApplyEventType</a></li></ul><h1>Interface WbEditApplyEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbEditApplyEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditApplyEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditApplyEventType.html#info\">info</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbEventInfo.html\" class=\"tsd-signature-type tsd-kind-interface\">WbEventInfo</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditApplyEventType.html#inputelem\">inputElem</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLInputElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditApplyEventType.html#inputvalid\">inputValid</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditApplyEventType.html#newvalue\">newValue</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditApplyEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditApplyEventType.html#oldvalue\">oldValue</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditApplyEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditApplyEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditApplyEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditApplyEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1255\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbEditApplyEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbEditApplyEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L276\">src/types.ts:276</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbEditApplyEventType.html#event\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.WbEditApplyEventType.html#info\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>info</span></a>\n<a href=\"types.WbEditApplyEventType.html#inputelem\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>input<wbr/>Elem</span></a>\n<a href=\"types.WbEditApplyEventType.html#inputvalid\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>input<wbr/>Valid</span></a>\n<a href=\"types.WbEditApplyEventType.html#newvalue\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>new<wbr/>Value</span></a>\n<a href=\"types.WbEditApplyEventType.html#node\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbEditApplyEventType.html#oldvalue\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>old<wbr/>Value</span></a>\n<a href=\"types.WbEditApplyEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbEditApplyEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbEditApplyEventType.html#typeinfo\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.WbEditApplyEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating HTML event if any (e.g. <code>click</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L230\">src/types.ts:230</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"info\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>info</span><a href=\"#info\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">info</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbEventInfo.html\" class=\"tsd-signature-type tsd-kind-interface\">WbEventInfo</a></div><div class=\"tsd-comment tsd-typography\"><p>Additional information derived from the original change event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L278\">src/types.ts:278</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"inputelem\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>input<wbr/>Elem</span><a href=\"#inputelem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">inputElem</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLInputElement</span></div><div class=\"tsd-comment tsd-typography\"><p>The input element of the node title that fired the change event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L280\">src/types.ts:280</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"inputvalid\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>input<wbr/>Valid</span><a href=\"#inputvalid\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">inputValid</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Result of <code>inputElem.checkValidity()</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L286\">src/types.ts:286</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"newvalue\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>new<wbr/>Value</span><a href=\"#newvalue\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">newValue</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>The new node title.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L284\">src/types.ts:284</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected target node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#node\">node</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L236\">src/types.ts:236</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"oldvalue\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>old<wbr/>Value</span><a href=\"#oldvalue\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">oldValue</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>The previous node title.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L282\">src/types.ts:282</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#info\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>info</span></a><a href=\"#inputelem\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>input<wbr/>Elem</span></a><a href=\"#inputvalid\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>input<wbr/>Valid</span></a><a href=\"#newvalue\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>new<wbr/>Value</span></a><a href=\"#node\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#oldvalue\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>old<wbr/>Value</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbEditEditEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbEditEditEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbEditEditEventType.html\">WbEditEditEventType</a></li></ul><h1>Interface WbEditEditEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbEditEditEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditEditEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditEditEventType.html#inputelem\">inputElem</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLInputElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditEditEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditEditEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditEditEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditEditEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEditEditEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1267\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbEditEditEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbEditEditEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L289\">src/types.ts:289</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbEditEditEventType.html#event\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.WbEditEditEventType.html#inputelem\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>input<wbr/>Elem</span></a>\n<a href=\"types.WbEditEditEventType.html#node\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbEditEditEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbEditEditEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbEditEditEventType.html#typeinfo\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.WbEditEditEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating HTML event if any (e.g. <code>click</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L230\">src/types.ts:230</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"inputelem\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>input<wbr/>Elem</span><a href=\"#inputelem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">inputElem</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLInputElement</span></div><div class=\"tsd-comment tsd-typography\"><p>The input element of the node title that was just created.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L291\">src/types.ts:291</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected target node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#node\">node</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L236\">src/types.ts:236</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#inputelem\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>input<wbr/>Elem</span></a><a href=\"#node\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbErrorEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbErrorEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbErrorEventType.html\">WbErrorEventType</a></li></ul><h1>Interface WbErrorEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbErrorEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbErrorEventType.html#error\">error</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbErrorEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbErrorEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbErrorEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbErrorEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbErrorEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbErrorEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1275\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbErrorEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbErrorEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L298\">src/types.ts:298</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbErrorEventType.html#error\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>error</span></a>\n<a href=\"types.WbErrorEventType.html#event\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.WbErrorEventType.html#node\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbErrorEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbErrorEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbErrorEventType.html#typeinfo\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.WbErrorEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"error\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>error</span><a href=\"#error\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">error</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L299\">src/types.ts:299</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating HTML event if any (e.g. <code>click</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L230\">src/types.ts:230</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected target node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#node\">node</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L236\">src/types.ts:236</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#error\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>error</span></a><a href=\"#event\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#node\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbEventInfo.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbEventInfo | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbEventInfo.html\">WbEventInfo</a></li></ul><h1>Interface WbEventInfo</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Additional information derived from mouse or keyboard events.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#geteventinfo\" class=\"tsd-kind-method\">Wunderbaum.getEventInfo</a></p>\n</div></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbEventInfo</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEventInfo.html#canonicalname\">canonicalName</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEventInfo.html#coldef\">colDef</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"types.ColumnDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">ColumnDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEventInfo.html#colelem\">colElem</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">HTMLSpanElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEventInfo.html#colid\">colId</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEventInfo.html#colidx\">colIdx</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEventInfo.html#event\">event</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">MouseEvent</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">KeyboardEvent</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEventInfo.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEventInfo.html#region\">region</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../enums/types.NodeRegion.html\" class=\"tsd-signature-type tsd-kind-enum\">NodeRegion</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbEventInfo.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L531\">src/types.ts:531</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbEventInfo.html#canonicalname\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>canonical<wbr/>Name</span></a>\n<a href=\"types.WbEventInfo.html#coldef\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Def?</span></a>\n<a href=\"types.WbEventInfo.html#colelem\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Elem?</span></a>\n<a href=\"types.WbEventInfo.html#colid\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Id?</span></a>\n<a href=\"types.WbEventInfo.html#colidx\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Idx</span></a>\n<a href=\"types.WbEventInfo.html#event\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a>\n<a href=\"types.WbEventInfo.html#node\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbEventInfo.html#region\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>region</span></a>\n<a href=\"types.WbEventInfo.html#tree\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"canonicalname\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>canonical<wbr/>Name</span><a href=\"#canonicalname\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">canonicalName</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Canonical descriptive string of the event type including modifiers,\ne.g. <code>Ctrl+Down</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see-1\" class=\"tsd-anchor\"></a>See<a href=\"#see-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../functions/util.eventToString.html\" class=\"tsd-kind-function\">util.eventToString</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L537\">src/types.ts:537</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"coldef\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>col<wbr/>Def</span><a href=\"#coldef\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colDef</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"types.ColumnDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">ColumnDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>The definition of the affected column if any.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L545\">src/types.ts:545</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"colelem\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>col<wbr/>Elem</span><a href=\"#colelem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colElem</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">HTMLSpanElement</span></div><div class=\"tsd-comment tsd-typography\"><p>The affected column's span tag if any.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L551\">src/types.ts:551</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"colid\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>col<wbr/>Id</span><a href=\"#colid\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colId</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>The column definition ID of affected column if any.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L549\">src/types.ts:549</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"colidx\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>col<wbr/>Idx</span><a href=\"#colidx\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colIdx</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>The index of affected column or -1.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L547\">src/types.ts:547</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">MouseEvent</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">KeyboardEvent</span></div><div class=\"tsd-comment tsd-typography\"><p>The original HTTP Event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L533\">src/types.ts:533</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected node instance instance if any.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L541\">src/types.ts:541</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"region\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>region</span><a href=\"#region\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">region</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../enums/types.NodeRegion.html\" class=\"tsd-signature-type tsd-kind-enum\">NodeRegion</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected part of the node span (e.g. title, expander, ...).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L543\">src/types.ts:543</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L539\">src/types.ts:539</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#canonicalname\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>canonical<wbr/>Name</span></a><a href=\"#coldef\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Def</span></a><a href=\"#colelem\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Elem</span></a><a href=\"#colid\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Id</span></a><a href=\"#colidx\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>col<wbr/>Idx</span></a><a href=\"#event\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#node\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#region\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>region</span></a><a href=\"#tree\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbExpandEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbExpandEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbExpandEventType.html\">WbExpandEventType</a></li></ul><h1>Interface WbExpandEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbExpandEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbExpandEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbExpandEventType.html#flag\">flag</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbExpandEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbExpandEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbExpandEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbExpandEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbExpandEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1283\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbExpandEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbExpandEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L302\">src/types.ts:302</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbExpandEventType.html#event\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.WbExpandEventType.html#flag\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>flag</span></a>\n<a href=\"types.WbExpandEventType.html#node\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbExpandEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbExpandEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbExpandEventType.html#typeinfo\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.WbExpandEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating HTML event if any (e.g. <code>click</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L230\">src/types.ts:230</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"flag\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>flag</span><a href=\"#flag\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">flag</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L303\">src/types.ts:303</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected target node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#node\">node</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L236\">src/types.ts:236</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#flag\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>flag</span></a><a href=\"#node\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbFocusEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbFocusEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbFocusEventType.html\">WbFocusEventType</a></li></ul><h1>Interface WbFocusEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbFocusEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbFocusEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">FocusEvent</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbFocusEventType.html#flag\">flag</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbFocusEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbFocusEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbFocusEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1291\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbFocusEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbFocusEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L306\">src/types.ts:306</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbFocusEventType.html#event\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a>\n<a href=\"types.WbFocusEventType.html#flag\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>flag</span></a>\n<a href=\"types.WbFocusEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbFocusEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbFocusEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">FocusEvent</span></div><div class=\"tsd-comment tsd-typography\"><p>The original event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Overrides <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L308\">src/types.ts:308</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"flag\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>flag</span><a href=\"#flag\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">flag</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>True if <code>focusin</code>, false if <code>focusout</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L310\">src/types.ts:310</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#flag\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>flag</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbIconBadgeEventResultType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbIconBadgeEventResultType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbIconBadgeEventResultType.html\">WbIconBadgeEventResultType</a></li></ul><h1>Interface WbIconBadgeEventResultType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbIconBadgeEventResultType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbIconBadgeEventResultType.html#badge\">badge</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">false</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLSpanElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbIconBadgeEventResultType.html#badgeclass\">badgeClass</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbIconBadgeEventResultType.html#badgetooltip\">badgeTooltip</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L317\">src/types.ts:317</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbIconBadgeEventResultType.html#badge\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>badge</span></a>\n<a href=\"types.WbIconBadgeEventResultType.html#badgeclass\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>badge<wbr/>Class?</span></a>\n<a href=\"types.WbIconBadgeEventResultType.html#badgetooltip\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>badge<wbr/>Tooltip?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"badge\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>badge</span><a href=\"#badge\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">badge</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">false</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLSpanElement</span></div><div class=\"tsd-comment tsd-typography\"><p>Content of the badge <code>&lt;span class='wb-badge'&gt;</code> if any.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L319\">src/types.ts:319</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"badgeclass\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>badge<wbr/>Class</span><a href=\"#badgeclass\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">badgeClass</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Additional class name(s), separate with space.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L321\">src/types.ts:321</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"badgetooltip\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>badge<wbr/>Tooltip</span><a href=\"#badgetooltip\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">badgeTooltip</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Tooltip for the badge.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L323\">src/types.ts:323</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#badge\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>badge</span></a><a href=\"#badgeclass\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>badge<wbr/>Class</span></a><a href=\"#badgetooltip\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>badge<wbr/>Tooltip</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbIconBadgeEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbIconBadgeEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbIconBadgeEventType.html\">WbIconBadgeEventType</a></li></ul><h1>Interface WbIconBadgeEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbIconBadgeEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbIconBadgeEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbIconBadgeEventType.html#iconspan\">iconSpan</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbIconBadgeEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbIconBadgeEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbIconBadgeEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbIconBadgeEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbIconBadgeEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1297\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbIconBadgeEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbIconBadgeEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L313\">src/types.ts:313</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbIconBadgeEventType.html#event\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.WbIconBadgeEventType.html#iconspan\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Span</span></a>\n<a href=\"types.WbIconBadgeEventType.html#node\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbIconBadgeEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbIconBadgeEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbIconBadgeEventType.html#typeinfo\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.WbIconBadgeEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating HTML event if any (e.g. <code>click</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L230\">src/types.ts:230</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"iconspan\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>icon<wbr/>Span</span><a href=\"#iconspan\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">iconSpan</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLElement</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L314\">src/types.ts:314</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected target node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#node\">node</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L236\">src/types.ts:236</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#iconspan\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Span</span></a><a href=\"#node\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbInitEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbInitEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbInitEventType.html\">WbInitEventType</a></li></ul><h1>Interface WbInitEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbInitEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbInitEventType.html#error\">error</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbInitEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbInitEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbInitEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbInitEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1309\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbInitEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbInitEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L326\">src/types.ts:326</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbInitEventType.html#error\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>error?</span></a>\n<a href=\"types.WbInitEventType.html#event\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.WbInitEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbInitEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbInitEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"error\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>error</span><a href=\"#error\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">error</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">any</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L327\">src/types.ts:327</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating HTML event if any (e.g. <code>click</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L230\">src/types.ts:230</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#error\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>error</span></a><a href=\"#event\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbKeydownEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbKeydownEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbKeydownEventType.html\">WbKeydownEventType</a></li></ul><h1>Interface WbKeydownEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbKeydownEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbKeydownEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">KeyboardEvent</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbKeydownEventType.html#info\">info</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbEventInfo.html\" class=\"tsd-signature-type tsd-kind-interface\">WbEventInfo</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbKeydownEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbKeydownEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbKeydownEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbKeydownEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1315\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbKeydownEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbKeydownEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L330\">src/types.ts:330</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbKeydownEventType.html#event\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a>\n<a href=\"types.WbKeydownEventType.html#info\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>info</span></a>\n<a href=\"types.WbKeydownEventType.html#node\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbKeydownEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbKeydownEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbKeydownEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">KeyboardEvent</span></div><div class=\"tsd-comment tsd-typography\"><p>The original event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Overrides <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L332\">src/types.ts:332</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"info\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>info</span><a href=\"#info\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">info</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbEventInfo.html\" class=\"tsd-signature-type tsd-kind-interface\">WbEventInfo</a></div><div class=\"tsd-comment tsd-typography\"><p>Additional information derived from the original keyboard event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L335\">src/types.ts:335</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L333\">src/types.ts:333</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#info\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>info</span></a><a href=\"#node\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbModifyChildEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbModifyChildEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbModifyChildEventType.html\">WbModifyChildEventType</a></li></ul><h1>Interface WbModifyChildEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbModifyChildEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbModifyChildEventType.html#child\">child</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbModifyChildEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbModifyChildEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbModifyChildEventType.html#operation\">operation</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbModifyChildEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbModifyChildEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbModifyChildEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbModifyChildEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1322\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbModifyChildEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbModifyChildEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L338\">src/types.ts:338</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbModifyChildEventType.html#child\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>child</span></a>\n<a href=\"types.WbModifyChildEventType.html#event\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.WbModifyChildEventType.html#node\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbModifyChildEventType.html#operation\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>operation</span></a>\n<a href=\"types.WbModifyChildEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbModifyChildEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbModifyChildEventType.html#typeinfo\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.WbModifyChildEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"child\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>child</span><a href=\"#child\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">child</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L341\">src/types.ts:341</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating HTML event if any (e.g. <code>click</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L230\">src/types.ts:230</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected target node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#node\">node</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L236\">src/types.ts:236</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"operation\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>operation</span><a href=\"#operation\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">operation</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Type of change: 'add', 'remove', 'rename', 'move', 'data', ...</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L340\">src/types.ts:340</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#child\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>child</span></a><a href=\"#event\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#node\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#operation\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>operation</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbNodeData.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbNodeData | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbNodeData.html\">WbNodeData</a></li></ul><h1>Interface WbNodeData</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>A plain object (dictionary) that represents a node instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbNodeData</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#_treeid\">_treeId</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#checkbox\">checkbox</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.CheckboxOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">CheckboxOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#children\">children</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#classes\">classes</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#colspan\">colspan</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#expanded\">expanded</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#icon\">icon</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.IconOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">IconOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#icontooltip\">iconTooltip</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.TooltipOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TooltipOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#key\">key</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#lazy\">lazy</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#radiogroup\">radiogroup</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#refkey\">refKey</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#selected\">selected</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#statusnodetype\">statusNodeType</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../enums/types.NodeStatusType.html\" class=\"tsd-signature-type tsd-kind-enum\">NodeStatusType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#title\">title</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#tooltip\">tooltip</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.TooltipOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TooltipOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#type\">type</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeData.html#unselectable\">unselectable</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]:</span> <span class=\"tsd-signature-type\">unknown</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel\"><h4 class=\"tsd-before-signature\">Indexable</h4><ul class=\"tsd-signatures\"><li class=\"tsd-index-signature\"><div class=\"tsd-signature\"><span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-parameter\">key</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]: </span><span class=\"tsd-signature-type\">unknown</span></div><div class=\"tsd-comment tsd-typography\"><p>Other data is passed to <code>node.data</code> and can be accessed via <code>node.data.NAME</code></p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L129\">src/types.ts:129</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbNodeData.html#_treeid\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_tree<wbr/>Id?</span></a>\n<a href=\"types.WbNodeData.html#checkbox\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>checkbox?</span></a>\n<a href=\"types.WbNodeData.html#children\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>children?</span></a>\n<a href=\"types.WbNodeData.html#classes\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>classes?</span></a>\n<a href=\"types.WbNodeData.html#colspan\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>colspan?</span></a>\n<a href=\"types.WbNodeData.html#expanded\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expanded?</span></a>\n<a href=\"types.WbNodeData.html#icon\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon?</span></a>\n<a href=\"types.WbNodeData.html#icontooltip\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Tooltip?</span></a>\n<a href=\"types.WbNodeData.html#key\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>key?</span></a>\n<a href=\"types.WbNodeData.html#lazy\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>lazy?</span></a>\n<a href=\"types.WbNodeData.html#radiogroup\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>radiogroup?</span></a>\n<a href=\"types.WbNodeData.html#refkey\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>ref<wbr/>Key?</span></a>\n<a href=\"types.WbNodeData.html#selected\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>selected?</span></a>\n<a href=\"types.WbNodeData.html#statusnodetype\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>status<wbr/>Node<wbr/>Type?</span></a>\n<a href=\"types.WbNodeData.html#title\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>title</span></a>\n<a href=\"types.WbNodeData.html#tooltip\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tooltip?</span></a>\n<a href=\"types.WbNodeData.html#type\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type?</span></a>\n<a href=\"types.WbNodeData.html#unselectable\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>unselectable?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"_treeid\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code> <code class=\"tsd-tag\">Internal</code><span>_tree<wbr/>Id</span><a href=\"#_treeid\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">_treeId</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L182\">src/types.ts:182</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"checkbox\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>checkbox</span><a href=\"#checkbox\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">checkbox</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.CheckboxOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">CheckboxOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Defines if the <code>selected</code> state is displayed as checkbox, radio button,\nor hidden.\nDefaults to <a href=\"wb_options.WunderbaumOptions.html#checkbox\" class=\"tsd-kind-property\">WunderbaumOptions.checkbox</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L134\">src/types.ts:134</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"children\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>children</span><a href=\"#children\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">children</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><span class=\"tsd-signature-symbol\">[]</span></div><div class=\"tsd-comment tsd-typography\"><p>Optional list of child nodes.\nIf <code>children</code> is an empty array, the node is considered a leaf.\nIf <code>lazy</code> is true and `children is undefined or null, the node, is\nconsidered unloaded. Otherwise, the node is considered a leaf.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L140\">src/types.ts:140</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"classes\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>classes</span><a href=\"#classes\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">classes</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Additional classes that are added to <code>&lt;div class='wb-row'&gt;</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L142\">src/types.ts:142</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"colspan\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>colspan</span><a href=\"#colspan\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">colspan</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Only show title in a single, merged column.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L144\">src/types.ts:144</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"expanded\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>expanded</span><a href=\"#expanded\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">expanded</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Expand this node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L146\">src/types.ts:146</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"icon\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>icon</span><a href=\"#icon\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">icon</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.IconOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">IconOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Defaults to standard icons (doc, folder, folderOpen, ...)\nfrom <a href=\"wb_options.WunderbaumOptions.html#iconmap\" class=\"tsd-kind-property\">WunderbaumOptions.iconMap</a>.\nCan be overridden by <a href=\"wb_options.WunderbaumOptions.html#icon\" class=\"tsd-kind-property\">WunderbaumOptions.icon</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L151\">src/types.ts:151</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"icontooltip\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>icon<wbr/>Tooltip</span><a href=\"#icontooltip\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">iconTooltip</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.TooltipOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TooltipOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Tooltip for the node icon only. Defaults to <a href=\"wb_options.WunderbaumOptions.html#icontooltip\" class=\"tsd-kind-property\">WunderbaumOptions.iconTooltip</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L153\">src/types.ts:153</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"key\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>key</span><a href=\"#key\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">key</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>The node's key. Must be unique for the whole tree. Defaults to a sequence number.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L155\">src/types.ts:155</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"lazy\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>lazy</span><a href=\"#lazy\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">lazy</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>If true (and children are undefined or null), the node is considered lazy\nand <a href=\"wb_options.WunderbaumOptions.html#lazyload\" class=\"tsd-kind-property\">WunderbaumOptions.lazyLoad</a> is called when expanded.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L159\">src/types.ts:159</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"radiogroup\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>radiogroup</span><a href=\"#radiogroup\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">radiogroup</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Make child nodes single-select radio buttons.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L161\">src/types.ts:161</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"refkey\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>ref<wbr/>Key</span><a href=\"#refkey\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">refKey</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Node's reference key. Unlike <a href=\"../classes/wb_node.WunderbaumNode.html#key\" class=\"tsd-kind-property\">WunderbaumNode.key</a>, this value\nmay be non-unique. Nodes within the tree that share the same refKey are considered\nclones.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L166\">src/types.ts:166</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"selected\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>selected</span><a href=\"#selected\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">selected</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>The node's selection status, typically displayed as a checkbox.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L168\">src/types.ts:168</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"statusnodetype\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>status<wbr/>Node<wbr/>Type</span><a href=\"#statusnodetype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">statusNodeType</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../enums/types.NodeStatusType.html\" class=\"tsd-signature-type tsd-kind-enum\">NodeStatusType</a></div><div class=\"tsd-comment tsd-typography\"><p>The node's status, typically displayed as merged single row.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#setstatus\" class=\"tsd-kind-method\">Wunderbaum.setStatus</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L172\">src/types.ts:172</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"title\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>title</span><a href=\"#title\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">title</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>The node's title. Will be html escaped to prevent XSS.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L174\">src/types.ts:174</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"tooltip\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>tooltip</span><a href=\"#tooltip\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tooltip</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.TooltipOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TooltipOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Pass true to set node tooltip to the node's title. Defaults to <a href=\"wb_options.WunderbaumOptions.html#tooltip\" class=\"tsd-kind-property\">WunderbaumOptions.tooltip</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L176\">src/types.ts:176</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Inherit shared settings from the matching entry in <code>InitWunderbaumOptions.types</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L178\">src/types.ts:178</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"unselectable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>unselectable</span><a href=\"#unselectable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">unselectable</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Set to <code>true</code> to prevent selection. Defaults to <a href=\"wb_options.WunderbaumOptions.html#unselectable\" class=\"tsd-kind-property\">WunderbaumOptions.unselectable</a>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L180\">src/types.ts:180</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#_treeid\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>_tree<wbr/>Id</span></a><a href=\"#checkbox\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>checkbox</span></a><a href=\"#children\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>children</span></a><a href=\"#classes\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>classes</span></a><a href=\"#colspan\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>colspan</span></a><a href=\"#expanded\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expanded</span></a><a href=\"#icon\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon</span></a><a href=\"#icontooltip\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Tooltip</span></a><a href=\"#key\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>key</span></a><a href=\"#lazy\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>lazy</span></a><a href=\"#radiogroup\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>radiogroup</span></a><a href=\"#refkey\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>ref<wbr/>Key</span></a><a href=\"#selected\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>selected</span></a><a href=\"#statusnodetype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>status<wbr/>Node<wbr/>Type</span></a><a href=\"#title\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>title</span></a><a href=\"#tooltip\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tooltip</span></a><a href=\"#type\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#unselectable\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>unselectable</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbNodeEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbNodeEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbNodeEventType.html\">WbNodeEventType</a></li></ul><h1>Interface WbNodeEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbNodeEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbNodeEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1214\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbNodeEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbNodeEventType</span><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbActivateEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbActivateEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbChangeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbChangeEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbDeactivateEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbDeactivateEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbEditApplyEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbEditApplyEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbEditEditEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbEditEditEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbErrorEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbErrorEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbExpandEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbExpandEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbIconBadgeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbIconBadgeEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbModifyChildEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbModifyChildEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbReceiveEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbReceiveEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbSelectEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbSelectEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbRenderEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbRenderEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.DragEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DragEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.DropEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DropEventType</a></li></ul></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L234\">src/types.ts:234</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbNodeEventType.html#event\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.WbNodeEventType.html#node\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbNodeEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbNodeEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbNodeEventType.html#typeinfo\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.WbNodeEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating HTML event if any (e.g. <code>click</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L230\">src/types.ts:230</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected target node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L236\">src/types.ts:236</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbTreeEventType.html\">WbTreeEventType</a>.<a href=\"types.WbTreeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#node\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbReceiveEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbReceiveEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbReceiveEventType.html\">WbReceiveEventType</a></li></ul><h1>Interface WbReceiveEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbReceiveEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbReceiveEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbReceiveEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbReceiveEventType.html#response\">response</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbReceiveEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbReceiveEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbReceiveEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbReceiveEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1331\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbReceiveEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbReceiveEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L344\">src/types.ts:344</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbReceiveEventType.html#event\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.WbReceiveEventType.html#node\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbReceiveEventType.html#response\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>response</span></a>\n<a href=\"types.WbReceiveEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbReceiveEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbReceiveEventType.html#typeinfo\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.WbReceiveEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating HTML event if any (e.g. <code>click</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L230\">src/types.ts:230</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected target node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#node\">node</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L236\">src/types.ts:236</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"response\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>response</span><a href=\"#response\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">response</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L345\">src/types.ts:345</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#node\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#response\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>response</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbRenderEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbRenderEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbRenderEventType.html\">WbRenderEventType</a></li></ul><h1>Interface WbRenderEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbRenderEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbRenderEventType.html#allcolinfosbyid\">allColInfosById</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.ColumnEventInfoMap.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ColumnEventInfoMap</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbRenderEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbRenderEventType.html#iscolspan\">isColspan</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbRenderEventType.html#isnew\">isNew</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbRenderEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbRenderEventType.html#nodeelem\">nodeElem</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLSpanElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbRenderEventType.html#rendercolinfosbyid\">renderColInfosById</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.ColumnEventInfoMap.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ColumnEventInfoMap</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbRenderEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbRenderEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbRenderEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbRenderEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1354\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbRenderEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbRenderEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L358\">src/types.ts:358</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbRenderEventType.html#allcolinfosbyid\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>all<wbr/>Col<wbr/>Infos<wbr/>By<wbr/>Id</span></a>\n<a href=\"types.WbRenderEventType.html#event\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.WbRenderEventType.html#iscolspan\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>is<wbr/>Colspan</span></a>\n<a href=\"types.WbRenderEventType.html#isnew\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>is<wbr/>New</span></a>\n<a href=\"types.WbRenderEventType.html#node\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbRenderEventType.html#nodeelem\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node<wbr/>Elem</span></a>\n<a href=\"types.WbRenderEventType.html#rendercolinfosbyid\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>render<wbr/>Col<wbr/>Infos<wbr/>By<wbr/>Id</span></a>\n<a href=\"types.WbRenderEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbRenderEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbRenderEventType.html#typeinfo\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.WbRenderEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"allcolinfosbyid\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>all<wbr/>Col<wbr/>Infos<wbr/>By<wbr/>Id</span><a href=\"#allcolinfosbyid\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">allColInfosById</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.ColumnEventInfoMap.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ColumnEventInfoMap</a></div><div class=\"tsd-comment tsd-typography\"><p>Array of node's <code>&lt;span class='wb-col'&gt;</code> elements.\nThe first element is <code>&lt;span class='wb-node wb-col'&gt;</code>, which contains the\nnode title and icon (<code>idx: 0</code>, id: '*'`).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L376\">src/types.ts:376</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating HTML event if any (e.g. <code>click</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L230\">src/types.ts:230</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"iscolspan\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>Colspan</span><a href=\"#iscolspan\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">isColspan</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>True if the node only displays the title and is stretched over all remaining columns.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L370\">src/types.ts:370</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"isnew\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>is<wbr/>New</span><a href=\"#isnew\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">isNew</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>True if the node's markup was not yet created. In this case the render\nevent should create embedded input controls (in addition to update the\nvalues according to to current node data). <br>\nFalse if the node's markup was already created. In this case the render\nevent should only update the values according to to current node data.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L366\">src/types.ts:366</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected target node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#node\">node</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L236\">src/types.ts:236</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"nodeelem\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node<wbr/>Elem</span><a href=\"#nodeelem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">nodeElem</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLSpanElement</span></div><div class=\"tsd-comment tsd-typography\"><p>The node's <code>&lt;span class='wb-node'&gt;</code> element.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L368\">src/types.ts:368</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"rendercolinfosbyid\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>render<wbr/>Col<wbr/>Infos<wbr/>By<wbr/>Id</span><a href=\"#rendercolinfosbyid\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">renderColInfosById</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.ColumnEventInfoMap.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ColumnEventInfoMap</a></div><div class=\"tsd-comment tsd-typography\"><p>Array of node's <code>&lt;span class='wb-node'&gt;</code> elements,\n<em>that should be rendered by the event handler</em>.\nIn contrast to <code>allColInfosById</code>, the node title is not part of this array.\nIf node.isColspan() is true, this array is empty (<code>[]</code>).\nThis allows to iterate over all relevant in a simple loop:</p>\n<pre><code><span class=\"hl-4\">for</span><span class=\"hl-1\"> (</span><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">col</span><span class=\"hl-1\"> </span><span class=\"hl-0\">of</span><span class=\"hl-1\"> </span><span class=\"hl-2\">Object</span><span class=\"hl-1\">.</span><span class=\"hl-6\">values</span><span class=\"hl-1\">(</span><span class=\"hl-2\">e</span><span class=\"hl-1\">.</span><span class=\"hl-2\">renderColInfosById</span><span class=\"hl-1\">)) {</span><br/><span class=\"hl-1\">  </span><span class=\"hl-4\">switch</span><span class=\"hl-1\"> (</span><span class=\"hl-2\">col</span><span class=\"hl-1\">.</span><span class=\"hl-2\">id</span><span class=\"hl-1\">) {</span><br/><span class=\"hl-1\">    </span><span class=\"hl-4\">default</span><span class=\"hl-1\">:</span><br/><span class=\"hl-1\">      </span><span class=\"hl-9\">// Assumption: we named column.id === node.data.NAME</span><br/><span class=\"hl-1\">      </span><span class=\"hl-2\">col</span><span class=\"hl-1\">.</span><span class=\"hl-2\">elem</span><span class=\"hl-1\">.</span><span class=\"hl-2\">textContent</span><span class=\"hl-1\"> = </span><span class=\"hl-2\">node</span><span class=\"hl-1\">.</span><span class=\"hl-2\">data</span><span class=\"hl-1\">[</span><span class=\"hl-2\">col</span><span class=\"hl-1\">.</span><span class=\"hl-2\">id</span><span class=\"hl-1\">];</span><br/><span class=\"hl-1\">      </span><span class=\"hl-4\">break</span><span class=\"hl-1\">;</span><br/><span class=\"hl-1\">  }</span><br/>\n</code><button>Copy</button></pre>\n\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L393\">src/types.ts:393</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#allcolinfosbyid\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>all<wbr/>Col<wbr/>Infos<wbr/>By<wbr/>Id</span></a><a href=\"#event\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#iscolspan\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>is<wbr/>Colspan</span></a><a href=\"#isnew\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>is<wbr/>New</span></a><a href=\"#node\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#nodeelem\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node<wbr/>Elem</span></a><a href=\"#rendercolinfosbyid\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>render<wbr/>Col<wbr/>Infos<wbr/>By<wbr/>Id</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbSelectEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbSelectEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbSelectEventType.html\">WbSelectEventType</a></li></ul><h1>Interface WbSelectEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbSelectEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbSelectEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbSelectEventType.html#flag\">flag</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbSelectEventType.html#node\">node</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbSelectEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbSelectEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbSelectEventType.html#typeinfo\">typeInfo</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbSelectEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1339\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbSelectEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbSelectEventType</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L348\">src/types.ts:348</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbSelectEventType.html#event\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.WbSelectEventType.html#flag\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>flag</span></a>\n<a href=\"types.WbSelectEventType.html#node\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a>\n<a href=\"types.WbSelectEventType.html#tree\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbSelectEventType.html#type\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbSelectEventType.html#typeinfo\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a>\n<a href=\"types.WbSelectEventType.html#util\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating HTML event if any (e.g. <code>click</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#event\">event</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L230\">src/types.ts:230</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"flag\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>flag</span><a href=\"#flag\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">flag</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L349\">src/types.ts:349</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"node\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>node</span><a href=\"#node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected target node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#node\">node</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L236\">src/types.ts:236</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#tree\">tree</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#type\">type</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"typeinfo\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type<wbr/>Info</span><a href=\"#typeinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">typeInfo</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></div><div class=\"tsd-comment tsd-typography\"><p>Contains the node's type information, i.e. <code>tree.types[node.type]</code> if\ndefined. Set to <code>{}</code> otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><a href=\"../classes/wunderbaum.Wunderbaum.html#types\" class=\"tsd-kind-property\">Wunderbaum.types</a></p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#typeinfo\">typeInfo</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L241\">src/types.ts:241</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from <a href=\"types.WbNodeEventType.html\">WbNodeEventType</a>.<a href=\"types.WbNodeEventType.html#util\">util</a></p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#flag\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>flag</span></a><a href=\"#node\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>node</span></a><a href=\"#tree\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#typeinfo\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type<wbr/>Info</span></a><a href=\"#util\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/types.WbTreeEventType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbTreeEventType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbTreeEventType.html\">WbTreeEventType</a></li></ul><h1>Interface WbTreeEventType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WbTreeEventType</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbTreeEventType.html#event\">event</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbTreeEventType.html#tree\">tree</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbTreeEventType.html#type\">type</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"types.WbTreeEventType.html#util\">util</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"1209\"><h4>Hierarchy (<a href=\"../hierarchy.html#types.WbTreeEventType\">View Summary</a>)</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">WbTreeEventType</span><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbClickEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbClickEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbFocusEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbFocusEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbInitEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbInitEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbKeydownEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbKeydownEventType</a></li><li class=\"tsd-hierarchy-item\"><a href=\"types.WbButtonClickEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbButtonClickEventType</a></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L220\">src/types.ts:220</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Properties</h3><div class=\"tsd-index-list\"><a href=\"types.WbTreeEventType.html#event\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event?</span></a>\n<a href=\"types.WbTreeEventType.html#tree\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a>\n<a href=\"types.WbTreeEventType.html#type\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a>\n<a href=\"types.WbTreeEventType.html#util\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Properties</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"event\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>event</span><a href=\"#event\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">Event</span></div><div class=\"tsd-comment tsd-typography\"><p>Originating HTML event if any (e.g. <code>click</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L230\">src/types.ts:230</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"tree\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>tree</span><a href=\"#tree\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tree</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-signature-type tsd-kind-class\">Wunderbaum</a></div><div class=\"tsd-comment tsd-typography\"><p>The affected tree instance.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L224\">src/types.ts:224</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"type\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>type</span><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Name of the event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L222\">src/types.ts:222</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"util\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>util</span><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">util</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>Exposed utility module methods\n(see <a href=\"https://mar10.github.io/wunderbaum/api/modules/util.html\">API docs</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L228\">src/types.ts:228</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Properties\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Properties</summary><div><a href=\"#event\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>event</span></a><a href=\"#tree\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tree</span></a><a href=\"#type\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>type</span></a><a href=\"#util\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>util</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/wb_options.InitWunderbaumOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>InitWunderbaumOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/wb_options.html\">wb_options</a></li><li><a href=\"wb_options.InitWunderbaumOptions.html\">InitWunderbaumOptions</a></li></ul><h1>Interface InitWunderbaumOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Available options for <a href=\"../classes/wunderbaum.Wunderbaum.html\" class=\"tsd-kind-class\">wunderbaum.Wunderbaum</a>.</p>\n<p>Options are passed to the constructor as plain object:</p>\n<pre><code class=\"js\"><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">tree</span><span class=\"hl-1\"> = </span><span class=\"hl-0\">new</span><span class=\"hl-1\"> </span><span class=\"hl-2\">mar10</span><span class=\"hl-1\">.</span><span class=\"hl-6\">Wunderbaum</span><span class=\"hl-1\">({</span><br/><span class=\"hl-1\">  </span><span class=\"hl-2\">id:</span><span class=\"hl-1\"> </span><span class=\"hl-7\">&quot;demo&quot;</span><span class=\"hl-1\">,</span><br/><span class=\"hl-1\">  </span><span class=\"hl-2\">element:</span><span class=\"hl-1\"> </span><span class=\"hl-2\">document</span><span class=\"hl-1\">.</span><span class=\"hl-6\">getElementById</span><span class=\"hl-1\">(</span><span class=\"hl-7\">&quot;demo-tree&quot;</span><span class=\"hl-1\">),</span><br/><span class=\"hl-1\">  </span><span class=\"hl-2\">source:</span><span class=\"hl-1\"> </span><span class=\"hl-7\">&quot;url/of/data/request&quot;</span><span class=\"hl-1\">,</span><br/><span class=\"hl-1\">  ...</span><br/><span class=\"hl-1\">});</span>\n</code><button type=\"button\">Copy</button></pre>\n\n<p>Event handlers are also passed as callbacks</p>\n<pre><code class=\"js\"><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">tree</span><span class=\"hl-1\"> = </span><span class=\"hl-0\">new</span><span class=\"hl-1\"> </span><span class=\"hl-2\">mar10</span><span class=\"hl-1\">.</span><span class=\"hl-6\">Wunderbaum</span><span class=\"hl-1\">({</span><br/><span class=\"hl-1\">  ...</span><br/><span class=\"hl-1\">  </span><span class=\"hl-2\">init</span><span class=\"hl-1\">: (</span><span class=\"hl-2\">e</span><span class=\"hl-1\">) </span><span class=\"hl-0\">=&gt;</span><span class=\"hl-1\"> {</span><br/><span class=\"hl-1\">    </span><span class=\"hl-2\">console</span><span class=\"hl-1\">.</span><span class=\"hl-6\">log</span><span class=\"hl-1\">(</span><span class=\"hl-7\">`Tree </span><span class=\"hl-0\">${</span><span class=\"hl-2\">e</span><span class=\"hl-13\">.</span><span class=\"hl-2\">tree</span><span class=\"hl-0\">}</span><span class=\"hl-7\"> was initialized and loaded.`</span><span class=\"hl-1\">)</span><br/><span class=\"hl-1\">  },</span><br/><span class=\"hl-1\">  </span><span class=\"hl-6\">activate</span><span class=\"hl-2\">:</span><span class=\"hl-1\"> (</span><span class=\"hl-2\">e</span><span class=\"hl-1\">) </span><span class=\"hl-0\">=&gt;</span><span class=\"hl-1\"> {</span><br/><span class=\"hl-1\">    </span><span class=\"hl-2\">console</span><span class=\"hl-1\">.</span><span class=\"hl-6\">log</span><span class=\"hl-1\">(</span><span class=\"hl-7\">`Node </span><span class=\"hl-0\">${</span><span class=\"hl-2\">e</span><span class=\"hl-13\">.</span><span class=\"hl-2\">node</span><span class=\"hl-0\">}</span><span class=\"hl-7\"> was activated.`</span><span class=\"hl-1\">)</span><br/><span class=\"hl-1\">  },</span><br/><span class=\"hl-1\">  ...</span><br/><span class=\"hl-1\">});</span>\n</code><button type=\"button\">Copy</button></pre>\n\n<p>Most of the properties are optional and have resonable default.\nThey are then available as Wunderbaum.options property and can be\nchanged at runtime. <br>\nOnly the <code>element</code> option is mandatory.</p>\n<p>Note that some options passed here, are <em>not</em> available as Wunderbaum.options.\nThey are moved to the <code>tree</code> instance instead:</p>\n<ul>\n<li><code>tree.element</code></li>\n<li><code>tree.id</code></li>\n<li><code>tree.columns</code></li>\n<li><code>tree.types</code></li>\n<li>...</li>\n</ul>\n<p>Some options are only used during initialization and are not stored in the\ntree instance:</p>\n<ul>\n<li><code>source</code></li>\n</ul>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">InitWunderbaumOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#activate\">activate</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbActivateEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbActivateEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#adjustheight\">adjustHeight</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#autocollapse\">autoCollapse</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#autokeys\">autoKeys</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#beforeactivate\">beforeActivate</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbActivateEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbActivateEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#beforeexpand\">beforeExpand</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbExpandEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbExpandEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#beforeselect\">beforeSelect</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbSelectEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbSelectEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#buttonclick\">buttonClick</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbButtonClickEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbButtonClickEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#change\">change</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbChangeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbChangeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#checkbox\">checkbox</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicCheckboxOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicCheckboxOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#click\">click</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbClickEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbClickEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#columns\">columns</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.ColumnDefinitionList.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ColumnDefinitionList</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#columnsfilterable\">columnsFilterable</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#columnsmenu\">columnsMenu</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#columnsresizable\">columnsResizable</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#columnssortable\">columnsSortable</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#connecttopbreadcrumb\">connectTopBreadcrumb</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#dblclick\">dblclick</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbClickEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbClickEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#deactivate\">deactivate</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbDeactivateEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbDeactivateEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#debuglevel\">debugLevel</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#discard\">discard</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#dnd\">dnd</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DndOptionsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DndOptionsType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#edit\">edit</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.EditOptionsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">EditOptionsType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#element\">element</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLDivElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#emptychildlistexpandable\">emptyChildListExpandable</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#enabled\">enabled</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#error\">error</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbErrorEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbErrorEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#expand\">expand</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#filter\">filter</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.FilterOptionsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">FilterOptionsType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#fixedcol\">fixedCol</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#focus\">focus</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#header\">header</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#icon\">icon</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicIconOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicIconOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#iconbadge\">iconBadge</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.WbIconBadgeCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbIconBadgeCallback</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"types.WbIconBadgeEventResultType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbIconBadgeEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#iconmap\">iconMap</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.IconMapType.html\" class=\"tsd-signature-type tsd-kind-interface\">IconMapType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#icontooltip\">iconTooltip</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOrStringOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOrStringOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#id\">id</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#init\">init</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbInitEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbInitEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#keydown\">keydown</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbKeydownEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbKeydownEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#lazyload\">lazyLoad</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#load\">load</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#minexpandlevel\">minExpandLevel</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#modifychild\">modifyChild</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#navigationmodeoption\">navigationModeOption</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../enums/types.NavModeEnum.html\" class=\"tsd-signature-type tsd-kind-enum\">NavModeEnum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#quicksearch\">quicksearch</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#receive\">receive</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbReceiveEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbReceiveEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#render\">render</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbRenderEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbRenderEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#renderstatusnode\">renderStatusNode</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbRenderEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbRenderEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#rowheightpx\">rowHeightPx</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#scrollintoviewonexpandclick\">scrollIntoViewOnExpandClick</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#select\">select</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#selectmode\">selectMode</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.SelectModeType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SelectModeType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#showspinner\">showSpinner</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#skeleton\">skeleton</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#sortfoldersfirst\">sortFoldersFirst</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#source\">source</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.SourceType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SourceType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#strings\">strings</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.TranslationsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TranslationsType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#tooltip\">tooltip</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOrStringOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOrStringOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#types\">types</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.NodeTypeDefinitionMap.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeTypeDefinitionMap</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#unselectable\">unselectable</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.InitWunderbaumOptions.html#update\">update</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><section class=\"tsd-panel tsd-hierarchy\" data-refl=\"899\"><h4>Hierarchy</h4><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-signature-type\">Partial</span><span class=\"tsd-signature-symbol\">&lt;</span><a href=\"wb_options.WunderbaumOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">WunderbaumOptions</a><span class=\"tsd-signature-symbol\">&gt;</span><ul class=\"tsd-hierarchy\"><li class=\"tsd-hierarchy-item\"><span class=\"tsd-hierarchy-target\">InitWunderbaumOptions</span></li></ul></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L445\">src/wb_options.ts:445</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Callback</h3><div class=\"tsd-index-list\"><a href=\"wb_options.InitWunderbaumOptions.html#activate\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>activate?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#beforeactivate\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>before<wbr/>Activate?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#beforeexpand\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>before<wbr/>Expand?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#beforeselect\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>before<wbr/>Select?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#buttonclick\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>button<wbr/>Click?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#change\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>change?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#click\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>click?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#dblclick\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>dblclick?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#deactivate\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>deactivate?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#discard\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>discard?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#error\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>error?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#expand\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expand?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#focus\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>focus?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#iconbadge\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Badge?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#init\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>init?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#keydown\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>keydown?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#lazyload\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>lazy<wbr/>Load?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#load\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>load?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#modifychild\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>modify<wbr/>Child?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#receive\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>receive?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#render\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>render?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#renderstatusnode\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>render<wbr/>Status<wbr/>Node?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#select\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>select?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#update\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>update?</span></a>\n</div></section><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Other</h3><div class=\"tsd-index-list\"><a href=\"wb_options.InitWunderbaumOptions.html#adjustheight\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>adjust<wbr/>Height?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#autocollapse\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>auto<wbr/>Collapse?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#autokeys\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>auto<wbr/>Keys?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#checkbox\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>checkbox?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#columns\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#columnsfilterable\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Filterable?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#columnsmenu\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Menu?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#columnsresizable\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Resizable?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#columnssortable\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Sortable?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#connecttopbreadcrumb\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>connect<wbr/>Top<wbr/>Breadcrumb?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#debuglevel\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>debug<wbr/>Level?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#dnd\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>dnd?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#edit\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>edit?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#element\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>element</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#emptychildlistexpandable\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>empty<wbr/>Child<wbr/>List<wbr/>Expandable?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#enabled\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>enabled?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#filter\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>filter?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#fixedcol\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>fixed<wbr/>Col?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#header\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>header?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#icon\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#iconmap\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Map?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#icontooltip\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Tooltip?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#id\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>id?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#minexpandlevel\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>min<wbr/>Expand<wbr/>Level?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#navigationmodeoption\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>navigation<wbr/>Mode<wbr/>Option?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#quicksearch\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>quicksearch?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#rowheightpx\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>row<wbr/>Height<wbr/>Px?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#scrollintoviewonexpandclick\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>scroll<wbr/>Into<wbr/>View<wbr/>On<wbr/>Expand<wbr/>Click?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#selectmode\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>select<wbr/>Mode?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#showspinner\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>show<wbr/>Spinner?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#skeleton\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>skeleton?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#sortfoldersfirst\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>sort<wbr/>Folders<wbr/>First?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#source\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>source?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#strings\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>strings?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#tooltip\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tooltip?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#types\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>types?</span></a>\n<a href=\"wb_options.InitWunderbaumOptions.html#unselectable\" class=\"tsd-index-link tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>unselectable?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Callback\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Callback</h2></summary><section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"activate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>activate</span><a href=\"#activate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">activate</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbActivateEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbActivateEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> was activated.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.activate</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L257\">src/wb_options.ts:257</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"beforeactivate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>before<wbr/>Activate</span><a href=\"#beforeactivate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">beforeActivate</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbActivateEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbActivateEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> is about to be activated.\nReturn <code>false</code> to prevent default handling, i.e. activating the node.\nSee also <code>deactivate</code> event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.beforeActivate</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L264\">src/wb_options.ts:264</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"beforeexpand\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>before<wbr/>Expand</span><a href=\"#beforeexpand\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">beforeExpand</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbExpandEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbExpandEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> is about to be expanded/collapsed.\nReturn <code>false</code> to prevent default handling, i.e. expanding/collapsing the node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.beforeExpand</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L270\">src/wb_options.ts:270</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"beforeselect\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>before<wbr/>Select</span><a href=\"#beforeselect\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">beforeSelect</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbSelectEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbSelectEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p>Return <code>false</code> to prevent default handling, i.e. (de)selecting the node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.beforeSelect</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L275\">src/wb_options.ts:275</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"buttonclick\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>button<wbr/>Click</span><a href=\"#buttonclick\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">buttonClick</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbButtonClickEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbButtonClickEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Return <code>false</code> to prevent default handling, i.e. (de)selecting the node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.buttonClick</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L280\">src/wb_options.ts:280</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"change\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>change</span><a href=\"#change\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">change</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbChangeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbChangeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.change</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L285\">src/wb_options.ts:285</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"click\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>click</span><a href=\"#click\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">click</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbClickEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbClickEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p>Return <code>false</code> to prevent default behavior, e.g. expand/collapse, (de)selection, or activation.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.click</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L291\">src/wb_options.ts:291</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"dblclick\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>dblclick</span><a href=\"#dblclick\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">dblclick</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbClickEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbClickEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p>Return <code>false</code> to prevent default behavior, e.g. expand/collapse.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.dblclick</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L296\">src/wb_options.ts:296</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"deactivate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>deactivate</span><a href=\"#deactivate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">deactivate</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbDeactivateEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbDeactivateEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> was deactivated.</p>\n<p>Return <code>false</code> to prevent default handling, e.g. deactivating the node\nand activating the next.\nSee also <code>activate</code> event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.deactivate</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L305\">src/wb_options.ts:305</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"discard\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>discard</span><a href=\"#discard\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">discard</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> was discarded from the viewport and its HTML markup removed.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.discard</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L310\">src/wb_options.ts:310</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"error\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>error</span><a href=\"#error\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">error</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbErrorEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbErrorEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>An error occurred, e.g. during initialization or lazy loading.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.error</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L320\">src/wb_options.ts:320</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"expand\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>expand</span><a href=\"#expand\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">expand</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> was expanded (<code>e.flag === true</code>) or collapsed (<code>e.flag === false</code>)</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.expand</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L325\">src/wb_options.ts:325</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"focus\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>focus</span><a href=\"#focus\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">focus</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>The tree received or lost focus.\nCheck <code>e.flag</code> for status.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.focus</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L331\">src/wb_options.ts:331</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"iconbadge\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>icon<wbr/>Badge</span><a href=\"#iconbadge\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">iconBadge</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.WbIconBadgeCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbIconBadgeCallback</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"types.WbIconBadgeEventResultType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbIconBadgeEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> is about to be rendered. We can add a badge to the icon cell here.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.iconBadge</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L315\">src/wb_options.ts:315</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"init\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>init</span><a href=\"#init\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">init</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbInitEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbInitEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Fires when the tree markup was created and the initial source data was loaded.\nTypical use cases would be activating a node, setting focus, enabling other\ncontrols on the page, etc.<br>\nAlso sent if an error occured during initialization (check <code>e.error</code> for status).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.init</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L339\">src/wb_options.ts:339</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"keydown\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>keydown</span><a href=\"#keydown\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">keydown</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbKeydownEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbKeydownEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p>Fires when a key was pressed while the tree has focus.\n<code>e.node</code> is set if a node is currently active.\nReturn <code>false</code> to prevent default navigation.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.keydown</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L346\">src/wb_options.ts:346</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"lazyload\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>lazy<wbr/>Load</span><a href=\"#lazyload\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">lazyLoad</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Fires when a node that was marked 'lazy', is expanded for the first time.\nTypically we return an endpoint URL or the Promise of a fetch request that\nprovides a (potentially nested) list of child nodes.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.lazyLoad</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L353\">src/wb_options.ts:353</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"load\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>load</span><a href=\"#load\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">load</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Fires when data was loaded (initial request, reload, or lazy loading),\nafter the data is applied and rendered.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.load</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L359\">src/wb_options.ts:359</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"modifychild\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>modify<wbr/>Child</span><a href=\"#modifychild\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">modifyChild</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.modifyChild</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L363\">src/wb_options.ts:363</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"receive\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>receive</span><a href=\"#receive\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">receive</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbReceiveEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbReceiveEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Fires when data was fetched (initial request, reload, or lazy loading),\nbut before the data is applied and rendered.\nHere we can modify and adjust the received data, for example to convert an\nexternal response to native Wunderbaum syntax.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.receive</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L371\">src/wb_options.ts:371</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"render\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>render</span><a href=\"#render\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">render</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbRenderEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbRenderEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Fires when a node is about to be displayed.\nThe default HTML markup is already created, but not yet added to the DOM.\nNow we can tweak the markup, create HTML elements in this node's column\ncells, etc.\nSee also <code>Custom Rendering</code> for details.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.render</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L380\">src/wb_options.ts:380</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"renderstatusnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>render<wbr/>Status<wbr/>Node</span><a href=\"#renderstatusnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">renderStatusNode</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbRenderEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbRenderEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Same as <code>render(e)</code>, but for the status nodes, i.e. <code>e.node.statusNodeType</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.renderStatusNode</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L385\">src/wb_options.ts:385</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"select\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>select</span><a href=\"#select\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">select</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> was selected (<code>e.flag === true</code>) or deselected (<code>e.flag === false</code>)</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.select</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L390\">src/wb_options.ts:390</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"update\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>update</span><a href=\"#update\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">update</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Fires when the viewport content was updated, after scroling, expanding etc.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.update</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L395\">src/wb_options.ts:395</a></li></ul></aside></section></section></details><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Other\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Other</h2></summary><section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"adjustheight\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>adjust<wbr/>Height</span><a href=\"#adjustheight\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">adjustHeight</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>If true, the tree will automatically adjust its height to fit the parent\ncontainer. This is useful when the tree is embedded in a container with\na fixed or calculated sized.\nIf the parent container is unsized (e.g. grows with its content, <code>height: auto</code>),\nthen we can define a <code>height: ...</code> or <code>max_height: ...</code> style on the parent.\nTo avoid a recursive resize-loop, it may be helpful to set <code>overflow: hidden</code>\non the parent container.</p>\n<p>Set this option to <code>false</code> will disable auto-resizing.</p>\n<p>@default: true</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.adjustHeight</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L125\">src/wb_options.ts:125</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"autocollapse\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>auto<wbr/>Collapse</span><a href=\"#autocollapse\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">autoCollapse</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Collapse siblings when a node is expanded.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.autoCollapse</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L111\">src/wb_options.ts:111</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"autokeys\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>auto<wbr/>Keys</span><a href=\"#autokeys\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">autoKeys</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Generate missing keys by hashing a combination of refKey (or title) and\nthe parent key. This is useful when the source data does not contain unique\nkeys but we want stable keys for persisting the active node, selection or\nexpansion state. Note that this still assumes that the same refKey must not\nappear twice in the same parent node.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-2\">false</span><span class=\"hl-1\">.</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.autoKeys</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L156\">src/wb_options.ts:156</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"checkbox\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>checkbox</span><a href=\"#checkbox\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">checkbox</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicCheckboxOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicCheckboxOption</a></div><div class=\"tsd-comment tsd-typography\"><p>If true, render a checkbox before the node tile to allow selection with the\nmouse. Pass <code>&quot;radio&quot;</code> to render a radio button instead.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-2\">false</span><span class=\"hl-1\">.</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.checkbox</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L162\">src/wb_options.ts:162</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"columns\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>columns</span><a href=\"#columns\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">columns</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.ColumnDefinitionList.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ColumnDefinitionList</a></div><div class=\"tsd-comment tsd-typography\"><p>A list of maps that define column headers. If this option is set,\nWunderbaum becomes a treegrid control instead of a plain tree.\nColumn definitions can be passed as tree option, or be part of a <code>source</code>\nresponse.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-3\" class=\"tsd-anchor\"></a>Default<a href=\"#default-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><code>[]</code> meaning this is a plain tree.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L464\">src/wb_options.ts:464</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"columnsfilterable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>columns<wbr/>Filterable</span><a href=\"#columnsfilterable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">columnsFilterable</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Default value for ColumnDefinition.filterable option.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-4\" class=\"tsd-anchor\"></a>Default<a href=\"#default-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since\" class=\"tsd-anchor\"></a>Since<a href=\"#since\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.11.0</p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.columnsFilterable</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L191\">src/wb_options.ts:191</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"columnsmenu\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>columns<wbr/>Menu</span><a href=\"#columnsmenu\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">columnsMenu</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Default value for ColumnDefinition.menu option.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-5\" class=\"tsd-anchor\"></a>Default<a href=\"#default-5\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-1\" class=\"tsd-anchor\"></a>Since<a href=\"#since-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.11.0</p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.columnsMenu</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L197\">src/wb_options.ts:197</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"columnsresizable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>columns<wbr/>Resizable</span><a href=\"#columnsresizable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">columnsResizable</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Default value for ColumnDefinition.resizable option.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-6\" class=\"tsd-anchor\"></a>Default<a href=\"#default-6\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-2\" class=\"tsd-anchor\"></a>Since<a href=\"#since-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.10.0</p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.columnsResizable</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L203\">src/wb_options.ts:203</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"columnssortable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>columns<wbr/>Sortable</span><a href=\"#columnssortable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">columnsSortable</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Default value for ColumnDefinition.sortable option.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-7\" class=\"tsd-anchor\"></a>Default<a href=\"#default-7\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-3\" class=\"tsd-anchor\"></a>Since<a href=\"#since-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.11.0</p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.columnsSortable</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L209\">src/wb_options.ts:209</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"connecttopbreadcrumb\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>connect<wbr/>Top<wbr/>Breadcrumb</span><a href=\"#connecttopbreadcrumb\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">connectTopBreadcrumb</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLElement</span></div><div class=\"tsd-comment tsd-typography\"><p>HTMLElement or selector that receives the top nodes breadcrumb.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-8\" class=\"tsd-anchor\"></a>Default<a href=\"#default-8\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">undefined</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.connectTopBreadcrumb</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L130\">src/wb_options.ts:130</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"debuglevel\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>debug<wbr/>Level</span><a href=\"#debuglevel\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">debugLevel</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>0:quiet, 1:errors, 2:warnings, 3:info, 4:verbose</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-9\" class=\"tsd-anchor\"></a>Default<a href=\"#default-9\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-10\">3</span><span class=\"hl-1\"> (</span><span class=\"hl-10\">4</span><span class=\"hl-1\"> </span><span class=\"hl-0\">in</span><span class=\"hl-1\"> </span><span class=\"hl-2\">local</span><span class=\"hl-1\"> </span><span class=\"hl-2\">debug</span><span class=\"hl-1\"> </span><span class=\"hl-2\">environment</span><span class=\"hl-1\">)</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.debugLevel</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L66\">src/wb_options.ts:66</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"dnd\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>dnd</span><a href=\"#dnd\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">dnd</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DndOptionsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DndOptionsType</a></div><div class=\"tsd-comment tsd-typography\"><p>Configuration options for the drag-and-drop extension.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.dnd</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L242\">src/wb_options.ts:242</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"edit\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>edit</span><a href=\"#edit\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">edit</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.EditOptionsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">EditOptionsType</a></div><div class=\"tsd-comment tsd-typography\"><p>Configuration options for the edit-title extension.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.edit</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L244\">src/wb_options.ts:244</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"element\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>element</span><a href=\"#element\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">element</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLDivElement</span></div><div class=\"tsd-comment tsd-typography\"><p>The target <code>div</code> element (or selector) that shall become a Wunderbaum.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L449\">src/wb_options.ts:449</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"emptychildlistexpandable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>empty<wbr/>Child<wbr/>List<wbr/>Expandable</span><a href=\"#emptychildlistexpandable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">emptyChildListExpandable</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>If true, allow to expand parent nodes, even if <code>node.children</code> conatains\nan empty array (<code>[]</code>). This is the the behavior of macOS Finder, for example.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-10\" class=\"tsd-anchor\"></a>Default<a href=\"#default-10\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.emptyChildListExpandable</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L78\">src/wb_options.ts:78</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"enabled\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>enabled</span><a href=\"#enabled\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">enabled</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-11\" class=\"tsd-anchor\"></a>Default<a href=\"#default-11\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.enabled</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L180\">src/wb_options.ts:180</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"filter\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>filter</span><a href=\"#filter\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">filter</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.FilterOptionsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">FilterOptionsType</a></div><div class=\"tsd-comment tsd-typography\"><p>Configuration options for the node-filter extension.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.filter</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L246\">src/wb_options.ts:246</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"fixedcol\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>fixed<wbr/>Col</span><a href=\"#fixedcol\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">fixedCol</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-12\" class=\"tsd-anchor\"></a>Default<a href=\"#default-12\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.fixedCol</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L185\">src/wb_options.ts:185</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"header\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>header</span><a href=\"#header\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">header</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Show/hide header (default: null)\nnull: assume false for plain tree and true for grids.\nstring: use text as header (only for plain trees)\ntrue: display a header (use tree's id as text for plain trees)\nfalse: do not display a header</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.header</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L142\">src/wb_options.ts:142</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"icon\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>icon</span><a href=\"#icon\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">icon</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicIconOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicIconOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Optional callback to render icons per node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.icon</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L164\">src/wb_options.ts:164</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"iconmap\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>icon<wbr/>Map</span><a href=\"#iconmap\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">iconMap</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.IconMapType.html\" class=\"tsd-signature-type tsd-kind-interface\">IconMapType</a></div><div class=\"tsd-comment tsd-typography\"><p>Icon font definition. May be a string (e.g. &quot;fontawesome6&quot; or &quot;bootstrap&quot;)\nor a map of <code>iconName: iconClass</code> pairs.\nNote: the icon font must be loaded separately.\nIn order to only override some defauöt icons, use this pattern:</p>\n<pre><code class=\"js\"><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">tree</span><span class=\"hl-1\"> = </span><span class=\"hl-0\">new</span><span class=\"hl-1\"> </span><span class=\"hl-2\">mar10</span><span class=\"hl-1\">.</span><span class=\"hl-6\">Wunderbaum</span><span class=\"hl-1\">({</span><br/><span class=\"hl-1\">  ...</span><br/><span class=\"hl-1\">  </span><span class=\"hl-2\">iconMap</span><span class=\"hl-1\">: </span><span class=\"hl-2\">Object</span><span class=\"hl-1\">.</span><span class=\"hl-6\">assign</span><span class=\"hl-1\">(</span><span class=\"hl-2\">Wunderbaum</span><span class=\"hl-1\">.</span><span class=\"hl-2\">iconMaps</span><span class=\"hl-1\">.</span><span class=\"hl-2\">bootstrap</span><span class=\"hl-1\">, {</span><br/><span class=\"hl-1\">    </span><span class=\"hl-2\">folder:</span><span class=\"hl-1\"> </span><span class=\"hl-7\">&quot;bi bi-archive&quot;</span><span class=\"hl-1\">,</span><br/><span class=\"hl-1\">  }),</span><br/><span class=\"hl-1\">});</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-13\" class=\"tsd-anchor\"></a>Default<a href=\"#default-13\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&quot;bootstrap&quot;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.iconMap</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L106\">src/wb_options.ts:106</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"icontooltip\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>icon<wbr/>Tooltip</span><a href=\"#icontooltip\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">iconTooltip</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOrStringOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOrStringOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Optional callback to render a tooltip for the icon.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.iconTooltip</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L166\">src/wb_options.ts:166</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"id\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>id</span><a href=\"#id\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">id</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>The identifier of this tree. Used to reference the instance, especially\nwhen multiple trees are present (e.g. <code>tree = mar10.Wunderbaum.getTree(&quot;demo&quot;)</code>).</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-14\" class=\"tsd-anchor\"></a>Default<a href=\"#default-14\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><code>&quot;wb_&quot; + COUNTER</code>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L456\">src/wb_options.ts:456</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"minexpandlevel\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>min<wbr/>Expand<wbr/>Level</span><a href=\"#minexpandlevel\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">minExpandLevel</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>Number of levels that are forced to be expanded, and have no expander icon.\nE.g. 1 would keep all toplevel nodes expanded.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-15\" class=\"tsd-anchor\"></a>Default<a href=\"#default-15\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-10\">0</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.minExpandLevel</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L72\">src/wb_options.ts:72</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"navigationmodeoption\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>navigation<wbr/>Mode<wbr/>Option</span><a href=\"#navigationmodeoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">navigationModeOption</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../enums/types.NavModeEnum.html\" class=\"tsd-signature-type tsd-kind-enum\">NavModeEnum</a></div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-16\" class=\"tsd-anchor\"></a>Default<a href=\"#default-16\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-2\">NavModeEnum</span><span class=\"hl-1\">.</span><span class=\"hl-2\">startRow</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.navigationModeOption</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L134\">src/wb_options.ts:134</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"quicksearch\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>quicksearch</span><a href=\"#quicksearch\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">quicksearch</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-17\" class=\"tsd-anchor\"></a>Default<a href=\"#default-17\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.quicksearch</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L231\">src/wb_options.ts:231</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"rowheightpx\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>row<wbr/>Height<wbr/>Px</span><a href=\"#rowheightpx\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">rowHeightPx</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>Height of a node row div.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-18\" class=\"tsd-anchor\"></a>Default<a href=\"#default-18\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-10\">22</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.rowHeightPx</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L89\">src/wb_options.ts:89</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"scrollintoviewonexpandclick\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>scroll<wbr/>Into<wbr/>View<wbr/>On<wbr/>Expand<wbr/>Click</span><a href=\"#scrollintoviewonexpandclick\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">scrollIntoViewOnExpandClick</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Scroll Node into view on Expand Click</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-19\" class=\"tsd-anchor\"></a>Default<a href=\"#default-19\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.scrollIntoViewOnExpandClick</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L237\">src/wb_options.ts:237</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"selectmode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>select<wbr/>Mode</span><a href=\"#selectmode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">selectMode</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.SelectModeType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SelectModeType</a></div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-20\" class=\"tsd-anchor\"></a>Default<a href=\"#default-20\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&quot;multi&quot;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.selectMode</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L225\">src/wb_options.ts:225</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"showspinner\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>show<wbr/>Spinner</span><a href=\"#showspinner\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">showSpinner</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Show a <code>&lt;progress&gt;</code> element while loading data.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-21\" class=\"tsd-anchor\"></a>Default<a href=\"#default-21\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-2\">false</span><span class=\"hl-1\">.</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.showSpinner</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L147\">src/wb_options.ts:147</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"skeleton\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>skeleton</span><a href=\"#skeleton\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">skeleton</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>If true, add a <code>wb-skeleton</code> class to all nodes, that will result in a\n'glow' effect. Typically used with initial dummy nodes, while loading the\nreal data.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-22\" class=\"tsd-anchor\"></a>Default<a href=\"#default-22\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-2\">false</span><span class=\"hl-1\">.</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.skeleton</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L57\">src/wb_options.ts:57</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"sortfoldersfirst\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>sort<wbr/>Folders<wbr/>First</span><a href=\"#sortfoldersfirst\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">sortFoldersFirst</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Group nodes with children or of <code>type: 'folder'</code> at the top when sorting.\nIf a function is passed, it is called with the node as argument to determine\nwhether the node is a folder or not. The function should return <code>true</code> for\nfolders.\nand should return <code>true</code> for folders.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-23\" class=\"tsd-anchor\"></a>Default<a href=\"#default-23\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-4\" class=\"tsd-anchor\"></a>Since<a href=\"#since-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.14.0</p>\n</div></div><aside class=\"tsd-sources\"><p>Inherited from Partial.sortFoldersFirst</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L219\">src/wb_options.ts:219</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"source\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>source</span><a href=\"#source\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">source</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.SourceType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SourceType</a></div><div class=\"tsd-comment tsd-typography\"><p>Define the initial tree data. Typically a URL of an endpoint that serves\na JSON formatted structure, but also a callback, Promise, or static data\nis allowed.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-24\" class=\"tsd-anchor\"></a>Default<a href=\"#default-24\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><code>[]</code>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L480\">src/wb_options.ts:480</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"strings\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>strings</span><a href=\"#strings\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">strings</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.TranslationsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TranslationsType</a></div><div class=\"tsd-comment tsd-typography\"><p>Translation map for some system messages.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.strings</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L61\">src/wb_options.ts:61</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"tooltip\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>tooltip</span><a href=\"#tooltip\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tooltip</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOrStringOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOrStringOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Optional callback to render a tooltip for the node title.\nPass <code>true</code> to use the node's <code>title</code> property as tooltip.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.tooltip</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L170\">src/wb_options.ts:170</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"types\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>types</span><a href=\"#types\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">types</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.NodeTypeDefinitionMap.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeTypeDefinitionMap</a></div><div class=\"tsd-comment tsd-typography\"><p>Define shared attributes for multiple nodes of the same type.\nThis allows for more compact data models. Type definitions can be passed\nas tree option, or be part of a <code>source</code> response.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-25\" class=\"tsd-anchor\"></a>Default<a href=\"#default-25\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p><code>{}</code>.</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L472\">src/wb_options.ts:472</a></li></ul></aside></section><section class=\"tsd-panel tsd-member tsd-is-inherited\"><a id=\"unselectable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>unselectable</span><a href=\"#unselectable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">unselectable</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Optional callback to make a node unselectable.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><p>Inherited from Partial.unselectable</p><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L172\">src/wb_options.ts:172</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Callback\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Callback</summary><div><a href=\"#activate\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>activate</span></a><a href=\"#beforeactivate\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>before<wbr/>Activate</span></a><a href=\"#beforeexpand\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>before<wbr/>Expand</span></a><a href=\"#beforeselect\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>before<wbr/>Select</span></a><a href=\"#buttonclick\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>button<wbr/>Click</span></a><a href=\"#change\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>change</span></a><a href=\"#click\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>click</span></a><a href=\"#dblclick\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>dblclick</span></a><a href=\"#deactivate\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>deactivate</span></a><a href=\"#discard\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>discard</span></a><a href=\"#error\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>error</span></a><a href=\"#expand\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expand</span></a><a href=\"#focus\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>focus</span></a><a href=\"#iconbadge\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Badge</span></a><a href=\"#init\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>init</span></a><a href=\"#keydown\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>keydown</span></a><a href=\"#lazyload\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>lazy<wbr/>Load</span></a><a href=\"#load\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>load</span></a><a href=\"#modifychild\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>modify<wbr/>Child</span></a><a href=\"#receive\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>receive</span></a><a href=\"#render\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>render</span></a><a href=\"#renderstatusnode\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>render<wbr/>Status<wbr/>Node</span></a><a href=\"#select\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>select</span></a><a href=\"#update\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>update</span></a></div></details><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Other\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Other</summary><div><a href=\"#adjustheight\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>adjust<wbr/>Height</span></a><a href=\"#autocollapse\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>auto<wbr/>Collapse</span></a><a href=\"#autokeys\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>auto<wbr/>Keys</span></a><a href=\"#checkbox\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>checkbox</span></a><a href=\"#columns\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns</span></a><a href=\"#columnsfilterable\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Filterable</span></a><a href=\"#columnsmenu\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Menu</span></a><a href=\"#columnsresizable\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Resizable</span></a><a href=\"#columnssortable\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Sortable</span></a><a href=\"#connecttopbreadcrumb\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>connect<wbr/>Top<wbr/>Breadcrumb</span></a><a href=\"#debuglevel\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>debug<wbr/>Level</span></a><a href=\"#dnd\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>dnd</span></a><a href=\"#edit\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>edit</span></a><a href=\"#element\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>element</span></a><a href=\"#emptychildlistexpandable\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>empty<wbr/>Child<wbr/>List<wbr/>Expandable</span></a><a href=\"#enabled\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>enabled</span></a><a href=\"#filter\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>filter</span></a><a href=\"#fixedcol\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>fixed<wbr/>Col</span></a><a href=\"#header\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>header</span></a><a href=\"#icon\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon</span></a><a href=\"#iconmap\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Map</span></a><a href=\"#icontooltip\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Tooltip</span></a><a href=\"#id\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>id</span></a><a href=\"#minexpandlevel\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>min<wbr/>Expand<wbr/>Level</span></a><a href=\"#navigationmodeoption\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>navigation<wbr/>Mode<wbr/>Option</span></a><a href=\"#quicksearch\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>quicksearch</span></a><a href=\"#rowheightpx\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>row<wbr/>Height<wbr/>Px</span></a><a href=\"#scrollintoviewonexpandclick\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>scroll<wbr/>Into<wbr/>View<wbr/>On<wbr/>Expand<wbr/>Click</span></a><a href=\"#selectmode\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>select<wbr/>Mode</span></a><a href=\"#showspinner\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>show<wbr/>Spinner</span></a><a href=\"#skeleton\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>skeleton</span></a><a href=\"#sortfoldersfirst\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>sort<wbr/>Folders<wbr/>First</span></a><a href=\"#source\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>source</span></a><a href=\"#strings\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>strings</span></a><a href=\"#tooltip\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tooltip</span></a><a href=\"#types\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>types</span></a><a href=\"#unselectable\" class=\"tsd-is-inherited\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>unselectable</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/interfaces/wb_options.WunderbaumOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WunderbaumOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/wb_options.html\">wb_options</a></li><li><a href=\"wb_options.WunderbaumOptions.html\">WunderbaumOptions</a></li></ul><h1>Interface WunderbaumOptions</h1></div><section class=\"tsd-panel tsd-comment\"><div class=\"tsd-comment tsd-typography\"><p>Properties of <a href=\"../classes/wunderbaum.Wunderbaum.html#options\" class=\"tsd-kind-property\">wunderbaum.Wunderbaum.options</a>.</p>\n<p>This is similar, but not identical, to the options that can be passed to the\nconstructor(@see <a href=\"wb_options.InitWunderbaumOptions.html\" class=\"tsd-kind-interface\">InitWunderbaumOptions</a>).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></section><div class=\"tsd-signature\"><span class=\"tsd-signature-keyword\">interface</span> <span class=\"tsd-kind-interface\">WunderbaumOptions</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#activate\">activate</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbActivateEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbActivateEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#adjustheight\">adjustHeight</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#autocollapse\">autoCollapse</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#autokeys\">autoKeys</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#beforeactivate\">beforeActivate</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbActivateEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbActivateEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#beforeexpand\">beforeExpand</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbExpandEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbExpandEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#beforeselect\">beforeSelect</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbSelectEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbSelectEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#buttonclick\">buttonClick</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbButtonClickEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbButtonClickEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#change\">change</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbChangeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbChangeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#checkbox\">checkbox</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.DynamicCheckboxOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicCheckboxOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#click\">click</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbClickEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbClickEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#columnsfilterable\">columnsFilterable</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#columnsmenu\">columnsMenu</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#columnsresizable\">columnsResizable</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#columnssortable\">columnsSortable</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#connecttopbreadcrumb\">connectTopBreadcrumb</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLElement</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#dblclick\">dblclick</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbClickEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbClickEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#deactivate\">deactivate</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbDeactivateEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbDeactivateEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#debuglevel\">debugLevel</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#discard\">discard</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#dnd\">dnd</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.DndOptionsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DndOptionsType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#edit\">edit</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.EditOptionsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">EditOptionsType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#emptychildlistexpandable\">emptyChildListExpandable</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#enabled\">enabled</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#error\">error</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbErrorEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbErrorEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#expand\">expand</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#filter\">filter</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.FilterOptionsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">FilterOptionsType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#fixedcol\">fixedCol</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#focus\">focus</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#header\">header</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#icon\">icon</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicIconOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicIconOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#iconbadge\">iconBadge</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.WbIconBadgeCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbIconBadgeCallback</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"types.WbIconBadgeEventResultType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbIconBadgeEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#iconmap\">iconMap</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.IconMapType.html\" class=\"tsd-signature-type tsd-kind-interface\">IconMapType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#icontooltip\">iconTooltip</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOrStringOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOrStringOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#init\">init</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbInitEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbInitEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#keydown\">keydown</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbKeydownEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbKeydownEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#lazyload\">lazyLoad</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#load\">load</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#minexpandlevel\">minExpandLevel</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#modifychild\">modifyChild</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#navigationmodeoption\">navigationModeOption</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../enums/types.NavModeEnum.html\" class=\"tsd-signature-type tsd-kind-enum\">NavModeEnum</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#quicksearch\">quicksearch</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#receive\">receive</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbReceiveEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbReceiveEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#render\">render</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbRenderEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbRenderEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#renderstatusnode\">renderStatusNode</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbRenderEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbRenderEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#rowheightpx\">rowHeightPx</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#scrollintoviewonexpandclick\">scrollIntoViewOnExpandClick</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#select\">select</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#selectmode\">selectMode</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.SelectModeType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SelectModeType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#showspinner\">showSpinner</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#skeleton\">skeleton</a><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#sortfoldersfirst\">sortFoldersFirst</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#strings\">strings</a><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.TranslationsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TranslationsType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#tooltip\">tooltip</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOrStringOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOrStringOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#unselectable\">unselectable</a><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOption</a><span class=\"tsd-signature-symbol\">;</span><br/>    <a class=\"tsd-kind-property\" href=\"wb_options.WunderbaumOptions.html#update\">update</a><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L50\">src/wb_options.ts:50</a></li></ul></aside><section class=\"tsd-panel-group tsd-index-group\"><section class=\"tsd-panel tsd-index-panel\"><details class=\"tsd-index-content tsd-accordion\" open><summary class=\"tsd-accordion-summary tsd-index-summary\"><h5 class=\"tsd-index-heading uppercase\" role=\"button\" aria-expanded=\"false\" tabIndex=\"0\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronSmall\"></use></svg> Index</h5></summary><div class=\"tsd-accordion-details\"><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Callback</h3><div class=\"tsd-index-list\"><a href=\"wb_options.WunderbaumOptions.html#activate\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>activate?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#beforeactivate\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>before<wbr/>Activate?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#beforeexpand\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>before<wbr/>Expand?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#beforeselect\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>before<wbr/>Select?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#buttonclick\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>button<wbr/>Click?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#change\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>change?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#click\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>click?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#dblclick\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>dblclick?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#deactivate\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>deactivate?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#discard\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>discard?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#error\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>error?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#expand\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expand?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#focus\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>focus?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#iconbadge\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Badge?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#init\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>init?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#keydown\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>keydown?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#lazyload\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>lazy<wbr/>Load?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#load\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>load?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#modifychild\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>modify<wbr/>Child?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#receive\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>receive?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#render\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>render?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#renderstatusnode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>render<wbr/>Status<wbr/>Node?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#select\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>select?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#update\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>update?</span></a>\n</div></section><section class=\"tsd-index-section\"><h3 class=\"tsd-index-heading\">Other</h3><div class=\"tsd-index-list\"><a href=\"wb_options.WunderbaumOptions.html#adjustheight\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>adjust<wbr/>Height</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#autocollapse\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>auto<wbr/>Collapse</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#autokeys\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>auto<wbr/>Keys</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#checkbox\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>checkbox</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#columnsfilterable\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Filterable</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#columnsmenu\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Menu</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#columnsresizable\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Resizable?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#columnssortable\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Sortable?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#connecttopbreadcrumb\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>connect<wbr/>Top<wbr/>Breadcrumb</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#debuglevel\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>debug<wbr/>Level</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#dnd\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>dnd</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#edit\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>edit</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#emptychildlistexpandable\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>empty<wbr/>Child<wbr/>List<wbr/>Expandable</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#enabled\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>enabled</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#filter\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>filter</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#fixedcol\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>fixed<wbr/>Col</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#header\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>header</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#icon\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#iconmap\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Map</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#icontooltip\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Tooltip?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#minexpandlevel\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>min<wbr/>Expand<wbr/>Level</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#navigationmodeoption\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>navigation<wbr/>Mode<wbr/>Option</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#quicksearch\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>quicksearch</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#rowheightpx\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>row<wbr/>Height<wbr/>Px</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#scrollintoviewonexpandclick\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>scroll<wbr/>Into<wbr/>View<wbr/>On<wbr/>Expand<wbr/>Click</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#selectmode\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>select<wbr/>Mode</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#showspinner\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>show<wbr/>Spinner</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#skeleton\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>skeleton</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#sortfoldersfirst\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>sort<wbr/>Folders<wbr/>First?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#strings\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>strings</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#tooltip\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tooltip?</span></a>\n<a href=\"wb_options.WunderbaumOptions.html#unselectable\" class=\"tsd-index-link\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>unselectable?</span></a>\n</div></section></div></details></section></section><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Callback\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Callback</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"activate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>activate</span><a href=\"#activate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">activate</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbActivateEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbActivateEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> was activated.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L257\">src/wb_options.ts:257</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"beforeactivate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>before<wbr/>Activate</span><a href=\"#beforeactivate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">beforeActivate</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbActivateEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbActivateEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> is about to be activated.\nReturn <code>false</code> to prevent default handling, i.e. activating the node.\nSee also <code>deactivate</code> event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L264\">src/wb_options.ts:264</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"beforeexpand\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>before<wbr/>Expand</span><a href=\"#beforeexpand\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">beforeExpand</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbExpandEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbExpandEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> is about to be expanded/collapsed.\nReturn <code>false</code> to prevent default handling, i.e. expanding/collapsing the node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L270\">src/wb_options.ts:270</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"beforeselect\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>before<wbr/>Select</span><a href=\"#beforeselect\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">beforeSelect</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbSelectEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbSelectEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p>Return <code>false</code> to prevent default handling, i.e. (de)selecting the node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L275\">src/wb_options.ts:275</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"buttonclick\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>button<wbr/>Click</span><a href=\"#buttonclick\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">buttonClick</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbButtonClickEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbButtonClickEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Return <code>false</code> to prevent default handling, i.e. (de)selecting the node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L280\">src/wb_options.ts:280</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"change\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>change</span><a href=\"#change\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">change</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbChangeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbChangeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L285\">src/wb_options.ts:285</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"click\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>click</span><a href=\"#click\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">click</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbClickEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbClickEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p>Return <code>false</code> to prevent default behavior, e.g. expand/collapse, (de)selection, or activation.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L291\">src/wb_options.ts:291</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"dblclick\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>dblclick</span><a href=\"#dblclick\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">dblclick</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbClickEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbClickEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p>Return <code>false</code> to prevent default behavior, e.g. expand/collapse.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L296\">src/wb_options.ts:296</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"deactivate\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>deactivate</span><a href=\"#deactivate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">deactivate</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbDeactivateEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbDeactivateEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> was deactivated.</p>\n<p>Return <code>false</code> to prevent default handling, e.g. deactivating the node\nand activating the next.\nSee also <code>activate</code> event.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L305\">src/wb_options.ts:305</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"discard\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>discard</span><a href=\"#discard\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">discard</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> was discarded from the viewport and its HTML markup removed.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L310\">src/wb_options.ts:310</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"error\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>error</span><a href=\"#error\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">error</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbErrorEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbErrorEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>An error occurred, e.g. during initialization or lazy loading.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L320\">src/wb_options.ts:320</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"expand\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>expand</span><a href=\"#expand\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">expand</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> was expanded (<code>e.flag === true</code>) or collapsed (<code>e.flag === false</code>)</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L325\">src/wb_options.ts:325</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"focus\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>focus</span><a href=\"#focus\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">focus</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>The tree received or lost focus.\nCheck <code>e.flag</code> for status.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L331\">src/wb_options.ts:331</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"iconbadge\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>icon<wbr/>Badge</span><a href=\"#iconbadge\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">iconBadge</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.WbIconBadgeCallback.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbIconBadgeCallback</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"types.WbIconBadgeEventResultType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbIconBadgeEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> is about to be rendered. We can add a badge to the icon cell here.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L315\">src/wb_options.ts:315</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"init\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>init</span><a href=\"#init\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">init</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbInitEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbInitEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Fires when the tree markup was created and the initial source data was loaded.\nTypical use cases would be activating a node, setting focus, enabling other\ncontrols on the page, etc.<br>\nAlso sent if an error occured during initialization (check <code>e.error</code> for status).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L339\">src/wb_options.ts:339</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"keydown\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>keydown</span><a href=\"#keydown\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">keydown</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbKeydownEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbKeydownEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../types/types.WbCancelableEventResultType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">WbCancelableEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p>Fires when a key was pressed while the tree has focus.\n<code>e.node</code> is set if a node is currently active.\nReturn <code>false</code> to prevent default navigation.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L346\">src/wb_options.ts:346</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"lazyload\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>lazy<wbr/>Load</span><a href=\"#lazyload\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">lazyLoad</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Fires when a node that was marked 'lazy', is expanded for the first time.\nTypically we return an endpoint URL or the Promise of a fetch request that\nprovides a (potentially nested) list of child nodes.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L353\">src/wb_options.ts:353</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"load\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>load</span><a href=\"#load\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">load</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Fires when data was loaded (initial request, reload, or lazy loading),\nafter the data is applied and rendered.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L359\">src/wb_options.ts:359</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"modifychild\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>modify<wbr/>Child</span><a href=\"#modifychild\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">modifyChild</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L363\">src/wb_options.ts:363</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"receive\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>receive</span><a href=\"#receive\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">receive</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbReceiveEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbReceiveEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Fires when data was fetched (initial request, reload, or lazy loading),\nbut before the data is applied and rendered.\nHere we can modify and adjust the received data, for example to convert an\nexternal response to native Wunderbaum syntax.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L371\">src/wb_options.ts:371</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"render\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>render</span><a href=\"#render\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">render</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbRenderEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbRenderEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Fires when a node is about to be displayed.\nThe default HTML markup is already created, but not yet added to the DOM.\nNow we can tweak the markup, create HTML elements in this node's column\ncells, etc.\nSee also <code>Custom Rendering</code> for details.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L380\">src/wb_options.ts:380</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"renderstatusnode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>render<wbr/>Status<wbr/>Node</span><a href=\"#renderstatusnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">renderStatusNode</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbRenderEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbRenderEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Same as <code>render(e)</code>, but for the status nodes, i.e. <code>e.node.statusNodeType</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L385\">src/wb_options.ts:385</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"select\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>select</span><a href=\"#select\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">select</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p><code>e.node</code> was selected (<code>e.flag === true</code>) or deselected (<code>e.flag === false</code>)</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L390\">src/wb_options.ts:390</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"update\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>update</span><a href=\"#update\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">update</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.WbTreeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbTreeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Fires when the viewport content was updated, after scroling, expanding etc.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L395\">src/wb_options.ts:395</a></li></ul></aside></section></section></details><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Other\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Other</h2></summary><section><section class=\"tsd-panel tsd-member\"><a id=\"adjustheight\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>adjust<wbr/>Height</span><a href=\"#adjustheight\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">adjustHeight</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>If true, the tree will automatically adjust its height to fit the parent\ncontainer. This is useful when the tree is embedded in a container with\na fixed or calculated sized.\nIf the parent container is unsized (e.g. grows with its content, <code>height: auto</code>),\nthen we can define a <code>height: ...</code> or <code>max_height: ...</code> style on the parent.\nTo avoid a recursive resize-loop, it may be helpful to set <code>overflow: hidden</code>\non the parent container.</p>\n<p>Set this option to <code>false</code> will disable auto-resizing.</p>\n<p>@default: true</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L125\">src/wb_options.ts:125</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"autocollapse\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>auto<wbr/>Collapse</span><a href=\"#autocollapse\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">autoCollapse</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Collapse siblings when a node is expanded.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L111\">src/wb_options.ts:111</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"autokeys\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>auto<wbr/>Keys</span><a href=\"#autokeys\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">autoKeys</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Generate missing keys by hashing a combination of refKey (or title) and\nthe parent key. This is useful when the source data does not contain unique\nkeys but we want stable keys for persisting the active node, selection or\nexpansion state. Note that this still assumes that the same refKey must not\nappear twice in the same parent node.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-2\">false</span><span class=\"hl-1\">.</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L156\">src/wb_options.ts:156</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"checkbox\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>checkbox</span><a href=\"#checkbox\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">checkbox</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.DynamicCheckboxOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicCheckboxOption</a></div><div class=\"tsd-comment tsd-typography\"><p>If true, render a checkbox before the node tile to allow selection with the\nmouse. Pass <code>&quot;radio&quot;</code> to render a radio button instead.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-2\">false</span><span class=\"hl-1\">.</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L162\">src/wb_options.ts:162</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"columnsfilterable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>columns<wbr/>Filterable</span><a href=\"#columnsfilterable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">columnsFilterable</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Default value for ColumnDefinition.filterable option.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-3\" class=\"tsd-anchor\"></a>Default<a href=\"#default-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since\" class=\"tsd-anchor\"></a>Since<a href=\"#since\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.11.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L191\">src/wb_options.ts:191</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"columnsmenu\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>columns<wbr/>Menu</span><a href=\"#columnsmenu\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">columnsMenu</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Default value for ColumnDefinition.menu option.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-4\" class=\"tsd-anchor\"></a>Default<a href=\"#default-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-1\" class=\"tsd-anchor\"></a>Since<a href=\"#since-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.11.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L197\">src/wb_options.ts:197</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"columnsresizable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>columns<wbr/>Resizable</span><a href=\"#columnsresizable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">columnsResizable</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Default value for ColumnDefinition.resizable option.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-5\" class=\"tsd-anchor\"></a>Default<a href=\"#default-5\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-2\" class=\"tsd-anchor\"></a>Since<a href=\"#since-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.10.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L203\">src/wb_options.ts:203</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"columnssortable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>columns<wbr/>Sortable</span><a href=\"#columnssortable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">columnsSortable</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Default value for ColumnDefinition.sortable option.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-6\" class=\"tsd-anchor\"></a>Default<a href=\"#default-6\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-3\" class=\"tsd-anchor\"></a>Since<a href=\"#since-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.11.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L209\">src/wb_options.ts:209</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"connecttopbreadcrumb\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>connect<wbr/>Top<wbr/>Breadcrumb</span><a href=\"#connecttopbreadcrumb\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">connectTopBreadcrumb</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">HTMLElement</span></div><div class=\"tsd-comment tsd-typography\"><p>HTMLElement or selector that receives the top nodes breadcrumb.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-7\" class=\"tsd-anchor\"></a>Default<a href=\"#default-7\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">undefined</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L130\">src/wb_options.ts:130</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"debuglevel\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>debug<wbr/>Level</span><a href=\"#debuglevel\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">debugLevel</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>0:quiet, 1:errors, 2:warnings, 3:info, 4:verbose</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-8\" class=\"tsd-anchor\"></a>Default<a href=\"#default-8\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-10\">3</span><span class=\"hl-1\"> (</span><span class=\"hl-10\">4</span><span class=\"hl-1\"> </span><span class=\"hl-0\">in</span><span class=\"hl-1\"> </span><span class=\"hl-2\">local</span><span class=\"hl-1\"> </span><span class=\"hl-2\">debug</span><span class=\"hl-1\"> </span><span class=\"hl-2\">environment</span><span class=\"hl-1\">)</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L66\">src/wb_options.ts:66</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"dnd\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>dnd</span><a href=\"#dnd\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">dnd</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.DndOptionsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DndOptionsType</a></div><div class=\"tsd-comment tsd-typography\"><p>Configuration options for the drag-and-drop extension.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L242\">src/wb_options.ts:242</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"edit\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>edit</span><a href=\"#edit\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">edit</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.EditOptionsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">EditOptionsType</a></div><div class=\"tsd-comment tsd-typography\"><p>Configuration options for the edit-title extension.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L244\">src/wb_options.ts:244</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"emptychildlistexpandable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>empty<wbr/>Child<wbr/>List<wbr/>Expandable</span><a href=\"#emptychildlistexpandable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">emptyChildListExpandable</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>If true, allow to expand parent nodes, even if <code>node.children</code> conatains\nan empty array (<code>[]</code>). This is the the behavior of macOS Finder, for example.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-9\" class=\"tsd-anchor\"></a>Default<a href=\"#default-9\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L78\">src/wb_options.ts:78</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"enabled\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>enabled</span><a href=\"#enabled\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">enabled</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-10\" class=\"tsd-anchor\"></a>Default<a href=\"#default-10\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L180\">src/wb_options.ts:180</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"filter\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>filter</span><a href=\"#filter\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">filter</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.FilterOptionsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">FilterOptionsType</a></div><div class=\"tsd-comment tsd-typography\"><p>Configuration options for the node-filter extension.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L246\">src/wb_options.ts:246</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"fixedcol\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>fixed<wbr/>Col</span><a href=\"#fixedcol\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">fixedCol</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-11\" class=\"tsd-anchor\"></a>Default<a href=\"#default-11\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L185\">src/wb_options.ts:185</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"header\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>header</span><a href=\"#header\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">header</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Show/hide header (default: null)\nnull: assume false for plain tree and true for grids.\nstring: use text as header (only for plain trees)\ntrue: display a header (use tree's id as text for plain trees)\nfalse: do not display a header</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L142\">src/wb_options.ts:142</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"icon\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>icon</span><a href=\"#icon\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">icon</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicIconOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicIconOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Optional callback to render icons per node.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L164\">src/wb_options.ts:164</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"iconmap\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>icon<wbr/>Map</span><a href=\"#iconmap\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">iconMap</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.IconMapType.html\" class=\"tsd-signature-type tsd-kind-interface\">IconMapType</a></div><div class=\"tsd-comment tsd-typography\"><p>Icon font definition. May be a string (e.g. &quot;fontawesome6&quot; or &quot;bootstrap&quot;)\nor a map of <code>iconName: iconClass</code> pairs.\nNote: the icon font must be loaded separately.\nIn order to only override some defauöt icons, use this pattern:</p>\n<pre><code class=\"js\"><span class=\"hl-0\">const</span><span class=\"hl-1\"> </span><span class=\"hl-8\">tree</span><span class=\"hl-1\"> = </span><span class=\"hl-0\">new</span><span class=\"hl-1\"> </span><span class=\"hl-2\">mar10</span><span class=\"hl-1\">.</span><span class=\"hl-6\">Wunderbaum</span><span class=\"hl-1\">({</span><br/><span class=\"hl-1\">  ...</span><br/><span class=\"hl-1\">  </span><span class=\"hl-2\">iconMap</span><span class=\"hl-1\">: </span><span class=\"hl-2\">Object</span><span class=\"hl-1\">.</span><span class=\"hl-6\">assign</span><span class=\"hl-1\">(</span><span class=\"hl-2\">Wunderbaum</span><span class=\"hl-1\">.</span><span class=\"hl-2\">iconMaps</span><span class=\"hl-1\">.</span><span class=\"hl-2\">bootstrap</span><span class=\"hl-1\">, {</span><br/><span class=\"hl-1\">    </span><span class=\"hl-2\">folder:</span><span class=\"hl-1\"> </span><span class=\"hl-7\">&quot;bi bi-archive&quot;</span><span class=\"hl-1\">,</span><br/><span class=\"hl-1\">  }),</span><br/><span class=\"hl-1\">});</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-12\" class=\"tsd-anchor\"></a>Default<a href=\"#default-12\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&quot;bootstrap&quot;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L106\">src/wb_options.ts:106</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"icontooltip\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>icon<wbr/>Tooltip</span><a href=\"#icontooltip\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">iconTooltip</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOrStringOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOrStringOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Optional callback to render a tooltip for the icon.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L166\">src/wb_options.ts:166</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"minexpandlevel\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>min<wbr/>Expand<wbr/>Level</span><a href=\"#minexpandlevel\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">minExpandLevel</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>Number of levels that are forced to be expanded, and have no expander icon.\nE.g. 1 would keep all toplevel nodes expanded.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-13\" class=\"tsd-anchor\"></a>Default<a href=\"#default-13\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-10\">0</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L72\">src/wb_options.ts:72</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"navigationmodeoption\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>navigation<wbr/>Mode<wbr/>Option</span><a href=\"#navigationmodeoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">navigationModeOption</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../enums/types.NavModeEnum.html\" class=\"tsd-signature-type tsd-kind-enum\">NavModeEnum</a></div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-14\" class=\"tsd-anchor\"></a>Default<a href=\"#default-14\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-2\">NavModeEnum</span><span class=\"hl-1\">.</span><span class=\"hl-2\">startRow</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L134\">src/wb_options.ts:134</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"quicksearch\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>quicksearch</span><a href=\"#quicksearch\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">quicksearch</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-15\" class=\"tsd-anchor\"></a>Default<a href=\"#default-15\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L231\">src/wb_options.ts:231</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"rowheightpx\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>row<wbr/>Height<wbr/>Px</span><a href=\"#rowheightpx\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">rowHeightPx</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>Height of a node row div.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-16\" class=\"tsd-anchor\"></a>Default<a href=\"#default-16\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-10\">22</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L89\">src/wb_options.ts:89</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"scrollintoviewonexpandclick\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>scroll<wbr/>Into<wbr/>View<wbr/>On<wbr/>Expand<wbr/>Click</span><a href=\"#scrollintoviewonexpandclick\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">scrollIntoViewOnExpandClick</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Scroll Node into view on Expand Click</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-17\" class=\"tsd-anchor\"></a>Default<a href=\"#default-17\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L237\">src/wb_options.ts:237</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"selectmode\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>select<wbr/>Mode</span><a href=\"#selectmode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">selectMode</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.SelectModeType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SelectModeType</a></div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-18\" class=\"tsd-anchor\"></a>Default<a href=\"#default-18\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&quot;multi&quot;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L225\">src/wb_options.ts:225</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"showspinner\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>show<wbr/>Spinner</span><a href=\"#showspinner\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">showSpinner</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Show a <code>&lt;progress&gt;</code> element while loading data.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-19\" class=\"tsd-anchor\"></a>Default<a href=\"#default-19\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-2\">false</span><span class=\"hl-1\">.</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L147\">src/wb_options.ts:147</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"skeleton\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>skeleton</span><a href=\"#skeleton\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">skeleton</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>If true, add a <code>wb-skeleton</code> class to all nodes, that will result in a\n'glow' effect. Typically used with initial dummy nodes, while loading the\nreal data.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-20\" class=\"tsd-anchor\"></a>Default<a href=\"#default-20\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-2\">false</span><span class=\"hl-1\">.</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L57\">src/wb_options.ts:57</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"sortfoldersfirst\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>sort<wbr/>Folders<wbr/>First</span><a href=\"#sortfoldersfirst\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">sortFoldersFirst</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Group nodes with children or of <code>type: 'folder'</code> at the top when sorting.\nIf a function is passed, it is called with the node as argument to determine\nwhether the node is a folder or not. The function should return <code>true</code> for\nfolders.\nand should return <code>true</code> for folders.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-21\" class=\"tsd-anchor\"></a>Default<a href=\"#default-21\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since-4\" class=\"tsd-anchor\"></a>Since<a href=\"#since-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.14.0</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L219\">src/wb_options.ts:219</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"strings\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><span>strings</span><a href=\"#strings\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">strings</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../types/types.TranslationsType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TranslationsType</a></div><div class=\"tsd-comment tsd-typography\"><p>Translation map for some system messages.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L61\">src/wb_options.ts:61</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"tooltip\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>tooltip</span><a href=\"#tooltip\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">tooltip</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOrStringOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOrStringOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Optional callback to render a tooltip for the node title.\nPass <code>true</code> to use the node's <code>title</code> property as tooltip.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L170\">src/wb_options.ts:170</a></li></ul></aside></section><section class=\"tsd-panel tsd-member\"><a id=\"unselectable\" class=\"tsd-anchor\"></a><h3 class=\"tsd-anchor-link\"><code class=\"tsd-tag\">Optional</code><span>unselectable</span><a href=\"#unselectable\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h3><div class=\"tsd-signature\"><span class=\"tsd-kind-property\">unselectable</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"../types/types.DynamicBoolOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DynamicBoolOption</a></div><div class=\"tsd-comment tsd-typography\"><p>Optional callback to make a node unselectable.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/wb_options.ts#L172\">src/wb_options.ts:172</a></li></ul></aside></section></section></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Callback\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Callback</summary><div><a href=\"#activate\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>activate</span></a><a href=\"#beforeactivate\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>before<wbr/>Activate</span></a><a href=\"#beforeexpand\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>before<wbr/>Expand</span></a><a href=\"#beforeselect\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>before<wbr/>Select</span></a><a href=\"#buttonclick\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>button<wbr/>Click</span></a><a href=\"#change\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>change</span></a><a href=\"#click\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>click</span></a><a href=\"#dblclick\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>dblclick</span></a><a href=\"#deactivate\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>deactivate</span></a><a href=\"#discard\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>discard</span></a><a href=\"#error\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>error</span></a><a href=\"#expand\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>expand</span></a><a href=\"#focus\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>focus</span></a><a href=\"#iconbadge\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Badge</span></a><a href=\"#init\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>init</span></a><a href=\"#keydown\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>keydown</span></a><a href=\"#lazyload\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>lazy<wbr/>Load</span></a><a href=\"#load\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>load</span></a><a href=\"#modifychild\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>modify<wbr/>Child</span></a><a href=\"#receive\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>receive</span></a><a href=\"#render\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>render</span></a><a href=\"#renderstatusnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>render<wbr/>Status<wbr/>Node</span></a><a href=\"#select\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>select</span></a><a href=\"#update\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>update</span></a></div></details><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Other\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Other</summary><div><a href=\"#adjustheight\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>adjust<wbr/>Height</span></a><a href=\"#autocollapse\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>auto<wbr/>Collapse</span></a><a href=\"#autokeys\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>auto<wbr/>Keys</span></a><a href=\"#checkbox\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>checkbox</span></a><a href=\"#columnsfilterable\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Filterable</span></a><a href=\"#columnsmenu\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Menu</span></a><a href=\"#columnsresizable\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Resizable</span></a><a href=\"#columnssortable\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>columns<wbr/>Sortable</span></a><a href=\"#connecttopbreadcrumb\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>connect<wbr/>Top<wbr/>Breadcrumb</span></a><a href=\"#debuglevel\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>debug<wbr/>Level</span></a><a href=\"#dnd\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>dnd</span></a><a href=\"#edit\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>edit</span></a><a href=\"#emptychildlistexpandable\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>empty<wbr/>Child<wbr/>List<wbr/>Expandable</span></a><a href=\"#enabled\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>enabled</span></a><a href=\"#filter\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>filter</span></a><a href=\"#fixedcol\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>fixed<wbr/>Col</span></a><a href=\"#header\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>header</span></a><a href=\"#icon\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon</span></a><a href=\"#iconmap\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Map</span></a><a href=\"#icontooltip\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>icon<wbr/>Tooltip</span></a><a href=\"#minexpandlevel\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>min<wbr/>Expand<wbr/>Level</span></a><a href=\"#navigationmodeoption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>navigation<wbr/>Mode<wbr/>Option</span></a><a href=\"#quicksearch\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>quicksearch</span></a><a href=\"#rowheightpx\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>row<wbr/>Height<wbr/>Px</span></a><a href=\"#scrollintoviewonexpandclick\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>scroll<wbr/>Into<wbr/>View<wbr/>On<wbr/>Expand<wbr/>Click</span></a><a href=\"#selectmode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>select<wbr/>Mode</span></a><a href=\"#showspinner\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>show<wbr/>Spinner</span></a><a href=\"#skeleton\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>skeleton</span></a><a href=\"#sortfoldersfirst\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>sort<wbr/>Folders<wbr/>First</span></a><a href=\"#strings\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>strings</span></a><a href=\"#tooltip\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>tooltip</span></a><a href=\"#unselectable\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Property\"><use href=\"../assets/icons.svg#icon-1024\"></use></svg><span>unselectable</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/modules/common.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>common | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"common.html\">common</a></li></ul><h1>Module common</h1></div><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Variables\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Variables</h2></summary><dl class=\"tsd-member-summaries\"><dt class=\"tsd-member-summary\"><a id=\"default_debuglevel\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.DEFAULT_DEBUGLEVEL.html\">DEFAULT_DEBUGLEVEL</a><a href=\"#default_debuglevel\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"default_min_col_width\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.DEFAULT_MIN_COL_WIDTH.html\">DEFAULT_MIN_COL_WIDTH</a><a href=\"#default_min_col_width\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"default_row_height\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.DEFAULT_ROW_HEIGHT.html\">DEFAULT_ROW_HEIGHT</a><a href=\"#default_row_height\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"defaulticonmaps\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.defaultIconMaps.html\">defaultIconMaps</a><a href=\"#defaulticonmaps\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"icon_width\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.ICON_WIDTH.html\">ICON_WIDTH</a><a href=\"#icon_width\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"input_keys\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.INPUT_KEYS.html\">INPUT_KEYS</a><a href=\"#input_keys\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"key_nodata\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.KEY_NODATA.html\">KEY_NODATA</a><a href=\"#key_nodata\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"key_to_command_map\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.KEY_TO_COMMAND_MAP.html\">KEY_TO_COMMAND_MAP</a><a href=\"#key_to_command_map\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"key_to_navigation_map\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.KEY_TO_NAVIGATION_MAP.html\">KEY_TO_NAVIGATION_MAP</a><a href=\"#key_to_navigation_map\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"node_type_folder\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.NODE_TYPE_FOLDER.html\">NODE_TYPE_FOLDER</a><a href=\"#node_type_folder\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"render_max_prefetch\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.RENDER_MAX_PREFETCH.html\">RENDER_MAX_PREFETCH</a><a href=\"#render_max_prefetch\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"render_min_prefetch\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.RENDER_MIN_PREFETCH.html\">RENDER_MIN_PREFETCH</a><a href=\"#render_min_prefetch\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"reserved_tree_source_keys\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.RESERVED_TREE_SOURCE_KEYS.html\">RESERVED_TREE_SOURCE_KEYS</a><a href=\"#reserved_tree_source_keys\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"test_file_path\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.TEST_FILE_PATH.html\">TEST_FILE_PATH</a><a href=\"#test_file_path\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"test_html\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.TEST_HTML.html\">TEST_HTML</a><a href=\"#test_html\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"title_span_pad_y\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/common.TITLE_SPAN_PAD_Y.html\">TITLE_SPAN_PAD_Y</a><a href=\"#title_span_pad_y\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd></dl></details><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Functions\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Functions</h2></summary><dl class=\"tsd-member-summaries\"><dt class=\"tsd-member-summary\"><a id=\"decompresssourcedata\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/common.decompressSourceData.html\">decompressSourceData</a><a href=\"#decompresssourcedata\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"makenodetitlematcher\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/common.makeNodeTitleMatcher.html\">makeNodeTitleMatcher</a><a href=\"#makenodetitlematcher\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"makenodetitlestartmatcher\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/common.makeNodeTitleStartMatcher.html\">makeNodeTitleStartMatcher</a><a href=\"#makenodetitlestartmatcher\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"nodetitlesorter\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a class=\"deprecated\" href=\"../functions/common.nodeTitleSorter.html\">nodeTitleSorter</a><a href=\"#nodetitlesorter\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd></dl></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Variables\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Variables</summary><div><a href=\"#default_debuglevel\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>DEFAULT_<wbr/>DEBUGLEVEL</span></a><a href=\"#default_min_col_width\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>DEFAULT_<wbr/>MIN_<wbr/>COL_<wbr/>WIDTH</span></a><a href=\"#default_row_height\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>DEFAULT_<wbr/>ROW_<wbr/>HEIGHT</span></a><a href=\"#defaulticonmaps\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>default<wbr/>Icon<wbr/>Maps</span></a><a href=\"#icon_width\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>ICON_<wbr/>WIDTH</span></a><a href=\"#input_keys\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>INPUT_<wbr/>KEYS</span></a><a href=\"#key_nodata\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>KEY_<wbr/>NODATA</span></a><a href=\"#key_to_command_map\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>KEY_<wbr/>TO_<wbr/>COMMAND_<wbr/>MAP</span></a><a href=\"#key_to_navigation_map\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>KEY_<wbr/>TO_<wbr/>NAVIGATION_<wbr/>MAP</span></a><a href=\"#node_type_folder\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>NODE_<wbr/>TYPE_<wbr/>FOLDER</span></a><a href=\"#render_max_prefetch\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>RENDER_<wbr/>MAX_<wbr/>PREFETCH</span></a><a href=\"#render_min_prefetch\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>RENDER_<wbr/>MIN_<wbr/>PREFETCH</span></a><a href=\"#reserved_tree_source_keys\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>RESERVED_<wbr/>TREE_<wbr/>SOURCE_<wbr/>KEYS</span></a><a href=\"#test_file_path\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>TEST_<wbr/>FILE_<wbr/>PATH</span></a><a href=\"#test_html\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>TEST_<wbr/>HTML</span></a><a href=\"#title_span_pad_y\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>TITLE_<wbr/>SPAN_<wbr/>PAD_<wbr/>Y</span></a></div></details><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Functions\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Functions</summary><div><a href=\"#decompresssourcedata\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>decompress<wbr/>Source<wbr/>Data</span></a><a href=\"#makenodetitlematcher\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>make<wbr/>Node<wbr/>Title<wbr/>Matcher</span></a><a href=\"#makenodetitlestartmatcher\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>make<wbr/>Node<wbr/>Title<wbr/>Start<wbr/>Matcher</span></a><a href=\"#nodetitlesorter\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>node<wbr/>Title<wbr/>Sorter</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/modules/types.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>types | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"types.html\">types</a></li></ul><h1>Module types</h1></div><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Enumerations\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Enumerations</h2></summary><dl class=\"tsd-member-summaries\"><dt class=\"tsd-member-summary\"><a id=\"changetype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration\"><use href=\"../assets/icons.svg#icon-8\"></use></svg><a href=\"../enums/types.ChangeType.html\">ChangeType</a><a href=\"#changetype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"navmodeenum\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration\"><use href=\"../assets/icons.svg#icon-8\"></use></svg><a href=\"../enums/types.NavModeEnum.html\">NavModeEnum</a><a href=\"#navmodeenum\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"noderegion\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration\"><use href=\"../assets/icons.svg#icon-8\"></use></svg><a href=\"../enums/types.NodeRegion.html\">NodeRegion</a><a href=\"#noderegion\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"nodestatustype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration\"><use href=\"../assets/icons.svg#icon-8\"></use></svg><a href=\"../enums/types.NodeStatusType.html\">NodeStatusType</a><a href=\"#nodestatustype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"renderflag\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration\"><use href=\"../assets/icons.svg#icon-8\"></use></svg><a href=\"../enums/types.RenderFlag.html\">RenderFlag</a><a href=\"#renderflag\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd></dl></details><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Interfaces\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Interfaces</h2></summary><dl class=\"tsd-member-summaries\"><dt class=\"tsd-member-summary\"><a id=\"addchildrenoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.AddChildrenOptions.html\">AddChildrenOptions</a><a href=\"#addchildrenoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"applycommandoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.ApplyCommandOptions.html\">ApplyCommandOptions</a><a href=\"#applycommandoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"columndefinition\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.ColumnDefinition.html\">ColumnDefinition</a><a href=\"#columndefinition\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"columneventinfo\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.ColumnEventInfo.html\">ColumnEventInfo</a><a href=\"#columneventinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"drageventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.DragEventType.html\">DragEventType</a><a href=\"#drageventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"dropeventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.DropEventType.html\">DropEventType</a><a href=\"#dropeventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"expandalloptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.ExpandAllOptions.html\">ExpandAllOptions</a><a href=\"#expandalloptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"filterconnecttype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.FilterConnectType.html\">FilterConnectType</a><a href=\"#filterconnecttype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"filternodesoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.FilterNodesOptions.html\">FilterNodesOptions</a><a href=\"#filternodesoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"getstateoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.GetStateOptions.html\">GetStateOptions</a><a href=\"#getstateoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"iconmaptype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.IconMapType.html\">IconMapType</a><a href=\"#iconmaptype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"loadlazynodesoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.LoadLazyNodesOptions.html\">LoadLazyNodesOptions</a><a href=\"#loadlazynodesoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"makevisibleoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.MakeVisibleOptions.html\">MakeVisibleOptions</a><a href=\"#makevisibleoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"navigateoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.NavigateOptions.html\">NavigateOptions</a><a href=\"#navigateoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"nodetypedefinition\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.NodeTypeDefinition.html\">NodeTypeDefinition</a><a href=\"#nodetypedefinition\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"reloadoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.ReloadOptions.html\">ReloadOptions</a><a href=\"#reloadoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"renderoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.RenderOptions.html\">RenderOptions</a><a href=\"#renderoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"resetorderoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.ResetOrderOptions.html\">ResetOrderOptions</a><a href=\"#resetorderoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"scrollintoviewoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.ScrollIntoViewOptions.html\">ScrollIntoViewOptions</a><a href=\"#scrollintoviewoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"scrolltooptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.ScrollToOptions.html\">ScrollToOptions</a><a href=\"#scrolltooptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"setactiveoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.SetActiveOptions.html\">SetActiveOptions</a><a href=\"#setactiveoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"setcolumnoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.SetColumnOptions.html\">SetColumnOptions</a><a href=\"#setcolumnoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"setexpandedoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.SetExpandedOptions.html\">SetExpandedOptions</a><a href=\"#setexpandedoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"setselectedoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.SetSelectedOptions.html\">SetSelectedOptions</a><a href=\"#setselectedoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"setstateoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.SetStateOptions.html\">SetStateOptions</a><a href=\"#setstateoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"setstatusoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.SetStatusOptions.html\">SetStatusOptions</a><a href=\"#setstatusoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"sortoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.SortOptions.html\">SortOptions</a><a href=\"#sortoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"sourceajaxtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.SourceAjaxType.html\">SourceAjaxType</a><a href=\"#sourceajaxtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"sourceobjecttype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.SourceObjectType.html\">SourceObjectType</a><a href=\"#sourceobjecttype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"treestatedefinition\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.TreeStateDefinition.html\">TreeStateDefinition</a><a href=\"#treestatedefinition\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"updateoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.UpdateOptions.html\">UpdateOptions</a><a href=\"#updateoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"visitrowsoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.VisitRowsOptions.html\">VisitRowsOptions</a><a href=\"#visitrowsoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbactivateeventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbActivateEventType.html\">WbActivateEventType</a><a href=\"#wbactivateeventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbbuttonclickeventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbButtonClickEventType.html\">WbButtonClickEventType</a><a href=\"#wbbuttonclickeventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbchangeeventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbChangeEventType.html\">WbChangeEventType</a><a href=\"#wbchangeeventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbclickeventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbClickEventType.html\">WbClickEventType</a><a href=\"#wbclickeventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbdeactivateeventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbDeactivateEventType.html\">WbDeactivateEventType</a><a href=\"#wbdeactivateeventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbeditapplyeventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbEditApplyEventType.html\">WbEditApplyEventType</a><a href=\"#wbeditapplyeventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbeditediteventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbEditEditEventType.html\">WbEditEditEventType</a><a href=\"#wbeditediteventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wberroreventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbErrorEventType.html\">WbErrorEventType</a><a href=\"#wberroreventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbeventinfo\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbEventInfo.html\">WbEventInfo</a><a href=\"#wbeventinfo\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbexpandeventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbExpandEventType.html\">WbExpandEventType</a><a href=\"#wbexpandeventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbfocuseventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbFocusEventType.html\">WbFocusEventType</a><a href=\"#wbfocuseventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbiconbadgeeventresulttype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbIconBadgeEventResultType.html\">WbIconBadgeEventResultType</a><a href=\"#wbiconbadgeeventresulttype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbiconbadgeeventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbIconBadgeEventType.html\">WbIconBadgeEventType</a><a href=\"#wbiconbadgeeventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbiniteventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbInitEventType.html\">WbInitEventType</a><a href=\"#wbiniteventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbkeydowneventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbKeydownEventType.html\">WbKeydownEventType</a><a href=\"#wbkeydowneventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbmodifychildeventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbModifyChildEventType.html\">WbModifyChildEventType</a><a href=\"#wbmodifychildeventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbnodedata\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbNodeData.html\">WbNodeData</a><a href=\"#wbnodedata\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbnodeeventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbNodeEventType.html\">WbNodeEventType</a><a href=\"#wbnodeeventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbreceiveeventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbReceiveEventType.html\">WbReceiveEventType</a><a href=\"#wbreceiveeventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbrendereventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbRenderEventType.html\">WbRenderEventType</a><a href=\"#wbrendereventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbselecteventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbSelectEventType.html\">WbSelectEventType</a><a href=\"#wbselecteventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbtreeeventtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/types.WbTreeEventType.html\">WbTreeEventType</a><a href=\"#wbtreeeventtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd></dl></details><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Type Aliases\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Type Aliases</h2></summary><dl class=\"tsd-member-summaries\"><dt class=\"tsd-member-summary\"><a id=\"applycommandtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.ApplyCommandType.html\">ApplyCommandType</a><a href=\"#applycommandtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"booloptionresolver\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.BoolOptionResolver.html\">BoolOptionResolver</a><a href=\"#booloptionresolver\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"boolorstringoptionresolver\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.BoolOrStringOptionResolver.html\">BoolOrStringOptionResolver</a><a href=\"#boolorstringoptionresolver\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"checkboxoption\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.CheckboxOption.html\">CheckboxOption</a><a href=\"#checkboxoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"columndefinitionlist\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.ColumnDefinitionList.html\">ColumnDefinitionList</a><a href=\"#columndefinitionlist\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"columneventinfomap\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.ColumnEventInfoMap.html\">ColumnEventInfoMap</a><a href=\"#columneventinfomap\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"deprecationoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.DeprecationOptions.html\">DeprecationOptions</a><a href=\"#deprecationoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"dndoptionstype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.DndOptionsType.html\">DndOptionsType</a><a href=\"#dndoptionstype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"dropeffectallowedtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.DropEffectAllowedType.html\">DropEffectAllowedType</a><a href=\"#dropeffectallowedtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"dropeffecttype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.DropEffectType.html\">DropEffectType</a><a href=\"#dropeffecttype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"dropregiontype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.DropRegionType.html\">DropRegionType</a><a href=\"#dropregiontype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"dropregiontypelist\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.DropRegionTypeList.html\">DropRegionTypeList</a><a href=\"#dropregiontypelist\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"dropregiontypeset\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.DropRegionTypeSet.html\">DropRegionTypeSet</a><a href=\"#dropregiontypeset\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"dynamicbooloption\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.DynamicBoolOption.html\">DynamicBoolOption</a><a href=\"#dynamicbooloption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"dynamicboolorstringoption\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.DynamicBoolOrStringOption.html\">DynamicBoolOrStringOption</a><a href=\"#dynamicboolorstringoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"dynamiccheckboxoption\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.DynamicCheckboxOption.html\">DynamicCheckboxOption</a><a href=\"#dynamiccheckboxoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"dynamiciconoption\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.DynamicIconOption.html\">DynamicIconOption</a><a href=\"#dynamiciconoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"dynamicstringoption\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.DynamicStringOption.html\">DynamicStringOption</a><a href=\"#dynamicstringoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"dynamictooltipoption\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.DynamicTooltipOption.html\">DynamicTooltipOption</a><a href=\"#dynamictooltipoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"editoptionstype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.EditOptionsType.html\">EditOptionsType</a><a href=\"#editoptionstype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"filtermodetype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.FilterModeType.html\">FilterModeType</a><a href=\"#filtermodetype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"filteroptionstype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.FilterOptionsType.html\">FilterOptionsType</a><a href=\"#filteroptionstype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"gridoptionstype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.GridOptionsType.html\">GridOptionsType</a><a href=\"#gridoptionstype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"iconoption\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.IconOption.html\">IconOption</a><a href=\"#iconoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"insertnodetype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.InsertNodeType.html\">InsertNodeType</a><a href=\"#insertnodetype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"keynavoptionstype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.KeynavOptionsType.html\">KeynavOptionsType</a><a href=\"#keynavoptionstype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"loggeroptionstype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.LoggerOptionsType.html\">LoggerOptionsType</a><a href=\"#loggeroptionstype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"matchercallback\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.MatcherCallback.html\">MatcherCallback</a><a href=\"#matchercallback\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"navigationtype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.NavigationType.html\">NavigationType</a><a href=\"#navigationtype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"nodeanycallback\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.NodeAnyCallback.html\">NodeAnyCallback</a><a href=\"#nodeanycallback\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"nodefiltercallback\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.NodeFilterCallback.html\">NodeFilterCallback</a><a href=\"#nodefiltercallback\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"nodefilterresponse\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.NodeFilterResponse.html\">NodeFilterResponse</a><a href=\"#nodefilterresponse\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"nodepropertygettercallback\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.NodePropertyGetterCallback.html\">NodePropertyGetterCallback</a><a href=\"#nodepropertygettercallback\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"nodeselectcallback\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.NodeSelectCallback.html\">NodeSelectCallback</a><a href=\"#nodeselectcallback\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"nodestringcallback\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.NodeStringCallback.html\">NodeStringCallback</a><a href=\"#nodestringcallback\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"nodetodictcallback\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.NodeToDictCallback.html\">NodeToDictCallback</a><a href=\"#nodetodictcallback\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"nodetypedefinitionmap\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.NodeTypeDefinitionMap.html\">NodeTypeDefinitionMap</a><a href=\"#nodetypedefinitionmap\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"nodevisitcallback\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.NodeVisitCallback.html\">NodeVisitCallback</a><a href=\"#nodevisitcallback\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"nodevisitresponse\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.NodeVisitResponse.html\">NodeVisitResponse</a><a href=\"#nodevisitresponse\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"selectmodetype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.SelectModeType.html\">SelectModeType</a><a href=\"#selectmodetype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"sortbypropertyoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a class=\"deprecated\" href=\"../types/types.SortByPropertyOptions.html\">SortByPropertyOptions</a><a href=\"#sortbypropertyoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"sortcallback\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a class=\"deprecated\" href=\"../types/types.SortCallback.html\">SortCallback</a><a href=\"#sortcallback\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"sortkeycallback\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.SortKeyCallback.html\">SortKeyCallback</a><a href=\"#sortkeycallback\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"sortordertype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.SortOrderType.html\">SortOrderType</a><a href=\"#sortordertype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"sourcelisttype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.SourceListType.html\">SourceListType</a><a href=\"#sourcelisttype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"sourcetype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.SourceType.html\">SourceType</a><a href=\"#sourcetype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"tooltipoption\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.TooltipOption.html\">TooltipOption</a><a href=\"#tooltipoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"translationstype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.TranslationsType.html\">TranslationsType</a><a href=\"#translationstype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"tristatetype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.TristateType.html\">TristateType</a><a href=\"#tristatetype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbcancelableeventresulttype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.WbCancelableEventResultType.html\">WbCancelableEventResultType</a><a href=\"#wbcancelableeventresulttype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wbiconbadgecallback\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/types.WbIconBadgeCallback.html\">WbIconBadgeCallback</a><a href=\"#wbiconbadgecallback\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd></dl></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Enumerations\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Enumerations</summary><div><a href=\"#changetype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration\"><use href=\"../assets/icons.svg#icon-8\"></use></svg><span>Change<wbr/>Type</span></a><a href=\"#navmodeenum\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration\"><use href=\"../assets/icons.svg#icon-8\"></use></svg><span>Nav<wbr/>Mode<wbr/>Enum</span></a><a href=\"#noderegion\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration\"><use href=\"../assets/icons.svg#icon-8\"></use></svg><span>Node<wbr/>Region</span></a><a href=\"#nodestatustype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration\"><use href=\"../assets/icons.svg#icon-8\"></use></svg><span>Node<wbr/>Status<wbr/>Type</span></a><a href=\"#renderflag\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Enumeration\"><use href=\"../assets/icons.svg#icon-8\"></use></svg><span>Render<wbr/>Flag</span></a></div></details><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Interfaces\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Interfaces</summary><div><a href=\"#addchildrenoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Add<wbr/>Children<wbr/>Options</span></a><a href=\"#applycommandoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Apply<wbr/>Command<wbr/>Options</span></a><a href=\"#columndefinition\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Column<wbr/>Definition</span></a><a href=\"#columneventinfo\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Column<wbr/>Event<wbr/>Info</span></a><a href=\"#drageventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Drag<wbr/>Event<wbr/>Type</span></a><a href=\"#dropeventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Drop<wbr/>Event<wbr/>Type</span></a><a href=\"#expandalloptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Expand<wbr/>All<wbr/>Options</span></a><a href=\"#filterconnecttype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Filter<wbr/>Connect<wbr/>Type</span></a><a href=\"#filternodesoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Filter<wbr/>Nodes<wbr/>Options</span></a><a href=\"#getstateoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Get<wbr/>State<wbr/>Options</span></a><a href=\"#iconmaptype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Icon<wbr/>Map<wbr/>Type</span></a><a href=\"#loadlazynodesoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Load<wbr/>Lazy<wbr/>Nodes<wbr/>Options</span></a><a href=\"#makevisibleoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Make<wbr/>Visible<wbr/>Options</span></a><a href=\"#navigateoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Navigate<wbr/>Options</span></a><a href=\"#nodetypedefinition\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Node<wbr/>Type<wbr/>Definition</span></a><a href=\"#reloadoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Reload<wbr/>Options</span></a><a href=\"#renderoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Render<wbr/>Options</span></a><a href=\"#resetorderoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Reset<wbr/>Order<wbr/>Options</span></a><a href=\"#scrollintoviewoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Scroll<wbr/>Into<wbr/>View<wbr/>Options</span></a><a href=\"#scrolltooptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Scroll<wbr/>To<wbr/>Options</span></a><a href=\"#setactiveoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Set<wbr/>Active<wbr/>Options</span></a><a href=\"#setcolumnoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Set<wbr/>Column<wbr/>Options</span></a><a href=\"#setexpandedoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Set<wbr/>Expanded<wbr/>Options</span></a><a href=\"#setselectedoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Set<wbr/>Selected<wbr/>Options</span></a><a href=\"#setstateoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Set<wbr/>State<wbr/>Options</span></a><a href=\"#setstatusoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Set<wbr/>Status<wbr/>Options</span></a><a href=\"#sortoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Sort<wbr/>Options</span></a><a href=\"#sourceajaxtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Source<wbr/>Ajax<wbr/>Type</span></a><a href=\"#sourceobjecttype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Source<wbr/>Object<wbr/>Type</span></a><a href=\"#treestatedefinition\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Tree<wbr/>State<wbr/>Definition</span></a><a href=\"#updateoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Update<wbr/>Options</span></a><a href=\"#visitrowsoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Visit<wbr/>Rows<wbr/>Options</span></a><a href=\"#wbactivateeventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Activate<wbr/>Event<wbr/>Type</span></a><a href=\"#wbbuttonclickeventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Button<wbr/>Click<wbr/>Event<wbr/>Type</span></a><a href=\"#wbchangeeventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Change<wbr/>Event<wbr/>Type</span></a><a href=\"#wbclickeventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Click<wbr/>Event<wbr/>Type</span></a><a href=\"#wbdeactivateeventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Deactivate<wbr/>Event<wbr/>Type</span></a><a href=\"#wbeditapplyeventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Edit<wbr/>Apply<wbr/>Event<wbr/>Type</span></a><a href=\"#wbeditediteventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Edit<wbr/>Edit<wbr/>Event<wbr/>Type</span></a><a href=\"#wberroreventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Error<wbr/>Event<wbr/>Type</span></a><a href=\"#wbeventinfo\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Event<wbr/>Info</span></a><a href=\"#wbexpandeventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Expand<wbr/>Event<wbr/>Type</span></a><a href=\"#wbfocuseventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Focus<wbr/>Event<wbr/>Type</span></a><a href=\"#wbiconbadgeeventresulttype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Icon<wbr/>Badge<wbr/>Event<wbr/>Result<wbr/>Type</span></a><a href=\"#wbiconbadgeeventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Icon<wbr/>Badge<wbr/>Event<wbr/>Type</span></a><a href=\"#wbiniteventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Init<wbr/>Event<wbr/>Type</span></a><a href=\"#wbkeydowneventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Keydown<wbr/>Event<wbr/>Type</span></a><a href=\"#wbmodifychildeventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Modify<wbr/>Child<wbr/>Event<wbr/>Type</span></a><a href=\"#wbnodedata\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Node<wbr/>Data</span></a><a href=\"#wbnodeeventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Node<wbr/>Event<wbr/>Type</span></a><a href=\"#wbreceiveeventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Receive<wbr/>Event<wbr/>Type</span></a><a href=\"#wbrendereventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Render<wbr/>Event<wbr/>Type</span></a><a href=\"#wbselecteventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Select<wbr/>Event<wbr/>Type</span></a><a href=\"#wbtreeeventtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wb<wbr/>Tree<wbr/>Event<wbr/>Type</span></a></div></details><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Type Aliases\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Type Aliases</summary><div><a href=\"#applycommandtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Apply<wbr/>Command<wbr/>Type</span></a><a href=\"#booloptionresolver\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Bool<wbr/>Option<wbr/>Resolver</span></a><a href=\"#boolorstringoptionresolver\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Bool<wbr/>Or<wbr/>String<wbr/>Option<wbr/>Resolver</span></a><a href=\"#checkboxoption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Checkbox<wbr/>Option</span></a><a href=\"#columndefinitionlist\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Column<wbr/>Definition<wbr/>List</span></a><a href=\"#columneventinfomap\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Column<wbr/>Event<wbr/>Info<wbr/>Map</span></a><a href=\"#deprecationoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Deprecation<wbr/>Options</span></a><a href=\"#dndoptionstype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Dnd<wbr/>Options<wbr/>Type</span></a><a href=\"#dropeffectallowedtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Drop<wbr/>Effect<wbr/>Allowed<wbr/>Type</span></a><a href=\"#dropeffecttype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Drop<wbr/>Effect<wbr/>Type</span></a><a href=\"#dropregiontype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Drop<wbr/>Region<wbr/>Type</span></a><a href=\"#dropregiontypelist\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Drop<wbr/>Region<wbr/>Type<wbr/>List</span></a><a href=\"#dropregiontypeset\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Drop<wbr/>Region<wbr/>Type<wbr/>Set</span></a><a href=\"#dynamicbooloption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Dynamic<wbr/>Bool<wbr/>Option</span></a><a href=\"#dynamicboolorstringoption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Dynamic<wbr/>Bool<wbr/>Or<wbr/>String<wbr/>Option</span></a><a href=\"#dynamiccheckboxoption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Dynamic<wbr/>Checkbox<wbr/>Option</span></a><a href=\"#dynamiciconoption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Dynamic<wbr/>Icon<wbr/>Option</span></a><a href=\"#dynamicstringoption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Dynamic<wbr/>String<wbr/>Option</span></a><a href=\"#dynamictooltipoption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Dynamic<wbr/>Tooltip<wbr/>Option</span></a><a href=\"#editoptionstype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Edit<wbr/>Options<wbr/>Type</span></a><a href=\"#filtermodetype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Filter<wbr/>Mode<wbr/>Type</span></a><a href=\"#filteroptionstype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Filter<wbr/>Options<wbr/>Type</span></a><a href=\"#gridoptionstype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Grid<wbr/>Options<wbr/>Type</span></a><a href=\"#iconoption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Icon<wbr/>Option</span></a><a href=\"#insertnodetype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Insert<wbr/>Node<wbr/>Type</span></a><a href=\"#keynavoptionstype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Keynav<wbr/>Options<wbr/>Type</span></a><a href=\"#loggeroptionstype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Logger<wbr/>Options<wbr/>Type</span></a><a href=\"#matchercallback\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Matcher<wbr/>Callback</span></a><a href=\"#navigationtype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Navigation<wbr/>Type</span></a><a href=\"#nodeanycallback\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Node<wbr/>Any<wbr/>Callback</span></a><a href=\"#nodefiltercallback\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Node<wbr/>Filter<wbr/>Callback</span></a><a href=\"#nodefilterresponse\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Node<wbr/>Filter<wbr/>Response</span></a><a href=\"#nodepropertygettercallback\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Node<wbr/>Property<wbr/>Getter<wbr/>Callback</span></a><a href=\"#nodeselectcallback\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Node<wbr/>Select<wbr/>Callback</span></a><a href=\"#nodestringcallback\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Node<wbr/>String<wbr/>Callback</span></a><a href=\"#nodetodictcallback\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Node<wbr/>To<wbr/>Dict<wbr/>Callback</span></a><a href=\"#nodetypedefinitionmap\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Node<wbr/>Type<wbr/>Definition<wbr/>Map</span></a><a href=\"#nodevisitcallback\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Node<wbr/>Visit<wbr/>Callback</span></a><a href=\"#nodevisitresponse\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Node<wbr/>Visit<wbr/>Response</span></a><a href=\"#selectmodetype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Select<wbr/>Mode<wbr/>Type</span></a><a href=\"#sortbypropertyoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Sort<wbr/>By<wbr/>Property<wbr/>Options</span></a><a href=\"#sortcallback\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Sort<wbr/>Callback</span></a><a href=\"#sortkeycallback\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Sort<wbr/>Key<wbr/>Callback</span></a><a href=\"#sortordertype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Sort<wbr/>Order<wbr/>Type</span></a><a href=\"#sourcelisttype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Source<wbr/>List<wbr/>Type</span></a><a href=\"#sourcetype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Source<wbr/>Type</span></a><a href=\"#tooltipoption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Tooltip<wbr/>Option</span></a><a href=\"#translationstype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Translations<wbr/>Type</span></a><a href=\"#tristatetype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Tristate<wbr/>Type</span></a><a href=\"#wbcancelableeventresulttype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Wb<wbr/>Cancelable<wbr/>Event<wbr/>Result<wbr/>Type</span></a><a href=\"#wbiconbadgecallback\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Wb<wbr/>Icon<wbr/>Badge<wbr/>Callback</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/modules/util.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>util | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"util.html\">util</a></li></ul><h1>Module util</h1></div><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Function\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Function</h2></summary><dl class=\"tsd-member-summaries\"><dt class=\"tsd-member-summary\"><a id=\"debounce\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.debounce.html\">debounce</a><a href=\"#debounce\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"throttle\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.throttle.html\">throttle</a><a href=\"#throttle\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd></dl></details><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Other\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Other</h2></summary><dl class=\"tsd-member-summaries\"><dt class=\"tsd-member-summary\"><a id=\"deferred\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Class\"><use href=\"../assets/icons.svg#icon-128\"></use></svg><a href=\"../classes/util.Deferred.html\">Deferred</a><a href=\"#deferred\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"validationerror\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Class\"><use href=\"../assets/icons.svg#icon-128\"></use></svg><a href=\"../classes/util.ValidationError.html\">ValidationError</a><a href=\"#validationerror\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"eventcallbacktype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/util.EventCallbackType.html\">EventCallbackType</a><a href=\"#eventcallbacktype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"functiontype\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/util.FunctionType.html\">FunctionType</a><a href=\"#functiontype\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"notpromise\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><a href=\"../types/util.NotPromise.html\">NotPromise</a><a href=\"#notpromise\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"ismac\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/util.isMac.html\">isMac</a><a href=\"#ismac\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"max_int\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/util.MAX_INT.html\">MAX_INT</a><a href=\"#max_int\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"mouse_buttons\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><a href=\"../variables/util.MOUSE_BUTTONS.html\">MOUSE_BUTTONS</a><a href=\"#mouse_buttons\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"adaptivethrottle\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.adaptiveThrottle.html\">adaptiveThrottle</a><a href=\"#adaptivethrottle\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"assert\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.assert.html\">assert</a><a href=\"#assert\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"documentready\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.documentReady.html\">documentReady</a><a href=\"#documentready\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"documentreadypromise\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.documentReadyPromise.html\">documentReadyPromise</a><a href=\"#documentreadypromise\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"each\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.each.html\">each</a><a href=\"#each\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"elemfromhtml\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.elemFromHtml.html\">elemFromHtml</a><a href=\"#elemfromhtml\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"elemfromselector\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.elemFromSelector.html\">elemFromSelector</a><a href=\"#elemfromselector\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"error\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.error.html\">error</a><a href=\"#error\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"escapehtml\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.escapeHtml.html\">escapeHtml</a><a href=\"#escapehtml\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"escaperegex\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.escapeRegex.html\">escapeRegex</a><a href=\"#escaperegex\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"escapetooltip\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.escapeTooltip.html\">escapeTooltip</a><a href=\"#escapetooltip\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"eventtostring\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.eventToString.html\">eventToString</a><a href=\"#eventtostring\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"extend\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.extend.html\">extend</a><a href=\"#extend\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"extracthtmltext\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.extractHtmlText.html\">extractHtmlText</a><a href=\"#extracthtmltext\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"getoption\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.getOption.html\">getOption</a><a href=\"#getoption\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"getvaluefromelem\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.getValueFromElem.html\">getValueFromElem</a><a href=\"#getvaluefromelem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"inttobool\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.intToBool.html\">intToBool</a><a href=\"#inttobool\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"isarray\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.isArray.html\">isArray</a><a href=\"#isarray\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"isemptyobject\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.isEmptyObject.html\">isEmptyObject</a><a href=\"#isemptyobject\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"isfunction\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.isFunction.html\">isFunction</a><a href=\"#isfunction\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"isplainobject\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.isPlainObject.html\">isPlainObject</a><a href=\"#isplainobject\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"murmurhash3\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.murmurHash3.html\">murmurHash3</a><a href=\"#murmurhash3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"noop\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.noop.html\">noop</a><a href=\"#noop\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"onevent\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.onEvent.html\">onEvent</a><a href=\"#onevent\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"overridemethod\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.overrideMethod.html\">overrideMethod</a><a href=\"#overridemethod\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"rotate\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.rotate.html\">rotate</a><a href=\"#rotate\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"setelemdisplay\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.setElemDisplay.html\">setElemDisplay</a><a href=\"#setelemdisplay\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"settimeoutpromise\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.setTimeoutPromise.html\">setTimeoutPromise</a><a href=\"#settimeoutpromise\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"setvaluetoelem\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.setValueToElem.html\">setValueToElem</a><a href=\"#setvaluetoelem\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"sleep\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.sleep.html\">sleep</a><a href=\"#sleep\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"tobool\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.toBool.html\">toBool</a><a href=\"#tobool\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"togglecheckbox\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.toggleCheckbox.html\">toggleCheckbox</a><a href=\"#togglecheckbox\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"topixel\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.toPixel.html\">toPixel</a><a href=\"#topixel\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"toset\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.toSet.html\">toSet</a><a href=\"#toset\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"type\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.type.html\">type</a><a href=\"#type\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"unsafecast\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><a href=\"../functions/util.unsafeCast.html\">unsafeCast</a><a href=\"#unsafecast\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd></dl></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Function\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Function</summary><div><a href=\"#debounce\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>debounce</span></a><a href=\"#throttle\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>throttle</span></a></div></details><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Other\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Other</summary><div><a href=\"#deferred\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Class\"><use href=\"../assets/icons.svg#icon-128\"></use></svg><span>Deferred</span></a><a href=\"#validationerror\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Class\"><use href=\"../assets/icons.svg#icon-128\"></use></svg><span>Validation<wbr/>Error</span></a><a href=\"#eventcallbacktype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Event<wbr/>Callback<wbr/>Type</span></a><a href=\"#functiontype\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Function<wbr/>Type</span></a><a href=\"#notpromise\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Type Alias\"><use href=\"../assets/icons.svg#icon-2097152\"></use></svg><span>Not<wbr/>Promise</span></a><a href=\"#ismac\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>is<wbr/>Mac</span></a><a href=\"#max_int\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>MAX_<wbr/>INT</span></a><a href=\"#mouse_buttons\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Variable\"><use href=\"../assets/icons.svg#icon-32\"></use></svg><span>MOUSE_<wbr/>BUTTONS</span></a><a href=\"#adaptivethrottle\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>adaptive<wbr/>Throttle</span></a><a href=\"#assert\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>assert</span></a><a href=\"#documentready\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>document<wbr/>Ready</span></a><a href=\"#documentreadypromise\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>document<wbr/>Ready<wbr/>Promise</span></a><a href=\"#each\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>each</span></a><a href=\"#elemfromhtml\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>elem<wbr/>From<wbr/>Html</span></a><a href=\"#elemfromselector\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>elem<wbr/>From<wbr/>Selector</span></a><a href=\"#error\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>error</span></a><a href=\"#escapehtml\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>escape<wbr/>Html</span></a><a href=\"#escaperegex\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>escape<wbr/>Regex</span></a><a href=\"#escapetooltip\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>escape<wbr/>Tooltip</span></a><a href=\"#eventtostring\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>event<wbr/>To<wbr/>String</span></a><a href=\"#extend\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>extend</span></a><a href=\"#extracthtmltext\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>extract<wbr/>Html<wbr/>Text</span></a><a href=\"#getoption\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>get<wbr/>Option</span></a><a href=\"#getvaluefromelem\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>get<wbr/>Value<wbr/>From<wbr/>Elem</span></a><a href=\"#inttobool\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>int<wbr/>To<wbr/>Bool</span></a><a href=\"#isarray\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>is<wbr/>Array</span></a><a href=\"#isemptyobject\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>is<wbr/>Empty<wbr/>Object</span></a><a href=\"#isfunction\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>is<wbr/>Function</span></a><a href=\"#isplainobject\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>is<wbr/>Plain<wbr/>Object</span></a><a href=\"#murmurhash3\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>murmur<wbr/>Hash3</span></a><a href=\"#noop\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>noop</span></a><a href=\"#onevent\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>on<wbr/>Event</span></a><a href=\"#overridemethod\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>override<wbr/>Method</span></a><a href=\"#rotate\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>rotate</span></a><a href=\"#setelemdisplay\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>set<wbr/>Elem<wbr/>Display</span></a><a href=\"#settimeoutpromise\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>set<wbr/>Timeout<wbr/>Promise</span></a><a href=\"#setvaluetoelem\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>set<wbr/>Value<wbr/>To<wbr/>Elem</span></a><a href=\"#sleep\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>sleep</span></a><a href=\"#tobool\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>to<wbr/>Bool</span></a><a href=\"#togglecheckbox\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>toggle<wbr/>Checkbox</span></a><a href=\"#topixel\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>to<wbr/>Pixel</span></a><a href=\"#toset\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>to<wbr/>Set</span></a><a href=\"#type\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>type</span></a><a href=\"#unsafecast\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Function\"><use href=\"../assets/icons.svg#icon-64\"></use></svg><span>unsafe<wbr/>Cast</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/modules/wb_node.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>wb_node | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"wb_node.html\">wb_node</a></li></ul><h1>Module wb_node</h1></div><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Classes\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Classes</h2></summary><dl class=\"tsd-member-summaries\"><dt class=\"tsd-member-summary\"><a id=\"wunderbaumnode\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Class\"><use href=\"../assets/icons.svg#icon-128\"></use></svg><a href=\"../classes/wb_node.WunderbaumNode.html\">WunderbaumNode</a><a href=\"#wunderbaumnode\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd></dl></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Classes\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Classes</summary><div><a href=\"#wunderbaumnode\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Class\"><use href=\"../assets/icons.svg#icon-128\"></use></svg><span>Wunderbaum<wbr/>Node</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/modules/wb_options.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>wb_options | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"wb_options.html\">wb_options</a></li></ul><h1>Module wb_options</h1></div><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Interfaces\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Interfaces</h2></summary><dl class=\"tsd-member-summaries\"><dt class=\"tsd-member-summary\"><a id=\"initwunderbaumoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/wb_options.InitWunderbaumOptions.html\">InitWunderbaumOptions</a><a href=\"#initwunderbaumoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wunderbaumoptions\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><a href=\"../interfaces/wb_options.WunderbaumOptions.html\">WunderbaumOptions</a><a href=\"#wunderbaumoptions\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd></dl></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Interfaces\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Interfaces</summary><div><a href=\"#initwunderbaumoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Init<wbr/>Wunderbaum<wbr/>Options</span></a><a href=\"#wunderbaumoptions\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Interface\"><use href=\"../assets/icons.svg#icon-256\"></use></svg><span>Wunderbaum<wbr/>Options</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/modules/wunderbaum.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>wunderbaum | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"wunderbaum.html\">wunderbaum</a></li></ul><h1>Module wunderbaum</h1></div><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Classes\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg> Classes</h2></summary><dl class=\"tsd-member-summaries\"><dt class=\"tsd-member-summary\"><a id=\"wunderbaum\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Class\"><use href=\"../assets/icons.svg#icon-128\"></use></svg><a href=\"../classes/wunderbaum.Wunderbaum.html\">Wunderbaum</a><a href=\"#wunderbaum\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd></dl></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Classes\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Classes</summary><div><a href=\"#wunderbaum\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Class\"><use href=\"../assets/icons.svg#icon-128\"></use></svg><span>Wunderbaum</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/modules.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\".\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"assets/style.css\"/><link rel=\"stylesheet\" href=\"assets/highlight.css\"/><script defer src=\"assets/main.js\"></script><script async src=\"assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"modules.html\">wunderbaum</a></li></ul><h1>wunderbaum - v0.14.1</h1></div><details class=\"tsd-panel-group tsd-member-group tsd-accordion\" open><summary class=\"tsd-accordion-summary\" data-key=\"section-Modules\"><h2><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-chevronDown\"></use></svg> Modules</h2></summary><dl class=\"tsd-member-summaries\"><dt class=\"tsd-member-summary\"><a id=\"common\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Module\"><use href=\"assets/icons.svg#icon-2\"></use></svg><a href=\"modules/common.html\">common</a><a href=\"#common\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"types\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Module\"><use href=\"assets/icons.svg#icon-2\"></use></svg><a href=\"modules/types.html\">types</a><a href=\"#types\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"util\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Module\"><use href=\"assets/icons.svg#icon-2\"></use></svg><a href=\"modules/util.html\">util</a><a href=\"#util\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wb_node\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Module\"><use href=\"assets/icons.svg#icon-2\"></use></svg><a href=\"modules/wb_node.html\">wb_node</a><a href=\"#wb_node\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wb_options\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Module\"><use href=\"assets/icons.svg#icon-2\"></use></svg><a href=\"modules/wb_options.html\">wb_options</a><a href=\"#wb_options\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd><dt class=\"tsd-member-summary\"><a id=\"wunderbaum\" class=\"tsd-anchor\"></a><span class=\"tsd-member-summary-name\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Module\"><use href=\"assets/icons.svg#icon-2\"></use></svg><a href=\"modules/wunderbaum.html\">wunderbaum</a><a href=\"#wunderbaum\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-anchor\"></use></svg></a></span></dt><dd class=\"tsd-member-summary\"></dd></dl></details></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div><details open class=\"tsd-accordion tsd-page-navigation\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-chevronDown\"></use></svg>On This Page</h3></summary><div class=\"tsd-accordion-details\"><details open class=\"tsd-accordion tsd-page-navigation-section\"><summary class=\"tsd-accordion-summary\" data-key=\"section-Modules\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"assets/icons.svg#icon-chevronDown\"></use></svg>Modules</summary><div><a href=\"#common\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Module\"><use href=\"assets/icons.svg#icon-2\"></use></svg><span>common</span></a><a href=\"#types\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Module\"><use href=\"assets/icons.svg#icon-2\"></use></svg><span>types</span></a><a href=\"#util\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Module\"><use href=\"assets/icons.svg#icon-2\"></use></svg><span>util</span></a><a href=\"#wb_node\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Module\"><use href=\"assets/icons.svg#icon-2\"></use></svg><span>wb_<wbr/>node</span></a><a href=\"#wb_options\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Module\"><use href=\"assets/icons.svg#icon-2\"></use></svg><span>wb_<wbr/>options</span></a><a href=\"#wunderbaum\" class=\"\"><svg class=\"tsd-kind-icon\" viewBox=\"0 0 24 24\" aria-label=\"Module\"><use href=\"assets/icons.svg#icon-2\"></use></svg><span>wunderbaum</span></a></div></details></div></details></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"modules.html\" class=\"current\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.ApplyCommandType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>ApplyCommandType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.ApplyCommandType.html\">ApplyCommandType</a></li></ul><h1>Type Alias ApplyCommandType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">ApplyCommandType</span><span class=\"tsd-signature-symbol\">:</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.NavigationType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NavigationType</a><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;addChild&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;addSibling&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;collapse&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;collapseAll&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;copy&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;cut&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;edit&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;expand&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;expandAll&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;indent&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;moveDown&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;moveUp&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;outdent&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;paste&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;remove&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;rename&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;toggleSelect&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L576\">src/types.ts:576</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.BoolOptionResolver.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>BoolOptionResolver | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.BoolOptionResolver.html\">BoolOptionResolver</a></li></ul><h1>Type Alias BoolOptionResolver</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">BoolOptionResolver</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>When set as option, called when the value is needed (e.g. <code>colspan</code> type definition).</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4></li></ul></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L71\">src/types.ts:71</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.BoolOrStringOptionResolver.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>BoolOrStringOptionResolver | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.BoolOrStringOptionResolver.html\">BoolOrStringOptionResolver</a></li></ul><h1>Type Alias BoolOrStringOptionResolver</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">BoolOrStringOptionResolver</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>When set as option, called when the value is needed (e.g. <code>icon</code> type definition).</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span></h4></li></ul></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L73\">src/types.ts:73</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.CheckboxOption.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>CheckboxOption | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.CheckboxOption.html\">CheckboxOption</a></li></ul><h1>Type Alias CheckboxOption</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">CheckboxOption</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;radio&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>Show/hide checkbox or display a radiobutton icon instead.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L14\">src/types.ts:14</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.ColumnDefinitionList.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>ColumnDefinitionList | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.ColumnDefinitionList.html\">ColumnDefinitionList</a></li></ul><h1>Type Alias ColumnDefinitionList</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">ColumnDefinitionList</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.ColumnDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">ColumnDefinition</a><span class=\"tsd-signature-symbol\">[]</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L509\">src/types.ts:509</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.ColumnEventInfoMap.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>ColumnEventInfoMap | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.ColumnEventInfoMap.html\">ColumnEventInfoMap</a></li></ul><h1>Type Alias ColumnEventInfoMap</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">ColumnEventInfoMap</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">colId</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]:</span> <a href=\"../interfaces/types.ColumnEventInfo.html\" class=\"tsd-signature-type tsd-kind-interface\">ColumnEventInfo</a> <span class=\"tsd-signature-symbol\">}</span></div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-index-signature\"><h5><span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-parameter\">colId</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]: </span><a href=\"../interfaces/types.ColumnEventInfo.html\" class=\"tsd-signature-type tsd-kind-interface\">ColumnEventInfo</a></h5></li></ul></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L525\">src/types.ts:525</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.DeprecationOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DeprecationOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DeprecationOptions.html\">DeprecationOptions</a></li></ul><h1>Type Alias DeprecationOptions<code class=\"tsd-tag\">Internal</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">DeprecationOptions</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-kind-property\">hint</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span> <span class=\"tsd-kind-property\">since</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">}</span></div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">hint</span><a id=\"__typehint\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">string</span></h5></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">since</span><a id=\"__typesince\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">string</span></h5></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L108\">src/types.ts:108</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.DndOptionsType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DndOptionsType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DndOptionsType.html\">DndOptionsType</a></li></ul><h1>Type Alias DndOptionsType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">DndOptionsType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <span class=\"tsd-kind-property\">autoExpandMS</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">1500</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">drag</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.DragEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DragEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">dragEnd</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.DragEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DragEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">dragEnter</span><span class=\"tsd-signature-symbol\">?:</span><br/>        <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span><br/>        <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><br/>            <span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.DropEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DropEventType</a><span class=\"tsd-signature-symbol\">,</span><br/>        <span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"types.DropRegionType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropRegionType</a> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.DropRegionTypeSet.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropRegionTypeSet</a> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.DropRegionTypeList.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropRegionTypeList</a> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">dragExpand</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.DropEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DropEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">dragLeave</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.DropEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DropEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">dragOver</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.DropEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DropEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">dragStart</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.DragEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DragEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">drop</span><span class=\"tsd-signature-symbol\">?:</span><br/>        <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span><br/>        <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><br/>            <span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a> <span class=\"tsd-signature-symbol\">&amp;</span> <span class=\"tsd-signature-symbol\">{</span><br/>                <span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">DragEvent</span><span class=\"tsd-signature-symbol\">;</span><br/>                <span class=\"tsd-kind-property\">region</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.DropRegionType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropRegionType</a><span class=\"tsd-signature-symbol\">;</span><br/>                <span class=\"tsd-kind-property\">sourceNode</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>                <span class=\"tsd-kind-property\">sourceNodeData</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span><span class=\"tsd-signature-symbol\">;</span><br/>                <span class=\"tsd-kind-property\">suggestedDropEffect</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.DropEffectType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropEffectType</a><span class=\"tsd-signature-symbol\">;</span><br/>                <span class=\"tsd-kind-property\">suggestedDropMode</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.InsertNodeType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">InsertNodeType</a><span class=\"tsd-signature-symbol\">;</span><br/>            <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\">,</span><br/>        <span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">dropEffectDefault</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"types.DropEffectType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropEffectType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">effectAllowed</span><span class=\"tsd-signature-symbol\">?:</span> <a href=\"types.DropEffectAllowedType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropEffectAllowedType</a><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">guessDropEffect</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">multiSource</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">false</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">preventForeignNodes</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">preventLazyParents</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">preventNonNodes</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">preventRecursion</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">preventSameParent</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">preventVoidMoves</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">scroll</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">scrollSensitivity</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">20</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">scrollSpeed</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">5</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">serializeClipboardData</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">nodeData</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">sourceCopyHook</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">autoExpandMS</span><a id=\"__typeautoexpandms\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">1500</span></h5><div class=\"tsd-comment tsd-typography\"><p>Expand nodes after n milliseconds of hovering</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-10\">1500</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">drag</span><a id=\"__typedrag\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.DragEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DragEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></h5><div class=\"tsd-comment tsd-typography\"><p>Callback(sourceNode, data)</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">null</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">dragEnd</span><a id=\"__typedragend\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.DragEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DragEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></h5><div class=\"tsd-comment tsd-typography\"><p>Callback(sourceNode, data)</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">null</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">dragEnter</span><a id=\"__typedragenter\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><br/>        <span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.DropEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DropEventType</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"types.DropRegionType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropRegionType</a> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.DropRegionTypeSet.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropRegionTypeSet</a> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.DropRegionTypeList.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropRegionTypeList</a> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Callback(targetNode, data), return true, to enable dnd drop</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-3\" class=\"tsd-anchor\"></a>Default<a href=\"#default-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">null</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">dragExpand</span><a id=\"__typedragexpand\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.DropEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DropEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Callback(targetNode, data), return false to prevent autoExpand</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-4\" class=\"tsd-anchor\"></a>Default<a href=\"#default-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">null</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">dragLeave</span><a id=\"__typedragleave\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.DropEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DropEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></h5><div class=\"tsd-comment tsd-typography\"><p>Callback(targetNode, data)</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-5\" class=\"tsd-anchor\"></a>Default<a href=\"#default-5\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">null</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">dragOver</span><a id=\"__typedragover\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.DropEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DropEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></h5><div class=\"tsd-comment tsd-typography\"><p>Callback(targetNode, data)</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-6\" class=\"tsd-anchor\"></a>Default<a href=\"#default-6\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">null</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">dragStart</span><a id=\"__typedragstart\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.DragEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">DragEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Callback(sourceNode, data), return true, to enable dnd drag</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-7\" class=\"tsd-anchor\"></a>Default<a href=\"#default-7\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">null</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">drop</span><a id=\"__typedrop\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><br/>        <span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a> <span class=\"tsd-signature-symbol\">&amp;</span> <span class=\"tsd-signature-symbol\">{</span><br/>            <span class=\"tsd-kind-property\">event</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">DragEvent</span><span class=\"tsd-signature-symbol\">;</span><br/>            <span class=\"tsd-kind-property\">region</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.DropRegionType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropRegionType</a><span class=\"tsd-signature-symbol\">;</span><br/>            <span class=\"tsd-kind-property\">sourceNode</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">;</span><br/>            <span class=\"tsd-kind-property\">sourceNodeData</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span><span class=\"tsd-signature-symbol\">;</span><br/>            <span class=\"tsd-kind-property\">suggestedDropEffect</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.DropEffectType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropEffectType</a><span class=\"tsd-signature-symbol\">;</span><br/>            <span class=\"tsd-kind-property\">suggestedDropMode</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.InsertNodeType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">InsertNodeType</a><span class=\"tsd-signature-symbol\">;</span><br/>        <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></h5><div class=\"tsd-comment tsd-typography\"><p>Callback(targetNode, data)</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-8\" class=\"tsd-anchor\"></a>Default<a href=\"#default-8\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">null</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">dropEffectDefault</span><a id=\"__typedropeffectdefault\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><a href=\"types.DropEffectType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropEffectType</a></h5><div class=\"tsd-comment tsd-typography\"><p>Default dropEffect ('copy', 'link', or 'move') when no modifier is pressed.\nOveridable in the dragEnter or dragOver event.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-9\" class=\"tsd-anchor\"></a>Default<a href=\"#default-9\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&quot;move&quot;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">effectAllowed</span><a id=\"__typeeffectallowed\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><a href=\"types.DropEffectAllowedType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropEffectAllowedType</a></h5><div class=\"tsd-comment tsd-typography\"><p>Restrict the possible cursor shapes and modifier operations\n(can also be set in the dragStart event)</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-10\" class=\"tsd-anchor\"></a>Default<a href=\"#default-10\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&quot;all&quot;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><span class=\"tsd-kind-property\">guessDropEffect</span><a id=\"__typeguessdropeffect\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">: </span><span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Use opinionated heuristics to determine the dropEffect ('copy', 'link', or 'move')\nbased on <code>effectAllowed</code>, <code>dropEffectDefault</code>, and modifier keys.\nThis is recalculated before each dragEnter and dragOver event and can be\noverridden there.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-11\" class=\"tsd-anchor\"></a>Default<a href=\"#default-11\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">multiSource</span><a id=\"__typemultisource\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">false</span></h5><div class=\"tsd-comment tsd-typography\"><p>true: Drag multiple (i.e. selected) nodes. Also a callback() is allowed</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-12\" class=\"tsd-anchor\"></a>Default<a href=\"#default-12\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">preventForeignNodes</span><a id=\"__typepreventforeignnodes\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Prevent dropping nodes from different Wunderbaum trees</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-13\" class=\"tsd-anchor\"></a>Default<a href=\"#default-13\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">preventLazyParents</span><a id=\"__typepreventlazyparents\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Prevent dropping items on unloaded lazy Wunderbaum tree nodes</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-14\" class=\"tsd-anchor\"></a>Default<a href=\"#default-14\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">preventNonNodes</span><a id=\"__typepreventnonnodes\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Prevent dropping items other than Wunderbaum tree nodes</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-15\" class=\"tsd-anchor\"></a>Default<a href=\"#default-15\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">preventRecursion</span><a id=\"__typepreventrecursion\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Prevent dropping nodes on own descendants</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-16\" class=\"tsd-anchor\"></a>Default<a href=\"#default-16\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">preventSameParent</span><a id=\"__typepreventsameparent\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Prevent dropping nodes under same direct parent</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-17\" class=\"tsd-anchor\"></a>Default<a href=\"#default-17\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">false</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">preventVoidMoves</span><a id=\"__typepreventvoidmoves\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Prevent dropping nodes 'before self', etc. (move only)</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-18\" class=\"tsd-anchor\"></a>Default<a href=\"#default-18\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">scroll</span><a id=\"__typescroll\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Enable auto-scrolling while dragging</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-19\" class=\"tsd-anchor\"></a>Default<a href=\"#default-19\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">scrollSensitivity</span><a id=\"__typescrollsensitivity\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">20</span></h5><div class=\"tsd-comment tsd-typography\"><p>Active top/bottom margin in pixel</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-20\" class=\"tsd-anchor\"></a>Default<a href=\"#default-20\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-10\">20</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">scrollSpeed</span><a id=\"__typescrollspeed\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">5</span></h5><div class=\"tsd-comment tsd-typography\"><p>Pixel per event</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-21\" class=\"tsd-anchor\"></a>Default<a href=\"#default-21\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-10\">5</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">serializeClipboardData</span><a id=\"__typeserializeclipboarddata\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">nodeData</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">string</span></h5><div class=\"tsd-comment tsd-typography\"><p>Serialize Node Data to datatransfer object</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-22\" class=\"tsd-anchor\"></a>Default<a href=\"#default-22\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">sourceCopyHook</span><a id=\"__typesourcecopyhook\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">null</span></h5><div class=\"tsd-comment tsd-typography\"><p>Optional callback passed to <code>toDict</code> on dragStart</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-23\" class=\"tsd-anchor\"></a>Default<a href=\"#default-23\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">null</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li></ul></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1196\">src/types.ts:1196</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.DropEffectAllowedType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DropEffectAllowedType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DropEffectAllowedType.html\">DropEffectAllowedType</a></li></ul><h1>Type Alias DropEffectAllowedType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">DropEffectAllowedType</span><span class=\"tsd-signature-symbol\">:</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;none&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;copy&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;copyLink&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;copyMove&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;link&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;linkMove&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;move&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;all&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1154\">src/types.ts:1154</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.DropEffectType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DropEffectType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DropEffectType.html\">DropEffectType</a></li></ul><h1>Type Alias DropEffectType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">DropEffectType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;none&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;copy&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;link&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;move&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1153\">src/types.ts:1153</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.DropRegionType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DropRegionType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DropRegionType.html\">DropRegionType</a></li></ul><h1>Type Alias DropRegionType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">DropRegionType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;over&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;before&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;after&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1164\">src/types.ts:1164</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.DropRegionTypeList.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DropRegionTypeList | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DropRegionTypeList.html\">DropRegionTypeList</a></li></ul><h1>Type Alias DropRegionTypeList</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">DropRegionTypeList</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.DropRegionType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropRegionType</a><span class=\"tsd-signature-symbol\">[]</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1166\">src/types.ts:1166</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.DropRegionTypeSet.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DropRegionTypeSet | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DropRegionTypeSet.html\">DropRegionTypeSet</a></li></ul><h1>Type Alias DropRegionTypeSet</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">DropRegionTypeSet</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Set</span><span class=\"tsd-signature-symbol\">&lt;</span><a href=\"types.DropRegionType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">DropRegionType</a><span class=\"tsd-signature-symbol\">&gt;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1165\">src/types.ts:1165</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.DynamicBoolOption.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DynamicBoolOption | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DynamicBoolOption.html\">DynamicBoolOption</a></li></ul><h1>Type Alias DynamicBoolOption</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">DynamicBoolOption</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.BoolOptionResolver.html\" class=\"tsd-signature-type tsd-kind-type-alias\">BoolOptionResolver</a></div><div class=\"tsd-comment tsd-typography\"><p>See also <a href=\"../classes/wb_node.WunderbaumNode.html#getoption\" class=\"tsd-kind-method\">WunderbaumNode.getOption()</a>\nto evaluate <code>node.NAME</code> setting and <code>tree.types[node.type].NAME</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L117\">src/types.ts:117</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.DynamicBoolOrStringOption.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DynamicBoolOrStringOption | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DynamicBoolOrStringOption.html\">DynamicBoolOrStringOption</a></li></ul><h1>Type Alias DynamicBoolOrStringOption</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">DynamicBoolOrStringOption</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.BoolOrStringOptionResolver.html\" class=\"tsd-signature-type tsd-kind-type-alias\">BoolOrStringOptionResolver</a></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L119\">src/types.ts:119</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.DynamicCheckboxOption.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DynamicCheckboxOption | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DynamicCheckboxOption.html\">DynamicCheckboxOption</a></li></ul><h1>Type Alias DynamicCheckboxOption</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">DynamicCheckboxOption</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.CheckboxOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">CheckboxOption</a> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.BoolOrStringOptionResolver.html\" class=\"tsd-signature-type tsd-kind-type-alias\">BoolOrStringOptionResolver</a></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L123\">src/types.ts:123</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.DynamicIconOption.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DynamicIconOption | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DynamicIconOption.html\">DynamicIconOption</a></li></ul><h1>Type Alias DynamicIconOption</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">DynamicIconOption</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.IconOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">IconOption</a> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.BoolOrStringOptionResolver.html\" class=\"tsd-signature-type tsd-kind-type-alias\">BoolOrStringOptionResolver</a></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L124\">src/types.ts:124</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.DynamicStringOption.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DynamicStringOption | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DynamicStringOption.html\">DynamicStringOption</a></li></ul><h1>Type Alias DynamicStringOption</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">DynamicStringOption</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.BoolOptionResolver.html\" class=\"tsd-signature-type tsd-kind-type-alias\">BoolOptionResolver</a></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L118\">src/types.ts:118</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.DynamicTooltipOption.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DynamicTooltipOption | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.DynamicTooltipOption.html\">DynamicTooltipOption</a></li></ul><h1>Type Alias DynamicTooltipOption</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">DynamicTooltipOption</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.TooltipOption.html\" class=\"tsd-signature-type tsd-kind-type-alias\">TooltipOption</a> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.BoolOrStringOptionResolver.html\" class=\"tsd-signature-type tsd-kind-type-alias\">BoolOrStringOptionResolver</a></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L125\">src/types.ts:125</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.EditOptionsType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>EditOptionsType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.EditOptionsType.html\">EditOptionsType</a></li></ul><h1>Type Alias EditOptionsType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">EditOptionsType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <span class=\"tsd-kind-property\">apply</span><span class=\"tsd-signature-symbol\">?:</span><br/>        <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span><br/>        <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a> <span class=\"tsd-signature-symbol\">&amp;</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-kind-property\">inputElem</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLInputElement</span> <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">any</span><br/>        <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">&gt;</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">beforeEdit</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">debounce</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">edit</span><span class=\"tsd-signature-symbol\">?:</span><br/>        <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span><br/>        <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a> <span class=\"tsd-signature-symbol\">&amp;</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-kind-property\">inputElem</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLInputElement</span> <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">maxlength</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">minlength</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">select</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">slowClickDelay</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">trigger</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">trim</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">validity</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><div class=\"tsd-comment tsd-typography\"><p>Note: <br>\nThis options are used for renaming node titles. <br>\nThere is also the <code>tree.change</code> event to handle modifying node data from\ninput controls that are embedded in grid cells.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">apply</span><a id=\"__typeapply\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">null</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a> <span class=\"tsd-signature-symbol\">&amp;</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-kind-property\">inputElem</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLInputElement</span> <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">any</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">&gt;</span></h5><div class=\"tsd-comment tsd-typography\"></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">beforeEdit</span><a id=\"__typebeforeedit\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span></h5><div class=\"tsd-comment tsd-typography\"><p><code>beforeEdit(e)</code> may return an input HTML string. Otherwise use a default.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">debounce</span><a id=\"__typedebounce\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">number</span></h5><div class=\"tsd-comment tsd-typography\"><p>Used to debounce the <code>change</code> event handler for grid cells [ms].</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-10\">100</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">edit</span><a id=\"__typeedit\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeEventType</a> <span class=\"tsd-signature-symbol\">&amp;</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-kind-property\">inputElem</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">HTMLInputElement</span> <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">void</span></h5><div class=\"tsd-comment tsd-typography\"></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">maxlength</span><a id=\"__typemaxlength\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span></h5><div class=\"tsd-comment tsd-typography\"><p>Maximum number of characters allowed for node title input field.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">null</span><span class=\"hl-1\">;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">minlength</span><a id=\"__typeminlength\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">number</span></h5><div class=\"tsd-comment tsd-typography\"><p>Minimum number of characters required for node title input field.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-10\">1</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">select</span><a id=\"__typeselect\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Select all text of a node title, so it can be overwritten by typing.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-3\" class=\"tsd-anchor\"></a>Default<a href=\"#default-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">slowClickDelay</span><a id=\"__typeslowclickdelay\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">number</span></h5><div class=\"tsd-comment tsd-typography\"><p>Handle 'clickActive' only if last click is less than this ms old (0: always)</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-4\" class=\"tsd-anchor\"></a>Default<a href=\"#default-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-10\">1000</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">trigger</span><a id=\"__typetrigger\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span></h5><div class=\"tsd-comment tsd-typography\"><p>Array of strings to determine which user input should trigger edit mode.\nE.g. <code>[&quot;clickActive&quot;, &quot;F2&quot;, &quot;macEnter&quot;]</code>: <br>\n'clickActive': single click on active node title <br>\n'F2': press F2 key <br>\n'macEnter': press Enter (on macOS only) <br>\nPass an empty array to disable edit mode.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-5\" class=\"tsd-anchor\"></a>Default<a href=\"#default-5\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-1\">[]</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">trim</span><a id=\"__typetrim\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Trim whitespace before saving a node title.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-6\" class=\"tsd-anchor\"></a>Default<a href=\"#default-6\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">validity</span><a id=\"__typevalidity\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Permanently apply node title input validations (CSS and tooltip) on keydown.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-7\" class=\"tsd-anchor\"></a>Default<a href=\"#default-7\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1072\">src/types.ts:1072</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.FilterModeType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>FilterModeType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.FilterModeType.html\">FilterModeType</a></li></ul><h1>Type Alias FilterModeType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">FilterModeType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;mark&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;dim&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;hide&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L558\">src/types.ts:558</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.FilterOptionsType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>FilterOptionsType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.FilterOptionsType.html\">FilterOptionsType</a></li></ul><h1>Type Alias FilterOptionsType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">FilterOptionsType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-kind-property\">autoApply</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\">;</span> <span class=\"tsd-kind-property\">connect</span><span class=\"tsd-signature-symbol\">?:</span> <span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../interfaces/types.FilterConnectType.html\" class=\"tsd-signature-type tsd-kind-interface\">FilterConnectType</a> <span class=\"tsd-signature-symbol\">}</span> <span class=\"tsd-signature-symbol\">&amp;</span> <a href=\"../interfaces/types.FilterNodesOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">FilterNodesOptions</a></div><div class=\"tsd-comment tsd-typography\"><p>Passed as tree options to configure default filtering behavior.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code><span class=\"tsd-kind-property\">autoApply</span><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">boolean</span></h5><div class=\"tsd-comment tsd-typography\"><p>Re-apply last filter if lazy data is loaded</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">true</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><code class=\"tsd-tag\">Optional</code> <code class=\"tsd-tag\">Experimental</code><span class=\"tsd-kind-property\">connect</span><span class=\"tsd-signature-symbol\">?: </span><span class=\"tsd-signature-type\">null</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../interfaces/types.FilterConnectType.html\" class=\"tsd-signature-type tsd-kind-interface\">FilterConnectType</a></h5><div class=\"tsd-comment tsd-typography\"><p>Element or selector of input controls and buttons for filter query strings.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-since\"><h4 class=\"tsd-anchor-link\"><a id=\"since\" class=\"tsd-anchor\"></a>Since<a href=\"#since\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>0.13</p>\n</div><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-0\">null</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li></ul></div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-see\"><h4 class=\"tsd-anchor-link\"><a id=\"see\" class=\"tsd-anchor\"></a>See<a href=\"#see\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><ul>\n<li><a href=\"../classes/wunderbaum.Wunderbaum.html#filternodes\" class=\"tsd-kind-method\">Wunderbaum.filterNodes</a></li>\n<li><a href=\"../interfaces/types.FilterNodesOptions.html\" class=\"tsd-kind-interface\">FilterNodesOptions</a></li>\n</ul>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1048\">src/types.ts:1048</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.GridOptionsType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>GridOptionsType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.GridOptionsType.html\">GridOptionsType</a></li></ul><h1>Type Alias GridOptionsType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">GridOptionsType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">object</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1382\">src/types.ts:1382</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.IconOption.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>IconOption | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.IconOption.html\">IconOption</a></li></ul><h1>Type Alias IconOption</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">IconOption</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>An icon may either be\na string-tag that references an entry in the <code>iconMap</code> (e.g. <code>&quot;folderOpen&quot;</code>)),\nan HTML string that contains a <code>&lt;</code> and is used as-is,\nan image URL string that contains a <code>.</code> or <code>/</code> and is rendered as <code>&lt;img src='...'&gt;</code>,\na class string such as <code>&quot;bi bi-folder&quot;</code>,\nor a boolean value that indicates if the default icon should be used or hidden.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L24\">src/types.ts:24</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.InsertNodeType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>InsertNodeType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.InsertNodeType.html\">InsertNodeType</a></li></ul><h1>Type Alias InsertNodeType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">InsertNodeType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;before&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;after&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;prependChild&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;appendChild&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1147\">src/types.ts:1147</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.KeynavOptionsType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>KeynavOptionsType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.KeynavOptionsType.html\">KeynavOptionsType</a></li></ul><h1>Type Alias KeynavOptionsType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">KeynavOptionsType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">object</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1387\">src/types.ts:1387</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.LoggerOptionsType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>LoggerOptionsType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.LoggerOptionsType.html\">LoggerOptionsType</a></li></ul><h1>Type Alias LoggerOptionsType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">LoggerOptionsType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">object</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1392\">src/types.ts:1392</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.MatcherCallback.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>MatcherCallback | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.MatcherCallback.html\">MatcherCallback</a></li></ul><h1>Type Alias MatcherCallback</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">MatcherCallback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span></div><div class=\"tsd-comment tsd-typography\"><p>Passed to <code>find...()</code> methods. Should return true if node matches.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span></h4></li></ul></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L58\">src/types.ts:58</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.NavigationType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NavigationType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NavigationType.html\">NavigationType</a></li></ul><h1>Type Alias NavigationType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">NavigationType</span><span class=\"tsd-signature-symbol\">:</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;down&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;first&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;firstCol&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;last&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;lastCol&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;left&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;nextMatch&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;pageDown&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;pageUp&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;parent&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;prevMatch&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;right&quot;</span><br/>    <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;up&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L561\">src/types.ts:561</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.NodeAnyCallback.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NodeAnyCallback | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NodeAnyCallback.html\">NodeAnyCallback</a></li></ul><h1>Type Alias NodeAnyCallback</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">NodeAnyCallback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>A callback that receives a node instance and returns an arbitrary value type.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4></li></ul></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L77\">src/types.ts:77</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.NodeFilterCallback.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NodeFilterCallback | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NodeFilterCallback.html\">NodeFilterCallback</a></li></ul><h1>Type Alias NodeFilterCallback</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">NodeFilterCallback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"types.NodeFilterResponse.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeFilterResponse</a></div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeFilterResponse.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeFilterResponse</a></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"types.NodeFilterResponse.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeFilterResponse</a></h4></li></ul></li></ul></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L597\">src/types.ts:597</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.NodeFilterResponse.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NodeFilterResponse | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NodeFilterResponse.html\">NodeFilterResponse</a></li></ul><h1>Type Alias NodeFilterResponse</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">NodeFilterResponse</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;skip&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;branch&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L596\">src/types.ts:596</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.NodePropertyGetterCallback.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NodePropertyGetterCallback | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NodePropertyGetterCallback.html\">NodePropertyGetterCallback</a></li></ul><h1>Type Alias NodePropertyGetterCallback</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">NodePropertyGetterCallback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">propName</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-comment tsd-typography\"><p>A callback that receives a node instance and property name returns a value.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">propName</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li><li><span><span class=\"tsd-kind-parameter\">propName</span>: <span class=\"tsd-signature-type\">string</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4></li></ul></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L81\">src/types.ts:81</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.NodeSelectCallback.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NodeSelectCallback | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NodeSelectCallback.html\">NodeSelectCallback</a></li></ul><h1>Type Alias NodeSelectCallback</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">NodeSelectCallback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>A callback that receives a node instance and may returnsa <code>false</code> to prevent\n(de)selection.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span></h4></li></ul></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L105\">src/types.ts:105</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.NodeStringCallback.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NodeStringCallback | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NodeStringCallback.html\">NodeStringCallback</a></li></ul><h1>Type Alias NodeStringCallback</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">NodeStringCallback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>A callback that receives a node instance and returns a string value.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span></h4></li></ul></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L79\">src/types.ts:79</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.NodeToDictCallback.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NodeToDictCallback | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NodeToDictCallback.html\">NodeToDictCallback</a></li></ul><h1>Type Alias NodeToDictCallback</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">NodeToDictCallback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><br/>    <span class=\"tsd-kind-parameter\">dict</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><span class=\"tsd-signature-symbol\">,</span><br/>    <span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span><br/><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"types.NodeVisitResponse.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeVisitResponse</a></div><div class=\"tsd-comment tsd-typography\"><p>A callback that receives a node-data dictionary and a node instance and\nreturns an iteration modifier.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">dict</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeVisitResponse.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeVisitResponse</a></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">dict</span>: <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a></span></li><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"types.NodeVisitResponse.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeVisitResponse</a></h4></li></ul></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L97\">src/types.ts:97</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.NodeTypeDefinitionMap.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NodeTypeDefinitionMap | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NodeTypeDefinitionMap.html\">NodeTypeDefinitionMap</a></li></ul><h1>Type Alias NodeTypeDefinitionMap</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">NodeTypeDefinitionMap</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">type</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]:</span> <a href=\"../interfaces/types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a> <span class=\"tsd-signature-symbol\">}</span></div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-index-signature\"><h5><span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-parameter\">type</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]: </span><a href=\"../interfaces/types.NodeTypeDefinition.html\" class=\"tsd-signature-type tsd-kind-interface\">NodeTypeDefinition</a></h5></li></ul></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L421\">src/types.ts:421</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.NodeVisitCallback.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NodeVisitCallback | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NodeVisitCallback.html\">NodeVisitCallback</a></li></ul><h1>Type Alias NodeVisitCallback</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">NodeVisitCallback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"types.NodeVisitResponse.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeVisitResponse</a></div><div class=\"tsd-comment tsd-typography\"><p>A callback that receives a node instance and returns an iteration modifier.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"types.NodeVisitResponse.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeVisitResponse</a></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"types.NodeVisitResponse.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NodeVisitResponse</a></h4></li></ul></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L86\">src/types.ts:86</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.NodeVisitResponse.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NodeVisitResponse | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.NodeVisitResponse.html\">NodeVisitResponse</a></li></ul><h1>Type Alias NodeVisitResponse</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">NodeVisitResponse</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;skip&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Returned by <code>NodeVisitCallback</code> to control iteration.\n<code>false</code> stops iteration, <code>skip</code> skips descendants but continues.\nAll other values continue iteration.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L92\">src/types.ts:92</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.SelectModeType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SelectModeType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SelectModeType.html\">SelectModeType</a></li></ul><h1>Type Alias SelectModeType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">SelectModeType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;single&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;multi&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;hier&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L559\">src/types.ts:559</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.SortByPropertyOptions.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SortByPropertyOptions | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SortByPropertyOptions.html\">SortByPropertyOptions</a></li></ul><h1 class=\"deprecated\">Type Alias SortByPropertyOptions</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">SortByPropertyOptions</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.SortOptions.html\" class=\"tsd-signature-type tsd-kind-interface\">SortOptions</a></div><div class=\"tsd-comment tsd-typography\"><p>Possible values for <a href=\"../classes/wb_node.WunderbaumNode.html#sortbyproperty\" class=\"tsd-kind-method\">WunderbaumNode.sortByProperty</a> <code>options</code> argument.</p>\n</div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-deprecated\"><h4 class=\"tsd-anchor-link\"><a id=\"deprecated\" class=\"tsd-anchor\"></a>Deprecated<a href=\"#deprecated\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4></div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L1009\">src/types.ts:1009</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.SortCallback.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SortCallback | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SortCallback.html\">SortCallback</a></li></ul><h1 class=\"deprecated\">Type Alias SortCallback</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">SortCallback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">a</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">b</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">number</span></div><div class=\"tsd-comment tsd-typography\"><p>Passed to <code>sort()</code> methods. Should return -1, 0, or 1.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">a</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">,</span> <span class=\"tsd-kind-parameter\">b</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">a</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li><li><span><span class=\"tsd-kind-parameter\">b</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">number</span></h4></li></ul></li></ul></div><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-deprecated\"><h4 class=\"tsd-anchor-link\"><a id=\"deprecated\" class=\"tsd-anchor\"></a>Deprecated<a href=\"#deprecated\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><p>Use SortKeyCallback instead</p>\n</div></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L67\">src/types.ts:67</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.SortKeyCallback.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SortKeyCallback | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SortKeyCallback.html\">SortKeyCallback</a></li></ul><h1>Type Alias SortKeyCallback</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">SortKeyCallback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></div><div class=\"tsd-comment tsd-typography\"><p>Passed to <code>sort()</code> methods. Should return a representation that can be compared using <code>&lt;</code>.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">node</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">node</span>: <a href=\"../classes/wb_node.WunderbaumNode.html\" class=\"tsd-signature-type tsd-kind-class\">WunderbaumNode</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">number</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></h4></li></ul></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L69\">src/types.ts:69</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.SortOrderType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SortOrderType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SortOrderType.html\">SortOrderType</a></li></ul><h1>Type Alias SortOrderType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">SortOrderType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;asc&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">&quot;desc&quot;</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">undefined</span></div><div class=\"tsd-comment tsd-typography\"><p>A value that can either be true, false, or undefined.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L16\">src/types.ts:16</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.SourceListType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SourceListType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SourceListType.html\">SourceListType</a></li></ul><h1>Type Alias SourceListType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">SourceListType</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbNodeData.html\" class=\"tsd-signature-type tsd-kind-interface\">WbNodeData</a><span class=\"tsd-signature-symbol\">[]</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L37\">src/types.ts:37</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.SourceType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>SourceType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.SourceType.html\">SourceType</a></li></ul><h1>Type Alias SourceType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">SourceType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">|</span> <a href=\"types.SourceListType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">SourceListType</a> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../interfaces/types.SourceAjaxType.html\" class=\"tsd-signature-type tsd-kind-interface\">SourceAjaxType</a> <span class=\"tsd-signature-symbol\">|</span> <a href=\"../interfaces/types.SourceObjectType.html\" class=\"tsd-signature-type tsd-kind-interface\">SourceObjectType</a></div><div class=\"tsd-comment tsd-typography\"><p>Possible initilization for tree nodes.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L51\">src/types.ts:51</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.TooltipOption.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>TooltipOption | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.TooltipOption.html\">TooltipOption</a></li></ul><h1>Type Alias TooltipOption</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">TooltipOption</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">string</span></div><div class=\"tsd-comment tsd-typography\"><p>Show/hide default tooltip or display a string.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L26\">src/types.ts:26</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.TranslationsType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>TranslationsType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.TranslationsType.html\">TranslationsType</a></li></ul><h1>Type Alias TranslationsType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">TranslationsType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span><br/>    <span class=\"tsd-kind-property\">breadcrumbDelimiter</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">loadError</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">loading</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">matchIndex</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">noData</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">noMatch</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/>    <span class=\"tsd-kind-property\">queryResult</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">;</span><br/><span class=\"tsd-signature-symbol\">}</span></div><div class=\"tsd-comment tsd-typography\"><p>Translatable strings.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter\"><h5><span class=\"tsd-kind-property\">breadcrumbDelimiter</span><a id=\"__typebreadcrumbdelimiter\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">: </span><span class=\"tsd-signature-type\">string</span></h5><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default\" class=\"tsd-anchor\"></a>Default<a href=\"#default\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&quot; » &quot;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><span class=\"tsd-kind-property\">loadError</span><a id=\"__typeloaderror\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">: </span><span class=\"tsd-signature-type\">string</span></h5><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-1\" class=\"tsd-anchor\"></a>Default<a href=\"#default-1\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&quot;Error&quot;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><span class=\"tsd-kind-property\">loading</span><a id=\"__typeloading\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">: </span><span class=\"tsd-signature-type\">string</span></h5><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-2\" class=\"tsd-anchor\"></a>Default<a href=\"#default-2\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&quot;Loading...&quot;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><span class=\"tsd-kind-property\">matchIndex</span><a id=\"__typematchindex\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">: </span><span class=\"tsd-signature-type\">string</span></h5><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-3\" class=\"tsd-anchor\"></a>Default<a href=\"#default-3\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&quot;${match} of ${matches}&quot;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><span class=\"tsd-kind-property\">noData</span><a id=\"__typenodata\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">: </span><span class=\"tsd-signature-type\">string</span></h5><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-4\" class=\"tsd-anchor\"></a>Default<a href=\"#default-4\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&quot;No data&quot;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><span class=\"tsd-kind-property\">noMatch</span><a id=\"__typenomatch\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">: </span><span class=\"tsd-signature-type\">string</span></h5><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-5\" class=\"tsd-anchor\"></a>Default<a href=\"#default-5\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&quot;No result&quot;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li><li class=\"tsd-parameter\"><h5><span class=\"tsd-kind-property\">queryResult</span><a id=\"__typequeryresult\" class=\"tsd-anchor\"></a><span class=\"tsd-signature-symbol\">: </span><span class=\"tsd-signature-type\">string</span></h5><div class=\"tsd-comment tsd-typography\"><div class=\"tsd-tag-default\"><h4 class=\"tsd-anchor-link\"><a id=\"default-6\" class=\"tsd-anchor\"></a>Default<a href=\"#default-6\" aria-label=\"Permalink\" class=\"tsd-anchor-icon\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-anchor\"></use></svg></a></h4><pre><code class=\"ts\"><span class=\"hl-7\">&quot;Found ${matches} of ${count}&quot;</span>\n</code><button type=\"button\">Copy</button></pre>\n\n</div></div></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L662\">src/types.ts:662</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.TristateType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>TristateType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.TristateType.html\">TristateType</a></li></ul><h1>Type Alias TristateType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">TristateType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">undefined</span></div><div class=\"tsd-comment tsd-typography\"><p>A value that can either be true, false, or undefined.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L12\">src/types.ts:12</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.WbCancelableEventResultType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbCancelableEventResultType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbCancelableEventResultType.html\">WbCancelableEventResultType</a></li></ul><h1>Type Alias WbCancelableEventResultType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">WbCancelableEventResultType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">false</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-comment tsd-typography\"><p>Retuen value of an event handler that can return <code>false</code> to prevent the default action.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L218\">src/types.ts:218</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/types.WbIconBadgeCallback.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>WbIconBadgeCallback | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/types.html\">types</a></li><li><a href=\"types.WbIconBadgeCallback.html\">WbIconBadgeCallback</a></li></ul><h1>Type Alias WbIconBadgeCallback</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">WbIconBadgeCallback</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbIconBadgeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbIconBadgeEventType</a><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <a href=\"../interfaces/types.WbIconBadgeEventResultType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbIconBadgeEventResultType</a></div><div class=\"tsd-comment tsd-typography\"><p>Used for <code>tree.iconBadge</code> event.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbIconBadgeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbIconBadgeEventType</a><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.WbIconBadgeEventResultType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbIconBadgeEventResultType</a></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">e</span>: <a href=\"../interfaces/types.WbIconBadgeEventType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbIconBadgeEventType</a></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <a href=\"../interfaces/types.WbIconBadgeEventResultType.html\" class=\"tsd-signature-type tsd-kind-interface\">WbIconBadgeEventResultType</a></h4></li></ul></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/types.ts#L60\">src/types.ts:60</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/util.EventCallbackType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>EventCallbackType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.EventCallbackType.html\">EventCallbackType</a></li></ul><h1>Type Alias EventCallbackType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">EventCallbackType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span></div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-kind-parameter\">e</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Event</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-kind-parameter\">e</span>: <span class=\"tsd-signature-type\">Event</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">boolean</span> <span class=\"tsd-signature-symbol\">|</span> <span class=\"tsd-signature-type\">void</span></h4></li></ul></li></ul></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L42\">src/util.ts:42</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/util.FunctionType.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>FunctionType | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.FunctionType.html\">FunctionType</a></li></ul><h1>Type Alias FunctionType</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">FunctionType</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span> <span class=\"tsd-signature-symbol\">=&gt;</span> <span class=\"tsd-signature-type\">any</span></div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-signature\"><ul class=\"tsd-signatures\"><li class=\"tsd-signature\" id=\"__type\"><span class=\"tsd-signature-symbol\">(</span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span><span class=\"tsd-signature-symbol\">)</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">any</span></li><li class=\"tsd-description\"><div class=\"tsd-parameters\"><h4 class=\"tsd-parameters-title\">Parameters</h4><ul class=\"tsd-parameter-list\"><li><span><span class=\"tsd-signature-symbol\">...</span><span class=\"tsd-kind-parameter\">args</span>: <span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">[]</span></span></li></ul></div><h4 class=\"tsd-returns-title\">Returns <span class=\"tsd-signature-type\">any</span></h4></li></ul></li></ul></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L41\">src/util.ts:41</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/types/util.NotPromise.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NotPromise | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.NotPromise.html\">NotPromise</a></li></ul><h1>Type Alias NotPromise&lt;T&gt;</h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-type-alias\">NotPromise</span><span class=\"tsd-signature-symbol\">:</span> <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.NotPromise.html#t\">T</a> <span class=\"tsd-signature-keyword\">extends</span> <span class=\"tsd-signature-type\">Promise</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">any</span><span class=\"tsd-signature-symbol\">&gt;</span> <span class=\"tsd-signature-symbol\">?</span> <span class=\"tsd-signature-type\">never</span> <span class=\"tsd-signature-symbol\">:</span> <a class=\"tsd-signature-type tsd-kind-type-parameter\" href=\"util.NotPromise.html#t\">T</a></div><section class=\"tsd-panel\"><h4>Type Parameters</h4><ul class=\"tsd-type-parameter-list\"><li><span><a id=\"t\" class=\"tsd-anchor\"></a><span class=\"tsd-kind-type-parameter\">T</span></span></li></ul></section><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L39\">src/util.ts:39</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.DEFAULT_DEBUGLEVEL.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DEFAULT_DEBUGLEVEL | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.DEFAULT_DEBUGLEVEL.html\">DEFAULT_DEBUGLEVEL</a></li></ul><h1>Variable DEFAULT_DEBUGLEVEL<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">DEFAULT_DEBUGLEVEL</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">4</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L18\">src/common.ts:18</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.DEFAULT_MIN_COL_WIDTH.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DEFAULT_MIN_COL_WIDTH | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.DEFAULT_MIN_COL_WIDTH.html\">DEFAULT_MIN_COL_WIDTH</a></li></ul><h1>Variable DEFAULT_MIN_COL_WIDTH<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">DEFAULT_MIN_COL_WIDTH</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">4</span></div><div class=\"tsd-comment tsd-typography\"><p>Minimum column width if not set otherwise.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L37\">src/common.ts:37</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.DEFAULT_ROW_HEIGHT.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>DEFAULT_ROW_HEIGHT | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.DEFAULT_ROW_HEIGHT.html\">DEFAULT_ROW_HEIGHT</a></li></ul><h1>Variable DEFAULT_ROW_HEIGHT<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">DEFAULT_ROW_HEIGHT</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">22</span></div><div class=\"tsd-comment tsd-typography\"><p>Fixed height of a row in pixel. Must match the SCSS variable <code>$row-outer-height</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L22\">src/common.ts:22</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.ICON_WIDTH.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>ICON_WIDTH | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.ICON_WIDTH.html\">ICON_WIDTH</a></li></ul><h1>Variable ICON_WIDTH<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">ICON_WIDTH</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">20</span></div><div class=\"tsd-comment tsd-typography\"><p>Fixed width of node icons in pixel. Must match the SCSS variable <code>$icon-outer-width</code>.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L26\">src/common.ts:26</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.INPUT_KEYS.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>INPUT_KEYS | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.INPUT_KEYS.html\">INPUT_KEYS</a></li></ul><h1>Variable INPUT_KEYS<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">INPUT_KEYS</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span> <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\"> = ...</span></div><div class=\"tsd-comment tsd-typography\"><p>Define which keys are handled by embedded <input> control, and should\n<em>not</em> be passed to tree navigation handler in cell-edit mode.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-index-signature\"><h5><span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-parameter\">key</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]: </span><span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">[]</span></h5></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L128\">src/common.ts:128</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.KEY_NODATA.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>KEY_NODATA | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.KEY_NODATA.html\">KEY_NODATA</a></li></ul><h1>Variable KEY_NODATA<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">KEY_NODATA</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;__not_found__&quot;</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L123\">src/common.ts:123</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.KEY_TO_COMMAND_MAP.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>KEY_TO_COMMAND_MAP | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.KEY_TO_COMMAND_MAP.html\">KEY_TO_COMMAND_MAP</a></li></ul><h1>Variable KEY_TO_COMMAND_MAP<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">KEY_TO_COMMAND_MAP</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]:</span> <a href=\"../types/types.ApplyCommandType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ApplyCommandType</a> <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\"> = ...</span></div><div class=\"tsd-comment tsd-typography\"><p>Map <code>KeyEvent.key</code> to navigation action.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-index-signature\"><h5><span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-parameter\">key</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]: </span><a href=\"../types/types.ApplyCommandType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">ApplyCommandType</a></h5></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L177\">src/common.ts:177</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.KEY_TO_NAVIGATION_MAP.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>KEY_TO_NAVIGATION_MAP | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.KEY_TO_NAVIGATION_MAP.html\">KEY_TO_NAVIGATION_MAP</a></li></ul><h1>Variable KEY_TO_NAVIGATION_MAP<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">KEY_TO_NAVIGATION_MAP</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]:</span> <a href=\"../types/types.NavigationType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NavigationType</a> <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\"> = ...</span></div><div class=\"tsd-comment tsd-typography\"><p>Map <code>KeyEvent.key</code> to navigation action.</p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-index-signature\"><h5><span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-parameter\">key</span>: <span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">]: </span><a href=\"../types/types.NavigationType.html\" class=\"tsd-signature-type tsd-kind-type-alias\">NavigationType</a></h5></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L160\">src/common.ts:160</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.NODE_TYPE_FOLDER.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>NODE_TYPE_FOLDER | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.NODE_TYPE_FOLDER.html\">NODE_TYPE_FOLDER</a></li></ul><h1>Variable NODE_TYPE_FOLDER<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">NODE_TYPE_FOLDER</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">&quot;folder&quot;</span></div><div class=\"tsd-comment tsd-typography\"><p>A value for <code>node.type</code> that by convention may be used to mark a node as directory.\nIt may be used to sort 'directories' to the top.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L42\">src/common.ts:42</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.RENDER_MAX_PREFETCH.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>RENDER_MAX_PREFETCH | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.RENDER_MAX_PREFETCH.html\">RENDER_MAX_PREFETCH</a></li></ul><h1>Variable RENDER_MAX_PREFETCH<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">RENDER_MAX_PREFETCH</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">5</span></div><div class=\"tsd-comment tsd-typography\"><p>Render row markup for N nodes above and below the visible viewport.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L33\">src/common.ts:33</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.RENDER_MIN_PREFETCH.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>RENDER_MIN_PREFETCH | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.RENDER_MIN_PREFETCH.html\">RENDER_MIN_PREFETCH</a></li></ul><h1>Variable RENDER_MIN_PREFETCH<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">RENDER_MIN_PREFETCH</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">5</span></div><div class=\"tsd-comment tsd-typography\"><p>Skip rendering new rows when we have at least N nodes rendeed above and below the viewport.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L35\">src/common.ts:35</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.RESERVED_TREE_SOURCE_KEYS.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>RESERVED_TREE_SOURCE_KEYS | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.RESERVED_TREE_SOURCE_KEYS.html\">RESERVED_TREE_SOURCE_KEYS</a></li></ul><h1>Variable RESERVED_TREE_SOURCE_KEYS<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">RESERVED_TREE_SOURCE_KEYS</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">Set</span><span class=\"tsd-signature-symbol\">&lt;</span><span class=\"tsd-signature-type\">string</span><span class=\"tsd-signature-symbol\">&gt;</span><span class=\"tsd-signature-symbol\"> = ...</span></div><div class=\"tsd-comment tsd-typography\"><p>Dict keys that are evaluated by source loader (others are added to <code>tree.data</code> instead).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L139\">src/common.ts:139</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.TEST_FILE_PATH.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>TEST_FILE_PATH | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.TEST_FILE_PATH.html\">TEST_FILE_PATH</a></li></ul><h1>Variable TEST_FILE_PATH<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">TEST_FILE_PATH</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">RegExp</span><span class=\"tsd-signature-symbol\"> = ...</span></div><div class=\"tsd-comment tsd-typography\"><p>Regular expression to detect if a string describes an image URL (in contrast\nto a class name). Strings are considered image urls if they contain '.' or '/'.\n<code>&lt;</code> is ignored, because it is probably an html tag.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L47\">src/common.ts:47</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.TEST_HTML.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>TEST_HTML | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.TEST_HTML.html\">TEST_HTML</a></li></ul><h1>Variable TEST_HTML<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">TEST_HTML</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">RegExp</span><span class=\"tsd-signature-symbol\"> = ...</span></div><div class=\"tsd-comment tsd-typography\"><p>Regular expression to detect if a string describes an HTML element.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L49\">src/common.ts:49</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.TITLE_SPAN_PAD_Y.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>TITLE_SPAN_PAD_Y | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.TITLE_SPAN_PAD_Y.html\">TITLE_SPAN_PAD_Y</a></li></ul><h1>Variable TITLE_SPAN_PAD_Y<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">TITLE_SPAN_PAD_Y</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">7</span></div><div class=\"tsd-comment tsd-typography\"><p>Adjust the width of the title span, so overflow ellipsis work.\n(2 x <code>$col-padding-x</code> + 3px rounding errors).</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L31\">src/common.ts:31</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/common.defaultIconMaps.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>defaultIconMaps | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/common.html\">common</a></li><li><a href=\"common.defaultIconMaps.html\">defaultIconMaps</a></li></ul><h1>Variable defaultIconMaps<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">defaultIconMaps</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-type-parameter\">key</span> <span class=\"tsd-signature-keyword\">in</span> <span class=\"tsd-signature-type\">IconLibrary</span><span class=\"tsd-signature-symbol\">]</span><span class=\"tsd-signature-symbol\">:</span> <a href=\"../interfaces/types.IconMapType.html\" class=\"tsd-signature-type tsd-kind-interface\">IconMapType</a> <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\"> = ...</span></div><div class=\"tsd-comment tsd-typography\"><p>Default node icons for icon libraries</p>\n<ul>\n<li>'bootstrap': <a href=\"https://icons.getbootstrap.com\">https://icons.getbootstrap.com</a></li>\n<li>'fontawesome6' <a href=\"https://fontawesome.com/icons\">https://fontawesome.com/icons</a></li>\n</ul>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/common.ts#L62\">src/common.ts:62</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/util.MAX_INT.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>MAX_INT | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.MAX_INT.html\">MAX_INT</a></li></ul><h1>Variable MAX_INT<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">MAX_INT</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">9007199254740991</span></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L23\">src/util.ts:23</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/util.MOUSE_BUTTONS.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>MOUSE_BUTTONS | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.MOUSE_BUTTONS.html\">MOUSE_BUTTONS</a></li></ul><h1>Variable MOUSE_BUTTONS<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">MOUSE_BUTTONS</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-symbol\">{</span> <span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-index-signature\">key</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">]:</span> <span class=\"tsd-signature-type\">string</span> <span class=\"tsd-signature-symbol\">}</span><span class=\"tsd-signature-symbol\"> = ...</span></div><div class=\"tsd-comment tsd-typography\"><p>Readable names for <code>MouseEvent.button</code></p>\n</div><div class=\"tsd-type-declaration\"><h4>Type declaration</h4><ul class=\"tsd-parameters\"><li class=\"tsd-parameter-index-signature\"><h5><span class=\"tsd-signature-symbol\">[</span><span class=\"tsd-kind-parameter\">key</span>: <span class=\"tsd-signature-type\">number</span><span class=\"tsd-signature-symbol\">]: </span><span class=\"tsd-signature-type\">string</span></h5></li></ul></div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L14\">src/util.ts:14</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/api/variables/util.isMac.html",
    "content": "<!DOCTYPE html><html class=\"default\" lang=\"en\" data-base=\"..\"><head><meta charset=\"utf-8\"/><meta http-equiv=\"x-ua-compatible\" content=\"IE=edge\"/><title>isMac | wunderbaum - v0.14.1</title><meta name=\"description\" content=\"Documentation for wunderbaum\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"stylesheet\" href=\"../assets/style.css\"/><link rel=\"stylesheet\" href=\"../assets/highlight.css\"/><script defer src=\"../assets/main.js\"></script><script async src=\"../assets/icons.js\" id=\"tsd-icons-script\"></script><script async src=\"../assets/search.js\" id=\"tsd-search-script\"></script><script async src=\"../assets/navigation.js\" id=\"tsd-nav-script\"></script><script async src=\"../assets/hierarchy.js\" id=\"tsd-hierarchy-script\"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem(\"tsd-theme\") || \"os\";document.body.style.display=\"none\";setTimeout(() => app?app.showPage():document.body.style.removeProperty(\"display\"),500)</script><header class=\"tsd-page-toolbar\"><div class=\"tsd-toolbar-contents container\"><div class=\"table-cell\" id=\"tsd-search\"><div class=\"field\"><label for=\"tsd-search-field\" class=\"tsd-widget tsd-toolbar-icon search no-caption\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-search\"></use></svg></label><input type=\"text\" id=\"tsd-search-field\" aria-label=\"Search\"/></div><div class=\"field\"><div id=\"tsd-toolbar-links\"></div></div><ul class=\"results\"><li class=\"state loading\">Preparing search index...</li><li class=\"state failure\">The search index is not available</li></ul><a href=\"../index.html\" class=\"title\">wunderbaum - v0.14.1</a></div><div class=\"table-cell\" id=\"tsd-widgets\"><a href=\"#\" class=\"tsd-widget tsd-toolbar-icon menu no-caption\" data-toggle=\"menu\" aria-label=\"Menu\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-menu\"></use></svg></a></div></div></header><div class=\"container container-main\"><div class=\"col-content\"><div class=\"tsd-page-title\"><ul class=\"tsd-breadcrumb\"><li><a href=\"../modules.html\">wunderbaum</a></li><li><a href=\"../modules/util.html\">util</a></li><li><a href=\"util.isMac.html\">isMac</a></li></ul><h1>Variable isMac<code class=\"tsd-tag\">Const</code></h1></div><div class=\"tsd-signature\"><span class=\"tsd-kind-variable\">isMac</span><span class=\"tsd-signature-symbol\">:</span> <span class=\"tsd-signature-type\">boolean</span><span class=\"tsd-signature-symbol\"> = userInfo.isMac</span></div><div class=\"tsd-comment tsd-typography\"><p>True if the client is using a macOS platform.</p>\n</div><div class=\"tsd-comment tsd-typography\"></div><aside class=\"tsd-sources\"><ul><li>Defined in <a href=\"https://github.com/mar10/wunderbaum/blob/534619ba47b6f11a76530a0b936792c2f4a89bb2/src/util.ts#L26\">src/util.ts:26</a></li></ul></aside></div><div class=\"col-sidebar\"><div class=\"page-menu\"><div class=\"tsd-navigation settings\"><details class=\"tsd-accordion\"><summary class=\"tsd-accordion-summary\"><h3><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><use href=\"../assets/icons.svg#icon-chevronDown\"></use></svg>Settings</h3></summary><div class=\"tsd-accordion-details\"><div class=\"tsd-filter-visibility\"><span class=\"settings-label\">Member Visibility</span><ul id=\"tsd-filter-options\"><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-inherited\" name=\"inherited\" checked/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>Inherited</span></label></li><li class=\"tsd-filter-item\"><label class=\"tsd-filter-input\"><input type=\"checkbox\" id=\"tsd-filter-external\" name=\"external\"/><svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" aria-hidden=\"true\"><rect class=\"tsd-checkbox-background\" width=\"30\" height=\"30\" x=\"1\" y=\"1\" rx=\"6\" fill=\"none\"></rect><path class=\"tsd-checkbox-checkmark\" d=\"M8.35422 16.8214L13.2143 21.75L24.6458 10.25\" stroke=\"none\" stroke-width=\"3.5\" stroke-linejoin=\"round\" fill=\"none\"></path></svg><span>External</span></label></li></ul></div><div class=\"tsd-theme-toggle\"><label class=\"settings-label\" for=\"tsd-theme\">Theme</label><select id=\"tsd-theme\"><option value=\"os\">OS</option><option value=\"light\">Light</option><option value=\"dark\">Dark</option></select></div></div></details></div></div><div class=\"site-menu\"><nav class=\"tsd-navigation\"><a href=\"../modules.html\">wunderbaum - v0.14.1</a><ul class=\"tsd-small-nested-navigation\" id=\"tsd-nav-container\"><li>Loading...</li></ul></nav></div></div></div><footer><p class=\"tsd-generator\">Generated using <a href=\"https://typedoc.org/\" target=\"_blank\">TypeDoc</a></p></footer><div class=\"overlay\"></div></body></html>\n"
  },
  {
    "path": "docs/assets/favicon/site.webmanifest",
    "content": "{\"name\":\"\",\"short_name\":\"\",\"icons\":[{\"src\":\"/android-chrome-192x192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"},{\"src\":\"/android-chrome-512x512.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],\"theme_color\":\"#ffffff\",\"background_color\":\"#ffffff\",\"display\":\"standalone\"}"
  },
  {
    "path": "docs/assets/json/ajax-lazy-products.json",
    "content": "[\n  { \"title\": \"SubNode 1 (lazy)\", \"type\": \"folder\", \"lazy\": true },\n  { \"title\": \"SubNode 2\", \"author\": \"n.n\", \"year\":  1999, \"qty\": 0, \"price\": 1.99, \"details\": \"(Lazily loaded)\"}\n]\n"
  },
  {
    "path": "docs/assets/json/ajax-tree-products.json",
    "content": "[\n  {\n    \"title\": \"Books\",\n    \"type\": \"folder\",\n    \"expanded\": true,\n    \"children\": [\n      {\n        \"title\": \"Art of War\",\n        \"type\": \"book\",\n        \"author\": \"Sun Tzu\",\n        \"year\": -500,\n        \"qty\": 21,\n        \"price\": 5.95\n      },\n      {\n        \"title\": \"The Hobbit\",\n        \"type\": \"book\",\n        \"author\": \"J.R.R. Tolkien\",\n        \"year\": 1937,\n        \"qty\": 32,\n        \"price\": 8.97\n      },\n      {\n        \"title\": \"The Little Prince\",\n        \"type\": \"book\",\n        \"author\": \"Antoine de Saint-Exupery\",\n        \"year\": 1943,\n        \"qty\": 2946,\n        \"price\": 6.82\n      },\n      {\n        \"title\": \"Don Quixote\",\n        \"type\": \"book\",\n        \"author\": \"Miguel de Cervantes\",\n        \"year\": 1615,\n        \"qty\": 932,\n        \"price\": 15.99\n      }\n    ]\n  },\n  {\n    \"title\": \"Music\",\n    \"type\": \"folder\",\n    \"children\": [\n      {\n        \"title\": \"Nevermind\",\n        \"type\": \"music\",\n        \"author\": \"Nirvana\",\n        \"year\": 1991,\n        \"qty\": 916,\n        \"price\": 15.95\n      },\n      {\n        \"title\": \"Autobahn\",\n        \"type\": \"music\",\n        \"author\": \"Kraftwerk\",\n        \"year\": 1974,\n        \"qty\": 2261,\n        \"price\": 23.98\n      },\n      {\n        \"title\": \"Kind of Blue\",\n        \"type\": \"music\",\n        \"author\": \"Miles Davis\",\n        \"year\": 1959,\n        \"qty\": 9735,\n        \"price\": 21.9\n      },\n      {\n        \"title\": \"Back in Black\",\n        \"type\": \"music\",\n        \"author\": \"AC/DC\",\n        \"year\": 1980,\n        \"qty\": 3895,\n        \"price\": 17.99\n      },\n      {\n        \"title\": \"The Dark Side of the Moon\",\n        \"type\": \"music\",\n        \"author\": \"Pink Floyd\",\n        \"year\": 1973,\n        \"qty\": 263,\n        \"price\": 17.99\n      },\n      {\n        \"title\": \"Sgt. Pepper's Lonely Hearts Club Band\",\n        \"type\": \"music\",\n        \"author\": \"The Beatles\",\n        \"year\": 1967,\n        \"qty\": 521,\n        \"price\": 13.98\n      }\n    ]\n  },\n  {\n    \"title\": \"Electronics & Computers\",\n    \"expanded\": true,\n    \"type\": \"folder\",\n    \"children\": [\n      {\n        \"title\": \"Cell Phones\",\n        \"type\": \"folder\",\n        \"children\": [\n          {\n            \"title\": \"Moto G\",\n            \"type\": \"phone\",\n            \"author\": \"Motorola\",\n            \"year\": 2014,\n            \"qty\": 332,\n            \"price\": 224.99\n          },\n          {\n            \"title\": \"Galaxy S8\",\n            \"type\": \"phone\",\n            \"author\": \"Samsung\",\n            \"year\": 2016,\n            \"qty\": 952,\n            \"price\": 509.99\n          },\n          {\n            \"title\": \"iPhone SE\",\n            \"type\": \"phone\",\n            \"author\": \"Apple\",\n            \"year\": 2016,\n            \"qty\": 444,\n            \"price\": 282.75\n          },\n          {\n            \"title\": \"G6\",\n            \"type\": \"phone\",\n            \"author\": \"LG\",\n            \"year\": 2017,\n            \"qty\": 951,\n            \"price\": 309.99\n          },\n          {\n            \"title\": \"Lumia\",\n            \"type\": \"phone\",\n            \"author\": \"Microsoft\",\n            \"year\": 2014,\n            \"qty\": 32,\n            \"price\": 205.95\n          },\n          {\n            \"title\": \"Xperia\",\n            \"type\": \"phone\",\n            \"author\": \"Sony\",\n            \"year\": 2014,\n            \"qty\": 77,\n            \"price\": 195.95\n          },\n          {\n            \"title\": \"3210\",\n            \"type\": \"phone\",\n            \"author\": \"Nokia\",\n            \"year\": 1999,\n            \"qty\": 3,\n            \"price\": 85.99\n          }\n        ]\n      },\n      {\n        \"title\": \"Computers\",\n        \"type\": \"folder\",\n        \"children\": [\n          {\n            \"title\": \"ThinkPad\",\n            \"type\": \"computer\",\n            \"author\": \"IBM\",\n            \"year\": 1992,\n            \"qty\": 16,\n            \"price\": 749.9\n          },\n          {\n            \"title\": \"C64\",\n            \"type\": \"computer\",\n            \"author\": \"Commodore\",\n            \"year\": 1982,\n            \"qty\": 83,\n            \"price\": 595.0\n          },\n          {\n            \"title\": \"MacBook Pro\",\n            \"type\": \"computer\",\n            \"author\": \"Apple\",\n            \"year\": 2006,\n            \"qty\": 482,\n            \"price\": 1949.95\n          },\n          {\n            \"title\": \"Sinclair ZX Spectrum\",\n            \"type\": \"computer\",\n            \"author\": \"Sinclair Research\",\n            \"year\": 1982,\n            \"qty\": 1,\n            \"price\": 529\n          },\n          {\n            \"title\": \"Apple II\",\n            \"type\": \"computer\",\n            \"author\": \"Apple\",\n            \"year\": 1977,\n            \"qty\": 17,\n            \"price\": 1298\n          },\n          {\n            \"title\": \"PC AT\",\n            \"type\": \"computer\",\n            \"author\": \"IBM\",\n            \"year\": 1984,\n            \"qty\": 3,\n            \"price\": 1235.0\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"title\": \"More...\",\n    \"type\": \"folder\",\n    \"lazy\": true\n  }\n]"
  },
  {
    "path": "docs/assets/json/ajax-tree-products_t.json",
    "content": "{\n  \"types\": {\n    \"folder\": { \"colspan\": true },\n    \"book\": { \"icon\": \"bi bi-book\" },\n    \"computer\": { \"icon\": \"bi bi-laptop\" },\n    \"music\": { \"icon\": \"bi bi-disc\" },\n    \"phone\": { \"icon\": \"bi bi-phone\" }\n  },\n  \"children\": [\n    {\n      \"title\": \"Books\",\n      \"type\": \"folder\",\n      \"expanded\": true,\n      \"children\": [\n        {\n          \"title\": \"Art of War\",\n          \"type\": \"book\",\n          \"author\": \"Sun Tzu\",\n          \"year\": -500,\n          \"qty\": 21,\n          \"price\": 5.95\n        },\n        {\n          \"title\": \"The Hobbit\",\n          \"type\": \"book\",\n          \"author\": \"J.R.R. Tolkien\",\n          \"year\": 1937,\n          \"qty\": 32,\n          \"price\": 8.97\n        },\n        {\n          \"title\": \"The Little Prince\",\n          \"type\": \"book\",\n          \"author\": \"Antoine de Saint-Exupery\",\n          \"year\": 1943,\n          \"qty\": 2946,\n          \"price\": 6.82\n        },\n        {\n          \"title\": \"Don Quixote\",\n          \"type\": \"book\",\n          \"author\": \"Miguel de Cervantes\",\n          \"year\": 1615,\n          \"qty\": 932,\n          \"price\": 15.99\n        }\n      ]\n    },\n    {\n      \"title\": \"Music\",\n      \"type\": \"folder\",\n      \"children\": [\n        {\n          \"title\": \"Nevermind\",\n          \"type\": \"music\",\n          \"author\": \"Nirvana\",\n          \"year\": 1991,\n          \"qty\": 916,\n          \"price\": 15.95\n        },\n        {\n          \"title\": \"Autobahn\",\n          \"type\": \"music\",\n          \"author\": \"Kraftwerk\",\n          \"year\": 1974,\n          \"qty\": 2261,\n          \"price\": 23.98\n        },\n        {\n          \"title\": \"Kind of Blue\",\n          \"type\": \"music\",\n          \"author\": \"Miles Davis\",\n          \"year\": 1959,\n          \"qty\": 9735,\n          \"price\": 21.9\n        },\n        {\n          \"title\": \"Back in Black\",\n          \"type\": \"music\",\n          \"author\": \"AC/DC\",\n          \"year\": 1980,\n          \"qty\": 3895,\n          \"price\": 17.99\n        },\n        {\n          \"title\": \"The Dark Side of the Moon\",\n          \"type\": \"music\",\n          \"author\": \"Pink Floyd\",\n          \"year\": 1973,\n          \"qty\": 263,\n          \"price\": 17.99\n        },\n        {\n          \"title\": \"Sgt. Pepper's Lonely Hearts Club Band\",\n          \"type\": \"music\",\n          \"author\": \"The Beatles\",\n          \"year\": 1967,\n          \"qty\": 521,\n          \"price\": 13.98\n        }\n      ]\n    },\n    {\n      \"title\": \"Electronics & Computers\",\n      \"expanded\": true,\n      \"type\": \"folder\",\n      \"children\": [\n        {\n          \"title\": \"Cell Phones\",\n          \"type\": \"folder\",\n          \"children\": [\n            {\n              \"title\": \"Moto G\",\n              \"type\": \"phone\",\n              \"author\": \"Motorola\",\n              \"year\": 2014,\n              \"qty\": 332,\n              \"price\": 224.99\n            },\n            {\n              \"title\": \"Galaxy S8\",\n              \"type\": \"phone\",\n              \"author\": \"Samsung\",\n              \"year\": 2016,\n              \"qty\": 952,\n              \"price\": 509.99\n            },\n            {\n              \"title\": \"iPhone SE\",\n              \"type\": \"phone\",\n              \"author\": \"Apple\",\n              \"year\": 2016,\n              \"qty\": 444,\n              \"price\": 282.75\n            },\n            {\n              \"title\": \"G6\",\n              \"type\": \"phone\",\n              \"author\": \"LG\",\n              \"year\": 2017,\n              \"qty\": 951,\n              \"price\": 309.99\n            },\n            {\n              \"title\": \"Lumia\",\n              \"type\": \"phone\",\n              \"author\": \"Microsoft\",\n              \"year\": 2014,\n              \"qty\": 32,\n              \"price\": 205.95\n            },\n            {\n              \"title\": \"Xperia\",\n              \"type\": \"phone\",\n              \"author\": \"Sony\",\n              \"year\": 2014,\n              \"qty\": 77,\n              \"price\": 195.95\n            },\n            {\n              \"title\": \"3210\",\n              \"type\": \"phone\",\n              \"author\": \"Nokia\",\n              \"year\": 1999,\n              \"qty\": 3,\n              \"price\": 85.99\n            }\n          ]\n        },\n        {\n          \"title\": \"Computers\",\n          \"type\": \"folder\",\n          \"children\": [\n            {\n              \"title\": \"ThinkPad\",\n              \"type\": \"computer\",\n              \"author\": \"IBM\",\n              \"year\": 1992,\n              \"qty\": 16,\n              \"price\": 749.9\n            },\n            {\n              \"title\": \"C64\",\n              \"type\": \"computer\",\n              \"author\": \"Commodore\",\n              \"year\": 1982,\n              \"qty\": 83,\n              \"price\": 595.0\n            },\n            {\n              \"title\": \"MacBook Pro\",\n              \"type\": \"computer\",\n              \"author\": \"Apple\",\n              \"year\": 2006,\n              \"qty\": 482,\n              \"price\": 1949.95\n            },\n            {\n              \"title\": \"Sinclair ZX Spectrum\",\n              \"type\": \"computer\",\n              \"author\": \"Sinclair Research\",\n              \"year\": 1982,\n              \"qty\": 1,\n              \"price\": 529\n            },\n            {\n              \"title\": \"Apple II\",\n              \"type\": \"computer\",\n              \"author\": \"Apple\",\n              \"year\": 1977,\n              \"qty\": 17,\n              \"price\": 1298\n            },\n            {\n              \"title\": \"PC AT\",\n              \"type\": \"computer\",\n              \"author\": \"IBM\",\n              \"year\": 1984,\n              \"qty\": 3,\n              \"price\": 1235.0\n            }\n          ]\n        }\n      ]\n    },\n    { \"title\": \"More...\", \"type\": \"folder\", \"lazy\": true }\n  ]\n}\n"
  },
  {
    "path": "docs/assets/json/fixture_department_1k_3_6_p.json",
    "content": "[{\"title\": \"Dept. for Fails and Pounds\", \"type\": \"department\", \"children\": [{\"title\": \"Forget visuals\", \"type\": \"role\"}, {\"title\": \"Treasure designers\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Zoe M. Rampling\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 92, \"date\": 1048028400000.0}, {\"title\": \"Carolyn Wilkins\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"date\": 879375600000.0}, {\"title\": \"Diane Vance\", \"type\": \"person\", \"avail\": true, \"age\": 66, \"date\": 289609200000.0, \"remarks\": \"Improves desires helpfully.\"}, {\"title\": \"Lauren Rees\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 57, \"remarks\": \"Imposes birthdaies unbelievably.\"}, {\"title\": \"Audrey Miller\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 432252000000.0}, {\"title\": \"David Marshall\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 43}, {\"title\": \"Richard Hemmings\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 1106262000000.0, \"remarks\": \"Implants bands greatly.\"}, {\"title\": \"Anthony C. Peake\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"remarks\": \"Stirs antelopes zestfully.\"}, {\"title\": \"Alan Terry\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 97, \"date\": 1220479200000.0}, {\"title\": \"Max May\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 1572303600000.0, \"remarks\": \"Measures middles warmly.\"}, {\"title\": \"Nicola G. Scott\", \"type\": \"person\", \"avail\": true, \"age\": 66}, {\"title\": \"Ian C. Welch\", \"type\": \"person\", \"avail\": true, \"age\": 76, \"date\": 926546400000.0}, {\"title\": \"Christian G. Glover\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 45, \"date\": 1080428400000.0}, {\"title\": \"Corey A. Alsop\", \"type\": \"person\", \"avail\": true, \"age\": 29}, {\"title\": \"Paul McDonald\", \"type\": \"person\", \"age\": 75, \"remarks\": \"Understands moms amazingly.\"}, {\"title\": \"Chris Lewis\", \"type\": \"person\", \"age\": 62, \"date\": 1059516000000.0}, {\"title\": \"Taylor C. Lyman\", \"type\": \"person\", \"avail\": true, \"age\": 91, \"date\": 1500933600000.0}]}, {\"title\": \"Point securities\", \"type\": \"role\", \"children\": [{\"title\": \"Jamie A. Gill\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 92}, {\"title\": \"Una Sutherland\", \"type\": \"person\", \"avail\": true, \"age\": 93, \"date\": 687222000000.0}, {\"title\": \"Ian D. Hamilton\", \"type\": \"person\", \"avail\": true, \"age\": 44, \"date\": 574383600000.0, \"remarks\": \"Closes fails carefully.\"}, {\"title\": \"Felicity Morrison\", \"type\": \"person\", \"avail\": true, \"age\": 91, \"date\": 1028844000000.0}, {\"title\": \"Eric Glover\", \"type\": \"person\", \"avail\": true, \"age\": 21}, {\"title\": \"Tracey I. Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 65, \"remarks\": \"Deprives notes considerately.\"}, {\"title\": \"Julian S. Walker\", \"type\": \"person\", \"avail\": true, \"age\": 56}, {\"title\": \"Taylor Nash\", \"type\": \"person\", \"avail\": true, \"age\": 30, \"date\": 1272751200000.0, \"remarks\": \"Caresses beginnings truly.\"}, {\"title\": \"Pippa Y. Piper\", \"type\": \"person\", \"avail\": true, \"age\": 64}, {\"title\": \"Kelly C. Buckland\", \"type\": \"person\", \"avail\": true, \"age\": 66}, {\"title\": \"Victoria Johnston\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 1630274400000.0}, {\"title\": \"William Z. Turner\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 81, \"remarks\": \"Presets healths poignantly.\"}, {\"title\": \"Michelle W. Ross\", \"type\": \"person\", \"avail\": true, \"age\": 73, \"date\": 583365600000.0}]}, {\"title\": \"Resell courages\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Gavin S. Rees\", \"type\": \"person\", \"avail\": true, \"age\": 74}, {\"title\": \"Casey R. Poole\", \"type\": \"person\", \"avail\": true, \"age\": 33, \"date\": 1363993200000.0}, {\"title\": \"Ruth S. Oliver\", \"type\": \"person\", \"avail\": true, \"age\": 34, \"date\": 273452400000.0}, {\"title\": \"Taylor Anderson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 66, \"date\": 805068000000.0, \"remarks\": \"Treads texts gleefully.\"}, {\"title\": \"Una Sanderson\", \"type\": \"person\", \"avail\": true, \"age\": 85, \"date\": 1275602400000.0}, {\"title\": \"Sam D. Terry\", \"type\": \"person\", \"avail\": true, \"age\": 78, \"date\": 481932000000.0}, {\"title\": \"John James\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"remarks\": \"Loves kids markedly.\"}, {\"title\": \"Carolyn C. Davidson\", \"type\": \"person\", \"age\": 31}, {\"title\": \"Kyle A. Reid\", \"type\": \"person\", \"avail\": true, \"age\": 54, \"date\": 1499119200000.0, \"remarks\": \"Melts sells markedly.\"}, {\"title\": \"Keith Bond\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 54, \"date\": 38358000000.0}, {\"title\": \"Penelope A. Rampling\", \"type\": \"person\", \"avail\": true, \"age\": 95}, {\"title\": \"Deirdre C. Skinner\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 927410400000.0}, {\"title\": \"Leonard Slater\", \"type\": \"person\", \"avail\": true, \"age\": 40, \"date\": 1561586400000.0, \"remarks\": \"Feels weathers graciously.\"}, {\"title\": \"Austin Sutherland\", \"type\": \"person\", \"avail\": true, \"age\": 47}, {\"title\": \"Charles Lyman\", \"type\": \"person\", \"avail\": true, \"age\": 40, \"date\": 571964400000.0}, {\"title\": \"Nathan N. Ross\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 52}, {\"title\": \"Chris Oliver\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 30, \"remarks\": \"Bends ages appropriately.\"}, {\"title\": \"Sydney F. Wilkins\", \"type\": \"person\", \"avail\": true, \"age\": 66, \"date\": 1041030000000.0}, {\"title\": \"Corey D. Bailey\", \"type\": \"person\", \"avail\": true, \"age\": 92}]}, {\"title\": \"Salve hours\", \"type\": \"role\", \"children\": [{\"title\": \"Jasmine Lawrence\", \"type\": \"person\", \"avail\": true, \"age\": 50}, {\"title\": \"Lauren B. Hudson\", \"type\": \"person\", \"avail\": true, \"age\": 96}]}, {\"title\": \"Detach fews\", \"type\": \"role\", \"children\": [{\"title\": \"Ian Black\", \"type\": \"person\", \"age\": 45, \"remarks\": \"Suffers failures upbeat.\"}, {\"title\": \"Joan P. May\", \"type\": \"person\", \"age\": 22}, {\"title\": \"Blake P. Murray\", \"type\": \"person\", \"avail\": true, \"age\": 45, \"date\": 118105200000.0, \"remarks\": \"Ponders priorities appropriately.\"}, {\"title\": \"Stephanie Piper\", \"type\": \"person\", \"avail\": true, \"age\": 54, \"date\": 185670000000.0}, {\"title\": \"Stephanie Mitchell\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 27}, {\"title\": \"Alexandra Arnold\", \"type\": \"person\", \"age\": 41}, {\"title\": \"Fiona U. Sharp\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 59, \"date\": 143247600000.0, \"remarks\": \"Wrings marriages appropriately.\"}, {\"title\": \"Anthony G. Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 80, \"date\": 345164400000.0, \"remarks\": \"Stores motors freely.\"}, {\"title\": \"Austin G. Hodges\", \"type\": \"person\", \"avail\": true, \"age\": 87, \"date\": 597884400000.0}, {\"title\": \"Faith U. Dowd\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 472604400000.0}, {\"title\": \"Cameron X. Welch\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 53, \"date\": 879634800000.0, \"remarks\": \"Sings guidances efficiently.\"}, {\"title\": \"Jack K. Jones\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 1489532400000.0, \"remarks\": \"Lands lawyers happily.\"}, {\"title\": \"Chloe Buckland\", \"type\": \"person\", \"avail\": true, \"age\": 53, \"date\": 525564000000.0}, {\"title\": \"Emma Tucker\", \"type\": \"person\", \"state\": \"s\", \"age\": 49, \"date\": 1467324000000.0}, {\"title\": \"Colin Davidson\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"date\": 1069110000000.0}, {\"title\": \"Lou MacDonald\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 33, \"date\": 588895200000.0, \"remarks\": \"Consoles charities generously.\"}]}, {\"title\": \"Indulge fishings\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Austin North\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 49, \"date\": 941497200000.0}, {\"title\": \"Jamie Mackay\", \"type\": \"person\", \"age\": 89, \"remarks\": \"Chips tooths substantially.\"}, {\"title\": \"Andrew Brown\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 83, \"date\": 1208469600000.0}, {\"title\": \"Stephanie W. Fraser\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"date\": 725324400000.0}, {\"title\": \"Donna Z. Chapman\", \"type\": \"person\", \"avail\": true, \"age\": 97, \"date\": 918255600000.0, \"remarks\": \"Smashes ages touchingly.\"}, {\"title\": \"Deirdre J. Wallace\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 70}, {\"title\": \"Eddie Alsop\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 42}, {\"title\": \"Kylie Ince\", \"type\": \"person\", \"avail\": true, \"age\": 25, \"remarks\": \"Moulds positives exclusively.\"}, {\"title\": \"Liam Hardacre\", \"type\": \"person\", \"avail\": true, \"age\": 62}, {\"title\": \"John G. Knox\", \"type\": \"person\", \"age\": 53, \"date\": 840146400000.0, \"remarks\": \"Paints funerals clearly.\"}, {\"title\": \"Taylor E. Rees\", \"type\": \"person\", \"avail\": true, \"age\": 98, \"date\": 114994800000.0, \"remarks\": \"Supports asides cleanly.\"}, {\"title\": \"Keith M. Duncan\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 36, \"date\": 1132095600000.0}, {\"title\": \"Sarah I. Dickens\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 106873200000.0}, {\"title\": \"Eddie Manning\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 75, \"date\": 670629600000.0}, {\"title\": \"Jan O. Hemmings\", \"type\": \"person\", \"avail\": true, \"age\": 98, \"date\": 1116280800000.0}]}]}, {\"title\": \"Dept. for Forces and Entrances\", \"type\": \"department\", \"children\": [{\"title\": \"Shit slips\", \"type\": \"role\", \"expanded\": true}, {\"title\": \"Fry juniors\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Kelly Alsop\", \"type\": \"person\", \"avail\": true, \"age\": 65, \"date\": 1151100000000.0}, {\"title\": \"Brian P. Anderson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 75}, {\"title\": \"Dominic Watson\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 1137452400000.0, \"remarks\": \"Enlightens sorts courageously.\"}, {\"title\": \"John Greene\", \"type\": \"person\", \"avail\": true, \"age\": 57, \"remarks\": \"Shaves weaknesses punctually.\"}, {\"title\": \"Samantha Randall\", \"type\": \"person\", \"avail\": true, \"age\": 46}, {\"title\": \"Thomas Jones\", \"type\": \"person\", \"avail\": true, \"age\": 71, \"date\": 1299279600000.0, \"remarks\": \"Persuades telephones comfortably.\"}, {\"title\": \"Eddie Langdon\", \"type\": \"person\", \"avail\": true, \"age\": 70, \"date\": 1350770400000.0}, {\"title\": \"Sarah Alsop\", \"type\": \"person\", \"avail\": true, \"age\": 21}, {\"title\": \"Virginia B. Reid\", \"type\": \"person\", \"avail\": true, \"age\": 30, \"remarks\": \"Expresses toughs optimistically.\"}, {\"title\": \"Jake R. Rampling\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 69, \"date\": 50886000000.0}, {\"title\": \"Virginia Q. Coleman\", \"type\": \"person\", \"avail\": true, \"age\": 43, \"date\": 1185055200000.0, \"remarks\": \"Ceases codes smoothly.\"}, {\"title\": \"Kylie U. May\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 38, \"remarks\": \"Dips descriptions magically.\"}, {\"title\": \"Simon Davies\", \"type\": \"person\", \"avail\": true, \"age\": 23}, {\"title\": \"Boris Reid\", \"type\": \"person\", \"avail\": true, \"age\": 89, \"date\": 1462140000000.0}, {\"title\": \"Jean I. North\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 45}, {\"title\": \"Christopher W. Alsop\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 88, \"date\": 1171321200000.0, \"remarks\": \"Contests pleasures fervently.\"}, {\"title\": \"Simon Clark\", \"type\": \"person\", \"avail\": true, \"age\": 30, \"date\": 295830000000.0, \"remarks\": \"Persuades lines optimistically.\"}, {\"title\": \"Carol U. Langdon\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 72}]}, {\"title\": \"Exist turtles\", \"type\": \"role\", \"children\": [{\"title\": \"Ava Cameron\", \"type\": \"person\", \"avail\": true, \"age\": 26}, {\"title\": \"Julian Russell\", \"type\": \"person\", \"avail\": true, \"age\": 83}, {\"title\": \"Bella Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 24, \"date\": 1096063200000.0}]}, {\"title\": \"Grip restaurants\", \"type\": \"role\", \"children\": [{\"title\": \"Trevor N. Murray\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 26, \"date\": 1406239200000.0}, {\"title\": \"Nathan Brown\", \"type\": \"person\", \"age\": 29}, {\"title\": \"Mary A. Gray\", \"type\": \"person\", \"age\": 69, \"remarks\": \"Shears presses restfully.\"}, {\"title\": \"Alison Miller\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 84, \"date\": 521330400000.0}, {\"title\": \"Austin C. Fisher\", \"type\": \"person\", \"state\": \"h\", \"age\": 83, \"date\": 473814000000.0}, {\"title\": \"Luke R. Johnston\", \"type\": \"person\", \"avail\": true, \"age\": 91, \"date\": 1648422000000.0}, {\"title\": \"Nicholas S. Dickens\", \"type\": \"person\", \"avail\": true, \"age\": 87, \"date\": 1237503600000.0}, {\"title\": \"Jesse Harris\", \"type\": \"person\", \"avail\": true, \"age\": 52, \"date\": 469321200000.0}, {\"title\": \"Dan Piper\", \"type\": \"person\", \"avail\": true, \"age\": 88, \"date\": 1317852000000.0, \"remarks\": \"Buys rises openly.\"}, {\"title\": \"Victoria K. Hart\", \"type\": \"person\", \"age\": 52, \"date\": 1093384800000.0, \"remarks\": \"Retches crickets longingly.\"}, {\"title\": \"Max Hodges\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 73, \"date\": 145494000000.0, \"remarks\": \"Inputs deposits valiantly.\"}, {\"title\": \"Zoe Clark\", \"type\": \"person\", \"avail\": true, \"age\": 28, \"date\": 1288911600000.0}, {\"title\": \"Andrea J. Piper\", \"type\": \"person\", \"avail\": true, \"age\": 53}, {\"title\": \"Brian Dickens\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 85, \"date\": 165625200000.0}, {\"title\": \"Lucas G. Avery\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 36, \"date\": 1442527200000.0, \"remarks\": \"Wets hells positively.\"}, {\"title\": \"Bella J. Dowd\", \"type\": \"person\", \"avail\": true, \"age\": 87}]}, {\"title\": \"Overtake temporaries\", \"type\": \"role\"}, {\"title\": \"Imperil cables\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Matt Lawrence\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 96, \"date\": 235782000000.0}, {\"title\": \"Daryl B. Randall\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 1580166000000.0}, {\"title\": \"Jake V. Burgess\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 73}, {\"title\": \"Dylan Howard\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 59}]}, {\"title\": \"Gash refuses\", \"type\": \"role\"}, {\"title\": \"Sleep couples\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Piers Q. Rutherford\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 197334000000.0}, {\"title\": \"Lucas U. Kelly\", \"type\": \"person\", \"avail\": true, \"age\": 56, \"date\": 657846000000.0}, {\"title\": \"Chris T. Black\", \"type\": \"person\", \"avail\": true, \"age\": 81, \"date\": 1177884000000.0}, {\"title\": \"Phoenix Q. Burgess\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 61, \"date\": 629766000000.0}, {\"title\": \"Isaac A. Thomson\", \"type\": \"person\", \"avail\": true, \"age\": 84, \"date\": 430437600000.0, \"remarks\": \"Retains boats securely.\"}, {\"title\": \"Anna North\", \"type\": \"person\", \"state\": \"s\", \"age\": 25, \"date\": 1482620400000.0, \"remarks\": \"Consents fishes intensely.\"}, {\"title\": \"Jean E. Turner\", \"type\": \"person\", \"avail\": true, \"age\": 79, \"date\": 1293836400000.0, \"remarks\": \"Divides excuses thoroughly.\"}, {\"title\": \"Jesse Q. Gill\", \"type\": \"person\", \"avail\": true, \"age\": 40, \"remarks\": \"Motivates focuses deeply.\"}, {\"title\": \"Eric E. Hardacre\", \"type\": \"person\", \"avail\": true, \"age\": 95}]}]}, {\"title\": \"Dept. for Walks and Pasts\", \"type\": \"department\", \"children\": [{\"title\": \"Crib choices\", \"type\": \"role\", \"children\": [{\"title\": \"Alexander G. Lewis\", \"type\": \"person\", \"avail\": true, \"age\": 92, \"date\": 1192226400000.0, \"remarks\": \"Realizes breaks cleanly.\"}, {\"title\": \"Theresa Bailey\", \"type\": \"person\", \"state\": \"s\", \"age\": 50, \"remarks\": \"Scats shelters spectacularly.\"}, {\"title\": \"Wanda Sutherland\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"date\": 677109600000.0, \"remarks\": \"Sails points candidly.\"}, {\"title\": \"Charles H. Oliver\", \"type\": \"person\", \"age\": 47}, {\"title\": \"Diana C. Ferguson\", \"type\": \"person\", \"avail\": true, \"age\": 67, \"remarks\": \"Pouts rewards agreeably.\"}, {\"title\": \"Dylan Berry\", \"type\": \"person\", \"avail\": true, \"age\": 97}]}, {\"title\": \"Express functions\", \"type\": \"role\", \"children\": [{\"title\": \"Eddie Simpson\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"date\": 767570400000.0}]}, {\"title\": \"Correct hands\", \"type\": \"role\", \"children\": [{\"title\": \"Diane Fisher\", \"type\": \"person\", \"avail\": true, \"age\": 30, \"date\": 25484400000.0}, {\"title\": \"Heather O. Blake\", \"type\": \"person\", \"avail\": true, \"age\": 51}, {\"title\": \"Adrian M. Miller\", \"type\": \"person\", \"avail\": true, \"age\": 61}, {\"title\": \"James Sutherland\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 36, \"date\": 1162072800000.0}, {\"title\": \"Audrey May\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 58, \"date\": 1072825200000.0}, {\"title\": \"Melanie Edmunds\", \"type\": \"person\", \"avail\": true, \"age\": 69, \"date\": 699922800000.0}, {\"title\": \"Jasmine Oliver\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 23, \"date\": 1206399600000.0}, {\"title\": \"Kylie Morgan\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 97}, {\"title\": \"Dominic L. Taylor\", \"type\": \"person\", \"avail\": true, \"age\": 67, \"remarks\": \"Induces passages gracefully.\"}, {\"title\": \"Kylie J. White\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 65, \"date\": 330904800000.0}, {\"title\": \"Sue M. Roberts\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 1485126000000.0}, {\"title\": \"Jamie Slater\", \"type\": \"person\", \"avail\": true, \"age\": 91}, {\"title\": \"Cameron Turner\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 41, \"date\": 1491256800000.0}, {\"title\": \"Penelope H. Grant\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"date\": 183164400000.0}, {\"title\": \"Christopher Z. North\", \"type\": \"person\", \"avail\": true, \"age\": 88, \"date\": 667090800000.0}, {\"title\": \"Emily Grant\", \"type\": \"person\", \"state\": \"s\", \"age\": 31, \"date\": 1294786800000.0}, {\"title\": \"Justin Mathis\", \"type\": \"person\", \"avail\": true, \"age\": 47, \"date\": 1609455600000.0, \"remarks\": \"Crowds exercises entirely.\"}]}, {\"title\": \"Inherit draws\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Jake R. Walsh\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 70, \"date\": 178844400000.0, \"remarks\": \"Bears functions wholly.\"}, {\"title\": \"Phil Simpson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 92, \"date\": 1098568800000.0, \"remarks\": \"Phones efficiencies bravely.\"}, {\"title\": \"William Q. Ferguson\", \"type\": \"person\", \"avail\": true, \"age\": 52, \"date\": 898380000000.0}]}, {\"title\": \"Move skies\", \"type\": \"role\", \"children\": [{\"title\": \"Rose May\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 89, \"date\": 1491170400000.0}, {\"title\": \"Harry James\", \"type\": \"person\", \"avail\": true, \"age\": 81, \"date\": 970783200000.0}, {\"title\": \"Edward Z. Taylor\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 26}, {\"title\": \"Alex Q. Henderson\", \"type\": \"person\", \"avail\": true, \"age\": 62}, {\"title\": \"Jesse Ross\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 38}, {\"title\": \"Kimberly Berry\", \"type\": \"person\", \"avail\": true, \"age\": 93}, {\"title\": \"Harry T. McLean\", \"type\": \"person\", \"avail\": true, \"age\": 59}, {\"title\": \"Blake P. Walsh\", \"type\": \"person\", \"avail\": true, \"age\": 89}, {\"title\": \"Kyle D. Gill\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 1132527600000.0}, {\"title\": \"Gordon J. Black\", \"type\": \"person\", \"avail\": true, \"age\": 87}, {\"title\": \"Stephanie Springer\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 74, \"date\": 268959600000.0}, {\"title\": \"Madeleine Y. Brown\", \"type\": \"person\", \"avail\": true, \"age\": 46}, {\"title\": \"Samantha O. Powell\", \"type\": \"person\", \"state\": \"s\", \"age\": 71}, {\"title\": \"Molly S. Anderson\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 60, \"date\": 315615600000.0}, {\"title\": \"Zoe P. Hemmings\", \"type\": \"person\", \"avail\": true, \"age\": 87, \"date\": 1437343200000.0, \"remarks\": \"Addresses shirts absolutely.\"}, {\"title\": \"Victoria J. Cornish\", \"type\": \"person\", \"avail\": true, \"age\": 40}]}, {\"title\": \"Beat meats\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Hannah Y. Gray\", \"type\": \"person\", \"age\": 57, \"date\": 1449529200000.0}, {\"title\": \"Andy Clark\", \"type\": \"person\", \"state\": \"s\", \"age\": 46, \"date\": 512434800000.0}, {\"title\": \"Gabrielle B. Hart\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 82, \"date\": 907624800000.0}, {\"title\": \"Sydney Black\", \"type\": \"person\", \"avail\": true, \"age\": 70}, {\"title\": \"Andy Tucker\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 53}, {\"title\": \"Tim A. Alsop\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 68, \"date\": 499129200000.0}, {\"title\": \"Carl Nash\", \"type\": \"person\", \"state\": \"h\", \"age\": 39, \"date\": 851900400000.0}, {\"title\": \"Megan Y. Burgess\", \"type\": \"person\", \"avail\": true, \"age\": 34}, {\"title\": \"Justin Duncan\", \"type\": \"person\", \"avail\": true, \"age\": 62, \"date\": 1328914800000.0}, {\"title\": \"Michelle Mackay\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 73, \"date\": 512348400000.0, \"remarks\": \"Spills situations handily.\"}, {\"title\": \"Heather C. Peake\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 91, \"date\": 801871200000.0}, {\"title\": \"Anthony W. King\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 1519340400000.0}, {\"title\": \"Audrey U. Hemmings\", \"type\": \"person\", \"avail\": true, \"age\": 97, \"date\": 1343599200000.0, \"remarks\": \"Recognizes hyenas rightfully.\"}, {\"title\": \"Victoria Miller\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 73}, {\"title\": \"Frances Smith\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 53, \"date\": 257814000000.0}, {\"title\": \"Sue O. Fisher\", \"type\": \"person\", \"avail\": true, \"age\": 84}, {\"title\": \"Lou N. Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"date\": 832111200000.0, \"remarks\": \"Roars frames universally.\"}]}, {\"title\": \"Live spaces\", \"type\": \"role\", \"children\": [{\"title\": \"Sean Hudson\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 289177200000.0, \"remarks\": \"Increases coaches infinitely.\"}, {\"title\": \"Audrey F. Jones\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 26, \"date\": 1278626400000.0, \"remarks\": \"Leans nothings extensively.\"}, {\"title\": \"Charlie Pullman\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 49}, {\"title\": \"Virginia Hardacre\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 730854000000.0}, {\"title\": \"Michael Abraham\", \"type\": \"person\", \"avail\": true, \"age\": 88, \"date\": 980204400000.0}, {\"title\": \"Daryl P. Manning\", \"type\": \"person\", \"avail\": true, \"age\": 45}, {\"title\": \"Thomas E. Brown\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"date\": 503449200000.0}, {\"title\": \"Natalie Dyer\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 59, \"date\": 1304028000000.0}, {\"title\": \"Matt H. Campbell\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 52, \"date\": 1569276000000.0}, {\"title\": \"Joanne Arnold\", \"type\": \"person\", \"avail\": true, \"age\": 48}, {\"title\": \"Jennifer Q. Howard\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 54}]}, {\"title\": \"Blush agreements\", \"type\": \"role\", \"children\": [{\"title\": \"Chloe S. Henderson\", \"type\": \"person\", \"age\": 77}, {\"title\": \"Jessica Gill\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"date\": 192927600000.0, \"remarks\": \"Inputs prints kindly.\"}, {\"title\": \"Gabrielle C. Black\", \"type\": \"person\", \"avail\": true, \"age\": 35, \"remarks\": \"Scabs suspects knowledgeably.\"}, {\"title\": \"Keith Grant\", \"type\": \"person\", \"avail\": true, \"age\": 55, \"date\": 1656972000000.0}, {\"title\": \"Heather Vaughan\", \"type\": \"person\", \"avail\": true, \"age\": 84, \"date\": 4662000000.0}, {\"title\": \"Cameron Randall\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 81, \"date\": 637887600000.0, \"remarks\": \"Flings bunches helpfully.\"}, {\"title\": \"Sydney N. Quinn\", \"type\": \"person\", \"avail\": true, \"age\": 55, \"date\": 1582153200000.0}, {\"title\": \"Sophie V. Payne\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 72140400000.0}, {\"title\": \"Max McGrath\", \"type\": \"person\", \"avail\": true, \"age\": 54}, {\"title\": \"Diane B. Fraser\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"remarks\": \"Winds claims reasonably.\"}, {\"title\": \"Karen Buckland\", \"type\": \"person\", \"avail\": true, \"age\": 27}, {\"title\": \"Warren R. Hemmings\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 27, \"date\": 946854000000.0}, {\"title\": \"Justin May\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 71, \"date\": 1528840800000.0}, {\"title\": \"Toby Rutherford\", \"type\": \"person\", \"avail\": true, \"age\": 34, \"date\": 1418943600000.0}, {\"title\": \"Austin I. McLean\", \"type\": \"person\", \"avail\": true, \"age\": 95, \"date\": 1553727600000.0, \"remarks\": \"Donates holes significantly.\"}]}, {\"title\": \"Plot wests\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Bobbie Fisher\", \"type\": \"person\", \"avail\": true, \"age\": 53, \"date\": 1111359600000.0}, {\"title\": \"Liam Roberts\", \"type\": \"person\", \"avail\": true, \"age\": 22, \"date\": 1228086000000.0}, {\"title\": \"Taylor Johnston\", \"type\": \"person\", \"avail\": true, \"age\": 88}, {\"title\": \"Irene Russell\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 87, \"date\": 1388098800000.0}, {\"title\": \"Stephanie Arnold\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 62, \"date\": 1135724400000.0}, {\"title\": \"Karen S. Coleman\", \"type\": \"person\", \"avail\": true, \"age\": 36}, {\"title\": \"Brandon MacLeod\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 72, \"remarks\": \"States currents whole-heartedly.\"}, {\"title\": \"Kelly Peake\", \"type\": \"person\", \"avail\": true, \"age\": 59, \"date\": 1235775600000.0}, {\"title\": \"Rebecca Terry\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 117068400000.0}, {\"title\": \"Adrian Allan\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"date\": 483746400000.0, \"remarks\": \"Hisses hearts zestfully.\"}, {\"title\": \"Chris Fisher\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 74, \"date\": 169686000000.0}, {\"title\": \"Paul Carr\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 66, \"date\": 451000800000.0}, {\"title\": \"Bobbie James\", \"type\": \"person\", \"avail\": true, \"age\": 22, \"date\": 155862000000.0}, {\"title\": \"Dorothy Langdon\", \"type\": \"person\", \"avail\": true, \"age\": 40, \"date\": 426204000000.0}]}, {\"title\": \"Hurt punches\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Faith Campbell\", \"type\": \"person\", \"avail\": true, \"age\": 87, \"date\": 1650319200000.0, \"remarks\": \"Bets sisters poetically.\"}, {\"title\": \"Michelle Z. Ellison\", \"type\": \"person\", \"avail\": true, \"age\": 81, \"date\": 1044399600000.0, \"remarks\": \"Saddles sources righteously.\"}, {\"title\": \"Dylan G. Dyer\", \"type\": \"person\", \"avail\": true, \"age\": 85}, {\"title\": \"Jessica L. Gibson\", \"type\": \"person\", \"avail\": true, \"age\": 47}]}]}, {\"title\": \"Dept. for Recovers and Recordings\", \"type\": \"department\", \"children\": [{\"title\": \"Construe influences\", \"type\": \"role\", \"children\": [{\"title\": \"Jamie Y. Gill\", \"type\": \"person\", \"avail\": true, \"age\": 86}, {\"title\": \"Diana Ball\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"date\": 674172000000.0}, {\"title\": \"Abigail Roberts\", \"type\": \"person\", \"avail\": true, \"age\": 38}, {\"title\": \"Chris K. Fraser\", \"type\": \"person\", \"avail\": true, \"age\": 54, \"remarks\": \"Lifts childhoods restfully.\"}]}, {\"title\": \"Tread assignments\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Warren Clark\", \"type\": \"person\", \"avail\": true, \"age\": 47, \"date\": 785631600000.0, \"remarks\": \"Stresses safeties optimistically.\"}, {\"title\": \"Charlie W. Bailey\", \"type\": \"person\", \"avail\": true, \"age\": 36}, {\"title\": \"Anthony P. Marshall\", \"type\": \"person\", \"avail\": true, \"age\": 53, \"date\": 1588111200000.0}]}, {\"title\": \"Nip tracks\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Tracey S. Nolan\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 96, \"date\": 527637600000.0}, {\"title\": \"Brandon W. Parr\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 38, \"date\": 1036623600000.0}, {\"title\": \"Diane F. Burgess\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"date\": 1457132400000.0}, {\"title\": \"Brandon Chapman\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 85532400000.0}, {\"title\": \"Deirdre Quinn\", \"type\": \"person\", \"avail\": true, \"age\": 45, \"date\": 97714800000.0}, {\"title\": \"Bella Glover\", \"type\": \"person\", \"avail\": true, \"age\": 95, \"remarks\": \"Passes sticks considerately.\"}, {\"title\": \"Harry Rees\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"remarks\": \"Boxes passes nicely.\"}, {\"title\": \"Hannah K. Wilson\", \"type\": \"person\", \"avail\": true, \"age\": 40, \"date\": 550533600000.0, \"remarks\": \"Knits openings fully.\"}, {\"title\": \"Keith X. Newman\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 88, \"date\": 367797600000.0}, {\"title\": \"Rachel McDonald\", \"type\": \"person\", \"avail\": true, \"age\": 32, \"date\": 1261522800000.0}, {\"title\": \"Toby Henderson\", \"type\": \"person\", \"avail\": true, \"age\": 70, \"date\": 298249200000.0}, {\"title\": \"Frank Anderson\", \"type\": \"person\", \"avail\": true, \"age\": 70, \"remarks\": \"Dares debates courageously.\"}, {\"title\": \"Corey E. Wallace\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 98, \"date\": 64882800000.0}, {\"title\": \"Dylan McDonald\", \"type\": \"person\", \"avail\": true, \"age\": 68, \"date\": 1209852000000.0}, {\"title\": \"Pat E. Glover\", \"type\": \"person\", \"avail\": true, \"age\": 45, \"date\": 686181600000.0}]}, {\"title\": \"Mean boxes\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Angela Oliver\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"date\": 48812400000.0}, {\"title\": \"Stephen A. Hart\", \"type\": \"person\", \"avail\": true, \"age\": 35, \"remarks\": \"Integrates shoes bravely.\"}, {\"title\": \"Evan G. Ross\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 679701600000.0, \"remarks\": \"Saddles affects sympathetically.\"}, {\"title\": \"Faith H. Coleman\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 29, \"remarks\": \"Provides tensions richly.\"}, {\"title\": \"Gabrielle Bailey\", \"type\": \"person\", \"avail\": true, \"age\": 36, \"date\": 1058824800000.0}, {\"title\": \"Stephanie I. Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 22}]}, {\"title\": \"Dispose carpets\", \"type\": \"role\", \"children\": [{\"title\": \"Donna C. Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 84, \"remarks\": \"Praises perceptions calmly.\"}, {\"title\": \"Jamie R. Ince\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 21, \"date\": 1319061600000.0}, {\"title\": \"Sonia Y. Butler\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 55, \"date\": 1367359200000.0}, {\"title\": \"Simon Parr\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 77, \"date\": 1497823200000.0}, {\"title\": \"Kylie Short\", \"type\": \"person\", \"avail\": true, \"age\": 28, \"date\": 52354800000.0}]}, {\"title\": \"Endanger weeks\", \"type\": \"role\", \"children\": [{\"title\": \"Sophie Q. Wright\", \"type\": \"person\", \"avail\": true, \"age\": 25, \"date\": 469321200000.0}, {\"title\": \"Vanessa Martin\", \"type\": \"person\", \"avail\": true, \"age\": 78, \"date\": 771458400000.0}, {\"title\": \"Lillian Roberts\", \"type\": \"person\", \"age\": 39, \"remarks\": \"Sniffs processes jubilantly.\"}, {\"title\": \"Corey B. Knox\", \"type\": \"person\", \"avail\": true, \"age\": 80, \"date\": 1583190000000.0, \"remarks\": \"Vanishes witnesses promptly.\"}, {\"title\": \"Kyle Turner\", \"type\": \"person\", \"avail\": true, \"age\": 28, \"date\": 165193200000.0}]}, {\"title\": \"Waste cups\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"David L. Oliver\", \"type\": \"person\", \"avail\": true, \"age\": 39}, {\"title\": \"Owen Z. Fraser\", \"type\": \"person\", \"avail\": true, \"age\": 52, \"date\": 273193200000.0}, {\"title\": \"Lou Nash\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 966895200000.0}, {\"title\": \"Carolyn S. Smith\", \"type\": \"person\", \"avail\": true, \"age\": 82, \"date\": 53823600000.0}, {\"title\": \"Jennifer Sutherland\", \"type\": \"person\", \"avail\": true, \"age\": 65, \"date\": 401234400000.0}]}, {\"title\": \"Cry hunts\", \"type\": \"role\", \"children\": [{\"title\": \"Steven Davies\", \"type\": \"person\", \"avail\": true, \"age\": 42, \"date\": 479430000000.0}, {\"title\": \"Jake F. North\", \"type\": \"person\", \"age\": 44}, {\"title\": \"Tim Sanderson\", \"type\": \"person\", \"avail\": true, \"age\": 94}, {\"title\": \"Vanessa P. Wallace\", \"type\": \"person\", \"age\": 80}, {\"title\": \"Keith Paterson\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 56, \"date\": 1244325600000.0}, {\"title\": \"Christopher Jackson\", \"type\": \"person\", \"avail\": true, \"age\": 33, \"remarks\": \"Appears sheeps fast.\"}, {\"title\": \"Alison Bond\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 94, \"date\": 1285797600000.0, \"remarks\": \"Offers incomes brilliantly.\"}, {\"title\": \"Christopher B. Forsyth\", \"type\": \"person\", \"avail\": true, \"age\": 79}, {\"title\": \"Jean Grant\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 1360105200000.0, \"remarks\": \"Hinders clubs bravely.\"}, {\"title\": \"Lillian Forsyth\", \"type\": \"person\", \"avail\": true, \"age\": 69, \"remarks\": \"Varies broads busily.\"}, {\"title\": \"Chloe Grant\", \"type\": \"person\", \"avail\": true, \"age\": 71, \"date\": 513986400000.0}, {\"title\": \"Anthony L. Abraham\", \"type\": \"person\", \"avail\": true, \"age\": 86, \"date\": 800834400000.0}, {\"title\": \"Jasmine Reid\", \"type\": \"person\", \"avail\": true, \"age\": 57, \"remarks\": \"Fits belts quickly.\"}]}, {\"title\": \"Cross breasts\", \"type\": \"role\", \"children\": [{\"title\": \"Kylie Miller\", \"type\": \"person\", \"avail\": true, \"age\": 39, \"date\": 1620165600000.0}, {\"title\": \"Pat Greene\", \"type\": \"person\", \"age\": 94, \"date\": 1649714400000.0, \"remarks\": \"Stops essaies beautifully.\"}, {\"title\": \"Daryl Miller\", \"type\": \"person\", \"avail\": true, \"age\": 77}, {\"title\": \"Ryan White\", \"type\": \"person\", \"avail\": true, \"age\": 91, \"date\": 306284400000.0}, {\"title\": \"Sue Morrison\", \"type\": \"person\", \"avail\": true, \"age\": 59, \"date\": 982364400000.0}]}, {\"title\": \"Vary strangers\", \"type\": \"role\", \"children\": [{\"title\": \"Wanda Z. Vance\", \"type\": \"person\", \"avail\": true, \"age\": 81, \"date\": 1415574000000.0, \"remarks\": \"Swallows feels eagerly.\"}, {\"title\": \"Jason Hudson\", \"type\": \"person\", \"avail\": true, \"age\": 97}, {\"title\": \"Sophie Blake\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"date\": 611013600000.0}, {\"title\": \"Thomas Ross\", \"type\": \"person\", \"avail\": true, \"age\": 82, \"date\": 944262000000.0}, {\"title\": \"Adrian MacLeod\", \"type\": \"person\", \"avail\": true, \"age\": 42, \"remarks\": \"Blushes disks wholly.\"}, {\"title\": \"Dylan W. Mathis\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 33}, {\"title\": \"Zoe Dickens\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 55, \"remarks\": \"Brings targets explicitly.\"}, {\"title\": \"Andrea Morrison\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 634604400000.0}, {\"title\": \"Carolyn Hill\", \"type\": \"person\", \"avail\": true, \"age\": 58, \"date\": 462837600000.0, \"remarks\": \"Folds equivalents securely.\"}, {\"title\": \"Oliver E. Lyman\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 82, \"date\": 449877600000.0}, {\"title\": \"Connor S. Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 38, \"date\": 1417388400000.0}, {\"title\": \"Faith R. Dyer\", \"type\": \"person\", \"avail\": true, \"age\": 77}, {\"title\": \"Pat P. Brown\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"remarks\": \"Sparkles matters markedly.\"}, {\"title\": \"Tracey U. MacDonald\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 64, \"date\": 477097200000.0}, {\"title\": \"Victoria C. Hart\", \"type\": \"person\", \"age\": 58, \"remarks\": \"Attacks prides early.\"}, {\"title\": \"Julian M. Ince\", \"type\": \"person\", \"avail\": true, \"age\": 84}, {\"title\": \"Jennifer Brown\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 57}]}]}, {\"title\": \"Dept. for Fees and Skunks\", \"type\": \"department\", \"children\": [{\"title\": \"Subtract connections\", \"type\": \"role\", \"children\": [{\"title\": \"Sebastian Simpson\", \"type\": \"person\", \"avail\": true, \"age\": 84, \"date\": 135126000000.0}, {\"title\": \"Harry K. Butler\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 47, \"date\": 559954800000.0}, {\"title\": \"Julia N. Vaughan\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 1517007600000.0}, {\"title\": \"Edward Rampling\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 63}, {\"title\": \"Stewart Vance\", \"type\": \"person\", \"state\": \"h\", \"age\": 36}, {\"title\": \"Jonathan Paige\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 268354800000.0, \"remarks\": \"Endorses factors efficiently.\"}, {\"title\": \"Maria X. Churchill\", \"type\": \"person\", \"state\": \"h\", \"age\": 97, \"date\": 1043276400000.0, \"remarks\": \"Strains objects healthily.\"}, {\"title\": \"Kimberly May\", \"type\": \"person\", \"avail\": true, \"age\": 76, \"remarks\": \"Salutes manners actively.\"}, {\"title\": \"Sally Parsons\", \"type\": \"person\", \"avail\": true, \"age\": 90}, {\"title\": \"Amanda Glover\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 89, \"date\": 347497200000.0}, {\"title\": \"Oliver Ellison\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 1419548400000.0}, {\"title\": \"Wendy L. Ball\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 75, \"remarks\": \"Refers debates properly.\"}, {\"title\": \"Frank H. Terry\", \"type\": \"person\", \"age\": 35}, {\"title\": \"Irene B. May\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 60, \"date\": 1458687600000.0}]}, {\"title\": \"Cower particulars\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Ella W. Chapman\", \"type\": \"person\", \"avail\": true, \"age\": 74, \"date\": 86742000000.0, \"remarks\": \"Adjusts presences consistently.\"}, {\"title\": \"Charles J. Bailey\", \"type\": \"person\", \"avail\": true, \"age\": 53}, {\"title\": \"Adam Graham\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 57, \"date\": 1119477600000.0}, {\"title\": \"Pat Hodges\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 73, \"date\": 1260226800000.0}, {\"title\": \"Corey Springer\", \"type\": \"person\", \"avail\": true, \"age\": 53}, {\"title\": \"Piers D. Powell\", \"type\": \"person\", \"avail\": true, \"age\": 86, \"date\": 797983200000.0, \"remarks\": \"Imprints experts rightly.\"}, {\"title\": \"Rachel P. Graham\", \"type\": \"person\", \"avail\": true, \"age\": 34, \"date\": 280537200000.0}, {\"title\": \"Jayden L. McGrath\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"date\": 292374000000.0}, {\"title\": \"Casey P. Greene\", \"type\": \"person\", \"avail\": true, \"age\": 28}, {\"title\": \"Chris M. Parsons\", \"type\": \"person\", \"age\": 50}, {\"title\": \"Chris Churchill\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 28}, {\"title\": \"Piers Ogden\", \"type\": \"person\", \"avail\": true, \"age\": 27}]}, {\"title\": \"Hew computers\", \"type\": \"role\", \"children\": [{\"title\": \"Michael V. Turner\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 86, \"date\": 1386802800000.0}, {\"title\": \"Alexander I. Howard\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 82, \"date\": 742773600000.0, \"remarks\": \"Feels ferrets studiously.\"}, {\"title\": \"Madeleine F. Nash\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 35, \"remarks\": \"Ignites considerations cleanly.\"}, {\"title\": \"Amanda Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 88, \"date\": 1316988000000.0}, {\"title\": \"Jane King\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 51, \"date\": 1304028000000.0}, {\"title\": \"Andy Miller\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 28, \"date\": 1122501600000.0}, {\"title\": \"Lily Simpson\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 88, \"date\": 109119600000.0, \"remarks\": \"Proceeds industries wonderfully.\"}, {\"title\": \"Tracey Y. Hodges\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 950396400000.0}, {\"title\": \"Simon B. Wilson\", \"type\": \"person\", \"avail\": true, \"age\": 89, \"date\": 500425200000.0}, {\"title\": \"Daryl Pullman\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 61, \"date\": 580428000000.0, \"remarks\": \"Fights smokes splendidly.\"}]}, {\"title\": \"Lay vacations\", \"type\": \"role\", \"children\": [{\"title\": \"Amelia Burgess\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 25, \"date\": 493509600000.0, \"remarks\": \"Wrings packages luckily.\"}, {\"title\": \"Yvonne G. Mackenzie\", \"type\": \"person\", \"avail\": true, \"age\": 31, \"date\": 1575846000000.0}, {\"title\": \"Benjamin H. Fraser\", \"type\": \"person\", \"avail\": true, \"age\": 47, \"date\": 936914400000.0, \"remarks\": \"Triumphs difficulties really.\"}]}, {\"title\": \"Kiss marriages\", \"type\": \"role\", \"children\": [{\"title\": \"Sonia Z. Johnston\", \"type\": \"person\", \"state\": \"h\", \"age\": 62}, {\"title\": \"Lou Q. Carr\", \"type\": \"person\", \"avail\": true, \"age\": 95}, {\"title\": \"Anne W. Wright\", \"type\": \"person\", \"avail\": true, \"age\": 73, \"date\": 985816800000.0, \"remarks\": \"Neglects employees assuredly.\"}, {\"title\": \"Anne Lambert\", \"type\": \"person\", \"avail\": true, \"age\": 48}, {\"title\": \"Nathan Q. Murray\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 24, \"date\": 349225200000.0, \"remarks\": \"Speeds youngs unquestionably.\"}, {\"title\": \"Peter Coleman\", \"type\": \"person\", \"avail\": true, \"age\": 32}, {\"title\": \"Jayden F. Morgan\", \"type\": \"person\", \"age\": 45, \"date\": 1007679600000.0, \"remarks\": \"Selects dots abundantly.\"}, {\"title\": \"Audrey B. Gibson\", \"type\": \"person\", \"avail\": true, \"age\": 44}, {\"title\": \"Justin Q. Wilkins\", \"type\": \"person\", \"avail\": true, \"age\": 27, \"date\": 1263423600000.0, \"remarks\": \"Constrains pugs intensely.\"}, {\"title\": \"Oliver Nash\", \"type\": \"person\", \"avail\": true, \"age\": 40}, {\"title\": \"Joanne J. Reid\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"remarks\": \"Spells alternatives proudly.\"}]}, {\"title\": \"Owe televisions\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Connor K. Allan\", \"type\": \"person\", \"avail\": true, \"age\": 36, \"date\": 1482534000000.0}, {\"title\": \"Frances R. Fraser\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 1218924000000.0}, {\"title\": \"Julia Rutherford\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 338767200000.0, \"remarks\": \"Encourages conversations valiantly.\"}, {\"title\": \"Trevor Black\", \"type\": \"person\", \"avail\": true, \"age\": 62, \"date\": 118450800000.0}, {\"title\": \"Kimberly L. Nolan\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 88, \"date\": 1198623600000.0, \"remarks\": \"Rids decisions intelligently.\"}, {\"title\": \"Edward Y. Campbell\", \"type\": \"person\", \"avail\": true, \"age\": 88, \"date\": 389829600000.0}, {\"title\": \"Kyle X. Springer\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 71, \"date\": 1061244000000.0}, {\"title\": \"Lou Dyer\", \"type\": \"person\", \"avail\": true, \"age\": 93, \"date\": 203036400000.0}, {\"title\": \"Frank H. Gill\", \"type\": \"person\", \"avail\": true, \"age\": 92, \"date\": 1395442800000.0}, {\"title\": \"Jasmine I. Mitchell\", \"type\": \"person\", \"avail\": true, \"age\": 55, \"date\": 1638486000000.0}, {\"title\": \"Casey O. Langdon\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 45, \"remarks\": \"Bows priors agreeably.\"}, {\"title\": \"Simon Coleman\", \"type\": \"person\", \"avail\": true, \"age\": 97, \"date\": 302655600000.0, \"remarks\": \"Tramples taps beautifully.\"}, {\"title\": \"Brian K. Glover\", \"type\": \"person\", \"avail\": true, \"age\": 44, \"remarks\": \"Redoes secretaries upwardly.\"}, {\"title\": \"Fiona Y. Jackson\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 1627768800000.0, \"remarks\": \"Fights bigs heartily.\"}]}, {\"title\": \"Last campaigns\", \"type\": \"role\", \"children\": [{\"title\": \"Daryl B. Dowd\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 944607600000.0}, {\"title\": \"Kelly B. Lyman\", \"type\": \"person\", \"avail\": true, \"age\": 65, \"remarks\": \"Tends tricks majestically.\"}, {\"title\": \"Keith H. Stewart\", \"type\": \"person\", \"avail\": true, \"age\": 71, \"date\": 547423200000.0}, {\"title\": \"Natalie W. Short\", \"type\": \"person\", \"avail\": true, \"age\": 66, \"date\": 875138400000.0, \"remarks\": \"Burns sillies infinitely.\"}, {\"title\": \"Corey Wilkins\", \"type\": \"person\", \"avail\": true, \"age\": 88}, {\"title\": \"Oliver Allan\", \"type\": \"person\", \"state\": \"h\", \"age\": 33}]}, {\"title\": \"Undo positives\", \"type\": \"role\", \"children\": [{\"title\": \"Toby Quinn\", \"type\": \"person\", \"avail\": true, \"age\": 36, \"date\": 1147989600000.0}]}, {\"title\": \"Sight articles\", \"type\": \"role\", \"children\": [{\"title\": \"Adam E. Scott\", \"type\": \"person\", \"avail\": true, \"age\": 31, \"date\": 1093989600000.0, \"remarks\": \"Curbs alpacas agreeably.\"}, {\"title\": \"Jesse Y. Blake\", \"type\": \"person\", \"age\": 22}, {\"title\": \"Amelia Bond\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"date\": 863992800000.0, \"remarks\": \"Consoles disciplines dreamily.\"}, {\"title\": \"Diane Dyer\", \"type\": \"person\", \"avail\": true, \"age\": 24}, {\"title\": \"William MacDonald\", \"type\": \"person\", \"avail\": true, \"age\": 33, \"date\": 1458342000000.0}, {\"title\": \"Alan J. Wright\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 78}, {\"title\": \"Max Z. Duncan\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"date\": 1180821600000.0}, {\"title\": \"Warren Walker\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 27, \"remarks\": \"Incises walruses diligently.\"}, {\"title\": \"Sam Kelly\", \"type\": \"person\", \"age\": 84}, {\"title\": \"Alan Scott\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 32}, {\"title\": \"Olivia Vance\", \"type\": \"person\", \"age\": 61}]}]}, {\"title\": \"Dept. for Uses and Wars\", \"type\": \"department\", \"children\": [{\"title\": \"Dedicate issues\", \"type\": \"role\", \"children\": [{\"title\": \"Maria Piper\", \"type\": \"person\", \"age\": 44, \"date\": 435711600000.0}, {\"title\": \"Anne Gill\", \"type\": \"person\", \"avail\": true, \"age\": 70}, {\"title\": \"Phil L. Gibson\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 1072652400000.0}, {\"title\": \"Corey Wilson\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 752281200000.0}, {\"title\": \"Richard Berry\", \"type\": \"person\", \"age\": 78, \"date\": 83890800000.0}]}, {\"title\": \"Transform departures\", \"type\": \"role\", \"children\": [{\"title\": \"Casey M. North\", \"type\": \"person\", \"avail\": true, \"age\": 36, \"date\": 909788400000.0}, {\"title\": \"Lisa R. Gibson\", \"type\": \"person\", \"avail\": true, \"age\": 59, \"remarks\": \"Sacks dramas merrily.\"}, {\"title\": \"Mary K. Newman\", \"type\": \"person\", \"age\": 95, \"date\": 2070000000.0, \"remarks\": \"Swallows fruits boldly.\"}, {\"title\": \"Sarah Wilson\", \"type\": \"person\", \"avail\": true, \"age\": 88, \"remarks\": \"Inflates numbers proudly.\"}, {\"title\": \"Jamie Lewis\", \"type\": \"person\", \"avail\": true, \"age\": 35, \"date\": 164070000000.0, \"remarks\": \"Becomes bunches restfully.\"}, {\"title\": \"Adrian Hughes\", \"type\": \"person\", \"avail\": true, \"age\": 74, \"date\": 1351461600000.0}, {\"title\": \"Jean A. Clarkson\", \"type\": \"person\", \"avail\": true, \"age\": 47, \"date\": 1125352800000.0}, {\"title\": \"Diana Campbell\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 27, \"date\": 852850800000.0}, {\"title\": \"Claire E. Mackenzie\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 1588456800000.0}, {\"title\": \"Donna Black\", \"type\": \"person\", \"avail\": true, \"age\": 97, \"date\": 198716400000.0}, {\"title\": \"Gabrielle K. North\", \"type\": \"person\", \"avail\": true, \"age\": 95, \"date\": 1013468400000.0}, {\"title\": \"Katherine K. Henderson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 55}, {\"title\": \"Joan M. Poole\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 53, \"date\": 1251756000000.0}, {\"title\": \"Karen Rees\", \"type\": \"person\", \"avail\": true, \"age\": 41, \"date\": 1074898800000.0}, {\"title\": \"Taylor Slater\", \"type\": \"person\", \"avail\": true, \"age\": 72}, {\"title\": \"Jack Vaughan\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 1050357600000.0, \"remarks\": \"Sates mouths lovingly.\"}]}, {\"title\": \"Carve caribous\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Lauren Y. Newman\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 227487600000.0}, {\"title\": \"Jean E. Stewart\", \"type\": \"person\", \"avail\": true, \"age\": 22}, {\"title\": \"John F. McDonald\", \"type\": \"person\", \"age\": 65, \"date\": 1129932000000.0}, {\"title\": \"Amy R. Burgess\", \"type\": \"person\", \"avail\": true, \"age\": 89}, {\"title\": \"Lou Q. Scott\", \"type\": \"person\", \"avail\": true, \"age\": 25, \"date\": 1628892000000.0}, {\"title\": \"Diana E. Hamilton\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 89, \"date\": 527205600000.0}, {\"title\": \"Isaac O. Young\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 96, \"date\": 925423200000.0, \"remarks\": \"Steps hares fervently.\"}]}, {\"title\": \"Contrast flights\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Vanessa V. Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 92}, {\"title\": \"Piers Y. Harris\", \"type\": \"person\", \"avail\": true, \"age\": 72, \"date\": 1087336800000.0}, {\"title\": \"Rose Q. Tucker\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 57, \"date\": 1389308400000.0}, {\"title\": \"Rebecca North\", \"type\": \"person\", \"avail\": true, \"age\": 81, \"date\": 1180908000000.0, \"remarks\": \"Buys switches promptly.\"}, {\"title\": \"Emily Edmunds\", \"type\": \"person\", \"age\": 75, \"date\": 220489200000.0}, {\"title\": \"Christopher R. Peters\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 42}, {\"title\": \"Ryan C. Clark\", \"type\": \"person\", \"avail\": true, \"age\": 40, \"date\": 1623880800000.0}, {\"title\": \"Emma Wilson\", \"type\": \"person\", \"avail\": true, \"age\": 45, \"date\": 63154800000.0, \"remarks\": \"Says singles very.\"}, {\"title\": \"Amanda Tucker\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 52, \"date\": 443574000000.0}, {\"title\": \"Connor Mackay\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 36, \"date\": 350607600000.0}, {\"title\": \"Sue T. Cameron\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 89, \"date\": 1090274400000.0}, {\"title\": \"Kelly Vaughan\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 82, \"date\": 10796400000.0}, {\"title\": \"Angela Oliver\", \"type\": \"person\", \"age\": 83, \"remarks\": \"Disuses meets amazingly.\"}, {\"title\": \"Carl Wallace\", \"type\": \"person\", \"state\": \"h\", \"age\": 56, \"remarks\": \"Sprays monitors exceptionally.\"}, {\"title\": \"Gabrielle T. Buckland\", \"type\": \"person\", \"avail\": true, \"age\": 27, \"date\": 870645600000.0}, {\"title\": \"Michelle O. Smith\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 56, \"date\": 250383600000.0}, {\"title\": \"Kimberly I. Powell\", \"type\": \"person\", \"state\": \"s\", \"age\": 66, \"date\": 1117749600000.0, \"remarks\": \"Pleads eggs boldly.\"}, {\"title\": \"Sarah Rampling\", \"type\": \"person\", \"avail\": true, \"age\": 45}, {\"title\": \"Phil Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 53}]}, {\"title\": \"Astonish presentations\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Irene M. Walker\", \"type\": \"person\", \"avail\": true, \"age\": 39}, {\"title\": \"Mary McDonald\", \"type\": \"person\", \"age\": 93, \"date\": 698108400000.0, \"remarks\": \"Introduces taxes optimistically.\"}, {\"title\": \"Kevin G. Hemmings\", \"type\": \"person\", \"avail\": true, \"age\": 38, \"date\": 793407600000.0}, {\"title\": \"Neil Z. Welch\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 70, \"date\": 1394924400000.0, \"remarks\": \"Inquires celebrations joyously.\"}, {\"title\": \"Harry K. Newman\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 42, \"remarks\": \"Copes burns sympathetically.\"}, {\"title\": \"Megan Slater\", \"type\": \"person\", \"avail\": true, \"age\": 43, \"date\": 356652000000.0}, {\"title\": \"Karen D. Vance\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"date\": 1414360800000.0}, {\"title\": \"Adam E. Springer\", \"type\": \"person\", \"avail\": true, \"age\": 98, \"date\": 910306800000.0}, {\"title\": \"Cameron Jones\", \"type\": \"person\", \"avail\": true, \"age\": 71, \"date\": 129855600000.0}, {\"title\": \"Phoenix B. Ellison\", \"type\": \"person\", \"avail\": true, \"age\": 36}, {\"title\": \"Ryan Morgan\", \"type\": \"person\", \"avail\": true, \"age\": 21, \"date\": 324597600000.0}, {\"title\": \"Anthony Buckland\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 58, \"remarks\": \"Checks finishes tenderly.\"}, {\"title\": \"Jesse White\", \"type\": \"person\", \"avail\": true, \"age\": 38}, {\"title\": \"Mary Gibson\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 55, \"date\": 64710000000.0, \"remarks\": \"Conquers families gladly.\"}, {\"title\": \"Eddie Hamilton\", \"type\": \"person\", \"age\": 23, \"date\": 791420400000.0}]}, {\"title\": \"Carve calendars\", \"type\": \"role\", \"children\": [{\"title\": \"Charlie McGrath\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 92, \"date\": 912985200000.0}, {\"title\": \"Amelia H. Mitchell\", \"type\": \"person\", \"avail\": true, \"age\": 71, \"remarks\": \"Glances holidaies deftly.\"}, {\"title\": \"Nicholas Edmunds\", \"type\": \"person\", \"state\": \"h\", \"age\": 94, \"date\": 1538172000000.0}, {\"title\": \"Jack F. Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 84}, {\"title\": \"Anthony Henderson\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 1159567200000.0}, {\"title\": \"Alexandra H. Rampling\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 70, \"date\": 584920800000.0, \"remarks\": \"Wastes pages tenderly.\"}]}, {\"title\": \"Utter falls\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Brian Robertson\", \"type\": \"person\", \"avail\": true, \"age\": 68, \"remarks\": \"Beautifies reserves unfailingly.\"}, {\"title\": \"Ava P. Dyer\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 81, \"date\": 545522400000.0}, {\"title\": \"Brian D. Lewis\", \"type\": \"person\", \"avail\": true, \"age\": 97, \"date\": 1097013600000.0, \"remarks\": \"Folds criticisms knowingly.\"}, {\"title\": \"Andrea Edmunds\", \"type\": \"person\", \"avail\": true, \"age\": 98, \"date\": 997999200000.0}, {\"title\": \"Toby Carr\", \"type\": \"person\", \"age\": 59, \"date\": 728780400000.0}, {\"title\": \"Jean Payne\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 87}, {\"title\": \"Jason F. Lawrence\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 91, \"date\": 228351600000.0}, {\"title\": \"Amy E. Harris\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 323046000000.0, \"remarks\": \"Lays stands affirmatively.\"}, {\"title\": \"Phoenix A. Paige\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"date\": 1506981600000.0, \"remarks\": \"Breaks cakes usefully.\"}, {\"title\": \"Alexandra Greene\", \"type\": \"person\", \"avail\": true, \"age\": 90}, {\"title\": \"Pippa Randall\", \"type\": \"person\", \"avail\": true, \"age\": 60}, {\"title\": \"Leah Cameron\", \"type\": \"person\", \"avail\": true, \"age\": 32}, {\"title\": \"Elizabeth Coleman\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 87, \"date\": 271119600000.0, \"remarks\": \"Adds missions efficiently.\"}]}, {\"title\": \"Reflect structures\", \"type\": \"role\", \"children\": [{\"title\": \"Steven J. Turner\", \"type\": \"person\", \"avail\": true, \"age\": 85}, {\"title\": \"Chris Miller\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 76, \"remarks\": \"Approves horses charmingly.\"}, {\"title\": \"Pat T. Arnold\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 775692000000.0}, {\"title\": \"Cameron R. Roberts\", \"type\": \"person\", \"avail\": true, \"age\": 47, \"date\": 668646000000.0, \"remarks\": \"Inputs cods merrily.\"}, {\"title\": \"Ella Stewart\", \"type\": \"person\", \"avail\": true, \"age\": 73, \"remarks\": \"Inhabits truths sympathetically.\"}]}, {\"title\": \"Innovate poets\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Jamie Quinn\", \"type\": \"person\", \"avail\": true, \"age\": 96}, {\"title\": \"Dominic Mitchell\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 64}, {\"title\": \"Olivia A. Bell\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 44}, {\"title\": \"Justin J. Coleman\", \"type\": \"person\", \"avail\": true, \"age\": 96, \"date\": 1234047600000.0, \"remarks\": \"Refuses calendars gently.\"}, {\"title\": \"Jason Gray\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 47, \"date\": 370303200000.0, \"remarks\": \"Heaves boats victoriously.\"}, {\"title\": \"Gabrielle D. Henderson\", \"type\": \"person\", \"avail\": true, \"age\": 74}, {\"title\": \"Alan Henderson\", \"type\": \"person\", \"avail\": true, \"age\": 73}, {\"title\": \"Warren D. Slater\", \"type\": \"person\", \"avail\": true, \"age\": 84, \"date\": 874015200000.0}, {\"title\": \"Diane Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 53, \"date\": 948668400000.0, \"remarks\": \"Illustrates bridges unquestionably.\"}, {\"title\": \"Deirdre F. Kerr\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 299977200000.0}, {\"title\": \"Jessica Nash\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 21, \"remarks\": \"Matches mortgages deeply.\"}, {\"title\": \"Joe Bailey\", \"type\": \"person\", \"age\": 33}, {\"title\": \"Jessica Forsyth\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 1239660000000.0, \"remarks\": \"Greets substances reassuringly.\"}, {\"title\": \"Leah V. Quinn\", \"type\": \"person\", \"avail\": true, \"age\": 46, \"date\": 342140400000.0}, {\"title\": \"Lillian Taylor\", \"type\": \"person\", \"state\": \"h\", \"age\": 88}, {\"title\": \"Sarah Sutherland\", \"type\": \"person\", \"avail\": true, \"age\": 33, \"remarks\": \"Advises successes stylishly.\"}, {\"title\": \"Frances Quinn\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 95, \"date\": 358207200000.0, \"remarks\": \"Idealizes daughters jubilantly.\"}, {\"title\": \"Joe Q. Peake\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 167094000000.0, \"remarks\": \"Shines wolfs properly.\"}, {\"title\": \"Sam O. Graham\", \"type\": \"person\", \"avail\": true, \"age\": 95, \"remarks\": \"Stretches philosophies abundantly.\"}]}, {\"title\": \"Arrest codes\", \"type\": \"role\", \"children\": [{\"title\": \"Warren B. Dyer\", \"type\": \"person\", \"state\": \"s\", \"age\": 95, \"date\": 1481756400000.0, \"remarks\": \"Chooses tables properly.\"}, {\"title\": \"Joan N. Rutherford\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 50, \"date\": 1351116000000.0, \"remarks\": \"Boards plants interestingly.\"}, {\"title\": \"Neil E. Ross\", \"type\": \"person\", \"avail\": true, \"age\": 53, \"remarks\": \"Replies freedoms properly.\"}, {\"title\": \"Paul Wallace\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 92, \"date\": 1068418800000.0, \"remarks\": \"Sees tries clearly.\"}, {\"title\": \"Jasmine A. Rees\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 75, \"date\": 1288738800000.0, \"remarks\": \"Expresses bones worthily.\"}, {\"title\": \"Tracey Bailey\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 33, \"remarks\": \"Magnifies taxes enjoyably.\"}, {\"title\": \"Faith Stewart\", \"type\": \"person\", \"avail\": true, \"age\": 49}, {\"title\": \"Keith North\", \"type\": \"person\", \"avail\": true, \"age\": 72, \"date\": 1036105200000.0}, {\"title\": \"Adrian M. Dyer\", \"type\": \"person\", \"avail\": true, \"age\": 94}, {\"title\": \"Austin Buckland\", \"type\": \"person\", \"avail\": true, \"age\": 54, \"remarks\": \"Praises turtles jauntily.\"}, {\"title\": \"Sean L. Jackson\", \"type\": \"person\", \"age\": 41, \"date\": 1424214000000.0}, {\"title\": \"Angela Gray\", \"type\": \"person\", \"avail\": true, \"age\": 94, \"date\": 1444082400000.0}, {\"title\": \"Natalie N. Taylor\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 1436652000000.0}, {\"title\": \"Corey K. Smith\", \"type\": \"person\", \"avail\": true, \"age\": 31}, {\"title\": \"Ryan W. Kelly\", \"type\": \"person\", \"avail\": true, \"age\": 21, \"date\": 496274400000.0}, {\"title\": \"Sydney Langdon\", \"type\": \"person\", \"avail\": true, \"age\": 86, \"remarks\": \"Seizes grandfathers usefully.\"}]}]}, {\"title\": \"Dept. for Greens and Angers\", \"type\": \"department\", \"children\": [{\"title\": \"Practise properties\", \"type\": \"role\", \"expanded\": true}, {\"title\": \"Impede beaches\", \"type\": \"role\", \"children\": [{\"title\": \"Dorothy Skinner\", \"type\": \"person\", \"avail\": true, \"age\": 57}, {\"title\": \"Cameron Robertson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 34, \"remarks\": \"Touches questions enthusiastically.\"}, {\"title\": \"Christian F. Berry\", \"type\": \"person\", \"avail\": true, \"age\": 44, \"date\": 1146348000000.0, \"remarks\": \"Drills crows infinitely.\"}, {\"title\": \"James Lambert\", \"type\": \"person\", \"avail\": true, \"age\": 64, \"date\": 1065132000000.0, \"remarks\": \"Does hurries positively.\"}, {\"title\": \"Richard Wilkins\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 89}]}, {\"title\": \"Kill options\", \"type\": \"role\", \"children\": [{\"title\": \"Daryl D. Lyman\", \"type\": \"person\", \"age\": 73, \"date\": 683589600000.0}, {\"title\": \"Sean Taylor\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 55, \"remarks\": \"Notices offers diligently.\"}, {\"title\": \"Lisa Jones\", \"type\": \"person\", \"avail\": true, \"age\": 72, \"date\": 1539208800000.0}, {\"title\": \"Christopher Walker\", \"type\": \"person\", \"avail\": true, \"age\": 32, \"date\": 806623200000.0}, {\"title\": \"Jack Hughes\", \"type\": \"person\", \"state\": \"s\", \"age\": 76}, {\"title\": \"Lauren M. Blake\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 58, \"date\": 1297897200000.0, \"remarks\": \"Founds greens genuinely.\"}, {\"title\": \"Rebecca Mathis\", \"type\": \"person\", \"avail\": true, \"age\": 34, \"remarks\": \"Breaks classrooms cutely.\"}, {\"title\": \"Alison E. Duncan\", \"type\": \"person\", \"avail\": true, \"age\": 76, \"date\": 1028671200000.0}, {\"title\": \"Jean J. Miller\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 84, \"date\": 327016800000.0}, {\"title\": \"Gavin V. Simpson\", \"type\": \"person\", \"avail\": true, \"age\": 81, \"date\": 471135600000.0}, {\"title\": \"Neil Mathis\", \"type\": \"person\", \"avail\": true, \"age\": 91, \"date\": 543538800000.0, \"remarks\": \"Belongs familiars substantially.\"}, {\"title\": \"Gordon Edmunds\", \"type\": \"person\", \"avail\": true, \"age\": 31}, {\"title\": \"Emily J. Vaughan\", \"type\": \"person\", \"avail\": true, \"age\": 91}, {\"title\": \"Steven Young\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 93, \"date\": 1589839200000.0}, {\"title\": \"Evan A. Turner\", \"type\": \"person\", \"age\": 31, \"remarks\": \"Prefers tooths unfailingly.\"}, {\"title\": \"Kelly K. Robertson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 38, \"date\": 1032386400000.0}, {\"title\": \"Nicola H. Buckland\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 604191600000.0, \"remarks\": \"Places equipments lightly.\"}]}, {\"title\": \"Integrate rents\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Phoenix X. Avery\", \"type\": \"person\", \"avail\": true, \"age\": 92}, {\"title\": \"Sophie A. Parr\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 79, \"date\": 782780400000.0}, {\"title\": \"Kevin N. Marshall\", \"type\": \"person\", \"avail\": true, \"age\": 67, \"date\": 777765600000.0, \"remarks\": \"Supposes parts restfully.\"}, {\"title\": \"Matt R. Payne\", \"type\": \"person\", \"avail\": true, \"age\": 32, \"date\": 398556000000.0}, {\"title\": \"Sydney P. McDonald\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 1193871600000.0}, {\"title\": \"Nicholas G. Mathis\", \"type\": \"person\", \"avail\": true, \"age\": 76, \"date\": 1291417200000.0, \"remarks\": \"Distributes squirrels fashionably.\"}, {\"title\": \"Victoria X. King\", \"type\": \"person\", \"avail\": true, \"age\": 94}, {\"title\": \"Pat S. Kerr\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 39913200000.0}, {\"title\": \"Wanda Z. Sanderson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 24, \"date\": 370389600000.0}, {\"title\": \"Steven U. Miller\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 25, \"date\": 739231200000.0}, {\"title\": \"Frances Morrison\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 21}, {\"title\": \"Leonard S. Watson\", \"type\": \"person\", \"avail\": true, \"age\": 85, \"date\": 1144360800000.0}]}, {\"title\": \"Maintain clotheses\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Anna W. Wilkins\", \"type\": \"person\", \"avail\": true, \"age\": 29, \"date\": 634863600000.0, \"remarks\": \"Mashes extents upwardly.\"}, {\"title\": \"Wanda H. Hart\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 70}, {\"title\": \"Carolyn P. Parr\", \"type\": \"person\", \"avail\": true, \"age\": 27, \"remarks\": \"Scales bits blissfully.\"}, {\"title\": \"Amanda C. Morgan\", \"type\": \"person\", \"avail\": true, \"age\": 80, \"date\": 1136847600000.0}, {\"title\": \"Lauren P. Grant\", \"type\": \"person\", \"avail\": true, \"age\": 58, \"date\": 732409200000.0}, {\"title\": \"Nicola B. Berry\", \"type\": \"person\", \"avail\": true, \"age\": 95}, {\"title\": \"Rachel U. James\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"date\": 755218800000.0}, {\"title\": \"Charlie Nolan\", \"type\": \"person\", \"avail\": true, \"age\": 27}, {\"title\": \"Isaac B. Simpson\", \"type\": \"person\", \"avail\": true, \"age\": 66}]}, {\"title\": \"Sterilize rides\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Harry MacLeod\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"date\": 298422000000.0}, {\"title\": \"Lucas D. Chapman\", \"type\": \"person\", \"age\": 94}, {\"title\": \"Alison King\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 40, \"remarks\": \"Impeaches noses lively.\"}, {\"title\": \"Daryl Nolan\", \"type\": \"person\", \"age\": 86, \"date\": 215046000000.0, \"remarks\": \"Ties notices richly.\"}, {\"title\": \"Kyle A. Miller\", \"type\": \"person\", \"avail\": true, \"age\": 89}, {\"title\": \"Joshua Greene\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 39, \"date\": 618444000000.0}, {\"title\": \"Colin X. Clark\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 1417215600000.0}, {\"title\": \"Luke Vance\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 52, \"date\": 115772400000.0, \"remarks\": \"Varies locks exceptionally.\"}, {\"title\": \"Blake Paige\", \"type\": \"person\", \"avail\": true, \"age\": 74, \"date\": 1455663600000.0, \"remarks\": \"Stitches asks poignantly.\"}, {\"title\": \"Zoe Martin\", \"type\": \"person\", \"avail\": true, \"age\": 95, \"remarks\": \"Writes administrations joyously.\"}, {\"title\": \"Wendy Burgess\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"remarks\": \"Speaks implements forever.\"}, {\"title\": \"Lou Hill\", \"type\": \"person\", \"avail\": true, \"age\": 81, \"date\": 390520800000.0, \"remarks\": \"Surges personalities zestfully.\"}, {\"title\": \"Steven H. Sanderson\", \"type\": \"person\", \"avail\": true, \"age\": 68, \"date\": 441414000000.0}, {\"title\": \"Anna Z. Murray\", \"type\": \"person\", \"avail\": true, \"age\": 80, \"date\": 1216159200000.0, \"remarks\": \"Cribs hands tenderly.\"}, {\"title\": \"Nicholas F. Ross\", \"type\": \"person\", \"avail\": true, \"age\": 64, \"date\": 643845600000.0, \"remarks\": \"Favours babies exclusively.\"}, {\"title\": \"Lisa Mills\", \"type\": \"person\", \"avail\": true, \"age\": 92, \"remarks\": \"Treasures braves infinitely.\"}, {\"title\": \"Harry I. Randall\", \"type\": \"person\", \"avail\": true, \"age\": 54, \"date\": 412988400000.0, \"remarks\": \"Convicts discounts carefully.\"}]}, {\"title\": \"Grade tourists\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Joe Glover\", \"type\": \"person\", \"avail\": true, \"age\": 37}, {\"title\": \"Toby V. Peake\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 573778800000.0, \"remarks\": \"Prosecutes damages eagerly.\"}, {\"title\": \"Thomas L. Turner\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 1224540000000.0, \"remarks\": \"Spoils texts believably.\"}, {\"title\": \"Heather T. Dowd\", \"type\": \"person\", \"avail\": true, \"age\": 80, \"date\": 842738400000.0}, {\"title\": \"Alexandra McGrath\", \"type\": \"person\", \"avail\": true, \"age\": 86}, {\"title\": \"David S. Lawrence\", \"type\": \"person\", \"avail\": true, \"age\": 64, \"remarks\": \"Indicates sessions lightly.\"}, {\"title\": \"Joe Lyman\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 53, \"date\": 122770800000.0, \"remarks\": \"Impends laughs luxuriously.\"}, {\"title\": \"Victoria Carr\", \"type\": \"person\", \"age\": 28, \"date\": 180226800000.0}, {\"title\": \"Joe U. Davidson\", \"type\": \"person\", \"avail\": true, \"age\": 68, \"date\": 655167600000.0, \"remarks\": \"Supplies kills unselfishly.\"}, {\"title\": \"Toby W. Dyer\", \"type\": \"person\", \"avail\": true, \"age\": 26}, {\"title\": \"Piers Graham\", \"type\": \"person\", \"avail\": true, \"age\": 44}]}]}, {\"title\": \"Dept. for Singles and Anybodies\", \"type\": \"department\", \"children\": [{\"title\": \"Resist trainings\", \"type\": \"role\", \"children\": [{\"title\": \"Corey Wilkins\", \"type\": \"person\", \"avail\": true, \"age\": 21, \"remarks\": \"Subscribes rocks gladly.\"}, {\"title\": \"Rose U. Wilkins\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 51, \"date\": 1379368800000.0}, {\"title\": \"Lisa Metcalfe\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 98, \"date\": 1232146800000.0}, {\"title\": \"Jacob Newman\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"remarks\": \"Decorates swims graciously.\"}, {\"title\": \"Owen O. Dowd\", \"type\": \"person\", \"avail\": true, \"age\": 41, \"remarks\": \"Varies meals forever.\"}, {\"title\": \"Alex K. Welch\", \"type\": \"person\", \"age\": 72, \"date\": 620863200000.0}, {\"title\": \"Frances McDonald\", \"type\": \"person\", \"age\": 36, \"date\": 211417200000.0}]}, {\"title\": \"Owe safes\", \"type\": \"role\", \"children\": [{\"title\": \"Sarah Hodges\", \"type\": \"person\", \"avail\": true, \"age\": 39, \"date\": 182732400000.0, \"remarks\": \"Enters shes spectacularly.\"}, {\"title\": \"Sydney Manning\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 36, \"date\": 1448146800000.0, \"remarks\": \"Sights grasshoppers cleanly.\"}, {\"title\": \"Rose Y. Lawrence\", \"type\": \"person\", \"avail\": true, \"age\": 94, \"date\": 1384902000000.0}, {\"title\": \"Nathan Robertson\", \"type\": \"person\", \"age\": 79, \"remarks\": \"Courses credits reponsibly.\"}, {\"title\": \"Alexandra I. Clarkson\", \"type\": \"person\", \"age\": 35, \"date\": 841615200000.0}, {\"title\": \"Liam S. Edmunds\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 28422000000.0, \"remarks\": \"Samples indications specially.\"}, {\"title\": \"Emma D. Blake\", \"type\": \"person\", \"avail\": true, \"age\": 96, \"date\": 653781600000.0}, {\"title\": \"Rachel H. Terry\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 35}, {\"title\": \"Katherine Bower\", \"type\": \"person\", \"avail\": true, \"age\": 29, \"date\": 515628000000.0, \"remarks\": \"Decorates satisfactions intelligently.\"}, {\"title\": \"Adam F. Hardacre\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 69, \"date\": 773618400000.0, \"remarks\": \"Pretends frogs admiringly.\"}, {\"title\": \"Toby Brown\", \"type\": \"person\", \"avail\": true, \"age\": 95, \"date\": 1215295200000.0, \"remarks\": \"Cycles creams appreciably.\"}, {\"title\": \"Tim Martin\", \"type\": \"person\", \"avail\": true, \"age\": 38}]}, {\"title\": \"Pollute mules\", \"type\": \"role\", \"children\": [{\"title\": \"Stephen W. King\", \"type\": \"person\", \"avail\": true, \"age\": 53}, {\"title\": \"Stewart O. Turner\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 71, \"date\": 1254866400000.0}, {\"title\": \"Rose Fisher\", \"type\": \"person\", \"avail\": true, \"age\": 45, \"date\": 1065650400000.0}, {\"title\": \"Molly S. Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 1010271600000.0}, {\"title\": \"Daryl V. Black\", \"type\": \"person\", \"avail\": true, \"age\": 87, \"date\": 163033200000.0}, {\"title\": \"Felicity P. Coleman\", \"type\": \"person\", \"avail\": true, \"age\": 42}, {\"title\": \"James Taylor\", \"type\": \"person\", \"avail\": true, \"age\": 80, \"date\": 23583600000.0}, {\"title\": \"Phoenix A. Rees\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 70, \"date\": 673135200000.0}, {\"title\": \"Colin G. Randall\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 83, \"date\": 405903600000.0, \"remarks\": \"Decays universities handily.\"}, {\"title\": \"Kelly W. Mills\", \"type\": \"person\", \"avail\": true, \"age\": 76, \"date\": 832716000000.0}, {\"title\": \"Jan Powell\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 57}, {\"title\": \"Bella N. McGrath\", \"type\": \"person\", \"avail\": true, \"age\": 68}, {\"title\": \"Alison Cameron\", \"type\": \"person\", \"age\": 21, \"date\": 104108400000.0}, {\"title\": \"Emma Churchill\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 73, \"date\": 1272751200000.0}, {\"title\": \"Jack A. Davidson\", \"type\": \"person\", \"avail\": true, \"age\": 43, \"date\": 1205190000000.0}, {\"title\": \"Piers K. Brown\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 1319407200000.0}, {\"title\": \"Una R. McLean\", \"type\": \"person\", \"avail\": true, \"age\": 79, \"remarks\": \"Whispers foxes unselfishly.\"}, {\"title\": \"Sebastian Parr\", \"type\": \"person\", \"avail\": true, \"age\": 73}, {\"title\": \"Jesse Jones\", \"type\": \"person\", \"avail\": true, \"age\": 46, \"remarks\": \"Wastes horrors intensely.\"}]}, {\"title\": \"Beseech mammoths\", \"type\": \"role\", \"children\": [{\"title\": \"Charles Smith\", \"type\": \"person\", \"avail\": true, \"age\": 91, \"remarks\": \"Drives ropes affirmatively.\"}, {\"title\": \"Simon Hunter\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 44, \"date\": 954885600000.0}, {\"title\": \"Samantha Peake\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 58}, {\"title\": \"Austin Burgess\", \"type\": \"person\", \"avail\": true, \"age\": 59, \"date\": 63759600000.0, \"remarks\": \"Saddles souths highly.\"}, {\"title\": \"Daryl Arnold\", \"type\": \"person\", \"state\": \"s\", \"age\": 67, \"date\": 230770800000.0, \"remarks\": \"Restrains eyes abundantly.\"}, {\"title\": \"Christopher Lee\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 43}, {\"title\": \"Alan C. MacDonald\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 93}, {\"title\": \"Emma I. Lawrence\", \"type\": \"person\", \"avail\": true, \"age\": 42, \"remarks\": \"Lends potentials brightly.\"}, {\"title\": \"Anne H. Oliver\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"date\": 1286488800000.0}, {\"title\": \"Neil Poole\", \"type\": \"person\", \"avail\": true, \"age\": 93, \"date\": 1069887600000.0, \"remarks\": \"Implants steaks upright.\"}]}, {\"title\": \"Signify yellows\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Jean F. Rees\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 45}, {\"title\": \"Fiona Y. Forsyth\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 31, \"remarks\": \"Excludes comparisons faithfully.\"}, {\"title\": \"Benjamin Buckland\", \"type\": \"person\", \"avail\": true, \"age\": 67, \"date\": 26262000000.0}, {\"title\": \"Dan Hunter\", \"type\": \"person\", \"age\": 48, \"date\": 487980000000.0}, {\"title\": \"Boris Churchill\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 81}, {\"title\": \"Brian Nash\", \"type\": \"person\", \"avail\": true, \"age\": 52}, {\"title\": \"Chris Black\", \"type\": \"person\", \"avail\": true, \"age\": 90, \"date\": 1081720800000.0, \"remarks\": \"Clicks comfortables upright.\"}, {\"title\": \"Joanne O. Langdon\", \"type\": \"person\", \"avail\": true, \"age\": 27}, {\"title\": \"Simon J. Greene\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 73, \"date\": 1180476000000.0}]}, {\"title\": \"Contrast towers\", \"type\": \"role\", \"children\": [{\"title\": \"Charlie Duncan\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 53, \"remarks\": \"Shines passengers decently.\"}, {\"title\": \"Ella F. Gibson\", \"type\": \"person\", \"avail\": true, \"age\": 87, \"remarks\": \"Swears witnesses entirely.\"}, {\"title\": \"Elizabeth North\", \"type\": \"person\", \"age\": 69, \"date\": 618616800000.0}, {\"title\": \"Blake Hart\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 95, \"date\": 75682800000.0}, {\"title\": \"Tim Grant\", \"type\": \"person\", \"avail\": true, \"age\": 38}, {\"title\": \"Elizabeth R. Simpson\", \"type\": \"person\", \"avail\": true, \"age\": 57, \"date\": 402274800000.0}, {\"title\": \"Chloe Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 79, \"remarks\": \"Contradicts airports generously.\"}, {\"title\": \"Charlie Mitchell\", \"type\": \"person\", \"avail\": true, \"age\": 72}, {\"title\": \"Alexandra D. Short\", \"type\": \"person\", \"avail\": true, \"age\": 62}, {\"title\": \"Frank Z. Fraser\", \"type\": \"person\", \"avail\": true, \"age\": 79}, {\"title\": \"Rose Gill\", \"type\": \"person\", \"avail\": true, \"age\": 86, \"date\": 1446591600000.0, \"remarks\": \"Arises educations explicitly.\"}, {\"title\": \"Owen Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 91}]}, {\"title\": \"Fight trades\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Abigail W. Greene\", \"type\": \"person\", \"avail\": true, \"age\": 36}, {\"title\": \"Yvonne Q. Vaughan\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 81, \"date\": 1423436400000.0}, {\"title\": \"Andy Y. McGrath\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 79, \"date\": 1526508000000.0}, {\"title\": \"Alex J. Gibson\", \"type\": \"person\", \"avail\": true, \"age\": 74, \"date\": 1418770800000.0}, {\"title\": \"Dorothy Roberts\", \"type\": \"person\", \"avail\": true, \"age\": 86, \"remarks\": \"Verifies asses explicitly.\"}, {\"title\": \"Toby Parsons\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 231980400000.0}, {\"title\": \"Hannah North\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 184806000000.0}, {\"title\": \"Sophie Q. Bell\", \"type\": \"person\", \"avail\": true, \"age\": 98, \"date\": 1153605600000.0}, {\"title\": \"Hannah U. Bailey\", \"type\": \"person\", \"avail\": true, \"age\": 71, \"date\": 111020400000.0}, {\"title\": \"Brandon J. Clarkson\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 35, \"date\": 1037746800000.0}, {\"title\": \"Jean O. Dickens\", \"type\": \"person\", \"avail\": true, \"age\": 97, \"remarks\": \"Prepares spends thoroughly.\"}, {\"title\": \"Colin Langdon\", \"type\": \"person\", \"age\": 95, \"date\": 1660255200000.0}, {\"title\": \"Phoenix Morrison\", \"type\": \"person\", \"avail\": true, \"age\": 65, \"date\": 780706800000.0, \"remarks\": \"Blushes ages carefully.\"}, {\"title\": \"Sophie E. Bower\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 25}, {\"title\": \"Edward E. Mitchell\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 34, \"date\": 542070000000.0}]}]}, {\"title\": \"Dept. for Schools and Standards\", \"type\": \"department\", \"children\": [{\"title\": \"Fight messages\", \"type\": \"role\", \"children\": [{\"title\": \"Blake Paige\", \"type\": \"person\", \"avail\": true, \"age\": 76, \"remarks\": \"Swims wifes fluently.\"}, {\"title\": \"Max G. Metcalfe\", \"type\": \"person\", \"avail\": true, \"age\": 42}, {\"title\": \"Jessica I. Martin\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 659574000000.0}, {\"title\": \"Victor C. Roberts\", \"type\": \"person\", \"avail\": true, \"age\": 79, \"date\": 1599948000000.0}, {\"title\": \"Lauren Hamilton\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 1228258800000.0}, {\"title\": \"Jessica W. Bell\", \"type\": \"person\", \"avail\": true, \"age\": 94, \"date\": 316825200000.0}, {\"title\": \"Pat Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 721609200000.0}, {\"title\": \"Toby Poole\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"date\": 1659996000000.0, \"remarks\": \"Admits joins perfectly.\"}, {\"title\": \"Frances Z. Parr\", \"type\": \"person\", \"state\": \"s\", \"age\": 52}, {\"title\": \"Frances Randall\", \"type\": \"person\", \"avail\": true, \"age\": 44, \"date\": 365983200000.0}, {\"title\": \"Casey Gibson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 72, \"remarks\": \"Sanctions routines passionately.\"}, {\"title\": \"Emma Parsons\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 303692400000.0, \"remarks\": \"Wanders mixtures remarkably.\"}, {\"title\": \"Austin Gray\", \"type\": \"person\", \"avail\": true, \"age\": 24, \"date\": 904255200000.0}, {\"title\": \"Colin F. Wilkins\", \"type\": \"person\", \"avail\": true, \"age\": 72, \"date\": 1446418800000.0, \"remarks\": \"Hinders teaches well.\"}]}, {\"title\": \"Eye grasses\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Eric Hemmings\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"date\": 1368914400000.0, \"remarks\": \"Weaves lows boldly.\"}, {\"title\": \"Olivia G. Cornish\", \"type\": \"person\", \"avail\": true, \"age\": 65, \"date\": 1144792800000.0}, {\"title\": \"Max M. Hart\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 1486594800000.0}, {\"title\": \"Edward Short\", \"type\": \"person\", \"avail\": true, \"age\": 84, \"date\": 313455600000.0}, {\"title\": \"Irene R. Simpson\", \"type\": \"person\", \"avail\": true, \"age\": 54}, {\"title\": \"Daryl X. Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 63}]}, {\"title\": \"Saw insides\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Daryl Kerr\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 53, \"date\": 1233788400000.0, \"remarks\": \"Counsels generals efficiently.\"}, {\"title\": \"Jane I. Rampling\", \"type\": \"person\", \"avail\": true, \"age\": 21, \"date\": 1291330800000.0}, {\"title\": \"Steven U. Ferguson\", \"type\": \"person\", \"avail\": true, \"age\": 40, \"date\": 1621461600000.0, \"remarks\": \"Scams categories healthily.\"}, {\"title\": \"Corey Fisher\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 35, \"date\": 1285192800000.0}, {\"title\": \"Stephanie Rampling\", \"type\": \"person\", \"avail\": true, \"age\": 25, \"date\": 165625200000.0}, {\"title\": \"Amelia F. Roberts\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 79, \"date\": 1166569200000.0}]}, {\"title\": \"Imagine tensions\", \"type\": \"role\", \"children\": [{\"title\": \"Luke P. Bond\", \"type\": \"person\", \"avail\": true, \"age\": 67}, {\"title\": \"Julia R. Clarkson\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"date\": 751590000000.0}, {\"title\": \"Eric Ince\", \"type\": \"person\", \"avail\": true, \"age\": 31}, {\"title\": \"Toby K. Hodges\", \"type\": \"person\", \"avail\": true, \"age\": 70}, {\"title\": \"Jan E. Johnston\", \"type\": \"person\", \"avail\": true, \"age\": 89, \"date\": 1469052000000.0}, {\"title\": \"Charlie G. Ross\", \"type\": \"person\", \"avail\": true, \"age\": 29}, {\"title\": \"Rose N. Blake\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 52, \"date\": 1148076000000.0}, {\"title\": \"Lillian E. Knox\", \"type\": \"person\", \"avail\": true, \"age\": 21, \"date\": 1576882800000.0}, {\"title\": \"Alison I. Welch\", \"type\": \"person\", \"avail\": true, \"age\": 23}, {\"title\": \"Toby North\", \"type\": \"person\", \"avail\": true, \"age\": 41, \"date\": 284511600000.0}]}, {\"title\": \"Incise dogs\", \"type\": \"role\", \"children\": [{\"title\": \"Wanda B. May\", \"type\": \"person\", \"age\": 72, \"date\": 1010271600000.0}, {\"title\": \"Keith Bower\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 948063600000.0}, {\"title\": \"Una Piper\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 97, \"date\": 486252000000.0, \"remarks\": \"Glitters policies amazingly.\"}, {\"title\": \"Victor J. Scott\", \"type\": \"person\", \"age\": 43, \"date\": 1457910000000.0, \"remarks\": \"Pours prompts rapidly.\"}, {\"title\": \"Matt B. Rampling\", \"type\": \"person\", \"avail\": true, \"age\": 70, \"remarks\": \"Retires softs ethically.\"}, {\"title\": \"Molly Q. Nash\", \"type\": \"person\", \"avail\": true, \"age\": 59, \"date\": 1531519200000.0}, {\"title\": \"Sydney Stewart\", \"type\": \"person\", \"avail\": true, \"age\": 85, \"date\": 440118000000.0}, {\"title\": \"Steven D. Gill\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 21}, {\"title\": \"Sydney N. Piper\", \"type\": \"person\", \"avail\": true, \"age\": 27, \"date\": 582847200000.0}]}, {\"title\": \"Recur creams\", \"type\": \"role\", \"children\": [{\"title\": \"Joshua P. Poole\", \"type\": \"person\", \"age\": 97, \"remarks\": \"Tests crickets jubilantly.\"}]}, {\"title\": \"March wonders\", \"type\": \"role\", \"children\": [{\"title\": \"Elizabeth Lee\", \"type\": \"person\", \"avail\": true, \"age\": 51}, {\"title\": \"Taylor U. Vaughan\", \"type\": \"person\", \"avail\": true, \"age\": 57}, {\"title\": \"Gavin Peake\", \"type\": \"person\", \"avail\": true, \"age\": 91, \"date\": 186620400000.0}, {\"title\": \"Anne K. Hart\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 89, \"date\": 163465200000.0, \"remarks\": \"Controls readings extensively.\"}, {\"title\": \"Brian Hughes\", \"type\": \"person\", \"avail\": true, \"age\": 64, \"remarks\": \"Ponders grandmothers luckily.\"}]}, {\"title\": \"Rewind reasons\", \"type\": \"role\", \"children\": [{\"title\": \"Edward I. Taylor\", \"type\": \"person\", \"avail\": true, \"age\": 93, \"date\": 633394800000.0, \"remarks\": \"Greets cities delightfully.\"}, {\"title\": \"Elizabeth Q. Bower\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 83, \"date\": 543970800000.0}, {\"title\": \"Christian Underwood\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 225068400000.0}]}, {\"title\": \"Donate regulars\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Jennifer I. Manning\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 56, \"date\": 889052400000.0}, {\"title\": \"Karen T. Chapman\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 1140044400000.0}, {\"title\": \"Taylor Mackay\", \"type\": \"person\", \"avail\": true, \"age\": 46}, {\"title\": \"Thomas Ogden\", \"type\": \"person\", \"avail\": true, \"age\": 41, \"date\": 1520809200000.0, \"remarks\": \"Imprisons leads reliably.\"}, {\"title\": \"Blake Carr\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 26, \"remarks\": \"Scorches instances diligently.\"}, {\"title\": \"Charlie J. Hodges\", \"type\": \"person\", \"avail\": true, \"age\": 92, \"date\": 702424800000.0}]}, {\"title\": \"Quit editors\", \"type\": \"role\", \"children\": [{\"title\": \"Lucas K. North\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 76, \"date\": 424994400000.0}, {\"title\": \"Adrian Piper\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 295138800000.0}, {\"title\": \"Jayden Hill\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 93, \"date\": 1248300000000.0, \"remarks\": \"Damps hosts explicitly.\"}, {\"title\": \"Ruth Wilson\", \"type\": \"person\", \"avail\": true, \"age\": 33, \"date\": 505263600000.0}, {\"title\": \"Neil Tucker\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 24}, {\"title\": \"Adam Dickens\", \"type\": \"person\", \"avail\": true, \"age\": 44, \"date\": 1088114400000.0, \"remarks\": \"Guards illegals happily.\"}, {\"title\": \"Sean Alsop\", \"type\": \"person\", \"avail\": true, \"age\": 69, \"date\": 650757600000.0}, {\"title\": \"Kylie D. Powell\", \"type\": \"person\", \"avail\": true, \"age\": 58}, {\"title\": \"Yvonne X. King\", \"type\": \"person\", \"age\": 52, \"date\": 1590703200000.0, \"remarks\": \"Teaches tops respectably.\"}, {\"title\": \"Paul Mitchell\", \"type\": \"person\", \"avail\": true, \"age\": 72, \"date\": 1337205600000.0}, {\"title\": \"Heather Campbell\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 67734000000.0}, {\"title\": \"Sam E. Dyer\", \"type\": \"person\", \"avail\": true, \"age\": 30}, {\"title\": \"Anne F. Mitchell\", \"type\": \"person\", \"avail\": true, \"age\": 28, \"remarks\": \"Constitutes natures earnestly.\"}, {\"title\": \"Frances P. Gill\", \"type\": \"person\", \"avail\": true, \"age\": 69, \"date\": 186361200000.0}, {\"title\": \"Angela J. Anderson\", \"type\": \"person\", \"avail\": true, \"age\": 95}, {\"title\": \"Sarah B. McDonald\", \"type\": \"person\", \"avail\": true, \"age\": 96}, {\"title\": \"Kimberly Peters\", \"type\": \"person\", \"avail\": true, \"age\": 94, \"date\": 697503600000.0}, {\"title\": \"Carl M. May\", \"type\": \"person\", \"avail\": true, \"age\": 34, \"remarks\": \"Implodes stars assuredly.\"}, {\"title\": \"Gordon T. McDonald\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 1083880800000.0}]}, {\"title\": \"Crave horrors\", \"type\": \"role\", \"children\": [{\"title\": \"Andrea D. Newman\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 45}, {\"title\": \"Jonathan B. Vaughan\", \"type\": \"person\", \"avail\": true, \"age\": 26}]}]}, {\"title\": \"Dept. for Doors and Backgrounds\", \"type\": \"department\", \"children\": [{\"title\": \"Reply lifts\", \"type\": \"role\", \"children\": [{\"title\": \"Kimberly Cornish\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 243558000000.0, \"remarks\": \"Shaves slides amazingly.\"}, {\"title\": \"Molly Z. Ball\", \"type\": \"person\", \"avail\": true, \"age\": 45, \"date\": 1403388000000.0, \"remarks\": \"Retches jumps helpfully.\"}, {\"title\": \"Fiona L. Short\", \"type\": \"person\", \"avail\": true, \"age\": 33}, {\"title\": \"Madeleine W. Vaughan\", \"type\": \"person\", \"avail\": true, \"age\": 39, \"remarks\": \"Adjusts designs delicately.\"}, {\"title\": \"Jacob Turner\", \"type\": \"person\", \"avail\": true, \"age\": 47, \"date\": 615592800000.0}, {\"title\": \"Stephen M. Mills\", \"type\": \"person\", \"avail\": true, \"age\": 90, \"date\": 1399586400000.0, \"remarks\": \"Fetches amounts early.\"}]}, {\"title\": \"Persuade natives\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Frances J. Blake\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 89, \"remarks\": \"Cools midnights suitably.\"}, {\"title\": \"Toby J. Morgan\", \"type\": \"person\", \"age\": 60}, {\"title\": \"Jane McDonald\", \"type\": \"person\", \"avail\": true, \"age\": 64, \"date\": 986162400000.0}, {\"title\": \"Una Robertson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 70, \"date\": 647733600000.0, \"remarks\": \"Flaps structures fluently.\"}, {\"title\": \"Bobbie O. Watson\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 28, \"remarks\": \"States brothers extraordinarily.\"}, {\"title\": \"Gordon Lawrence\", \"type\": \"person\", \"avail\": true, \"age\": 29, \"date\": 1221861600000.0}, {\"title\": \"Ryan K. Dickens\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 21, \"remarks\": \"Shears levels interestingly.\"}, {\"title\": \"Michelle Howard\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 92, \"date\": 823129200000.0}, {\"title\": \"Theresa Nash\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 29, \"date\": 733788000000.0}, {\"title\": \"Max McDonald\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 82, \"date\": 1511218800000.0, \"remarks\": \"Improves histories intently.\"}, {\"title\": \"Emma A. Black\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 197938800000.0, \"remarks\": \"Hustles beginnings happily.\"}, {\"title\": \"Brandon L. Turner\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 40, \"remarks\": \"Scolds angers deeply.\"}, {\"title\": \"Andy Y. Ross\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 519775200000.0, \"remarks\": \"Inflames tests skillfully.\"}]}, {\"title\": \"Rest arrivals\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Jonathan B. McDonald\", \"type\": \"person\", \"avail\": true, \"age\": 81}, {\"title\": \"Jesse Berry\", \"type\": \"person\", \"avail\": true, \"age\": 62}, {\"title\": \"Sydney Harris\", \"type\": \"person\", \"avail\": true, \"age\": 67, \"date\": 586130400000.0}, {\"title\": \"Irene Johnston\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 787791600000.0}, {\"title\": \"Jesse N. Reid\", \"type\": \"person\", \"avail\": true, \"age\": 32, \"date\": 643327200000.0}, {\"title\": \"Nicholas Peters\", \"type\": \"person\", \"avail\": true, \"age\": 46}, {\"title\": \"Heather Abraham\", \"type\": \"person\", \"avail\": true, \"age\": 43, \"date\": 848185200000.0}, {\"title\": \"Christopher Q. Watson\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"remarks\": \"Smoothes obligations brilliantly.\"}, {\"title\": \"Julian B. Marshall\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 156812400000.0}, {\"title\": \"Felicity M. Sharp\", \"type\": \"person\", \"avail\": true, \"age\": 49}, {\"title\": \"Connor Ellison\", \"type\": \"person\", \"avail\": true, \"age\": 68, \"remarks\": \"Scarps guies fortunately.\"}]}, {\"title\": \"Help rows\", \"type\": \"role\", \"children\": [{\"title\": \"Angela A. Coleman\", \"type\": \"person\", \"avail\": true, \"age\": 75}, {\"title\": \"Ian Paige\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"date\": 1026770400000.0}, {\"title\": \"Maria Wilson\", \"type\": \"person\", \"avail\": true, \"age\": 98, \"date\": 426808800000.0}]}, {\"title\": \"Breed girls\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"James Metcalfe\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"remarks\": \"Waxes grandmothers upwardly.\"}, {\"title\": \"Grace McGrath\", \"type\": \"person\", \"avail\": true, \"age\": 30}, {\"title\": \"Joshua Reid\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 38}, {\"title\": \"Abigail H. Hunter\", \"type\": \"person\", \"avail\": true, \"age\": 33, \"date\": 1429308000000.0}, {\"title\": \"Felicity F. Rees\", \"type\": \"person\", \"avail\": true, \"age\": 85, \"remarks\": \"Frees mights significantly.\"}, {\"title\": \"Jesse Graham\", \"type\": \"person\", \"avail\": true, \"age\": 33, \"date\": 1652738400000.0}, {\"title\": \"Frances U. Reid\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 24, \"date\": 210898800000.0}, {\"title\": \"Julia I. Walsh\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 65, \"date\": 737589600000.0, \"remarks\": \"Utters requirements very.\"}, {\"title\": \"Jack Y. Davidson\", \"type\": \"person\", \"avail\": true, \"age\": 62, \"date\": 1566252000000.0, \"remarks\": \"Scorches hamsters immeasurably.\"}, {\"title\": \"Tim Hemmings\", \"type\": \"person\", \"avail\": true, \"age\": 57, \"date\": 1591308000000.0, \"remarks\": \"Sways treats healthily.\"}, {\"title\": \"Carolyn Young\", \"type\": \"person\", \"avail\": true, \"age\": 44}, {\"title\": \"Oliver Randall\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 71, \"date\": 1361919600000.0}, {\"title\": \"Dylan Gibson\", \"type\": \"person\", \"avail\": true, \"age\": 38, \"date\": 1131058800000.0}, {\"title\": \"Pippa H. May\", \"type\": \"person\", \"avail\": true, \"age\": 68}]}, {\"title\": \"Scald acts\", \"type\": \"role\", \"children\": [{\"title\": \"Tim L. Miller\", \"type\": \"person\", \"avail\": true, \"age\": 31, \"date\": 1585864800000.0, \"remarks\": \"Boasts farms easily.\"}, {\"title\": \"Pippa Stewart\", \"type\": \"person\", \"avail\": true, \"age\": 31, \"date\": 718758000000.0}, {\"title\": \"Charlie Young\", \"type\": \"person\", \"age\": 69, \"date\": 827017200000.0, \"remarks\": \"Looks futures reliably.\"}, {\"title\": \"Claire Avery\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 1360018800000.0}, {\"title\": \"Matt Johnston\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 68, \"date\": 1500156000000.0}, {\"title\": \"Frances Underwood\", \"type\": \"person\", \"avail\": true, \"age\": 30, \"date\": 1623276000000.0}, {\"title\": \"Chris A. Walker\", \"type\": \"person\", \"avail\": true, \"age\": 45}, {\"title\": \"Caroline Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 41}, {\"title\": \"Phil Z. Morgan\", \"type\": \"person\", \"avail\": true, \"age\": 50}, {\"title\": \"Peter Peake\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 74, \"date\": 122598000000.0}, {\"title\": \"Jamie Scott\", \"type\": \"person\", \"avail\": true, \"age\": 39, \"date\": 645832800000.0}]}, {\"title\": \"Correct beautifuls\", \"type\": \"role\", \"children\": [{\"title\": \"Matt Q. Duncan\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 90, \"date\": 1204844400000.0}, {\"title\": \"Angela Taylor\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 82}, {\"title\": \"Sonia Wilson\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 98, \"date\": 1093125600000.0, \"remarks\": \"Contrasts efforts explicitly.\"}, {\"title\": \"Emma S. Reid\", \"type\": \"person\", \"avail\": true, \"age\": 42}, {\"title\": \"Victoria D. Butler\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 46}, {\"title\": \"Eddie Q. Newman\", \"type\": \"person\", \"avail\": true, \"age\": 44, \"date\": 7686000000.0}, {\"title\": \"Wanda F. King\", \"type\": \"person\", \"avail\": true, \"age\": 45, \"date\": 410310000000.0}, {\"title\": \"Sue W. Jackson\", \"type\": \"person\", \"avail\": true, \"age\": 57}, {\"title\": \"Jan P. Brown\", \"type\": \"person\", \"state\": \"s\", \"age\": 58, \"date\": 432856800000.0}, {\"title\": \"Nicholas T. Sutherland\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 21, \"date\": 1125525600000.0}, {\"title\": \"Rebecca Rampling\", \"type\": \"person\", \"state\": \"s\", \"age\": 42, \"date\": 1195945200000.0}, {\"title\": \"Penelope Grant\", \"type\": \"person\", \"avail\": true, \"age\": 89, \"date\": 703893600000.0, \"remarks\": \"Tears menus usefully.\"}, {\"title\": \"Eddie Z. Duncan\", \"type\": \"person\", \"avail\": true, \"age\": 42}, {\"title\": \"Michael Reid\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 1288998000000.0}, {\"title\": \"Michelle Hughes\", \"type\": \"person\", \"avail\": true, \"age\": 27, \"date\": 1144620000000.0}, {\"title\": \"Connor S. Ball\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 70}, {\"title\": \"Jan K. Scott\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 53, \"date\": 1236726000000.0}, {\"title\": \"Max Abraham\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"remarks\": \"Hopes girlfriends elegantly.\"}, {\"title\": \"Frances B. McLean\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 97, \"remarks\": \"Complains visuals rapidly.\"}]}, {\"title\": \"Change chains\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Kylie Buckland\", \"type\": \"person\", \"state\": \"h\", \"age\": 35}, {\"title\": \"Kelly W. Lewis\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"date\": 1092520800000.0}]}]}]"
  },
  {
    "path": "docs/assets/json/fixture_department_1k_3_6_t_c.json",
    "content": "{\"types\": {\"department\": {\"icon\": \"bi bi-diagram-3\", \"colspan\": true}, \"role\": {\"icon\": \"bi bi-microsoft-teams\", \"colspan\": true}, \"person\": {\"icon\": \"bi bi-person\"}}, \"columns\": [{\"title\": \"Title\", \"id\": \"*\", \"width\": \"250px\"}, {\"title\": \"Age\", \"id\": \"age\", \"width\": \"50px\", \"html\": \"<input type=number min=0 tabindex='-1'>\", \"classes\": \"wb-helper-end\"}, {\"title\": \"Date\", \"id\": \"date\", \"width\": \"100px\", \"html\": \"<input type=date tabindex=\\\"-1\\\">\"}, {\"title\": \"Status\", \"id\": \"state\", \"width\": \"70px\", \"html\": \"<select tabindex=\\\"-1\\\">\\n                <option value=\\\"h\\\">Happy</option>\\n                <option value=\\\"s\\\">Sad</option>\\n                </select>\\n                \"}, {\"title\": \"Avail\", \"id\": \"avail\", \"width\": \"30px\", \"html\": \"<imput type=checkbox tabindex=\\\"-1\\\">\"}, {\"title\": \"Remarks\", \"id\": \"remarks\", \"width\": \"*\", \"html\": \"<input type=text tabindex='-1'>\"}], \"children\": [{\"title\": \"Dept. for Fails and Pounds\", \"type\": \"department\", \"children\": [{\"title\": \"Forget visuals\", \"type\": \"role\"}, {\"title\": \"Treasure designers\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Zoe M. Rampling\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 92, \"date\": 1048028400000.0}, {\"title\": \"Carolyn Wilkins\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"date\": 879375600000.0}, {\"title\": \"Diane Vance\", \"type\": \"person\", \"avail\": true, \"age\": 66, \"date\": 289609200000.0, \"remarks\": \"Improves desires helpfully.\"}, {\"title\": \"Lauren Rees\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 57, \"remarks\": \"Imposes birthdaies unbelievably.\"}, {\"title\": \"Audrey Miller\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 432252000000.0}, {\"title\": \"David Marshall\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 43}, {\"title\": \"Richard Hemmings\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 1106262000000.0, \"remarks\": \"Implants bands greatly.\"}, {\"title\": \"Anthony C. Peake\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"remarks\": \"Stirs antelopes zestfully.\"}, {\"title\": \"Alan Terry\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 97, \"date\": 1220479200000.0}, {\"title\": \"Max May\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 1572303600000.0, \"remarks\": \"Measures middles warmly.\"}, {\"title\": \"Nicola G. Scott\", \"type\": \"person\", \"avail\": true, \"age\": 66}, {\"title\": \"Ian C. Welch\", \"type\": \"person\", \"avail\": true, \"age\": 76, \"date\": 926546400000.0}, {\"title\": \"Christian G. Glover\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 45, \"date\": 1080428400000.0}, {\"title\": \"Corey A. Alsop\", \"type\": \"person\", \"avail\": true, \"age\": 29}, {\"title\": \"Paul McDonald\", \"type\": \"person\", \"age\": 75, \"remarks\": \"Understands moms amazingly.\"}, {\"title\": \"Chris Lewis\", \"type\": \"person\", \"age\": 62, \"date\": 1059516000000.0}, {\"title\": \"Taylor C. Lyman\", \"type\": \"person\", \"avail\": true, \"age\": 91, \"date\": 1500933600000.0}]}, {\"title\": \"Point securities\", \"type\": \"role\", \"children\": [{\"title\": \"Jamie A. Gill\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 92}, {\"title\": \"Una Sutherland\", \"type\": \"person\", \"avail\": true, \"age\": 93, \"date\": 687222000000.0}, {\"title\": \"Ian D. Hamilton\", \"type\": \"person\", \"avail\": true, \"age\": 44, \"date\": 574383600000.0, \"remarks\": \"Closes fails carefully.\"}, {\"title\": \"Felicity Morrison\", \"type\": \"person\", \"avail\": true, \"age\": 91, \"date\": 1028844000000.0}, {\"title\": \"Eric Glover\", \"type\": \"person\", \"avail\": true, \"age\": 21}, {\"title\": \"Tracey I. Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 65, \"remarks\": \"Deprives notes considerately.\"}, {\"title\": \"Julian S. Walker\", \"type\": \"person\", \"avail\": true, \"age\": 56}, {\"title\": \"Taylor Nash\", \"type\": \"person\", \"avail\": true, \"age\": 30, \"date\": 1272751200000.0, \"remarks\": \"Caresses beginnings truly.\"}, {\"title\": \"Pippa Y. Piper\", \"type\": \"person\", \"avail\": true, \"age\": 64}, {\"title\": \"Kelly C. Buckland\", \"type\": \"person\", \"avail\": true, \"age\": 66}, {\"title\": \"Victoria Johnston\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 1630274400000.0}, {\"title\": \"William Z. Turner\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 81, \"remarks\": \"Presets healths poignantly.\"}, {\"title\": \"Michelle W. Ross\", \"type\": \"person\", \"avail\": true, \"age\": 73, \"date\": 583365600000.0}]}, {\"title\": \"Resell courages\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Gavin S. Rees\", \"type\": \"person\", \"avail\": true, \"age\": 74}, {\"title\": \"Casey R. Poole\", \"type\": \"person\", \"avail\": true, \"age\": 33, \"date\": 1363993200000.0}, {\"title\": \"Ruth S. Oliver\", \"type\": \"person\", \"avail\": true, \"age\": 34, \"date\": 273452400000.0}, {\"title\": \"Taylor Anderson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 66, \"date\": 805068000000.0, \"remarks\": \"Treads texts gleefully.\"}, {\"title\": \"Una Sanderson\", \"type\": \"person\", \"avail\": true, \"age\": 85, \"date\": 1275602400000.0}, {\"title\": \"Sam D. Terry\", \"type\": \"person\", \"avail\": true, \"age\": 78, \"date\": 481932000000.0}, {\"title\": \"John James\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"remarks\": \"Loves kids markedly.\"}, {\"title\": \"Carolyn C. Davidson\", \"type\": \"person\", \"age\": 31}, {\"title\": \"Kyle A. Reid\", \"type\": \"person\", \"avail\": true, \"age\": 54, \"date\": 1499119200000.0, \"remarks\": \"Melts sells markedly.\"}, {\"title\": \"Keith Bond\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 54, \"date\": 38358000000.0}, {\"title\": \"Penelope A. Rampling\", \"type\": \"person\", \"avail\": true, \"age\": 95}, {\"title\": \"Deirdre C. Skinner\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 927410400000.0}, {\"title\": \"Leonard Slater\", \"type\": \"person\", \"avail\": true, \"age\": 40, \"date\": 1561586400000.0, \"remarks\": \"Feels weathers graciously.\"}, {\"title\": \"Austin Sutherland\", \"type\": \"person\", \"avail\": true, \"age\": 47}, {\"title\": \"Charles Lyman\", \"type\": \"person\", \"avail\": true, \"age\": 40, \"date\": 571964400000.0}, {\"title\": \"Nathan N. Ross\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 52}, {\"title\": \"Chris Oliver\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 30, \"remarks\": \"Bends ages appropriately.\"}, {\"title\": \"Sydney F. Wilkins\", \"type\": \"person\", \"avail\": true, \"age\": 66, \"date\": 1041030000000.0}, {\"title\": \"Corey D. Bailey\", \"type\": \"person\", \"avail\": true, \"age\": 92}]}, {\"title\": \"Salve hours\", \"type\": \"role\", \"children\": [{\"title\": \"Jasmine Lawrence\", \"type\": \"person\", \"avail\": true, \"age\": 50}, {\"title\": \"Lauren B. Hudson\", \"type\": \"person\", \"avail\": true, \"age\": 96}]}, {\"title\": \"Detach fews\", \"type\": \"role\", \"children\": [{\"title\": \"Ian Black\", \"type\": \"person\", \"age\": 45, \"remarks\": \"Suffers failures upbeat.\"}, {\"title\": \"Joan P. May\", \"type\": \"person\", \"age\": 22}, {\"title\": \"Blake P. Murray\", \"type\": \"person\", \"avail\": true, \"age\": 45, \"date\": 118105200000.0, \"remarks\": \"Ponders priorities appropriately.\"}, {\"title\": \"Stephanie Piper\", \"type\": \"person\", \"avail\": true, \"age\": 54, \"date\": 185670000000.0}, {\"title\": \"Stephanie Mitchell\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 27}, {\"title\": \"Alexandra Arnold\", \"type\": \"person\", \"age\": 41}, {\"title\": \"Fiona U. Sharp\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 59, \"date\": 143247600000.0, \"remarks\": \"Wrings marriages appropriately.\"}, {\"title\": \"Anthony G. Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 80, \"date\": 345164400000.0, \"remarks\": \"Stores motors freely.\"}, {\"title\": \"Austin G. Hodges\", \"type\": \"person\", \"avail\": true, \"age\": 87, \"date\": 597884400000.0}, {\"title\": \"Faith U. Dowd\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 472604400000.0}, {\"title\": \"Cameron X. Welch\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 53, \"date\": 879634800000.0, \"remarks\": \"Sings guidances efficiently.\"}, {\"title\": \"Jack K. Jones\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 1489532400000.0, \"remarks\": \"Lands lawyers happily.\"}, {\"title\": \"Chloe Buckland\", \"type\": \"person\", \"avail\": true, \"age\": 53, \"date\": 525564000000.0}, {\"title\": \"Emma Tucker\", \"type\": \"person\", \"state\": \"s\", \"age\": 49, \"date\": 1467324000000.0}, {\"title\": \"Colin Davidson\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"date\": 1069110000000.0}, {\"title\": \"Lou MacDonald\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 33, \"date\": 588895200000.0, \"remarks\": \"Consoles charities generously.\"}]}, {\"title\": \"Indulge fishings\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Austin North\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 49, \"date\": 941497200000.0}, {\"title\": \"Jamie Mackay\", \"type\": \"person\", \"age\": 89, \"remarks\": \"Chips tooths substantially.\"}, {\"title\": \"Andrew Brown\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 83, \"date\": 1208469600000.0}, {\"title\": \"Stephanie W. Fraser\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"date\": 725324400000.0}, {\"title\": \"Donna Z. Chapman\", \"type\": \"person\", \"avail\": true, \"age\": 97, \"date\": 918255600000.0, \"remarks\": \"Smashes ages touchingly.\"}, {\"title\": \"Deirdre J. Wallace\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 70}, {\"title\": \"Eddie Alsop\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 42}, {\"title\": \"Kylie Ince\", \"type\": \"person\", \"avail\": true, \"age\": 25, \"remarks\": \"Moulds positives exclusively.\"}, {\"title\": \"Liam Hardacre\", \"type\": \"person\", \"avail\": true, \"age\": 62}, {\"title\": \"John G. Knox\", \"type\": \"person\", \"age\": 53, \"date\": 840146400000.0, \"remarks\": \"Paints funerals clearly.\"}, {\"title\": \"Taylor E. Rees\", \"type\": \"person\", \"avail\": true, \"age\": 98, \"date\": 114994800000.0, \"remarks\": \"Supports asides cleanly.\"}, {\"title\": \"Keith M. Duncan\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 36, \"date\": 1132095600000.0}, {\"title\": \"Sarah I. Dickens\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 106873200000.0}, {\"title\": \"Eddie Manning\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 75, \"date\": 670629600000.0}, {\"title\": \"Jan O. Hemmings\", \"type\": \"person\", \"avail\": true, \"age\": 98, \"date\": 1116280800000.0}]}]}, {\"title\": \"Dept. for Forces and Entrances\", \"type\": \"department\", \"children\": [{\"title\": \"Shit slips\", \"type\": \"role\", \"expanded\": true}, {\"title\": \"Fry juniors\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Kelly Alsop\", \"type\": \"person\", \"avail\": true, \"age\": 65, \"date\": 1151100000000.0}, {\"title\": \"Brian P. Anderson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 75}, {\"title\": \"Dominic Watson\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 1137452400000.0, \"remarks\": \"Enlightens sorts courageously.\"}, {\"title\": \"John Greene\", \"type\": \"person\", \"avail\": true, \"age\": 57, \"remarks\": \"Shaves weaknesses punctually.\"}, {\"title\": \"Samantha Randall\", \"type\": \"person\", \"avail\": true, \"age\": 46}, {\"title\": \"Thomas Jones\", \"type\": \"person\", \"avail\": true, \"age\": 71, \"date\": 1299279600000.0, \"remarks\": \"Persuades telephones comfortably.\"}, {\"title\": \"Eddie Langdon\", \"type\": \"person\", \"avail\": true, \"age\": 70, \"date\": 1350770400000.0}, {\"title\": \"Sarah Alsop\", \"type\": \"person\", \"avail\": true, \"age\": 21}, {\"title\": \"Virginia B. Reid\", \"type\": \"person\", \"avail\": true, \"age\": 30, \"remarks\": \"Expresses toughs optimistically.\"}, {\"title\": \"Jake R. Rampling\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 69, \"date\": 50886000000.0}, {\"title\": \"Virginia Q. Coleman\", \"type\": \"person\", \"avail\": true, \"age\": 43, \"date\": 1185055200000.0, \"remarks\": \"Ceases codes smoothly.\"}, {\"title\": \"Kylie U. May\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 38, \"remarks\": \"Dips descriptions magically.\"}, {\"title\": \"Simon Davies\", \"type\": \"person\", \"avail\": true, \"age\": 23}, {\"title\": \"Boris Reid\", \"type\": \"person\", \"avail\": true, \"age\": 89, \"date\": 1462140000000.0}, {\"title\": \"Jean I. North\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 45}, {\"title\": \"Christopher W. Alsop\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 88, \"date\": 1171321200000.0, \"remarks\": \"Contests pleasures fervently.\"}, {\"title\": \"Simon Clark\", \"type\": \"person\", \"avail\": true, \"age\": 30, \"date\": 295830000000.0, \"remarks\": \"Persuades lines optimistically.\"}, {\"title\": \"Carol U. Langdon\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 72}]}, {\"title\": \"Exist turtles\", \"type\": \"role\", \"children\": [{\"title\": \"Ava Cameron\", \"type\": \"person\", \"avail\": true, \"age\": 26}, {\"title\": \"Julian Russell\", \"type\": \"person\", \"avail\": true, \"age\": 83}, {\"title\": \"Bella Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 24, \"date\": 1096063200000.0}]}, {\"title\": \"Grip restaurants\", \"type\": \"role\", \"children\": [{\"title\": \"Trevor N. Murray\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 26, \"date\": 1406239200000.0}, {\"title\": \"Nathan Brown\", \"type\": \"person\", \"age\": 29}, {\"title\": \"Mary A. Gray\", \"type\": \"person\", \"age\": 69, \"remarks\": \"Shears presses restfully.\"}, {\"title\": \"Alison Miller\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 84, \"date\": 521330400000.0}, {\"title\": \"Austin C. Fisher\", \"type\": \"person\", \"state\": \"h\", \"age\": 83, \"date\": 473814000000.0}, {\"title\": \"Luke R. Johnston\", \"type\": \"person\", \"avail\": true, \"age\": 91, \"date\": 1648422000000.0}, {\"title\": \"Nicholas S. Dickens\", \"type\": \"person\", \"avail\": true, \"age\": 87, \"date\": 1237503600000.0}, {\"title\": \"Jesse Harris\", \"type\": \"person\", \"avail\": true, \"age\": 52, \"date\": 469321200000.0}, {\"title\": \"Dan Piper\", \"type\": \"person\", \"avail\": true, \"age\": 88, \"date\": 1317852000000.0, \"remarks\": \"Buys rises openly.\"}, {\"title\": \"Victoria K. Hart\", \"type\": \"person\", \"age\": 52, \"date\": 1093384800000.0, \"remarks\": \"Retches crickets longingly.\"}, {\"title\": \"Max Hodges\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 73, \"date\": 145494000000.0, \"remarks\": \"Inputs deposits valiantly.\"}, {\"title\": \"Zoe Clark\", \"type\": \"person\", \"avail\": true, \"age\": 28, \"date\": 1288911600000.0}, {\"title\": \"Andrea J. Piper\", \"type\": \"person\", \"avail\": true, \"age\": 53}, {\"title\": \"Brian Dickens\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 85, \"date\": 165625200000.0}, {\"title\": \"Lucas G. Avery\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 36, \"date\": 1442527200000.0, \"remarks\": \"Wets hells positively.\"}, {\"title\": \"Bella J. Dowd\", \"type\": \"person\", \"avail\": true, \"age\": 87}]}, {\"title\": \"Overtake temporaries\", \"type\": \"role\"}, {\"title\": \"Imperil cables\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Matt Lawrence\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 96, \"date\": 235782000000.0}, {\"title\": \"Daryl B. Randall\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 1580166000000.0}, {\"title\": \"Jake V. Burgess\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 73}, {\"title\": \"Dylan Howard\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 59}]}, {\"title\": \"Gash refuses\", \"type\": \"role\"}, {\"title\": \"Sleep couples\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Piers Q. Rutherford\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 197334000000.0}, {\"title\": \"Lucas U. Kelly\", \"type\": \"person\", \"avail\": true, \"age\": 56, \"date\": 657846000000.0}, {\"title\": \"Chris T. Black\", \"type\": \"person\", \"avail\": true, \"age\": 81, \"date\": 1177884000000.0}, {\"title\": \"Phoenix Q. Burgess\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 61, \"date\": 629766000000.0}, {\"title\": \"Isaac A. Thomson\", \"type\": \"person\", \"avail\": true, \"age\": 84, \"date\": 430437600000.0, \"remarks\": \"Retains boats securely.\"}, {\"title\": \"Anna North\", \"type\": \"person\", \"state\": \"s\", \"age\": 25, \"date\": 1482620400000.0, \"remarks\": \"Consents fishes intensely.\"}, {\"title\": \"Jean E. Turner\", \"type\": \"person\", \"avail\": true, \"age\": 79, \"date\": 1293836400000.0, \"remarks\": \"Divides excuses thoroughly.\"}, {\"title\": \"Jesse Q. Gill\", \"type\": \"person\", \"avail\": true, \"age\": 40, \"remarks\": \"Motivates focuses deeply.\"}, {\"title\": \"Eric E. Hardacre\", \"type\": \"person\", \"avail\": true, \"age\": 95}]}]}, {\"title\": \"Dept. for Walks and Pasts\", \"type\": \"department\", \"children\": [{\"title\": \"Crib choices\", \"type\": \"role\", \"children\": [{\"title\": \"Alexander G. Lewis\", \"type\": \"person\", \"avail\": true, \"age\": 92, \"date\": 1192226400000.0, \"remarks\": \"Realizes breaks cleanly.\"}, {\"title\": \"Theresa Bailey\", \"type\": \"person\", \"state\": \"s\", \"age\": 50, \"remarks\": \"Scats shelters spectacularly.\"}, {\"title\": \"Wanda Sutherland\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"date\": 677109600000.0, \"remarks\": \"Sails points candidly.\"}, {\"title\": \"Charles H. Oliver\", \"type\": \"person\", \"age\": 47}, {\"title\": \"Diana C. Ferguson\", \"type\": \"person\", \"avail\": true, \"age\": 67, \"remarks\": \"Pouts rewards agreeably.\"}, {\"title\": \"Dylan Berry\", \"type\": \"person\", \"avail\": true, \"age\": 97}]}, {\"title\": \"Express functions\", \"type\": \"role\", \"children\": [{\"title\": \"Eddie Simpson\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"date\": 767570400000.0}]}, {\"title\": \"Correct hands\", \"type\": \"role\", \"children\": [{\"title\": \"Diane Fisher\", \"type\": \"person\", \"avail\": true, \"age\": 30, \"date\": 25484400000.0}, {\"title\": \"Heather O. Blake\", \"type\": \"person\", \"avail\": true, \"age\": 51}, {\"title\": \"Adrian M. Miller\", \"type\": \"person\", \"avail\": true, \"age\": 61}, {\"title\": \"James Sutherland\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 36, \"date\": 1162072800000.0}, {\"title\": \"Audrey May\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 58, \"date\": 1072825200000.0}, {\"title\": \"Melanie Edmunds\", \"type\": \"person\", \"avail\": true, \"age\": 69, \"date\": 699922800000.0}, {\"title\": \"Jasmine Oliver\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 23, \"date\": 1206399600000.0}, {\"title\": \"Kylie Morgan\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 97}, {\"title\": \"Dominic L. Taylor\", \"type\": \"person\", \"avail\": true, \"age\": 67, \"remarks\": \"Induces passages gracefully.\"}, {\"title\": \"Kylie J. White\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 65, \"date\": 330904800000.0}, {\"title\": \"Sue M. Roberts\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 1485126000000.0}, {\"title\": \"Jamie Slater\", \"type\": \"person\", \"avail\": true, \"age\": 91}, {\"title\": \"Cameron Turner\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 41, \"date\": 1491256800000.0}, {\"title\": \"Penelope H. Grant\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"date\": 183164400000.0}, {\"title\": \"Christopher Z. North\", \"type\": \"person\", \"avail\": true, \"age\": 88, \"date\": 667090800000.0}, {\"title\": \"Emily Grant\", \"type\": \"person\", \"state\": \"s\", \"age\": 31, \"date\": 1294786800000.0}, {\"title\": \"Justin Mathis\", \"type\": \"person\", \"avail\": true, \"age\": 47, \"date\": 1609455600000.0, \"remarks\": \"Crowds exercises entirely.\"}]}, {\"title\": \"Inherit draws\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Jake R. Walsh\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 70, \"date\": 178844400000.0, \"remarks\": \"Bears functions wholly.\"}, {\"title\": \"Phil Simpson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 92, \"date\": 1098568800000.0, \"remarks\": \"Phones efficiencies bravely.\"}, {\"title\": \"William Q. Ferguson\", \"type\": \"person\", \"avail\": true, \"age\": 52, \"date\": 898380000000.0}]}, {\"title\": \"Move skies\", \"type\": \"role\", \"children\": [{\"title\": \"Rose May\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 89, \"date\": 1491170400000.0}, {\"title\": \"Harry James\", \"type\": \"person\", \"avail\": true, \"age\": 81, \"date\": 970783200000.0}, {\"title\": \"Edward Z. Taylor\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 26}, {\"title\": \"Alex Q. Henderson\", \"type\": \"person\", \"avail\": true, \"age\": 62}, {\"title\": \"Jesse Ross\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 38}, {\"title\": \"Kimberly Berry\", \"type\": \"person\", \"avail\": true, \"age\": 93}, {\"title\": \"Harry T. McLean\", \"type\": \"person\", \"avail\": true, \"age\": 59}, {\"title\": \"Blake P. Walsh\", \"type\": \"person\", \"avail\": true, \"age\": 89}, {\"title\": \"Kyle D. Gill\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 1132527600000.0}, {\"title\": \"Gordon J. Black\", \"type\": \"person\", \"avail\": true, \"age\": 87}, {\"title\": \"Stephanie Springer\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 74, \"date\": 268959600000.0}, {\"title\": \"Madeleine Y. Brown\", \"type\": \"person\", \"avail\": true, \"age\": 46}, {\"title\": \"Samantha O. Powell\", \"type\": \"person\", \"state\": \"s\", \"age\": 71}, {\"title\": \"Molly S. Anderson\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 60, \"date\": 315615600000.0}, {\"title\": \"Zoe P. Hemmings\", \"type\": \"person\", \"avail\": true, \"age\": 87, \"date\": 1437343200000.0, \"remarks\": \"Addresses shirts absolutely.\"}, {\"title\": \"Victoria J. Cornish\", \"type\": \"person\", \"avail\": true, \"age\": 40}]}, {\"title\": \"Beat meats\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Hannah Y. Gray\", \"type\": \"person\", \"age\": 57, \"date\": 1449529200000.0}, {\"title\": \"Andy Clark\", \"type\": \"person\", \"state\": \"s\", \"age\": 46, \"date\": 512434800000.0}, {\"title\": \"Gabrielle B. Hart\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 82, \"date\": 907624800000.0}, {\"title\": \"Sydney Black\", \"type\": \"person\", \"avail\": true, \"age\": 70}, {\"title\": \"Andy Tucker\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 53}, {\"title\": \"Tim A. Alsop\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 68, \"date\": 499129200000.0}, {\"title\": \"Carl Nash\", \"type\": \"person\", \"state\": \"h\", \"age\": 39, \"date\": 851900400000.0}, {\"title\": \"Megan Y. Burgess\", \"type\": \"person\", \"avail\": true, \"age\": 34}, {\"title\": \"Justin Duncan\", \"type\": \"person\", \"avail\": true, \"age\": 62, \"date\": 1328914800000.0}, {\"title\": \"Michelle Mackay\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 73, \"date\": 512348400000.0, \"remarks\": \"Spills situations handily.\"}, {\"title\": \"Heather C. Peake\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 91, \"date\": 801871200000.0}, {\"title\": \"Anthony W. King\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 1519340400000.0}, {\"title\": \"Audrey U. Hemmings\", \"type\": \"person\", \"avail\": true, \"age\": 97, \"date\": 1343599200000.0, \"remarks\": \"Recognizes hyenas rightfully.\"}, {\"title\": \"Victoria Miller\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 73}, {\"title\": \"Frances Smith\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 53, \"date\": 257814000000.0}, {\"title\": \"Sue O. Fisher\", \"type\": \"person\", \"avail\": true, \"age\": 84}, {\"title\": \"Lou N. Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"date\": 832111200000.0, \"remarks\": \"Roars frames universally.\"}]}, {\"title\": \"Live spaces\", \"type\": \"role\", \"children\": [{\"title\": \"Sean Hudson\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 289177200000.0, \"remarks\": \"Increases coaches infinitely.\"}, {\"title\": \"Audrey F. Jones\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 26, \"date\": 1278626400000.0, \"remarks\": \"Leans nothings extensively.\"}, {\"title\": \"Charlie Pullman\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 49}, {\"title\": \"Virginia Hardacre\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 730854000000.0}, {\"title\": \"Michael Abraham\", \"type\": \"person\", \"avail\": true, \"age\": 88, \"date\": 980204400000.0}, {\"title\": \"Daryl P. Manning\", \"type\": \"person\", \"avail\": true, \"age\": 45}, {\"title\": \"Thomas E. Brown\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"date\": 503449200000.0}, {\"title\": \"Natalie Dyer\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 59, \"date\": 1304028000000.0}, {\"title\": \"Matt H. Campbell\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 52, \"date\": 1569276000000.0}, {\"title\": \"Joanne Arnold\", \"type\": \"person\", \"avail\": true, \"age\": 48}, {\"title\": \"Jennifer Q. Howard\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 54}]}, {\"title\": \"Blush agreements\", \"type\": \"role\", \"children\": [{\"title\": \"Chloe S. Henderson\", \"type\": \"person\", \"age\": 77}, {\"title\": \"Jessica Gill\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"date\": 192927600000.0, \"remarks\": \"Inputs prints kindly.\"}, {\"title\": \"Gabrielle C. Black\", \"type\": \"person\", \"avail\": true, \"age\": 35, \"remarks\": \"Scabs suspects knowledgeably.\"}, {\"title\": \"Keith Grant\", \"type\": \"person\", \"avail\": true, \"age\": 55, \"date\": 1656972000000.0}, {\"title\": \"Heather Vaughan\", \"type\": \"person\", \"avail\": true, \"age\": 84, \"date\": 4662000000.0}, {\"title\": \"Cameron Randall\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 81, \"date\": 637887600000.0, \"remarks\": \"Flings bunches helpfully.\"}, {\"title\": \"Sydney N. Quinn\", \"type\": \"person\", \"avail\": true, \"age\": 55, \"date\": 1582153200000.0}, {\"title\": \"Sophie V. Payne\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 72140400000.0}, {\"title\": \"Max McGrath\", \"type\": \"person\", \"avail\": true, \"age\": 54}, {\"title\": \"Diane B. Fraser\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"remarks\": \"Winds claims reasonably.\"}, {\"title\": \"Karen Buckland\", \"type\": \"person\", \"avail\": true, \"age\": 27}, {\"title\": \"Warren R. Hemmings\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 27, \"date\": 946854000000.0}, {\"title\": \"Justin May\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 71, \"date\": 1528840800000.0}, {\"title\": \"Toby Rutherford\", \"type\": \"person\", \"avail\": true, \"age\": 34, \"date\": 1418943600000.0}, {\"title\": \"Austin I. McLean\", \"type\": \"person\", \"avail\": true, \"age\": 95, \"date\": 1553727600000.0, \"remarks\": \"Donates holes significantly.\"}]}, {\"title\": \"Plot wests\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Bobbie Fisher\", \"type\": \"person\", \"avail\": true, \"age\": 53, \"date\": 1111359600000.0}, {\"title\": \"Liam Roberts\", \"type\": \"person\", \"avail\": true, \"age\": 22, \"date\": 1228086000000.0}, {\"title\": \"Taylor Johnston\", \"type\": \"person\", \"avail\": true, \"age\": 88}, {\"title\": \"Irene Russell\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 87, \"date\": 1388098800000.0}, {\"title\": \"Stephanie Arnold\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 62, \"date\": 1135724400000.0}, {\"title\": \"Karen S. Coleman\", \"type\": \"person\", \"avail\": true, \"age\": 36}, {\"title\": \"Brandon MacLeod\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 72, \"remarks\": \"States currents whole-heartedly.\"}, {\"title\": \"Kelly Peake\", \"type\": \"person\", \"avail\": true, \"age\": 59, \"date\": 1235775600000.0}, {\"title\": \"Rebecca Terry\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 117068400000.0}, {\"title\": \"Adrian Allan\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"date\": 483746400000.0, \"remarks\": \"Hisses hearts zestfully.\"}, {\"title\": \"Chris Fisher\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 74, \"date\": 169686000000.0}, {\"title\": \"Paul Carr\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 66, \"date\": 451000800000.0}, {\"title\": \"Bobbie James\", \"type\": \"person\", \"avail\": true, \"age\": 22, \"date\": 155862000000.0}, {\"title\": \"Dorothy Langdon\", \"type\": \"person\", \"avail\": true, \"age\": 40, \"date\": 426204000000.0}]}, {\"title\": \"Hurt punches\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Faith Campbell\", \"type\": \"person\", \"avail\": true, \"age\": 87, \"date\": 1650319200000.0, \"remarks\": \"Bets sisters poetically.\"}, {\"title\": \"Michelle Z. Ellison\", \"type\": \"person\", \"avail\": true, \"age\": 81, \"date\": 1044399600000.0, \"remarks\": \"Saddles sources righteously.\"}, {\"title\": \"Dylan G. Dyer\", \"type\": \"person\", \"avail\": true, \"age\": 85}, {\"title\": \"Jessica L. Gibson\", \"type\": \"person\", \"avail\": true, \"age\": 47}]}]}, {\"title\": \"Dept. for Recovers and Recordings\", \"type\": \"department\", \"children\": [{\"title\": \"Construe influences\", \"type\": \"role\", \"children\": [{\"title\": \"Jamie Y. Gill\", \"type\": \"person\", \"avail\": true, \"age\": 86}, {\"title\": \"Diana Ball\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"date\": 674172000000.0}, {\"title\": \"Abigail Roberts\", \"type\": \"person\", \"avail\": true, \"age\": 38}, {\"title\": \"Chris K. Fraser\", \"type\": \"person\", \"avail\": true, \"age\": 54, \"remarks\": \"Lifts childhoods restfully.\"}]}, {\"title\": \"Tread assignments\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Warren Clark\", \"type\": \"person\", \"avail\": true, \"age\": 47, \"date\": 785631600000.0, \"remarks\": \"Stresses safeties optimistically.\"}, {\"title\": \"Charlie W. Bailey\", \"type\": \"person\", \"avail\": true, \"age\": 36}, {\"title\": \"Anthony P. Marshall\", \"type\": \"person\", \"avail\": true, \"age\": 53, \"date\": 1588111200000.0}]}, {\"title\": \"Nip tracks\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Tracey S. Nolan\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 96, \"date\": 527637600000.0}, {\"title\": \"Brandon W. Parr\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 38, \"date\": 1036623600000.0}, {\"title\": \"Diane F. Burgess\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"date\": 1457132400000.0}, {\"title\": \"Brandon Chapman\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 85532400000.0}, {\"title\": \"Deirdre Quinn\", \"type\": \"person\", \"avail\": true, \"age\": 45, \"date\": 97714800000.0}, {\"title\": \"Bella Glover\", \"type\": \"person\", \"avail\": true, \"age\": 95, \"remarks\": \"Passes sticks considerately.\"}, {\"title\": \"Harry Rees\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"remarks\": \"Boxes passes nicely.\"}, {\"title\": \"Hannah K. Wilson\", \"type\": \"person\", \"avail\": true, \"age\": 40, \"date\": 550533600000.0, \"remarks\": \"Knits openings fully.\"}, {\"title\": \"Keith X. Newman\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 88, \"date\": 367797600000.0}, {\"title\": \"Rachel McDonald\", \"type\": \"person\", \"avail\": true, \"age\": 32, \"date\": 1261522800000.0}, {\"title\": \"Toby Henderson\", \"type\": \"person\", \"avail\": true, \"age\": 70, \"date\": 298249200000.0}, {\"title\": \"Frank Anderson\", \"type\": \"person\", \"avail\": true, \"age\": 70, \"remarks\": \"Dares debates courageously.\"}, {\"title\": \"Corey E. Wallace\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 98, \"date\": 64882800000.0}, {\"title\": \"Dylan McDonald\", \"type\": \"person\", \"avail\": true, \"age\": 68, \"date\": 1209852000000.0}, {\"title\": \"Pat E. Glover\", \"type\": \"person\", \"avail\": true, \"age\": 45, \"date\": 686181600000.0}]}, {\"title\": \"Mean boxes\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Angela Oliver\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"date\": 48812400000.0}, {\"title\": \"Stephen A. Hart\", \"type\": \"person\", \"avail\": true, \"age\": 35, \"remarks\": \"Integrates shoes bravely.\"}, {\"title\": \"Evan G. Ross\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 679701600000.0, \"remarks\": \"Saddles affects sympathetically.\"}, {\"title\": \"Faith H. Coleman\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 29, \"remarks\": \"Provides tensions richly.\"}, {\"title\": \"Gabrielle Bailey\", \"type\": \"person\", \"avail\": true, \"age\": 36, \"date\": 1058824800000.0}, {\"title\": \"Stephanie I. Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 22}]}, {\"title\": \"Dispose carpets\", \"type\": \"role\", \"children\": [{\"title\": \"Donna C. Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 84, \"remarks\": \"Praises perceptions calmly.\"}, {\"title\": \"Jamie R. Ince\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 21, \"date\": 1319061600000.0}, {\"title\": \"Sonia Y. Butler\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 55, \"date\": 1367359200000.0}, {\"title\": \"Simon Parr\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 77, \"date\": 1497823200000.0}, {\"title\": \"Kylie Short\", \"type\": \"person\", \"avail\": true, \"age\": 28, \"date\": 52354800000.0}]}, {\"title\": \"Endanger weeks\", \"type\": \"role\", \"children\": [{\"title\": \"Sophie Q. Wright\", \"type\": \"person\", \"avail\": true, \"age\": 25, \"date\": 469321200000.0}, {\"title\": \"Vanessa Martin\", \"type\": \"person\", \"avail\": true, \"age\": 78, \"date\": 771458400000.0}, {\"title\": \"Lillian Roberts\", \"type\": \"person\", \"age\": 39, \"remarks\": \"Sniffs processes jubilantly.\"}, {\"title\": \"Corey B. Knox\", \"type\": \"person\", \"avail\": true, \"age\": 80, \"date\": 1583190000000.0, \"remarks\": \"Vanishes witnesses promptly.\"}, {\"title\": \"Kyle Turner\", \"type\": \"person\", \"avail\": true, \"age\": 28, \"date\": 165193200000.0}]}, {\"title\": \"Waste cups\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"David L. Oliver\", \"type\": \"person\", \"avail\": true, \"age\": 39}, {\"title\": \"Owen Z. Fraser\", \"type\": \"person\", \"avail\": true, \"age\": 52, \"date\": 273193200000.0}, {\"title\": \"Lou Nash\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 966895200000.0}, {\"title\": \"Carolyn S. Smith\", \"type\": \"person\", \"avail\": true, \"age\": 82, \"date\": 53823600000.0}, {\"title\": \"Jennifer Sutherland\", \"type\": \"person\", \"avail\": true, \"age\": 65, \"date\": 401234400000.0}]}, {\"title\": \"Cry hunts\", \"type\": \"role\", \"children\": [{\"title\": \"Steven Davies\", \"type\": \"person\", \"avail\": true, \"age\": 42, \"date\": 479430000000.0}, {\"title\": \"Jake F. North\", \"type\": \"person\", \"age\": 44}, {\"title\": \"Tim Sanderson\", \"type\": \"person\", \"avail\": true, \"age\": 94}, {\"title\": \"Vanessa P. Wallace\", \"type\": \"person\", \"age\": 80}, {\"title\": \"Keith Paterson\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 56, \"date\": 1244325600000.0}, {\"title\": \"Christopher Jackson\", \"type\": \"person\", \"avail\": true, \"age\": 33, \"remarks\": \"Appears sheeps fast.\"}, {\"title\": \"Alison Bond\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 94, \"date\": 1285797600000.0, \"remarks\": \"Offers incomes brilliantly.\"}, {\"title\": \"Christopher B. Forsyth\", \"type\": \"person\", \"avail\": true, \"age\": 79}, {\"title\": \"Jean Grant\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 1360105200000.0, \"remarks\": \"Hinders clubs bravely.\"}, {\"title\": \"Lillian Forsyth\", \"type\": \"person\", \"avail\": true, \"age\": 69, \"remarks\": \"Varies broads busily.\"}, {\"title\": \"Chloe Grant\", \"type\": \"person\", \"avail\": true, \"age\": 71, \"date\": 513986400000.0}, {\"title\": \"Anthony L. Abraham\", \"type\": \"person\", \"avail\": true, \"age\": 86, \"date\": 800834400000.0}, {\"title\": \"Jasmine Reid\", \"type\": \"person\", \"avail\": true, \"age\": 57, \"remarks\": \"Fits belts quickly.\"}]}, {\"title\": \"Cross breasts\", \"type\": \"role\", \"children\": [{\"title\": \"Kylie Miller\", \"type\": \"person\", \"avail\": true, \"age\": 39, \"date\": 1620165600000.0}, {\"title\": \"Pat Greene\", \"type\": \"person\", \"age\": 94, \"date\": 1649714400000.0, \"remarks\": \"Stops essaies beautifully.\"}, {\"title\": \"Daryl Miller\", \"type\": \"person\", \"avail\": true, \"age\": 77}, {\"title\": \"Ryan White\", \"type\": \"person\", \"avail\": true, \"age\": 91, \"date\": 306284400000.0}, {\"title\": \"Sue Morrison\", \"type\": \"person\", \"avail\": true, \"age\": 59, \"date\": 982364400000.0}]}, {\"title\": \"Vary strangers\", \"type\": \"role\", \"children\": [{\"title\": \"Wanda Z. Vance\", \"type\": \"person\", \"avail\": true, \"age\": 81, \"date\": 1415574000000.0, \"remarks\": \"Swallows feels eagerly.\"}, {\"title\": \"Jason Hudson\", \"type\": \"person\", \"avail\": true, \"age\": 97}, {\"title\": \"Sophie Blake\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"date\": 611013600000.0}, {\"title\": \"Thomas Ross\", \"type\": \"person\", \"avail\": true, \"age\": 82, \"date\": 944262000000.0}, {\"title\": \"Adrian MacLeod\", \"type\": \"person\", \"avail\": true, \"age\": 42, \"remarks\": \"Blushes disks wholly.\"}, {\"title\": \"Dylan W. Mathis\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 33}, {\"title\": \"Zoe Dickens\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 55, \"remarks\": \"Brings targets explicitly.\"}, {\"title\": \"Andrea Morrison\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 634604400000.0}, {\"title\": \"Carolyn Hill\", \"type\": \"person\", \"avail\": true, \"age\": 58, \"date\": 462837600000.0, \"remarks\": \"Folds equivalents securely.\"}, {\"title\": \"Oliver E. Lyman\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 82, \"date\": 449877600000.0}, {\"title\": \"Connor S. Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 38, \"date\": 1417388400000.0}, {\"title\": \"Faith R. Dyer\", \"type\": \"person\", \"avail\": true, \"age\": 77}, {\"title\": \"Pat P. Brown\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"remarks\": \"Sparkles matters markedly.\"}, {\"title\": \"Tracey U. MacDonald\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 64, \"date\": 477097200000.0}, {\"title\": \"Victoria C. Hart\", \"type\": \"person\", \"age\": 58, \"remarks\": \"Attacks prides early.\"}, {\"title\": \"Julian M. Ince\", \"type\": \"person\", \"avail\": true, \"age\": 84}, {\"title\": \"Jennifer Brown\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 57}]}]}, {\"title\": \"Dept. for Fees and Skunks\", \"type\": \"department\", \"children\": [{\"title\": \"Subtract connections\", \"type\": \"role\", \"children\": [{\"title\": \"Sebastian Simpson\", \"type\": \"person\", \"avail\": true, \"age\": 84, \"date\": 135126000000.0}, {\"title\": \"Harry K. Butler\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 47, \"date\": 559954800000.0}, {\"title\": \"Julia N. Vaughan\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 1517007600000.0}, {\"title\": \"Edward Rampling\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 63}, {\"title\": \"Stewart Vance\", \"type\": \"person\", \"state\": \"h\", \"age\": 36}, {\"title\": \"Jonathan Paige\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 268354800000.0, \"remarks\": \"Endorses factors efficiently.\"}, {\"title\": \"Maria X. Churchill\", \"type\": \"person\", \"state\": \"h\", \"age\": 97, \"date\": 1043276400000.0, \"remarks\": \"Strains objects healthily.\"}, {\"title\": \"Kimberly May\", \"type\": \"person\", \"avail\": true, \"age\": 76, \"remarks\": \"Salutes manners actively.\"}, {\"title\": \"Sally Parsons\", \"type\": \"person\", \"avail\": true, \"age\": 90}, {\"title\": \"Amanda Glover\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 89, \"date\": 347497200000.0}, {\"title\": \"Oliver Ellison\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 1419548400000.0}, {\"title\": \"Wendy L. Ball\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 75, \"remarks\": \"Refers debates properly.\"}, {\"title\": \"Frank H. Terry\", \"type\": \"person\", \"age\": 35}, {\"title\": \"Irene B. May\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 60, \"date\": 1458687600000.0}]}, {\"title\": \"Cower particulars\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Ella W. Chapman\", \"type\": \"person\", \"avail\": true, \"age\": 74, \"date\": 86742000000.0, \"remarks\": \"Adjusts presences consistently.\"}, {\"title\": \"Charles J. Bailey\", \"type\": \"person\", \"avail\": true, \"age\": 53}, {\"title\": \"Adam Graham\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 57, \"date\": 1119477600000.0}, {\"title\": \"Pat Hodges\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 73, \"date\": 1260226800000.0}, {\"title\": \"Corey Springer\", \"type\": \"person\", \"avail\": true, \"age\": 53}, {\"title\": \"Piers D. Powell\", \"type\": \"person\", \"avail\": true, \"age\": 86, \"date\": 797983200000.0, \"remarks\": \"Imprints experts rightly.\"}, {\"title\": \"Rachel P. Graham\", \"type\": \"person\", \"avail\": true, \"age\": 34, \"date\": 280537200000.0}, {\"title\": \"Jayden L. McGrath\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"date\": 292374000000.0}, {\"title\": \"Casey P. Greene\", \"type\": \"person\", \"avail\": true, \"age\": 28}, {\"title\": \"Chris M. Parsons\", \"type\": \"person\", \"age\": 50}, {\"title\": \"Chris Churchill\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 28}, {\"title\": \"Piers Ogden\", \"type\": \"person\", \"avail\": true, \"age\": 27}]}, {\"title\": \"Hew computers\", \"type\": \"role\", \"children\": [{\"title\": \"Michael V. Turner\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 86, \"date\": 1386802800000.0}, {\"title\": \"Alexander I. Howard\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 82, \"date\": 742773600000.0, \"remarks\": \"Feels ferrets studiously.\"}, {\"title\": \"Madeleine F. Nash\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 35, \"remarks\": \"Ignites considerations cleanly.\"}, {\"title\": \"Amanda Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 88, \"date\": 1316988000000.0}, {\"title\": \"Jane King\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 51, \"date\": 1304028000000.0}, {\"title\": \"Andy Miller\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 28, \"date\": 1122501600000.0}, {\"title\": \"Lily Simpson\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 88, \"date\": 109119600000.0, \"remarks\": \"Proceeds industries wonderfully.\"}, {\"title\": \"Tracey Y. Hodges\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 950396400000.0}, {\"title\": \"Simon B. Wilson\", \"type\": \"person\", \"avail\": true, \"age\": 89, \"date\": 500425200000.0}, {\"title\": \"Daryl Pullman\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 61, \"date\": 580428000000.0, \"remarks\": \"Fights smokes splendidly.\"}]}, {\"title\": \"Lay vacations\", \"type\": \"role\", \"children\": [{\"title\": \"Amelia Burgess\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 25, \"date\": 493509600000.0, \"remarks\": \"Wrings packages luckily.\"}, {\"title\": \"Yvonne G. Mackenzie\", \"type\": \"person\", \"avail\": true, \"age\": 31, \"date\": 1575846000000.0}, {\"title\": \"Benjamin H. Fraser\", \"type\": \"person\", \"avail\": true, \"age\": 47, \"date\": 936914400000.0, \"remarks\": \"Triumphs difficulties really.\"}]}, {\"title\": \"Kiss marriages\", \"type\": \"role\", \"children\": [{\"title\": \"Sonia Z. Johnston\", \"type\": \"person\", \"state\": \"h\", \"age\": 62}, {\"title\": \"Lou Q. Carr\", \"type\": \"person\", \"avail\": true, \"age\": 95}, {\"title\": \"Anne W. Wright\", \"type\": \"person\", \"avail\": true, \"age\": 73, \"date\": 985816800000.0, \"remarks\": \"Neglects employees assuredly.\"}, {\"title\": \"Anne Lambert\", \"type\": \"person\", \"avail\": true, \"age\": 48}, {\"title\": \"Nathan Q. Murray\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 24, \"date\": 349225200000.0, \"remarks\": \"Speeds youngs unquestionably.\"}, {\"title\": \"Peter Coleman\", \"type\": \"person\", \"avail\": true, \"age\": 32}, {\"title\": \"Jayden F. Morgan\", \"type\": \"person\", \"age\": 45, \"date\": 1007679600000.0, \"remarks\": \"Selects dots abundantly.\"}, {\"title\": \"Audrey B. Gibson\", \"type\": \"person\", \"avail\": true, \"age\": 44}, {\"title\": \"Justin Q. Wilkins\", \"type\": \"person\", \"avail\": true, \"age\": 27, \"date\": 1263423600000.0, \"remarks\": \"Constrains pugs intensely.\"}, {\"title\": \"Oliver Nash\", \"type\": \"person\", \"avail\": true, \"age\": 40}, {\"title\": \"Joanne J. Reid\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"remarks\": \"Spells alternatives proudly.\"}]}, {\"title\": \"Owe televisions\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Connor K. Allan\", \"type\": \"person\", \"avail\": true, \"age\": 36, \"date\": 1482534000000.0}, {\"title\": \"Frances R. Fraser\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 1218924000000.0}, {\"title\": \"Julia Rutherford\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 338767200000.0, \"remarks\": \"Encourages conversations valiantly.\"}, {\"title\": \"Trevor Black\", \"type\": \"person\", \"avail\": true, \"age\": 62, \"date\": 118450800000.0}, {\"title\": \"Kimberly L. Nolan\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 88, \"date\": 1198623600000.0, \"remarks\": \"Rids decisions intelligently.\"}, {\"title\": \"Edward Y. Campbell\", \"type\": \"person\", \"avail\": true, \"age\": 88, \"date\": 389829600000.0}, {\"title\": \"Kyle X. Springer\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 71, \"date\": 1061244000000.0}, {\"title\": \"Lou Dyer\", \"type\": \"person\", \"avail\": true, \"age\": 93, \"date\": 203036400000.0}, {\"title\": \"Frank H. Gill\", \"type\": \"person\", \"avail\": true, \"age\": 92, \"date\": 1395442800000.0}, {\"title\": \"Jasmine I. Mitchell\", \"type\": \"person\", \"avail\": true, \"age\": 55, \"date\": 1638486000000.0}, {\"title\": \"Casey O. Langdon\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 45, \"remarks\": \"Bows priors agreeably.\"}, {\"title\": \"Simon Coleman\", \"type\": \"person\", \"avail\": true, \"age\": 97, \"date\": 302655600000.0, \"remarks\": \"Tramples taps beautifully.\"}, {\"title\": \"Brian K. Glover\", \"type\": \"person\", \"avail\": true, \"age\": 44, \"remarks\": \"Redoes secretaries upwardly.\"}, {\"title\": \"Fiona Y. Jackson\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 1627768800000.0, \"remarks\": \"Fights bigs heartily.\"}]}, {\"title\": \"Last campaigns\", \"type\": \"role\", \"children\": [{\"title\": \"Daryl B. Dowd\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 944607600000.0}, {\"title\": \"Kelly B. Lyman\", \"type\": \"person\", \"avail\": true, \"age\": 65, \"remarks\": \"Tends tricks majestically.\"}, {\"title\": \"Keith H. Stewart\", \"type\": \"person\", \"avail\": true, \"age\": 71, \"date\": 547423200000.0}, {\"title\": \"Natalie W. Short\", \"type\": \"person\", \"avail\": true, \"age\": 66, \"date\": 875138400000.0, \"remarks\": \"Burns sillies infinitely.\"}, {\"title\": \"Corey Wilkins\", \"type\": \"person\", \"avail\": true, \"age\": 88}, {\"title\": \"Oliver Allan\", \"type\": \"person\", \"state\": \"h\", \"age\": 33}]}, {\"title\": \"Undo positives\", \"type\": \"role\", \"children\": [{\"title\": \"Toby Quinn\", \"type\": \"person\", \"avail\": true, \"age\": 36, \"date\": 1147989600000.0}]}, {\"title\": \"Sight articles\", \"type\": \"role\", \"children\": [{\"title\": \"Adam E. Scott\", \"type\": \"person\", \"avail\": true, \"age\": 31, \"date\": 1093989600000.0, \"remarks\": \"Curbs alpacas agreeably.\"}, {\"title\": \"Jesse Y. Blake\", \"type\": \"person\", \"age\": 22}, {\"title\": \"Amelia Bond\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"date\": 863992800000.0, \"remarks\": \"Consoles disciplines dreamily.\"}, {\"title\": \"Diane Dyer\", \"type\": \"person\", \"avail\": true, \"age\": 24}, {\"title\": \"William MacDonald\", \"type\": \"person\", \"avail\": true, \"age\": 33, \"date\": 1458342000000.0}, {\"title\": \"Alan J. Wright\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 78}, {\"title\": \"Max Z. Duncan\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"date\": 1180821600000.0}, {\"title\": \"Warren Walker\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 27, \"remarks\": \"Incises walruses diligently.\"}, {\"title\": \"Sam Kelly\", \"type\": \"person\", \"age\": 84}, {\"title\": \"Alan Scott\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 32}, {\"title\": \"Olivia Vance\", \"type\": \"person\", \"age\": 61}]}]}, {\"title\": \"Dept. for Uses and Wars\", \"type\": \"department\", \"children\": [{\"title\": \"Dedicate issues\", \"type\": \"role\", \"children\": [{\"title\": \"Maria Piper\", \"type\": \"person\", \"age\": 44, \"date\": 435711600000.0}, {\"title\": \"Anne Gill\", \"type\": \"person\", \"avail\": true, \"age\": 70}, {\"title\": \"Phil L. Gibson\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 1072652400000.0}, {\"title\": \"Corey Wilson\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 752281200000.0}, {\"title\": \"Richard Berry\", \"type\": \"person\", \"age\": 78, \"date\": 83890800000.0}]}, {\"title\": \"Transform departures\", \"type\": \"role\", \"children\": [{\"title\": \"Casey M. North\", \"type\": \"person\", \"avail\": true, \"age\": 36, \"date\": 909788400000.0}, {\"title\": \"Lisa R. Gibson\", \"type\": \"person\", \"avail\": true, \"age\": 59, \"remarks\": \"Sacks dramas merrily.\"}, {\"title\": \"Mary K. Newman\", \"type\": \"person\", \"age\": 95, \"date\": 2070000000.0, \"remarks\": \"Swallows fruits boldly.\"}, {\"title\": \"Sarah Wilson\", \"type\": \"person\", \"avail\": true, \"age\": 88, \"remarks\": \"Inflates numbers proudly.\"}, {\"title\": \"Jamie Lewis\", \"type\": \"person\", \"avail\": true, \"age\": 35, \"date\": 164070000000.0, \"remarks\": \"Becomes bunches restfully.\"}, {\"title\": \"Adrian Hughes\", \"type\": \"person\", \"avail\": true, \"age\": 74, \"date\": 1351461600000.0}, {\"title\": \"Jean A. Clarkson\", \"type\": \"person\", \"avail\": true, \"age\": 47, \"date\": 1125352800000.0}, {\"title\": \"Diana Campbell\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 27, \"date\": 852850800000.0}, {\"title\": \"Claire E. Mackenzie\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 1588456800000.0}, {\"title\": \"Donna Black\", \"type\": \"person\", \"avail\": true, \"age\": 97, \"date\": 198716400000.0}, {\"title\": \"Gabrielle K. North\", \"type\": \"person\", \"avail\": true, \"age\": 95, \"date\": 1013468400000.0}, {\"title\": \"Katherine K. Henderson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 55}, {\"title\": \"Joan M. Poole\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 53, \"date\": 1251756000000.0}, {\"title\": \"Karen Rees\", \"type\": \"person\", \"avail\": true, \"age\": 41, \"date\": 1074898800000.0}, {\"title\": \"Taylor Slater\", \"type\": \"person\", \"avail\": true, \"age\": 72}, {\"title\": \"Jack Vaughan\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 1050357600000.0, \"remarks\": \"Sates mouths lovingly.\"}]}, {\"title\": \"Carve caribous\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Lauren Y. Newman\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 227487600000.0}, {\"title\": \"Jean E. Stewart\", \"type\": \"person\", \"avail\": true, \"age\": 22}, {\"title\": \"John F. McDonald\", \"type\": \"person\", \"age\": 65, \"date\": 1129932000000.0}, {\"title\": \"Amy R. Burgess\", \"type\": \"person\", \"avail\": true, \"age\": 89}, {\"title\": \"Lou Q. Scott\", \"type\": \"person\", \"avail\": true, \"age\": 25, \"date\": 1628892000000.0}, {\"title\": \"Diana E. Hamilton\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 89, \"date\": 527205600000.0}, {\"title\": \"Isaac O. Young\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 96, \"date\": 925423200000.0, \"remarks\": \"Steps hares fervently.\"}]}, {\"title\": \"Contrast flights\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Vanessa V. Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 92}, {\"title\": \"Piers Y. Harris\", \"type\": \"person\", \"avail\": true, \"age\": 72, \"date\": 1087336800000.0}, {\"title\": \"Rose Q. Tucker\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 57, \"date\": 1389308400000.0}, {\"title\": \"Rebecca North\", \"type\": \"person\", \"avail\": true, \"age\": 81, \"date\": 1180908000000.0, \"remarks\": \"Buys switches promptly.\"}, {\"title\": \"Emily Edmunds\", \"type\": \"person\", \"age\": 75, \"date\": 220489200000.0}, {\"title\": \"Christopher R. Peters\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 42}, {\"title\": \"Ryan C. Clark\", \"type\": \"person\", \"avail\": true, \"age\": 40, \"date\": 1623880800000.0}, {\"title\": \"Emma Wilson\", \"type\": \"person\", \"avail\": true, \"age\": 45, \"date\": 63154800000.0, \"remarks\": \"Says singles very.\"}, {\"title\": \"Amanda Tucker\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 52, \"date\": 443574000000.0}, {\"title\": \"Connor Mackay\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 36, \"date\": 350607600000.0}, {\"title\": \"Sue T. Cameron\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 89, \"date\": 1090274400000.0}, {\"title\": \"Kelly Vaughan\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 82, \"date\": 10796400000.0}, {\"title\": \"Angela Oliver\", \"type\": \"person\", \"age\": 83, \"remarks\": \"Disuses meets amazingly.\"}, {\"title\": \"Carl Wallace\", \"type\": \"person\", \"state\": \"h\", \"age\": 56, \"remarks\": \"Sprays monitors exceptionally.\"}, {\"title\": \"Gabrielle T. Buckland\", \"type\": \"person\", \"avail\": true, \"age\": 27, \"date\": 870645600000.0}, {\"title\": \"Michelle O. Smith\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 56, \"date\": 250383600000.0}, {\"title\": \"Kimberly I. Powell\", \"type\": \"person\", \"state\": \"s\", \"age\": 66, \"date\": 1117749600000.0, \"remarks\": \"Pleads eggs boldly.\"}, {\"title\": \"Sarah Rampling\", \"type\": \"person\", \"avail\": true, \"age\": 45}, {\"title\": \"Phil Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 53}]}, {\"title\": \"Astonish presentations\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Irene M. Walker\", \"type\": \"person\", \"avail\": true, \"age\": 39}, {\"title\": \"Mary McDonald\", \"type\": \"person\", \"age\": 93, \"date\": 698108400000.0, \"remarks\": \"Introduces taxes optimistically.\"}, {\"title\": \"Kevin G. Hemmings\", \"type\": \"person\", \"avail\": true, \"age\": 38, \"date\": 793407600000.0}, {\"title\": \"Neil Z. Welch\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 70, \"date\": 1394924400000.0, \"remarks\": \"Inquires celebrations joyously.\"}, {\"title\": \"Harry K. Newman\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 42, \"remarks\": \"Copes burns sympathetically.\"}, {\"title\": \"Megan Slater\", \"type\": \"person\", \"avail\": true, \"age\": 43, \"date\": 356652000000.0}, {\"title\": \"Karen D. Vance\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"date\": 1414360800000.0}, {\"title\": \"Adam E. Springer\", \"type\": \"person\", \"avail\": true, \"age\": 98, \"date\": 910306800000.0}, {\"title\": \"Cameron Jones\", \"type\": \"person\", \"avail\": true, \"age\": 71, \"date\": 129855600000.0}, {\"title\": \"Phoenix B. Ellison\", \"type\": \"person\", \"avail\": true, \"age\": 36}, {\"title\": \"Ryan Morgan\", \"type\": \"person\", \"avail\": true, \"age\": 21, \"date\": 324597600000.0}, {\"title\": \"Anthony Buckland\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 58, \"remarks\": \"Checks finishes tenderly.\"}, {\"title\": \"Jesse White\", \"type\": \"person\", \"avail\": true, \"age\": 38}, {\"title\": \"Mary Gibson\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 55, \"date\": 64710000000.0, \"remarks\": \"Conquers families gladly.\"}, {\"title\": \"Eddie Hamilton\", \"type\": \"person\", \"age\": 23, \"date\": 791420400000.0}]}, {\"title\": \"Carve calendars\", \"type\": \"role\", \"children\": [{\"title\": \"Charlie McGrath\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 92, \"date\": 912985200000.0}, {\"title\": \"Amelia H. Mitchell\", \"type\": \"person\", \"avail\": true, \"age\": 71, \"remarks\": \"Glances holidaies deftly.\"}, {\"title\": \"Nicholas Edmunds\", \"type\": \"person\", \"state\": \"h\", \"age\": 94, \"date\": 1538172000000.0}, {\"title\": \"Jack F. Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 84}, {\"title\": \"Anthony Henderson\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 1159567200000.0}, {\"title\": \"Alexandra H. Rampling\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 70, \"date\": 584920800000.0, \"remarks\": \"Wastes pages tenderly.\"}]}, {\"title\": \"Utter falls\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Brian Robertson\", \"type\": \"person\", \"avail\": true, \"age\": 68, \"remarks\": \"Beautifies reserves unfailingly.\"}, {\"title\": \"Ava P. Dyer\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 81, \"date\": 545522400000.0}, {\"title\": \"Brian D. Lewis\", \"type\": \"person\", \"avail\": true, \"age\": 97, \"date\": 1097013600000.0, \"remarks\": \"Folds criticisms knowingly.\"}, {\"title\": \"Andrea Edmunds\", \"type\": \"person\", \"avail\": true, \"age\": 98, \"date\": 997999200000.0}, {\"title\": \"Toby Carr\", \"type\": \"person\", \"age\": 59, \"date\": 728780400000.0}, {\"title\": \"Jean Payne\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 87}, {\"title\": \"Jason F. Lawrence\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 91, \"date\": 228351600000.0}, {\"title\": \"Amy E. Harris\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 323046000000.0, \"remarks\": \"Lays stands affirmatively.\"}, {\"title\": \"Phoenix A. Paige\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"date\": 1506981600000.0, \"remarks\": \"Breaks cakes usefully.\"}, {\"title\": \"Alexandra Greene\", \"type\": \"person\", \"avail\": true, \"age\": 90}, {\"title\": \"Pippa Randall\", \"type\": \"person\", \"avail\": true, \"age\": 60}, {\"title\": \"Leah Cameron\", \"type\": \"person\", \"avail\": true, \"age\": 32}, {\"title\": \"Elizabeth Coleman\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 87, \"date\": 271119600000.0, \"remarks\": \"Adds missions efficiently.\"}]}, {\"title\": \"Reflect structures\", \"type\": \"role\", \"children\": [{\"title\": \"Steven J. Turner\", \"type\": \"person\", \"avail\": true, \"age\": 85}, {\"title\": \"Chris Miller\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 76, \"remarks\": \"Approves horses charmingly.\"}, {\"title\": \"Pat T. Arnold\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 775692000000.0}, {\"title\": \"Cameron R. Roberts\", \"type\": \"person\", \"avail\": true, \"age\": 47, \"date\": 668646000000.0, \"remarks\": \"Inputs cods merrily.\"}, {\"title\": \"Ella Stewart\", \"type\": \"person\", \"avail\": true, \"age\": 73, \"remarks\": \"Inhabits truths sympathetically.\"}]}, {\"title\": \"Innovate poets\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Jamie Quinn\", \"type\": \"person\", \"avail\": true, \"age\": 96}, {\"title\": \"Dominic Mitchell\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 64}, {\"title\": \"Olivia A. Bell\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 44}, {\"title\": \"Justin J. Coleman\", \"type\": \"person\", \"avail\": true, \"age\": 96, \"date\": 1234047600000.0, \"remarks\": \"Refuses calendars gently.\"}, {\"title\": \"Jason Gray\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 47, \"date\": 370303200000.0, \"remarks\": \"Heaves boats victoriously.\"}, {\"title\": \"Gabrielle D. Henderson\", \"type\": \"person\", \"avail\": true, \"age\": 74}, {\"title\": \"Alan Henderson\", \"type\": \"person\", \"avail\": true, \"age\": 73}, {\"title\": \"Warren D. Slater\", \"type\": \"person\", \"avail\": true, \"age\": 84, \"date\": 874015200000.0}, {\"title\": \"Diane Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 53, \"date\": 948668400000.0, \"remarks\": \"Illustrates bridges unquestionably.\"}, {\"title\": \"Deirdre F. Kerr\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 299977200000.0}, {\"title\": \"Jessica Nash\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 21, \"remarks\": \"Matches mortgages deeply.\"}, {\"title\": \"Joe Bailey\", \"type\": \"person\", \"age\": 33}, {\"title\": \"Jessica Forsyth\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 1239660000000.0, \"remarks\": \"Greets substances reassuringly.\"}, {\"title\": \"Leah V. Quinn\", \"type\": \"person\", \"avail\": true, \"age\": 46, \"date\": 342140400000.0}, {\"title\": \"Lillian Taylor\", \"type\": \"person\", \"state\": \"h\", \"age\": 88}, {\"title\": \"Sarah Sutherland\", \"type\": \"person\", \"avail\": true, \"age\": 33, \"remarks\": \"Advises successes stylishly.\"}, {\"title\": \"Frances Quinn\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 95, \"date\": 358207200000.0, \"remarks\": \"Idealizes daughters jubilantly.\"}, {\"title\": \"Joe Q. Peake\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 167094000000.0, \"remarks\": \"Shines wolfs properly.\"}, {\"title\": \"Sam O. Graham\", \"type\": \"person\", \"avail\": true, \"age\": 95, \"remarks\": \"Stretches philosophies abundantly.\"}]}, {\"title\": \"Arrest codes\", \"type\": \"role\", \"children\": [{\"title\": \"Warren B. Dyer\", \"type\": \"person\", \"state\": \"s\", \"age\": 95, \"date\": 1481756400000.0, \"remarks\": \"Chooses tables properly.\"}, {\"title\": \"Joan N. Rutherford\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 50, \"date\": 1351116000000.0, \"remarks\": \"Boards plants interestingly.\"}, {\"title\": \"Neil E. Ross\", \"type\": \"person\", \"avail\": true, \"age\": 53, \"remarks\": \"Replies freedoms properly.\"}, {\"title\": \"Paul Wallace\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 92, \"date\": 1068418800000.0, \"remarks\": \"Sees tries clearly.\"}, {\"title\": \"Jasmine A. Rees\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 75, \"date\": 1288738800000.0, \"remarks\": \"Expresses bones worthily.\"}, {\"title\": \"Tracey Bailey\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 33, \"remarks\": \"Magnifies taxes enjoyably.\"}, {\"title\": \"Faith Stewart\", \"type\": \"person\", \"avail\": true, \"age\": 49}, {\"title\": \"Keith North\", \"type\": \"person\", \"avail\": true, \"age\": 72, \"date\": 1036105200000.0}, {\"title\": \"Adrian M. Dyer\", \"type\": \"person\", \"avail\": true, \"age\": 94}, {\"title\": \"Austin Buckland\", \"type\": \"person\", \"avail\": true, \"age\": 54, \"remarks\": \"Praises turtles jauntily.\"}, {\"title\": \"Sean L. Jackson\", \"type\": \"person\", \"age\": 41, \"date\": 1424214000000.0}, {\"title\": \"Angela Gray\", \"type\": \"person\", \"avail\": true, \"age\": 94, \"date\": 1444082400000.0}, {\"title\": \"Natalie N. Taylor\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 1436652000000.0}, {\"title\": \"Corey K. Smith\", \"type\": \"person\", \"avail\": true, \"age\": 31}, {\"title\": \"Ryan W. Kelly\", \"type\": \"person\", \"avail\": true, \"age\": 21, \"date\": 496274400000.0}, {\"title\": \"Sydney Langdon\", \"type\": \"person\", \"avail\": true, \"age\": 86, \"remarks\": \"Seizes grandfathers usefully.\"}]}]}, {\"title\": \"Dept. for Greens and Angers\", \"type\": \"department\", \"children\": [{\"title\": \"Practise properties\", \"type\": \"role\", \"expanded\": true}, {\"title\": \"Impede beaches\", \"type\": \"role\", \"children\": [{\"title\": \"Dorothy Skinner\", \"type\": \"person\", \"avail\": true, \"age\": 57}, {\"title\": \"Cameron Robertson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 34, \"remarks\": \"Touches questions enthusiastically.\"}, {\"title\": \"Christian F. Berry\", \"type\": \"person\", \"avail\": true, \"age\": 44, \"date\": 1146348000000.0, \"remarks\": \"Drills crows infinitely.\"}, {\"title\": \"James Lambert\", \"type\": \"person\", \"avail\": true, \"age\": 64, \"date\": 1065132000000.0, \"remarks\": \"Does hurries positively.\"}, {\"title\": \"Richard Wilkins\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 89}]}, {\"title\": \"Kill options\", \"type\": \"role\", \"children\": [{\"title\": \"Daryl D. Lyman\", \"type\": \"person\", \"age\": 73, \"date\": 683589600000.0}, {\"title\": \"Sean Taylor\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 55, \"remarks\": \"Notices offers diligently.\"}, {\"title\": \"Lisa Jones\", \"type\": \"person\", \"avail\": true, \"age\": 72, \"date\": 1539208800000.0}, {\"title\": \"Christopher Walker\", \"type\": \"person\", \"avail\": true, \"age\": 32, \"date\": 806623200000.0}, {\"title\": \"Jack Hughes\", \"type\": \"person\", \"state\": \"s\", \"age\": 76}, {\"title\": \"Lauren M. Blake\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 58, \"date\": 1297897200000.0, \"remarks\": \"Founds greens genuinely.\"}, {\"title\": \"Rebecca Mathis\", \"type\": \"person\", \"avail\": true, \"age\": 34, \"remarks\": \"Breaks classrooms cutely.\"}, {\"title\": \"Alison E. Duncan\", \"type\": \"person\", \"avail\": true, \"age\": 76, \"date\": 1028671200000.0}, {\"title\": \"Jean J. Miller\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 84, \"date\": 327016800000.0}, {\"title\": \"Gavin V. Simpson\", \"type\": \"person\", \"avail\": true, \"age\": 81, \"date\": 471135600000.0}, {\"title\": \"Neil Mathis\", \"type\": \"person\", \"avail\": true, \"age\": 91, \"date\": 543538800000.0, \"remarks\": \"Belongs familiars substantially.\"}, {\"title\": \"Gordon Edmunds\", \"type\": \"person\", \"avail\": true, \"age\": 31}, {\"title\": \"Emily J. Vaughan\", \"type\": \"person\", \"avail\": true, \"age\": 91}, {\"title\": \"Steven Young\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 93, \"date\": 1589839200000.0}, {\"title\": \"Evan A. Turner\", \"type\": \"person\", \"age\": 31, \"remarks\": \"Prefers tooths unfailingly.\"}, {\"title\": \"Kelly K. Robertson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 38, \"date\": 1032386400000.0}, {\"title\": \"Nicola H. Buckland\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 604191600000.0, \"remarks\": \"Places equipments lightly.\"}]}, {\"title\": \"Integrate rents\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Phoenix X. Avery\", \"type\": \"person\", \"avail\": true, \"age\": 92}, {\"title\": \"Sophie A. Parr\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 79, \"date\": 782780400000.0}, {\"title\": \"Kevin N. Marshall\", \"type\": \"person\", \"avail\": true, \"age\": 67, \"date\": 777765600000.0, \"remarks\": \"Supposes parts restfully.\"}, {\"title\": \"Matt R. Payne\", \"type\": \"person\", \"avail\": true, \"age\": 32, \"date\": 398556000000.0}, {\"title\": \"Sydney P. McDonald\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 1193871600000.0}, {\"title\": \"Nicholas G. Mathis\", \"type\": \"person\", \"avail\": true, \"age\": 76, \"date\": 1291417200000.0, \"remarks\": \"Distributes squirrels fashionably.\"}, {\"title\": \"Victoria X. King\", \"type\": \"person\", \"avail\": true, \"age\": 94}, {\"title\": \"Pat S. Kerr\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 39913200000.0}, {\"title\": \"Wanda Z. Sanderson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 24, \"date\": 370389600000.0}, {\"title\": \"Steven U. Miller\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 25, \"date\": 739231200000.0}, {\"title\": \"Frances Morrison\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 21}, {\"title\": \"Leonard S. Watson\", \"type\": \"person\", \"avail\": true, \"age\": 85, \"date\": 1144360800000.0}]}, {\"title\": \"Maintain clotheses\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Anna W. Wilkins\", \"type\": \"person\", \"avail\": true, \"age\": 29, \"date\": 634863600000.0, \"remarks\": \"Mashes extents upwardly.\"}, {\"title\": \"Wanda H. Hart\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 70}, {\"title\": \"Carolyn P. Parr\", \"type\": \"person\", \"avail\": true, \"age\": 27, \"remarks\": \"Scales bits blissfully.\"}, {\"title\": \"Amanda C. Morgan\", \"type\": \"person\", \"avail\": true, \"age\": 80, \"date\": 1136847600000.0}, {\"title\": \"Lauren P. Grant\", \"type\": \"person\", \"avail\": true, \"age\": 58, \"date\": 732409200000.0}, {\"title\": \"Nicola B. Berry\", \"type\": \"person\", \"avail\": true, \"age\": 95}, {\"title\": \"Rachel U. James\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"date\": 755218800000.0}, {\"title\": \"Charlie Nolan\", \"type\": \"person\", \"avail\": true, \"age\": 27}, {\"title\": \"Isaac B. Simpson\", \"type\": \"person\", \"avail\": true, \"age\": 66}]}, {\"title\": \"Sterilize rides\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Harry MacLeod\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"date\": 298422000000.0}, {\"title\": \"Lucas D. Chapman\", \"type\": \"person\", \"age\": 94}, {\"title\": \"Alison King\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 40, \"remarks\": \"Impeaches noses lively.\"}, {\"title\": \"Daryl Nolan\", \"type\": \"person\", \"age\": 86, \"date\": 215046000000.0, \"remarks\": \"Ties notices richly.\"}, {\"title\": \"Kyle A. Miller\", \"type\": \"person\", \"avail\": true, \"age\": 89}, {\"title\": \"Joshua Greene\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 39, \"date\": 618444000000.0}, {\"title\": \"Colin X. Clark\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 1417215600000.0}, {\"title\": \"Luke Vance\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 52, \"date\": 115772400000.0, \"remarks\": \"Varies locks exceptionally.\"}, {\"title\": \"Blake Paige\", \"type\": \"person\", \"avail\": true, \"age\": 74, \"date\": 1455663600000.0, \"remarks\": \"Stitches asks poignantly.\"}, {\"title\": \"Zoe Martin\", \"type\": \"person\", \"avail\": true, \"age\": 95, \"remarks\": \"Writes administrations joyously.\"}, {\"title\": \"Wendy Burgess\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"remarks\": \"Speaks implements forever.\"}, {\"title\": \"Lou Hill\", \"type\": \"person\", \"avail\": true, \"age\": 81, \"date\": 390520800000.0, \"remarks\": \"Surges personalities zestfully.\"}, {\"title\": \"Steven H. Sanderson\", \"type\": \"person\", \"avail\": true, \"age\": 68, \"date\": 441414000000.0}, {\"title\": \"Anna Z. Murray\", \"type\": \"person\", \"avail\": true, \"age\": 80, \"date\": 1216159200000.0, \"remarks\": \"Cribs hands tenderly.\"}, {\"title\": \"Nicholas F. Ross\", \"type\": \"person\", \"avail\": true, \"age\": 64, \"date\": 643845600000.0, \"remarks\": \"Favours babies exclusively.\"}, {\"title\": \"Lisa Mills\", \"type\": \"person\", \"avail\": true, \"age\": 92, \"remarks\": \"Treasures braves infinitely.\"}, {\"title\": \"Harry I. Randall\", \"type\": \"person\", \"avail\": true, \"age\": 54, \"date\": 412988400000.0, \"remarks\": \"Convicts discounts carefully.\"}]}, {\"title\": \"Grade tourists\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Joe Glover\", \"type\": \"person\", \"avail\": true, \"age\": 37}, {\"title\": \"Toby V. Peake\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 573778800000.0, \"remarks\": \"Prosecutes damages eagerly.\"}, {\"title\": \"Thomas L. Turner\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 1224540000000.0, \"remarks\": \"Spoils texts believably.\"}, {\"title\": \"Heather T. Dowd\", \"type\": \"person\", \"avail\": true, \"age\": 80, \"date\": 842738400000.0}, {\"title\": \"Alexandra McGrath\", \"type\": \"person\", \"avail\": true, \"age\": 86}, {\"title\": \"David S. Lawrence\", \"type\": \"person\", \"avail\": true, \"age\": 64, \"remarks\": \"Indicates sessions lightly.\"}, {\"title\": \"Joe Lyman\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 53, \"date\": 122770800000.0, \"remarks\": \"Impends laughs luxuriously.\"}, {\"title\": \"Victoria Carr\", \"type\": \"person\", \"age\": 28, \"date\": 180226800000.0}, {\"title\": \"Joe U. Davidson\", \"type\": \"person\", \"avail\": true, \"age\": 68, \"date\": 655167600000.0, \"remarks\": \"Supplies kills unselfishly.\"}, {\"title\": \"Toby W. Dyer\", \"type\": \"person\", \"avail\": true, \"age\": 26}, {\"title\": \"Piers Graham\", \"type\": \"person\", \"avail\": true, \"age\": 44}]}]}, {\"title\": \"Dept. for Singles and Anybodies\", \"type\": \"department\", \"children\": [{\"title\": \"Resist trainings\", \"type\": \"role\", \"children\": [{\"title\": \"Corey Wilkins\", \"type\": \"person\", \"avail\": true, \"age\": 21, \"remarks\": \"Subscribes rocks gladly.\"}, {\"title\": \"Rose U. Wilkins\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 51, \"date\": 1379368800000.0}, {\"title\": \"Lisa Metcalfe\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 98, \"date\": 1232146800000.0}, {\"title\": \"Jacob Newman\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"remarks\": \"Decorates swims graciously.\"}, {\"title\": \"Owen O. Dowd\", \"type\": \"person\", \"avail\": true, \"age\": 41, \"remarks\": \"Varies meals forever.\"}, {\"title\": \"Alex K. Welch\", \"type\": \"person\", \"age\": 72, \"date\": 620863200000.0}, {\"title\": \"Frances McDonald\", \"type\": \"person\", \"age\": 36, \"date\": 211417200000.0}]}, {\"title\": \"Owe safes\", \"type\": \"role\", \"children\": [{\"title\": \"Sarah Hodges\", \"type\": \"person\", \"avail\": true, \"age\": 39, \"date\": 182732400000.0, \"remarks\": \"Enters shes spectacularly.\"}, {\"title\": \"Sydney Manning\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 36, \"date\": 1448146800000.0, \"remarks\": \"Sights grasshoppers cleanly.\"}, {\"title\": \"Rose Y. Lawrence\", \"type\": \"person\", \"avail\": true, \"age\": 94, \"date\": 1384902000000.0}, {\"title\": \"Nathan Robertson\", \"type\": \"person\", \"age\": 79, \"remarks\": \"Courses credits reponsibly.\"}, {\"title\": \"Alexandra I. Clarkson\", \"type\": \"person\", \"age\": 35, \"date\": 841615200000.0}, {\"title\": \"Liam S. Edmunds\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 28422000000.0, \"remarks\": \"Samples indications specially.\"}, {\"title\": \"Emma D. Blake\", \"type\": \"person\", \"avail\": true, \"age\": 96, \"date\": 653781600000.0}, {\"title\": \"Rachel H. Terry\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 35}, {\"title\": \"Katherine Bower\", \"type\": \"person\", \"avail\": true, \"age\": 29, \"date\": 515628000000.0, \"remarks\": \"Decorates satisfactions intelligently.\"}, {\"title\": \"Adam F. Hardacre\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 69, \"date\": 773618400000.0, \"remarks\": \"Pretends frogs admiringly.\"}, {\"title\": \"Toby Brown\", \"type\": \"person\", \"avail\": true, \"age\": 95, \"date\": 1215295200000.0, \"remarks\": \"Cycles creams appreciably.\"}, {\"title\": \"Tim Martin\", \"type\": \"person\", \"avail\": true, \"age\": 38}]}, {\"title\": \"Pollute mules\", \"type\": \"role\", \"children\": [{\"title\": \"Stephen W. King\", \"type\": \"person\", \"avail\": true, \"age\": 53}, {\"title\": \"Stewart O. Turner\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 71, \"date\": 1254866400000.0}, {\"title\": \"Rose Fisher\", \"type\": \"person\", \"avail\": true, \"age\": 45, \"date\": 1065650400000.0}, {\"title\": \"Molly S. Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 1010271600000.0}, {\"title\": \"Daryl V. Black\", \"type\": \"person\", \"avail\": true, \"age\": 87, \"date\": 163033200000.0}, {\"title\": \"Felicity P. Coleman\", \"type\": \"person\", \"avail\": true, \"age\": 42}, {\"title\": \"James Taylor\", \"type\": \"person\", \"avail\": true, \"age\": 80, \"date\": 23583600000.0}, {\"title\": \"Phoenix A. Rees\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 70, \"date\": 673135200000.0}, {\"title\": \"Colin G. Randall\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 83, \"date\": 405903600000.0, \"remarks\": \"Decays universities handily.\"}, {\"title\": \"Kelly W. Mills\", \"type\": \"person\", \"avail\": true, \"age\": 76, \"date\": 832716000000.0}, {\"title\": \"Jan Powell\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 57}, {\"title\": \"Bella N. McGrath\", \"type\": \"person\", \"avail\": true, \"age\": 68}, {\"title\": \"Alison Cameron\", \"type\": \"person\", \"age\": 21, \"date\": 104108400000.0}, {\"title\": \"Emma Churchill\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 73, \"date\": 1272751200000.0}, {\"title\": \"Jack A. Davidson\", \"type\": \"person\", \"avail\": true, \"age\": 43, \"date\": 1205190000000.0}, {\"title\": \"Piers K. Brown\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 1319407200000.0}, {\"title\": \"Una R. McLean\", \"type\": \"person\", \"avail\": true, \"age\": 79, \"remarks\": \"Whispers foxes unselfishly.\"}, {\"title\": \"Sebastian Parr\", \"type\": \"person\", \"avail\": true, \"age\": 73}, {\"title\": \"Jesse Jones\", \"type\": \"person\", \"avail\": true, \"age\": 46, \"remarks\": \"Wastes horrors intensely.\"}]}, {\"title\": \"Beseech mammoths\", \"type\": \"role\", \"children\": [{\"title\": \"Charles Smith\", \"type\": \"person\", \"avail\": true, \"age\": 91, \"remarks\": \"Drives ropes affirmatively.\"}, {\"title\": \"Simon Hunter\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 44, \"date\": 954885600000.0}, {\"title\": \"Samantha Peake\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 58}, {\"title\": \"Austin Burgess\", \"type\": \"person\", \"avail\": true, \"age\": 59, \"date\": 63759600000.0, \"remarks\": \"Saddles souths highly.\"}, {\"title\": \"Daryl Arnold\", \"type\": \"person\", \"state\": \"s\", \"age\": 67, \"date\": 230770800000.0, \"remarks\": \"Restrains eyes abundantly.\"}, {\"title\": \"Christopher Lee\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 43}, {\"title\": \"Alan C. MacDonald\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 93}, {\"title\": \"Emma I. Lawrence\", \"type\": \"person\", \"avail\": true, \"age\": 42, \"remarks\": \"Lends potentials brightly.\"}, {\"title\": \"Anne H. Oliver\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"date\": 1286488800000.0}, {\"title\": \"Neil Poole\", \"type\": \"person\", \"avail\": true, \"age\": 93, \"date\": 1069887600000.0, \"remarks\": \"Implants steaks upright.\"}]}, {\"title\": \"Signify yellows\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Jean F. Rees\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 45}, {\"title\": \"Fiona Y. Forsyth\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 31, \"remarks\": \"Excludes comparisons faithfully.\"}, {\"title\": \"Benjamin Buckland\", \"type\": \"person\", \"avail\": true, \"age\": 67, \"date\": 26262000000.0}, {\"title\": \"Dan Hunter\", \"type\": \"person\", \"age\": 48, \"date\": 487980000000.0}, {\"title\": \"Boris Churchill\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 81}, {\"title\": \"Brian Nash\", \"type\": \"person\", \"avail\": true, \"age\": 52}, {\"title\": \"Chris Black\", \"type\": \"person\", \"avail\": true, \"age\": 90, \"date\": 1081720800000.0, \"remarks\": \"Clicks comfortables upright.\"}, {\"title\": \"Joanne O. Langdon\", \"type\": \"person\", \"avail\": true, \"age\": 27}, {\"title\": \"Simon J. Greene\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 73, \"date\": 1180476000000.0}]}, {\"title\": \"Contrast towers\", \"type\": \"role\", \"children\": [{\"title\": \"Charlie Duncan\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 53, \"remarks\": \"Shines passengers decently.\"}, {\"title\": \"Ella F. Gibson\", \"type\": \"person\", \"avail\": true, \"age\": 87, \"remarks\": \"Swears witnesses entirely.\"}, {\"title\": \"Elizabeth North\", \"type\": \"person\", \"age\": 69, \"date\": 618616800000.0}, {\"title\": \"Blake Hart\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 95, \"date\": 75682800000.0}, {\"title\": \"Tim Grant\", \"type\": \"person\", \"avail\": true, \"age\": 38}, {\"title\": \"Elizabeth R. Simpson\", \"type\": \"person\", \"avail\": true, \"age\": 57, \"date\": 402274800000.0}, {\"title\": \"Chloe Tucker\", \"type\": \"person\", \"avail\": true, \"age\": 79, \"remarks\": \"Contradicts airports generously.\"}, {\"title\": \"Charlie Mitchell\", \"type\": \"person\", \"avail\": true, \"age\": 72}, {\"title\": \"Alexandra D. Short\", \"type\": \"person\", \"avail\": true, \"age\": 62}, {\"title\": \"Frank Z. Fraser\", \"type\": \"person\", \"avail\": true, \"age\": 79}, {\"title\": \"Rose Gill\", \"type\": \"person\", \"avail\": true, \"age\": 86, \"date\": 1446591600000.0, \"remarks\": \"Arises educations explicitly.\"}, {\"title\": \"Owen Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 91}]}, {\"title\": \"Fight trades\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Abigail W. Greene\", \"type\": \"person\", \"avail\": true, \"age\": 36}, {\"title\": \"Yvonne Q. Vaughan\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 81, \"date\": 1423436400000.0}, {\"title\": \"Andy Y. McGrath\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 79, \"date\": 1526508000000.0}, {\"title\": \"Alex J. Gibson\", \"type\": \"person\", \"avail\": true, \"age\": 74, \"date\": 1418770800000.0}, {\"title\": \"Dorothy Roberts\", \"type\": \"person\", \"avail\": true, \"age\": 86, \"remarks\": \"Verifies asses explicitly.\"}, {\"title\": \"Toby Parsons\", \"type\": \"person\", \"avail\": true, \"age\": 60, \"date\": 231980400000.0}, {\"title\": \"Hannah North\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 184806000000.0}, {\"title\": \"Sophie Q. Bell\", \"type\": \"person\", \"avail\": true, \"age\": 98, \"date\": 1153605600000.0}, {\"title\": \"Hannah U. Bailey\", \"type\": \"person\", \"avail\": true, \"age\": 71, \"date\": 111020400000.0}, {\"title\": \"Brandon J. Clarkson\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 35, \"date\": 1037746800000.0}, {\"title\": \"Jean O. Dickens\", \"type\": \"person\", \"avail\": true, \"age\": 97, \"remarks\": \"Prepares spends thoroughly.\"}, {\"title\": \"Colin Langdon\", \"type\": \"person\", \"age\": 95, \"date\": 1660255200000.0}, {\"title\": \"Phoenix Morrison\", \"type\": \"person\", \"avail\": true, \"age\": 65, \"date\": 780706800000.0, \"remarks\": \"Blushes ages carefully.\"}, {\"title\": \"Sophie E. Bower\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 25}, {\"title\": \"Edward E. Mitchell\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 34, \"date\": 542070000000.0}]}]}, {\"title\": \"Dept. for Schools and Standards\", \"type\": \"department\", \"children\": [{\"title\": \"Fight messages\", \"type\": \"role\", \"children\": [{\"title\": \"Blake Paige\", \"type\": \"person\", \"avail\": true, \"age\": 76, \"remarks\": \"Swims wifes fluently.\"}, {\"title\": \"Max G. Metcalfe\", \"type\": \"person\", \"avail\": true, \"age\": 42}, {\"title\": \"Jessica I. Martin\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 659574000000.0}, {\"title\": \"Victor C. Roberts\", \"type\": \"person\", \"avail\": true, \"age\": 79, \"date\": 1599948000000.0}, {\"title\": \"Lauren Hamilton\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 1228258800000.0}, {\"title\": \"Jessica W. Bell\", \"type\": \"person\", \"avail\": true, \"age\": 94, \"date\": 316825200000.0}, {\"title\": \"Pat Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 721609200000.0}, {\"title\": \"Toby Poole\", \"type\": \"person\", \"avail\": true, \"age\": 83, \"date\": 1659996000000.0, \"remarks\": \"Admits joins perfectly.\"}, {\"title\": \"Frances Z. Parr\", \"type\": \"person\", \"state\": \"s\", \"age\": 52}, {\"title\": \"Frances Randall\", \"type\": \"person\", \"avail\": true, \"age\": 44, \"date\": 365983200000.0}, {\"title\": \"Casey Gibson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 72, \"remarks\": \"Sanctions routines passionately.\"}, {\"title\": \"Emma Parsons\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 303692400000.0, \"remarks\": \"Wanders mixtures remarkably.\"}, {\"title\": \"Austin Gray\", \"type\": \"person\", \"avail\": true, \"age\": 24, \"date\": 904255200000.0}, {\"title\": \"Colin F. Wilkins\", \"type\": \"person\", \"avail\": true, \"age\": 72, \"date\": 1446418800000.0, \"remarks\": \"Hinders teaches well.\"}]}, {\"title\": \"Eye grasses\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Eric Hemmings\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"date\": 1368914400000.0, \"remarks\": \"Weaves lows boldly.\"}, {\"title\": \"Olivia G. Cornish\", \"type\": \"person\", \"avail\": true, \"age\": 65, \"date\": 1144792800000.0}, {\"title\": \"Max M. Hart\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 1486594800000.0}, {\"title\": \"Edward Short\", \"type\": \"person\", \"avail\": true, \"age\": 84, \"date\": 313455600000.0}, {\"title\": \"Irene R. Simpson\", \"type\": \"person\", \"avail\": true, \"age\": 54}, {\"title\": \"Daryl X. Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 63}]}, {\"title\": \"Saw insides\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Daryl Kerr\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 53, \"date\": 1233788400000.0, \"remarks\": \"Counsels generals efficiently.\"}, {\"title\": \"Jane I. Rampling\", \"type\": \"person\", \"avail\": true, \"age\": 21, \"date\": 1291330800000.0}, {\"title\": \"Steven U. Ferguson\", \"type\": \"person\", \"avail\": true, \"age\": 40, \"date\": 1621461600000.0, \"remarks\": \"Scams categories healthily.\"}, {\"title\": \"Corey Fisher\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 35, \"date\": 1285192800000.0}, {\"title\": \"Stephanie Rampling\", \"type\": \"person\", \"avail\": true, \"age\": 25, \"date\": 165625200000.0}, {\"title\": \"Amelia F. Roberts\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 79, \"date\": 1166569200000.0}]}, {\"title\": \"Imagine tensions\", \"type\": \"role\", \"children\": [{\"title\": \"Luke P. Bond\", \"type\": \"person\", \"avail\": true, \"age\": 67}, {\"title\": \"Julia R. Clarkson\", \"type\": \"person\", \"avail\": true, \"age\": 26, \"date\": 751590000000.0}, {\"title\": \"Eric Ince\", \"type\": \"person\", \"avail\": true, \"age\": 31}, {\"title\": \"Toby K. Hodges\", \"type\": \"person\", \"avail\": true, \"age\": 70}, {\"title\": \"Jan E. Johnston\", \"type\": \"person\", \"avail\": true, \"age\": 89, \"date\": 1469052000000.0}, {\"title\": \"Charlie G. Ross\", \"type\": \"person\", \"avail\": true, \"age\": 29}, {\"title\": \"Rose N. Blake\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 52, \"date\": 1148076000000.0}, {\"title\": \"Lillian E. Knox\", \"type\": \"person\", \"avail\": true, \"age\": 21, \"date\": 1576882800000.0}, {\"title\": \"Alison I. Welch\", \"type\": \"person\", \"avail\": true, \"age\": 23}, {\"title\": \"Toby North\", \"type\": \"person\", \"avail\": true, \"age\": 41, \"date\": 284511600000.0}]}, {\"title\": \"Incise dogs\", \"type\": \"role\", \"children\": [{\"title\": \"Wanda B. May\", \"type\": \"person\", \"age\": 72, \"date\": 1010271600000.0}, {\"title\": \"Keith Bower\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 948063600000.0}, {\"title\": \"Una Piper\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 97, \"date\": 486252000000.0, \"remarks\": \"Glitters policies amazingly.\"}, {\"title\": \"Victor J. Scott\", \"type\": \"person\", \"age\": 43, \"date\": 1457910000000.0, \"remarks\": \"Pours prompts rapidly.\"}, {\"title\": \"Matt B. Rampling\", \"type\": \"person\", \"avail\": true, \"age\": 70, \"remarks\": \"Retires softs ethically.\"}, {\"title\": \"Molly Q. Nash\", \"type\": \"person\", \"avail\": true, \"age\": 59, \"date\": 1531519200000.0}, {\"title\": \"Sydney Stewart\", \"type\": \"person\", \"avail\": true, \"age\": 85, \"date\": 440118000000.0}, {\"title\": \"Steven D. Gill\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 21}, {\"title\": \"Sydney N. Piper\", \"type\": \"person\", \"avail\": true, \"age\": 27, \"date\": 582847200000.0}]}, {\"title\": \"Recur creams\", \"type\": \"role\", \"children\": [{\"title\": \"Joshua P. Poole\", \"type\": \"person\", \"age\": 97, \"remarks\": \"Tests crickets jubilantly.\"}]}, {\"title\": \"March wonders\", \"type\": \"role\", \"children\": [{\"title\": \"Elizabeth Lee\", \"type\": \"person\", \"avail\": true, \"age\": 51}, {\"title\": \"Taylor U. Vaughan\", \"type\": \"person\", \"avail\": true, \"age\": 57}, {\"title\": \"Gavin Peake\", \"type\": \"person\", \"avail\": true, \"age\": 91, \"date\": 186620400000.0}, {\"title\": \"Anne K. Hart\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 89, \"date\": 163465200000.0, \"remarks\": \"Controls readings extensively.\"}, {\"title\": \"Brian Hughes\", \"type\": \"person\", \"avail\": true, \"age\": 64, \"remarks\": \"Ponders grandmothers luckily.\"}]}, {\"title\": \"Rewind reasons\", \"type\": \"role\", \"children\": [{\"title\": \"Edward I. Taylor\", \"type\": \"person\", \"avail\": true, \"age\": 93, \"date\": 633394800000.0, \"remarks\": \"Greets cities delightfully.\"}, {\"title\": \"Elizabeth Q. Bower\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 83, \"date\": 543970800000.0}, {\"title\": \"Christian Underwood\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 225068400000.0}]}, {\"title\": \"Donate regulars\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Jennifer I. Manning\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 56, \"date\": 889052400000.0}, {\"title\": \"Karen T. Chapman\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 1140044400000.0}, {\"title\": \"Taylor Mackay\", \"type\": \"person\", \"avail\": true, \"age\": 46}, {\"title\": \"Thomas Ogden\", \"type\": \"person\", \"avail\": true, \"age\": 41, \"date\": 1520809200000.0, \"remarks\": \"Imprisons leads reliably.\"}, {\"title\": \"Blake Carr\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 26, \"remarks\": \"Scorches instances diligently.\"}, {\"title\": \"Charlie J. Hodges\", \"type\": \"person\", \"avail\": true, \"age\": 92, \"date\": 702424800000.0}]}, {\"title\": \"Quit editors\", \"type\": \"role\", \"children\": [{\"title\": \"Lucas K. North\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 76, \"date\": 424994400000.0}, {\"title\": \"Adrian Piper\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 295138800000.0}, {\"title\": \"Jayden Hill\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 93, \"date\": 1248300000000.0, \"remarks\": \"Damps hosts explicitly.\"}, {\"title\": \"Ruth Wilson\", \"type\": \"person\", \"avail\": true, \"age\": 33, \"date\": 505263600000.0}, {\"title\": \"Neil Tucker\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 24}, {\"title\": \"Adam Dickens\", \"type\": \"person\", \"avail\": true, \"age\": 44, \"date\": 1088114400000.0, \"remarks\": \"Guards illegals happily.\"}, {\"title\": \"Sean Alsop\", \"type\": \"person\", \"avail\": true, \"age\": 69, \"date\": 650757600000.0}, {\"title\": \"Kylie D. Powell\", \"type\": \"person\", \"avail\": true, \"age\": 58}, {\"title\": \"Yvonne X. King\", \"type\": \"person\", \"age\": 52, \"date\": 1590703200000.0, \"remarks\": \"Teaches tops respectably.\"}, {\"title\": \"Paul Mitchell\", \"type\": \"person\", \"avail\": true, \"age\": 72, \"date\": 1337205600000.0}, {\"title\": \"Heather Campbell\", \"type\": \"person\", \"avail\": true, \"age\": 50, \"date\": 67734000000.0}, {\"title\": \"Sam E. Dyer\", \"type\": \"person\", \"avail\": true, \"age\": 30}, {\"title\": \"Anne F. Mitchell\", \"type\": \"person\", \"avail\": true, \"age\": 28, \"remarks\": \"Constitutes natures earnestly.\"}, {\"title\": \"Frances P. Gill\", \"type\": \"person\", \"avail\": true, \"age\": 69, \"date\": 186361200000.0}, {\"title\": \"Angela J. Anderson\", \"type\": \"person\", \"avail\": true, \"age\": 95}, {\"title\": \"Sarah B. McDonald\", \"type\": \"person\", \"avail\": true, \"age\": 96}, {\"title\": \"Kimberly Peters\", \"type\": \"person\", \"avail\": true, \"age\": 94, \"date\": 697503600000.0}, {\"title\": \"Carl M. May\", \"type\": \"person\", \"avail\": true, \"age\": 34, \"remarks\": \"Implodes stars assuredly.\"}, {\"title\": \"Gordon T. McDonald\", \"type\": \"person\", \"avail\": true, \"age\": 49, \"date\": 1083880800000.0}]}, {\"title\": \"Crave horrors\", \"type\": \"role\", \"children\": [{\"title\": \"Andrea D. Newman\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 45}, {\"title\": \"Jonathan B. Vaughan\", \"type\": \"person\", \"avail\": true, \"age\": 26}]}]}, {\"title\": \"Dept. for Doors and Backgrounds\", \"type\": \"department\", \"children\": [{\"title\": \"Reply lifts\", \"type\": \"role\", \"children\": [{\"title\": \"Kimberly Cornish\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 243558000000.0, \"remarks\": \"Shaves slides amazingly.\"}, {\"title\": \"Molly Z. Ball\", \"type\": \"person\", \"avail\": true, \"age\": 45, \"date\": 1403388000000.0, \"remarks\": \"Retches jumps helpfully.\"}, {\"title\": \"Fiona L. Short\", \"type\": \"person\", \"avail\": true, \"age\": 33}, {\"title\": \"Madeleine W. Vaughan\", \"type\": \"person\", \"avail\": true, \"age\": 39, \"remarks\": \"Adjusts designs delicately.\"}, {\"title\": \"Jacob Turner\", \"type\": \"person\", \"avail\": true, \"age\": 47, \"date\": 615592800000.0}, {\"title\": \"Stephen M. Mills\", \"type\": \"person\", \"avail\": true, \"age\": 90, \"date\": 1399586400000.0, \"remarks\": \"Fetches amounts early.\"}]}, {\"title\": \"Persuade natives\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Frances J. Blake\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 89, \"remarks\": \"Cools midnights suitably.\"}, {\"title\": \"Toby J. Morgan\", \"type\": \"person\", \"age\": 60}, {\"title\": \"Jane McDonald\", \"type\": \"person\", \"avail\": true, \"age\": 64, \"date\": 986162400000.0}, {\"title\": \"Una Robertson\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 70, \"date\": 647733600000.0, \"remarks\": \"Flaps structures fluently.\"}, {\"title\": \"Bobbie O. Watson\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 28, \"remarks\": \"States brothers extraordinarily.\"}, {\"title\": \"Gordon Lawrence\", \"type\": \"person\", \"avail\": true, \"age\": 29, \"date\": 1221861600000.0}, {\"title\": \"Ryan K. Dickens\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 21, \"remarks\": \"Shears levels interestingly.\"}, {\"title\": \"Michelle Howard\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 92, \"date\": 823129200000.0}, {\"title\": \"Theresa Nash\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 29, \"date\": 733788000000.0}, {\"title\": \"Max McDonald\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 82, \"date\": 1511218800000.0, \"remarks\": \"Improves histories intently.\"}, {\"title\": \"Emma A. Black\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 197938800000.0, \"remarks\": \"Hustles beginnings happily.\"}, {\"title\": \"Brandon L. Turner\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 40, \"remarks\": \"Scolds angers deeply.\"}, {\"title\": \"Andy Y. Ross\", \"type\": \"person\", \"avail\": true, \"age\": 77, \"date\": 519775200000.0, \"remarks\": \"Inflames tests skillfully.\"}]}, {\"title\": \"Rest arrivals\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Jonathan B. McDonald\", \"type\": \"person\", \"avail\": true, \"age\": 81}, {\"title\": \"Jesse Berry\", \"type\": \"person\", \"avail\": true, \"age\": 62}, {\"title\": \"Sydney Harris\", \"type\": \"person\", \"avail\": true, \"age\": 67, \"date\": 586130400000.0}, {\"title\": \"Irene Johnston\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"date\": 787791600000.0}, {\"title\": \"Jesse N. Reid\", \"type\": \"person\", \"avail\": true, \"age\": 32, \"date\": 643327200000.0}, {\"title\": \"Nicholas Peters\", \"type\": \"person\", \"avail\": true, \"age\": 46}, {\"title\": \"Heather Abraham\", \"type\": \"person\", \"avail\": true, \"age\": 43, \"date\": 848185200000.0}, {\"title\": \"Christopher Q. Watson\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"remarks\": \"Smoothes obligations brilliantly.\"}, {\"title\": \"Julian B. Marshall\", \"type\": \"person\", \"avail\": true, \"age\": 23, \"date\": 156812400000.0}, {\"title\": \"Felicity M. Sharp\", \"type\": \"person\", \"avail\": true, \"age\": 49}, {\"title\": \"Connor Ellison\", \"type\": \"person\", \"avail\": true, \"age\": 68, \"remarks\": \"Scarps guies fortunately.\"}]}, {\"title\": \"Help rows\", \"type\": \"role\", \"children\": [{\"title\": \"Angela A. Coleman\", \"type\": \"person\", \"avail\": true, \"age\": 75}, {\"title\": \"Ian Paige\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"date\": 1026770400000.0}, {\"title\": \"Maria Wilson\", \"type\": \"person\", \"avail\": true, \"age\": 98, \"date\": 426808800000.0}]}, {\"title\": \"Breed girls\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"James Metcalfe\", \"type\": \"person\", \"avail\": true, \"age\": 61, \"remarks\": \"Waxes grandmothers upwardly.\"}, {\"title\": \"Grace McGrath\", \"type\": \"person\", \"avail\": true, \"age\": 30}, {\"title\": \"Joshua Reid\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 38}, {\"title\": \"Abigail H. Hunter\", \"type\": \"person\", \"avail\": true, \"age\": 33, \"date\": 1429308000000.0}, {\"title\": \"Felicity F. Rees\", \"type\": \"person\", \"avail\": true, \"age\": 85, \"remarks\": \"Frees mights significantly.\"}, {\"title\": \"Jesse Graham\", \"type\": \"person\", \"avail\": true, \"age\": 33, \"date\": 1652738400000.0}, {\"title\": \"Frances U. Reid\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 24, \"date\": 210898800000.0}, {\"title\": \"Julia I. Walsh\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 65, \"date\": 737589600000.0, \"remarks\": \"Utters requirements very.\"}, {\"title\": \"Jack Y. Davidson\", \"type\": \"person\", \"avail\": true, \"age\": 62, \"date\": 1566252000000.0, \"remarks\": \"Scorches hamsters immeasurably.\"}, {\"title\": \"Tim Hemmings\", \"type\": \"person\", \"avail\": true, \"age\": 57, \"date\": 1591308000000.0, \"remarks\": \"Sways treats healthily.\"}, {\"title\": \"Carolyn Young\", \"type\": \"person\", \"avail\": true, \"age\": 44}, {\"title\": \"Oliver Randall\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 71, \"date\": 1361919600000.0}, {\"title\": \"Dylan Gibson\", \"type\": \"person\", \"avail\": true, \"age\": 38, \"date\": 1131058800000.0}, {\"title\": \"Pippa H. May\", \"type\": \"person\", \"avail\": true, \"age\": 68}]}, {\"title\": \"Scald acts\", \"type\": \"role\", \"children\": [{\"title\": \"Tim L. Miller\", \"type\": \"person\", \"avail\": true, \"age\": 31, \"date\": 1585864800000.0, \"remarks\": \"Boasts farms easily.\"}, {\"title\": \"Pippa Stewart\", \"type\": \"person\", \"avail\": true, \"age\": 31, \"date\": 718758000000.0}, {\"title\": \"Charlie Young\", \"type\": \"person\", \"age\": 69, \"date\": 827017200000.0, \"remarks\": \"Looks futures reliably.\"}, {\"title\": \"Claire Avery\", \"type\": \"person\", \"avail\": true, \"age\": 63, \"date\": 1360018800000.0}, {\"title\": \"Matt Johnston\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 68, \"date\": 1500156000000.0}, {\"title\": \"Frances Underwood\", \"type\": \"person\", \"avail\": true, \"age\": 30, \"date\": 1623276000000.0}, {\"title\": \"Chris A. Walker\", \"type\": \"person\", \"avail\": true, \"age\": 45}, {\"title\": \"Caroline Paterson\", \"type\": \"person\", \"avail\": true, \"age\": 41}, {\"title\": \"Phil Z. Morgan\", \"type\": \"person\", \"avail\": true, \"age\": 50}, {\"title\": \"Peter Peake\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 74, \"date\": 122598000000.0}, {\"title\": \"Jamie Scott\", \"type\": \"person\", \"avail\": true, \"age\": 39, \"date\": 645832800000.0}]}, {\"title\": \"Correct beautifuls\", \"type\": \"role\", \"children\": [{\"title\": \"Matt Q. Duncan\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 90, \"date\": 1204844400000.0}, {\"title\": \"Angela Taylor\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 82}, {\"title\": \"Sonia Wilson\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 98, \"date\": 1093125600000.0, \"remarks\": \"Contrasts efforts explicitly.\"}, {\"title\": \"Emma S. Reid\", \"type\": \"person\", \"avail\": true, \"age\": 42}, {\"title\": \"Victoria D. Butler\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 46}, {\"title\": \"Eddie Q. Newman\", \"type\": \"person\", \"avail\": true, \"age\": 44, \"date\": 7686000000.0}, {\"title\": \"Wanda F. King\", \"type\": \"person\", \"avail\": true, \"age\": 45, \"date\": 410310000000.0}, {\"title\": \"Sue W. Jackson\", \"type\": \"person\", \"avail\": true, \"age\": 57}, {\"title\": \"Jan P. Brown\", \"type\": \"person\", \"state\": \"s\", \"age\": 58, \"date\": 432856800000.0}, {\"title\": \"Nicholas T. Sutherland\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 21, \"date\": 1125525600000.0}, {\"title\": \"Rebecca Rampling\", \"type\": \"person\", \"state\": \"s\", \"age\": 42, \"date\": 1195945200000.0}, {\"title\": \"Penelope Grant\", \"type\": \"person\", \"avail\": true, \"age\": 89, \"date\": 703893600000.0, \"remarks\": \"Tears menus usefully.\"}, {\"title\": \"Eddie Z. Duncan\", \"type\": \"person\", \"avail\": true, \"age\": 42}, {\"title\": \"Michael Reid\", \"type\": \"person\", \"avail\": true, \"age\": 51, \"date\": 1288998000000.0}, {\"title\": \"Michelle Hughes\", \"type\": \"person\", \"avail\": true, \"age\": 27, \"date\": 1144620000000.0}, {\"title\": \"Connor S. Ball\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 70}, {\"title\": \"Jan K. Scott\", \"type\": \"person\", \"state\": \"h\", \"avail\": true, \"age\": 53, \"date\": 1236726000000.0}, {\"title\": \"Max Abraham\", \"type\": \"person\", \"avail\": true, \"age\": 48, \"remarks\": \"Hopes girlfriends elegantly.\"}, {\"title\": \"Frances B. McLean\", \"type\": \"person\", \"state\": \"s\", \"avail\": true, \"age\": 97, \"remarks\": \"Complains visuals rapidly.\"}]}, {\"title\": \"Change chains\", \"type\": \"role\", \"expanded\": true, \"children\": [{\"title\": \"Kylie Buckland\", \"type\": \"person\", \"state\": \"h\", \"age\": 35}, {\"title\": \"Kelly W. Lewis\", \"type\": \"person\", \"avail\": true, \"age\": 37, \"date\": 1092520800000.0}]}]}]}"
  },
  {
    "path": "docs/assets/json/tree_department_M_t_c.json",
    "content": "{\"types\":{\"department\":{\"icon\":\"bi bi-diagram-3\",\"colspan\":true},\"role\":{\"icon\":\"bi bi-microsoft-teams\",\"colspan\":true},\"person\":{\"icon\":\"bi bi-person\"}},\"columns\":[{\"title\":\"Title\",\"id\":\"*\",\"width\":\"250px\",\"sortable\":true},{\"title\":\"Age\",\"id\":\"age\",\"width\":\"50px\",\"html\":\"<input type=number min=0 tabindex='-1'>\",\"classes\":\"wb-helper-end\",\"sortable\":true},{\"title\":\"Date\",\"id\":\"date\",\"width\":\"100px\",\"html\":\"<input type=date tabindex=\\\"-1\\\">\",\"sortable\":true},{\"title\":\"Mood\",\"id\":\"mood\",\"width\":\"70px\",\"html\":\"\\n<select tabindex=\\\"-1\\\">\\n    <option value=\\\"h\\\">Happy</option>\\n    <option value=\\\"s\\\">Sad</option>\\n</select>\",\"sortable\":true},{\"title\":\"Remarks\",\"id\":\"remarks\",\"width\":\"300px\",\"html\":\"<input type=text tabindex='-1'>\",\"sortable\":true},{\"title\":\"#1\",\"id\":\"state_1\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#2\",\"id\":\"state_2\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#3\",\"id\":\"state_3\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#4\",\"id\":\"state_4\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#5\",\"id\":\"state_5\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#6\",\"id\":\"state_6\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#7\",\"id\":\"state_7\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#8\",\"id\":\"state_8\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#9\",\"id\":\"state_9\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#10\",\"id\":\"state_10\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#11\",\"id\":\"state_11\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#12\",\"id\":\"state_12\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#13\",\"id\":\"state_13\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#14\",\"id\":\"state_14\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#15\",\"id\":\"state_15\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#16\",\"id\":\"state_16\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#17\",\"id\":\"state_17\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#18\",\"id\":\"state_18\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#19\",\"id\":\"state_19\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#20\",\"id\":\"state_20\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#21\",\"id\":\"state_21\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#22\",\"id\":\"state_22\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#23\",\"id\":\"state_23\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#24\",\"id\":\"state_24\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#25\",\"id\":\"state_25\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#26\",\"id\":\"state_26\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#27\",\"id\":\"state_27\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#28\",\"id\":\"state_28\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#29\",\"id\":\"state_29\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#30\",\"id\":\"state_30\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#31\",\"id\":\"state_31\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#32\",\"id\":\"state_32\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#33\",\"id\":\"state_33\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#34\",\"id\":\"state_34\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#35\",\"id\":\"state_35\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#36\",\"id\":\"state_36\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#37\",\"id\":\"state_37\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#38\",\"id\":\"state_38\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#39\",\"id\":\"state_39\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#40\",\"id\":\"state_40\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#41\",\"id\":\"state_41\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#42\",\"id\":\"state_42\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#43\",\"id\":\"state_43\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#44\",\"id\":\"state_44\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#45\",\"id\":\"state_45\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#46\",\"id\":\"state_46\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#47\",\"id\":\"state_47\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#48\",\"id\":\"state_48\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false},{\"title\":\"#49\",\"id\":\"state_49\",\"width\":\"30px\",\"classes\":\"wb-helper-center\",\"html\":\"<input type=checkbox tabindex='-1'>\",\"sortable\":false}],\"children\":[{\"type\":\"department\",\"title\":\"Dept. for Carries and Koalas\",\"children\":[{\"type\":\"role\",\"title\":\"Construe persons\",\"children\":[{\"type\":\"person\",\"title\":\"Karen Lee\",\"state\":\"h\",\"avail\":true,\"age\":64,\"date\":1500940800000.0,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_3\":true,\"state_7\":true,\"state_12\":true,\"state_13\":true,\"state_23\":true,\"state_24\":true,\"state_27\":true,\"state_41\":true,\"state_44\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Jonathan A. Mitchell\",\"state\":\"h\",\"avail\":true,\"age\":97,\"date\":472953600000.0,\"state_2\":true,\"state_5\":true,\"state_9\":true,\"state_11\":true,\"state_20\":true,\"state_28\":true,\"state_29\":true,\"state_34\":true,\"state_42\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Faith U. Powell\",\"avail\":true,\"age\":34,\"state_20\":true,\"state_32\":true,\"state_34\":true,\"state_35\":true,\"state_46\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Stephen Knox\",\"avail\":true,\"age\":63,\"state_5\":true,\"state_15\":true,\"state_21\":true,\"state_23\":true,\"state_26\":true,\"state_32\":true,\"state_40\":true,\"state_42\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Joseph H. Smith\",\"state\":\"h\",\"avail\":true,\"age\":90,\"state_5\":true,\"state_8\":true,\"state_9\":true,\"state_11\":true,\"state_14\":true,\"state_24\":true,\"state_27\":true,\"state_30\":true,\"state_31\":true,\"state_32\":true,\"state_40\":true,\"state_44\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Christopher Lee\",\"state\":\"s\",\"avail\":true,\"age\":32,\"date\":469152000000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_6\":true,\"state_7\":true,\"state_13\":true,\"state_18\":true,\"state_22\":true,\"state_31\":true,\"state_33\":true,\"state_38\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Karen Peake\",\"avail\":true,\"age\":42,\"date\":1650240000000.0,\"state_4\":true,\"state_11\":true,\"state_21\":true,\"state_32\":true,\"state_39\":true,\"state_41\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Richard Wallace\",\"age\":50,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_14\":true,\"state_18\":true,\"state_19\":true,\"state_26\":true,\"state_39\":true,\"state_43\":true,\"state_44\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Bernadette H. Berry\",\"state\":\"s\",\"avail\":true,\"age\":40,\"date\":367372800000.0,\"state_2\":true,\"state_4\":true,\"state_5\":true,\"state_7\":true,\"state_9\":true,\"state_12\":true,\"state_27\":true,\"state_32\":true,\"state_37\":true,\"state_41\":true,\"state_47\":true}]},{\"type\":\"role\",\"title\":\"Imagine secretaries\",\"children\":[{\"type\":\"person\",\"title\":\"Pat I. Short\",\"age\":86,\"date\":1180828800000.0,\"state_7\":true,\"state_15\":true,\"state_18\":true,\"state_20\":true,\"state_25\":true,\"state_31\":true,\"state_37\":true,\"state_41\":true,\"state_42\":true,\"state_45\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Phil McLean\",\"state\":\"s\",\"avail\":true,\"age\":72,\"date\":764035200000.0,\"state_1\":true,\"state_2\":true,\"state_9\":true,\"state_10\":true,\"state_12\":true,\"state_26\":true,\"state_29\":true,\"state_31\":true,\"state_37\":true,\"state_40\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Joan J. Watson\",\"avail\":true,\"age\":31,\"date\":832118400000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_1\":true,\"state_7\":true,\"state_10\":true,\"state_16\":true,\"state_20\":true,\"state_21\":true,\"state_22\":true,\"state_23\":true,\"state_35\":true,\"state_45\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Nicholas Vaughan\",\"state\":\"s\",\"avail\":true,\"age\":29,\"state_12\":true,\"state_17\":true,\"state_21\":true,\"state_23\":true,\"state_26\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Sean E. Young\",\"avail\":true,\"age\":45,\"date\":903052800000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_2\":true,\"state_3\":true,\"state_6\":true,\"state_7\":true,\"state_11\":true,\"state_25\":true,\"state_29\":true,\"state_44\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Natalie Poole\",\"state\":\"h\",\"avail\":true,\"age\":48,\"date\":469065600000.0,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_1\":true,\"state_4\":true,\"state_6\":true,\"state_11\":true,\"state_12\":true,\"state_13\":true,\"state_23\":true,\"state_29\":true,\"state_33\":true,\"state_40\":true,\"state_47\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Liam E. Mathis\",\"state\":\"h\",\"avail\":true,\"age\":79,\"state_2\":true,\"state_7\":true,\"state_8\":true,\"state_10\":true,\"state_13\":true,\"state_21\":true,\"state_24\":true,\"state_28\":true,\"state_36\":true,\"state_37\":true,\"state_40\":true,\"state_42\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Leonard X. Brown\",\"age\":30,\"date\":719798400000.0,\"state_1\":true,\"state_2\":true,\"state_6\":true,\"state_28\":true,\"state_31\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Jayden Kelly\",\"avail\":true,\"age\":29,\"date\":1718150400000.0,\"state_4\":true,\"state_5\":true,\"state_23\":true,\"state_28\":true,\"state_38\":true,\"state_40\":true,\"state_43\":true,\"state_45\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Kelly Grant\",\"avail\":true,\"age\":71,\"date\":692323200000.0,\"state_12\":true,\"state_15\":true,\"state_24\":true,\"state_27\":true,\"state_35\":true,\"state_37\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Thomas Ince\",\"age\":38,\"date\":308534400000.0,\"state_1\":true,\"state_7\":true,\"state_14\":true,\"state_27\":true,\"state_33\":true,\"state_37\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Austin C. May\",\"avail\":true,\"age\":64,\"date\":1616716800000.0,\"state_9\":true,\"state_16\":true,\"state_19\":true,\"state_20\":true,\"state_21\":true,\"state_26\":true,\"state_31\":true,\"state_36\":true,\"state_37\":true,\"state_45\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Elizabeth Black\",\"avail\":true,\"age\":61,\"state_3\":true,\"state_4\":true,\"state_7\":true,\"state_26\":true,\"state_33\":true,\"state_38\":true},{\"type\":\"person\",\"title\":\"Evan Hamilton\",\"state\":\"s\",\"avail\":true,\"age\":56,\"state_2\":true,\"state_4\":true,\"state_9\":true,\"state_16\":true,\"state_17\":true,\"state_22\":true,\"state_23\":true,\"state_27\":true,\"state_30\":true,\"state_38\":true},{\"type\":\"person\",\"title\":\"Madeleine Rees\",\"avail\":true,\"age\":30,\"date\":394761600000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_5\":true,\"state_8\":true,\"state_16\":true,\"state_23\":true,\"state_34\":true,\"state_35\":true,\"state_43\":true,\"state_48\":true}]},{\"type\":\"role\",\"title\":\"Chew insurances\",\"children\":[{\"type\":\"person\",\"title\":\"Madeleine W. Paterson\",\"age\":53,\"date\":1215388800000.0,\"state_12\":true,\"state_13\":true,\"state_17\":true,\"state_21\":true,\"state_26\":true,\"state_34\":true,\"state_42\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Jason Kelly\",\"avail\":true,\"age\":58,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_4\":true,\"state_16\":true,\"state_19\":true,\"state_20\":true,\"state_27\":true,\"state_28\":true,\"state_32\":true,\"state_33\":true,\"state_39\":true,\"state_40\":true,\"state_43\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Hannah Howard\",\"state\":\"s\",\"avail\":true,\"age\":85,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_7\":true,\"state_10\":true,\"state_12\":true,\"state_18\":true,\"state_20\":true,\"state_23\":true,\"state_24\":true,\"state_25\":true,\"state_34\":true,\"state_39\":true,\"state_40\":true,\"state_43\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Kevin Hardacre\",\"avail\":true,\"age\":88,\"state_1\":true,\"state_11\":true,\"state_13\":true,\"state_20\":true,\"state_21\":true,\"state_24\":true,\"state_28\":true,\"state_34\":true,\"state_37\":true,\"state_40\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Forget gos\",\"children\":[{\"type\":\"person\",\"title\":\"Brian Murray\",\"avail\":true,\"age\":21,\"date\":1686096000000.0,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_1\":true,\"state_4\":true,\"state_5\":true,\"state_19\":true,\"state_20\":true,\"state_38\":true,\"state_39\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Jayden Martin\",\"avail\":true,\"age\":86,\"date\":1311724800000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_2\":true,\"state_5\":true,\"state_6\":true,\"state_18\":true,\"state_20\":true,\"state_26\":true,\"state_35\":true,\"state_36\":true,\"state_41\":true,\"state_43\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Dan Vaughan\",\"avail\":true,\"age\":82,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_2\":true,\"state_5\":true,\"state_30\":true,\"state_40\":true,\"state_41\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Adrian Johnston\",\"avail\":true,\"age\":48,\"date\":1696377600000.0,\"state_15\":true,\"state_16\":true,\"state_20\":true,\"state_29\":true,\"state_39\":true,\"state_42\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Pippa Nash\",\"avail\":true,\"age\":60,\"state_6\":true,\"state_8\":true,\"state_14\":true,\"state_19\":true,\"state_24\":true,\"state_26\":true,\"state_28\":true,\"state_29\":true,\"state_37\":true,\"state_40\":true,\"state_44\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Jayden H. Mackay\",\"avail\":true,\"age\":27,\"date\":1205193600000.0,\"state_2\":true,\"state_16\":true,\"state_19\":true,\"state_20\":true,\"state_22\":true,\"state_23\":true,\"state_26\":true,\"state_37\":true,\"state_39\":true},{\"type\":\"person\",\"title\":\"Daryl Manning\",\"state\":\"s\",\"avail\":true,\"age\":48,\"date\":76896000000.0,\"state_5\":true,\"state_9\":true,\"state_11\":true,\"state_24\":true,\"state_25\":true,\"state_26\":true,\"state_35\":true,\"state_40\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Andy Lewis\",\"avail\":true,\"age\":31,\"date\":109641600000.0,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_4\":true,\"state_6\":true,\"state_9\":true,\"state_10\":true,\"state_15\":true,\"state_17\":true,\"state_19\":true,\"state_34\":true,\"state_36\":true,\"state_39\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Katherine T. Abraham\",\"avail\":true,\"age\":70,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_46\":true},{\"type\":\"person\",\"title\":\"Angela P. Poole\",\"state\":\"h\",\"avail\":true,\"age\":21,\"date\":1494979200000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_3\":true,\"state_7\":true,\"state_12\":true,\"state_15\":true,\"state_18\":true,\"state_19\":true,\"state_20\":true,\"state_23\":true,\"state_27\":true,\"state_30\":true,\"state_39\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Oliver Dowd\",\"age\":54,\"date\":1678752000000.0,\"state_1\":true,\"state_3\":true,\"state_7\":true,\"state_8\":true,\"state_10\":true,\"state_16\":true,\"state_34\":true,\"state_39\":true,\"state_41\":true,\"state_42\":true,\"state_46\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Eddie O. Robertson\",\"avail\":true,\"age\":35,\"date\":580867200000.0,\"state_12\":true,\"state_15\":true,\"state_19\":true,\"state_20\":true,\"state_22\":true,\"state_28\":true,\"state_43\":true,\"state_45\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Christopher Morrison\",\"avail\":true,\"age\":47,\"date\":825811200000.0,\"state_4\":true,\"state_8\":true,\"state_12\":true,\"state_13\":true,\"state_15\":true,\"state_16\":true,\"state_19\":true,\"state_20\":true,\"state_24\":true,\"state_27\":true,\"state_29\":true,\"state_34\":true,\"state_46\":true,\"state_47\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Richard Lawrence\",\"avail\":true,\"age\":61,\"date\":1331769600000.0,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_7\":true,\"state_12\":true,\"state_13\":true,\"state_16\":true,\"state_17\":true,\"state_21\":true,\"state_26\":true,\"state_32\":true,\"state_40\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Melanie Rampling\",\"avail\":true,\"age\":26,\"date\":934588800000.0,\"state_1\":true,\"state_3\":true,\"state_7\":true,\"state_8\":true,\"state_15\":true,\"state_20\":true,\"state_25\":true,\"state_35\":true,\"state_44\":true,\"state_45\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Nicholas T. Fisher\",\"state\":\"s\",\"age\":85,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_2\":true,\"state_8\":true,\"state_9\":true,\"state_25\":true,\"state_28\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Toby Hudson\",\"state\":\"s\",\"avail\":true,\"age\":45,\"date\":946339200000.0,\"state_7\":true,\"state_8\":true,\"state_12\":true,\"state_22\":true,\"state_36\":true,\"state_38\":true,\"state_42\":true,\"state_48\":true}]},{\"type\":\"role\",\"title\":\"Prevent airlines\",\"children\":[{\"type\":\"person\",\"title\":\"Phoenix P. Forsyth\",\"avail\":true,\"age\":86,\"state_2\":true,\"state_8\":true,\"state_10\":true,\"state_12\":true,\"state_13\":true,\"state_15\":true,\"state_17\":true,\"state_19\":true,\"state_32\":true,\"state_33\":true,\"state_34\":true,\"state_35\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Irene R. Tucker\",\"state\":\"s\",\"avail\":true,\"age\":31,\"date\":899596800000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_2\":true,\"state_3\":true,\"state_4\":true,\"state_7\":true,\"state_8\":true,\"state_10\":true,\"state_12\":true,\"state_21\":true,\"state_23\":true,\"state_25\":true,\"state_30\":true,\"state_32\":true,\"state_39\":true,\"state_44\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jamie T. Reid\",\"avail\":true,\"age\":22,\"date\":569808000000.0,\"state_10\":true,\"state_15\":true,\"state_16\":true,\"state_24\":true,\"state_32\":true,\"state_39\":true},{\"type\":\"person\",\"title\":\"Rose Springer\",\"state\":\"h\",\"avail\":true,\"age\":80,\"state_6\":true,\"state_9\":true,\"state_19\":true,\"state_27\":true,\"state_28\":true,\"state_35\":true,\"state_38\":true,\"state_39\":true,\"state_40\":true,\"state_45\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Caroline Arnold\",\"avail\":true,\"age\":80,\"state_4\":true,\"state_8\":true,\"state_10\":true,\"state_12\":true,\"state_25\":true,\"state_41\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Mary Q. Watson\",\"state\":\"s\",\"avail\":true,\"age\":56,\"state_3\":true,\"state_5\":true,\"state_19\":true,\"state_22\":true,\"state_30\":true,\"state_32\":true,\"state_33\":true,\"state_34\":true,\"state_35\":true,\"state_44\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Charles Bower\",\"avail\":true,\"age\":42,\"date\":1082678400000.0,\"state_1\":true,\"state_2\":true,\"state_4\":true,\"state_9\":true,\"state_13\":true,\"state_18\":true,\"state_20\":true,\"state_21\":true,\"state_30\":true,\"state_34\":true,\"state_39\":true,\"state_43\":true,\"state_44\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Chris McLean\",\"avail\":true,\"age\":39,\"date\":1481587200000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_3\":true,\"state_6\":true,\"state_7\":true,\"state_12\":true,\"state_13\":true,\"state_14\":true,\"state_15\":true,\"state_19\":true,\"state_21\":true,\"state_27\":true,\"state_29\":true,\"state_30\":true,\"state_31\":true,\"state_32\":true,\"state_36\":true,\"state_38\":true,\"state_39\":true,\"state_44\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Evan E. Jackson\",\"avail\":true,\"age\":46,\"date\":1489795200000.0,\"state_13\":true,\"state_23\":true,\"state_29\":true,\"state_38\":true,\"state_43\":true,\"state_46\":true,\"state_47\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Emily Hemmings\",\"avail\":true,\"age\":59,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_9\":true,\"state_11\":true,\"state_17\":true,\"state_20\":true,\"state_28\":true,\"state_31\":true,\"state_33\":true,\"state_35\":true,\"state_36\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Casey Russell\",\"state\":\"s\",\"avail\":true,\"age\":28,\"date\":626227200000.0,\"state_12\":true,\"state_13\":true,\"state_23\":true,\"state_28\":true,\"state_32\":true,\"state_35\":true,\"state_36\":true,\"state_37\":true,\"state_39\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Isaac C. Bell\",\"state\":\"s\",\"avail\":true,\"age\":84,\"date\":1701129600000.0,\"state_1\":true,\"state_10\":true,\"state_14\":true,\"state_18\":true,\"state_32\":true,\"state_33\":true,\"state_38\":true,\"state_39\":true,\"state_40\":true,\"state_41\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Brian Wright\",\"state\":\"s\",\"age\":49,\"date\":322790400000.0,\"state_4\":true,\"state_12\":true,\"state_14\":true,\"state_21\":true,\"state_23\":true,\"state_29\":true,\"state_36\":true,\"state_38\":true,\"state_43\":true,\"state_44\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Katherine Howard\",\"state\":\"s\",\"avail\":true,\"age\":49,\"date\":105148800000.0,\"state_7\":true,\"state_15\":true,\"state_20\":true,\"state_22\":true,\"state_23\":true,\"state_27\":true,\"state_28\":true,\"state_30\":true,\"state_32\":true,\"state_34\":true,\"state_35\":true,\"state_36\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Anne Parr\",\"avail\":true,\"age\":47,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_7\":true,\"state_10\":true,\"state_13\":true,\"state_19\":true,\"state_22\":true,\"state_25\":true,\"state_26\":true,\"state_39\":true,\"state_43\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Chloe O. Paige\",\"avail\":true,\"age\":34,\"state_1\":true,\"state_2\":true,\"state_7\":true,\"state_8\":true,\"state_12\":true,\"state_15\":true,\"state_19\":true,\"state_20\":true,\"state_21\":true,\"state_23\":true,\"state_24\":true,\"state_30\":true,\"state_31\":true,\"state_33\":true,\"state_34\":true,\"state_39\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Jan Lewis\",\"avail\":true,\"age\":27,\"state_16\":true,\"state_21\":true,\"state_23\":true,\"state_26\":true,\"state_29\":true,\"state_33\":true,\"state_35\":true,\"state_37\":true,\"state_38\":true,\"state_40\":true,\"state_42\":true,\"state_44\":true,\"state_45\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Sam S. Watson\",\"avail\":true,\"age\":65,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_1\":true,\"state_2\":true,\"state_5\":true,\"state_7\":true,\"state_9\":true,\"state_30\":true,\"state_32\":true,\"state_39\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Lillian Peake\",\"avail\":true,\"age\":35,\"date\":1334966400000.0,\"state_3\":true,\"state_14\":true,\"state_18\":true,\"state_23\":true,\"state_26\":true,\"state_35\":true,\"state_36\":true,\"state_37\":true,\"state_39\":true,\"state_40\":true,\"state_42\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Corey D. Payne\",\"avail\":true,\"age\":73,\"date\":1380499200000.0,\"state_4\":true,\"state_12\":true,\"state_27\":true,\"state_34\":true,\"state_39\":true,\"state_40\":true,\"state_42\":true}]},{\"type\":\"role\",\"title\":\"Scald sons\",\"children\":[{\"type\":\"person\",\"title\":\"Sydney H. Lawrence\",\"avail\":true,\"age\":91,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_9\":true,\"state_13\":true,\"state_19\":true,\"state_24\":true,\"state_25\":true,\"state_28\":true,\"state_31\":true,\"state_37\":true,\"state_41\":true,\"state_44\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Alex H. Thomson\",\"avail\":true,\"age\":62,\"date\":1456012800000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_1\":true,\"state_3\":true,\"state_8\":true,\"state_16\":true,\"state_17\":true,\"state_18\":true,\"state_25\":true,\"state_26\":true,\"state_29\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Joan Russell\",\"avail\":true,\"age\":46,\"state_16\":true,\"state_17\":true,\"state_18\":true,\"state_19\":true,\"state_27\":true,\"state_37\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Kelly E. Nash\",\"avail\":true,\"age\":83,\"date\":1572307200000.0,\"state_9\":true,\"state_11\":true,\"state_15\":true,\"state_16\":true,\"state_20\":true,\"state_21\":true,\"state_23\":true,\"state_24\":true,\"state_26\":true,\"state_33\":true,\"state_36\":true,\"state_40\":true,\"state_42\":true,\"state_43\":true,\"state_44\":true}]},{\"type\":\"role\",\"title\":\"Ferry lifes\",\"children\":[{\"type\":\"person\",\"title\":\"Colin L. Hill\",\"avail\":true,\"age\":59,\"date\":595641600000.0,\"state_6\":true,\"state_16\":true,\"state_17\":true,\"state_22\":true,\"state_24\":true,\"state_26\":true,\"state_28\":true,\"state_29\":true,\"state_33\":true,\"state_38\":true,\"state_40\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Matt Sutherland\",\"avail\":true,\"age\":27,\"date\":342403200000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_7\":true,\"state_10\":true,\"state_15\":true,\"state_17\":true,\"state_23\":true,\"state_31\":true,\"state_34\":true,\"state_43\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Alex Black\",\"avail\":true,\"age\":52,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_3\":true,\"state_15\":true,\"state_21\":true,\"state_29\":true,\"state_31\":true,\"state_32\":true,\"state_35\":true,\"state_39\":true,\"state_40\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Casey C. Hughes\",\"state\":\"h\",\"avail\":true,\"age\":64,\"date\":801619200000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_19\":true,\"state_20\":true,\"state_24\":true,\"state_32\":true,\"state_33\":true,\"state_34\":true,\"state_40\":true,\"state_41\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Kelly Lyman\",\"avail\":true,\"age\":58,\"date\":1265932800000.0,\"state_5\":true,\"state_8\":true,\"state_10\":true,\"state_13\":true,\"state_14\":true,\"state_17\":true,\"state_20\":true,\"state_21\":true,\"state_25\":true,\"state_38\":true,\"state_39\":true,\"state_43\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Victoria S. Allan\",\"avail\":true,\"age\":35,\"date\":603763200000.0,\"state_11\":true,\"state_14\":true,\"state_16\":true,\"state_18\":true,\"state_20\":true,\"state_21\":true,\"state_23\":true,\"state_25\":true,\"state_29\":true,\"state_30\":true,\"state_38\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Felicity McGrath\",\"avail\":true,\"age\":69,\"date\":868406400000.0,\"state_5\":true,\"state_11\":true,\"state_15\":true,\"state_23\":true,\"state_35\":true,\"state_36\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Dylan Wallace\",\"avail\":true,\"age\":63,\"state_1\":true,\"state_4\":true,\"state_7\":true,\"state_9\":true,\"state_19\":true,\"state_24\":true,\"state_31\":true,\"state_43\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Benjamin W. Bell\",\"state\":\"h\",\"avail\":true,\"age\":72,\"date\":691200000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_3\":true,\"state_7\":true,\"state_29\":true,\"state_35\":true,\"state_37\":true,\"state_40\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Andy L. Clarkson\",\"age\":22,\"date\":1369094400000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_13\":true,\"state_21\":true,\"state_23\":true,\"state_28\":true,\"state_30\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Charles Slater\",\"avail\":true,\"age\":54,\"date\":1568505600000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_3\":true,\"state_4\":true,\"state_10\":true,\"state_15\":true,\"state_16\":true,\"state_39\":true,\"state_41\":true,\"state_45\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Emily L. Poole\",\"state\":\"h\",\"avail\":true,\"age\":66,\"date\":378000000000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_3\":true,\"state_4\":true,\"state_10\":true,\"state_17\":true,\"state_23\":true,\"state_27\":true,\"state_30\":true,\"state_40\":true,\"state_43\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Alexander Slater\",\"avail\":true,\"age\":84,\"date\":1100044800000.0,\"state_14\":true,\"state_19\":true,\"state_24\":true,\"state_38\":true,\"state_39\":true,\"state_41\":true,\"state_43\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Evan N. Thomson\",\"avail\":true,\"age\":24,\"date\":846633600000.0,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_2\":true,\"state_12\":true,\"state_13\":true,\"state_16\":true,\"state_27\":true,\"state_29\":true,\"state_32\":true},{\"type\":\"person\",\"title\":\"Frank Young\",\"avail\":true,\"age\":51,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_1\":true,\"state_6\":true,\"state_14\":true,\"state_22\":true,\"state_28\":true,\"state_33\":true,\"state_37\":true,\"state_39\":true,\"state_40\":true,\"state_41\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Blake J. Underwood\",\"state\":\"s\",\"avail\":true,\"age\":82,\"state_3\":true,\"state_18\":true,\"state_29\":true,\"state_36\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Phoenix A. Arnold\",\"age\":84,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_12\":true,\"state_19\":true,\"state_32\":true,\"state_38\":true,\"state_39\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Emily F. Langdon\",\"avail\":true,\"age\":36,\"state_2\":true,\"state_6\":true,\"state_13\":true,\"state_18\":true,\"state_21\":true,\"state_23\":true,\"state_25\":true,\"state_27\":true,\"state_35\":true,\"state_39\":true,\"state_43\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Emma X. Glover\",\"avail\":true,\"age\":40,\"date\":370224000000.0,\"state_5\":true,\"state_16\":true,\"state_27\":true,\"state_36\":true,\"state_41\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Thomas Mills\",\"avail\":true,\"age\":82,\"date\":1087344000000.0,\"state_1\":true,\"state_3\":true,\"state_7\":true,\"state_13\":true,\"state_21\":true,\"state_29\":true}]},{\"type\":\"role\",\"title\":\"Chat reindeers\",\"children\":[{\"type\":\"person\",\"title\":\"Claire Cornish\",\"avail\":true,\"age\":74,\"state_11\":true,\"state_15\":true,\"state_17\":true,\"state_24\":true,\"state_27\":true,\"state_43\":true,\"state_46\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Claire Ogden\",\"avail\":true,\"age\":97,\"state_1\":true,\"state_4\":true,\"state_12\":true,\"state_17\":true,\"state_20\":true,\"state_39\":true,\"state_40\":true,\"state_45\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Robert McDonald\",\"state\":\"h\",\"avail\":true,\"age\":65,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_10\":true,\"state_22\":true,\"state_23\":true,\"state_27\":true,\"state_42\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Michael P. Glover\",\"avail\":true,\"age\":26,\"date\":867196800000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_1\":true,\"state_12\":true,\"state_16\":true,\"state_20\":true,\"state_23\":true,\"state_32\":true,\"state_44\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Corey C. Hunter\",\"age\":45,\"date\":1678579200000.0,\"state_1\":true,\"state_7\":true,\"state_10\":true,\"state_14\":true,\"state_18\":true,\"state_22\":true,\"state_23\":true,\"state_25\":true,\"state_30\":true,\"state_33\":true,\"state_35\":true,\"state_36\":true,\"state_37\":true,\"state_40\":true,\"state_42\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Victor M. Gibson\",\"avail\":true,\"age\":82,\"date\":1431907200000.0,\"state_2\":true,\"state_3\":true,\"state_7\":true,\"state_11\":true,\"state_12\":true,\"state_13\":true,\"state_21\":true,\"state_26\":true,\"state_27\":true,\"state_29\":true,\"state_30\":true,\"state_35\":true,\"state_40\":true,\"state_42\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Edward Cameron\",\"avail\":true,\"age\":24,\"date\":803260800000.0,\"state_1\":true,\"state_6\":true,\"state_17\":true,\"state_21\":true,\"state_22\":true,\"state_23\":true,\"state_24\":true,\"state_25\":true,\"state_36\":true,\"state_38\":true,\"state_46\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Jane Powell\",\"age\":80,\"state_5\":true,\"state_7\":true,\"state_9\":true,\"state_10\":true,\"state_14\":true,\"state_16\":true,\"state_17\":true,\"state_20\":true,\"state_22\":true,\"state_26\":true,\"state_38\":true,\"state_40\":true,\"state_46\":true,\"state_49\":true}]}]},{\"type\":\"department\",\"title\":\"Dept. for Investments and Supports\",\"children\":[{\"type\":\"role\",\"title\":\"Scarp listens\",\"children\":[{\"type\":\"person\",\"title\":\"Sarah Ross\",\"avail\":true,\"age\":66,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_2\":true,\"state_7\":true,\"state_11\":true,\"state_12\":true,\"state_14\":true,\"state_23\":true,\"state_25\":true,\"state_30\":true,\"state_37\":true,\"state_40\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Bobbie Walker\",\"state\":\"h\",\"avail\":true,\"age\":44,\"state_3\":true,\"state_5\":true,\"state_7\":true,\"state_19\":true,\"state_22\":true,\"state_24\":true,\"state_26\":true,\"state_30\":true,\"state_31\":true,\"state_33\":true,\"state_35\":true,\"state_38\":true,\"state_45\":true,\"state_46\":true,\"state_48\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Angela T. Carr\",\"avail\":true,\"age\":88,\"state_2\":true,\"state_7\":true,\"state_28\":true,\"state_30\":true,\"state_32\":true,\"state_35\":true,\"state_36\":true},{\"type\":\"person\",\"title\":\"Harry Springer\",\"state\":\"s\",\"avail\":true,\"age\":71,\"date\":1596067200000.0,\"state_12\":true,\"state_18\":true,\"state_28\":true,\"state_32\":true,\"state_36\":true,\"state_37\":true,\"state_38\":true,\"state_40\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Carl McDonald\",\"avail\":true,\"age\":55,\"date\":1501372800000.0,\"state_1\":true,\"state_10\":true,\"state_12\":true,\"state_23\":true,\"state_28\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Alan Z. Davies\",\"avail\":true,\"age\":88,\"date\":759801600000.0,\"state_1\":true,\"state_4\":true,\"state_6\":true,\"state_10\":true,\"state_12\":true,\"state_13\":true,\"state_18\":true,\"state_20\":true,\"state_21\":true,\"state_22\":true,\"state_25\":true,\"state_28\":true,\"state_32\":true,\"state_40\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Dylan Cameron\",\"avail\":true,\"age\":48,\"date\":787449600000.0,\"state_6\":true,\"state_12\":true,\"state_13\":true,\"state_25\":true,\"state_27\":true,\"state_36\":true,\"state_39\":true,\"state_40\":true,\"state_42\":true,\"state_45\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Sydney Z. Fraser\",\"state\":\"h\",\"avail\":true,\"age\":32,\"date\":822528000000.0,\"state_3\":true,\"state_5\":true,\"state_10\":true,\"state_14\":true,\"state_17\":true,\"state_19\":true,\"state_24\":true,\"state_30\":true,\"state_33\":true,\"state_43\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Claire W. Mackenzie\",\"state\":\"h\",\"avail\":true,\"age\":76,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_1\":true,\"state_8\":true,\"state_9\":true,\"state_12\":true,\"state_16\":true,\"state_18\":true,\"state_20\":true,\"state_28\":true,\"state_30\":true,\"state_32\":true,\"state_39\":true,\"state_42\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Claire M. Pullman\",\"state\":\"s\",\"avail\":true,\"age\":54,\"date\":590284800000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_1\":true,\"state_3\":true,\"state_10\":true,\"state_13\":true,\"state_15\":true,\"state_20\":true,\"state_27\":true,\"state_39\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Isaac Lambert\",\"state\":\"h\",\"avail\":true,\"age\":22,\"date\":1359590400000.0,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_8\":true,\"state_14\":true,\"state_29\":true,\"state_37\":true,\"state_43\":true,\"state_44\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Joe Paterson\",\"avail\":true,\"age\":77,\"date\":1560988800000.0,\"state_13\":true,\"state_16\":true,\"state_28\":true,\"state_32\":true,\"state_36\":true,\"state_41\":true,\"state_43\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Irene Gill\",\"state\":\"h\",\"avail\":true,\"age\":35,\"state_27\":true,\"state_47\":true}]},{\"type\":\"role\",\"title\":\"Invite packs\",\"children\":[{\"type\":\"person\",\"title\":\"Stephanie Vaughan\",\"state\":\"s\",\"avail\":true,\"age\":73,\"date\":758073600000.0,\"state_17\":true,\"state_20\":true,\"state_22\":true,\"state_23\":true,\"state_25\":true,\"state_28\":true,\"state_29\":true,\"state_30\":true,\"state_33\":true,\"state_40\":true,\"state_41\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Edward James\",\"state\":\"h\",\"avail\":true,\"age\":70,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_3\":true,\"state_4\":true,\"state_11\":true,\"state_13\":true,\"state_14\":true,\"state_15\":true,\"state_16\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Connor Dyer\",\"avail\":true,\"age\":29,\"date\":602985600000.0,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_1\":true,\"state_9\":true,\"state_15\":true,\"state_17\":true,\"state_21\":true,\"state_22\":true,\"state_26\":true,\"state_34\":true,\"state_38\":true,\"state_39\":true,\"state_40\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Rachel Hill\",\"state\":\"s\",\"avail\":true,\"age\":41,\"date\":1020902400000.0,\"state_5\":true,\"state_9\":true,\"state_10\":true,\"state_16\":true,\"state_23\":true,\"state_25\":true,\"state_36\":true,\"state_37\":true,\"state_38\":true,\"state_41\":true,\"state_44\":true,\"state_45\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Sebastian Mathis\",\"avail\":true,\"age\":23,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_1\":true,\"state_4\":true,\"state_10\":true,\"state_15\":true,\"state_20\":true,\"state_22\":true,\"state_33\":true,\"state_36\":true,\"state_42\":true,\"state_44\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Jean Robertson\",\"avail\":true,\"age\":70,\"date\":631929600000.0,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_1\":true,\"state_9\":true,\"state_27\":true,\"state_34\":true},{\"type\":\"person\",\"title\":\"Colin Taylor\",\"state\":\"s\",\"age\":22,\"date\":879984000000.0,\"state_7\":true,\"state_10\":true,\"state_23\":true,\"state_26\":true,\"state_32\":true,\"state_42\":true,\"state_44\":true,\"state_45\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Faith W. Glover\",\"avail\":true,\"age\":92,\"state_1\":true,\"state_8\":true,\"state_19\":true,\"state_20\":true,\"state_34\":true,\"state_40\":true,\"state_42\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Joshua F. Fisher\",\"avail\":true,\"age\":98,\"state_5\":true,\"state_11\":true,\"state_13\":true,\"state_19\":true,\"state_24\":true,\"state_33\":true,\"state_40\":true,\"state_42\":true,\"state_44\":true,\"state_46\":true}]},{\"type\":\"role\",\"title\":\"Connect tears\",\"children\":[{\"type\":\"person\",\"title\":\"Tracey C. Stewart\",\"avail\":true,\"age\":83,\"state_2\":true,\"state_25\":true,\"state_26\":true,\"state_30\":true,\"state_34\":true,\"state_41\":true,\"state_42\":true,\"state_45\":true,\"state_46\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Harry Welch\",\"state\":\"s\",\"avail\":true,\"age\":90,\"state_15\":true,\"state_16\":true,\"state_24\":true,\"state_29\":true,\"state_30\":true,\"state_36\":true,\"state_37\":true,\"state_42\":true,\"state_44\":true,\"state_46\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Fiona Scott\",\"avail\":true,\"age\":90,\"date\":1051315200000.0,\"state_19\":true,\"state_32\":true,\"state_41\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jean G. Cornish\",\"avail\":true,\"age\":61,\"date\":34300800000.0,\"state_3\":true,\"state_5\":true,\"state_6\":true,\"state_7\":true,\"state_8\":true,\"state_18\":true,\"state_23\":true,\"state_35\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Blake Metcalfe\",\"state\":\"h\",\"avail\":true,\"age\":30,\"date\":590198400000.0,\"state_1\":true,\"state_5\":true,\"state_10\":true,\"state_16\":true,\"state_25\":true,\"state_32\":true,\"state_33\":true,\"state_34\":true,\"state_41\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Joe Grant\",\"avail\":true,\"age\":36,\"date\":23760000000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_8\":true,\"state_22\":true,\"state_24\":true,\"state_29\":true,\"state_30\":true,\"state_45\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Samantha X. Underwood\",\"state\":\"h\",\"avail\":true,\"age\":65,\"date\":505958400000.0,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_3\":true,\"state_8\":true,\"state_19\":true,\"state_21\":true,\"state_22\":true,\"state_28\":true,\"state_32\":true,\"state_37\":true,\"state_38\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Kevin T. Hemmings\",\"avail\":true,\"age\":24,\"date\":4924800000.0,\"state_6\":true,\"state_15\":true,\"state_16\":true,\"state_18\":true,\"state_23\":true,\"state_31\":true,\"state_35\":true,\"state_40\":true,\"state_41\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Luke Welch\",\"avail\":true,\"age\":50,\"state_1\":true,\"state_2\":true,\"state_5\":true,\"state_12\":true,\"state_14\":true,\"state_15\":true,\"state_16\":true,\"state_24\":true,\"state_33\":true,\"state_36\":true,\"state_42\":true,\"state_43\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Nathan S. Graham\",\"state\":\"s\",\"avail\":true,\"age\":25,\"date\":957830400000.0,\"state_8\":true,\"state_9\":true,\"state_12\":true,\"state_16\":true,\"state_17\":true,\"state_19\":true,\"state_21\":true,\"state_24\":true,\"state_30\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Theresa Nash\",\"avail\":true,\"age\":70,\"date\":564192000000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_3\":true,\"state_4\":true,\"state_22\":true,\"state_23\":true,\"state_26\":true,\"state_40\":true,\"state_43\":true,\"state_44\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Eddie N. Vaughan\",\"avail\":true,\"age\":59,\"date\":1237420800000.0,\"state_6\":true,\"state_17\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Emma Paterson\",\"avail\":true,\"age\":87,\"date\":1460764800000.0,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_3\":true,\"state_10\":true,\"state_23\":true,\"state_30\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Rose Dowd\",\"state\":\"s\",\"avail\":true,\"age\":54,\"date\":1574812800000.0,\"state_1\":true,\"state_4\":true,\"state_17\":true,\"state_21\":true,\"state_28\":true,\"state_29\":true,\"state_32\":true,\"state_39\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Taylor I. Pullman\",\"avail\":true,\"age\":42,\"date\":289440000000.0,\"state_2\":true,\"state_3\":true,\"state_7\":true,\"state_31\":true,\"state_33\":true,\"state_38\":true,\"state_41\":true,\"state_43\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Bernadette Metcalfe\",\"avail\":true,\"age\":26,\"state_1\":true,\"state_10\":true,\"state_12\":true,\"state_13\":true,\"state_15\":true,\"state_22\":true,\"state_33\":true,\"state_47\":true}]},{\"type\":\"role\",\"title\":\"Sleep beings\",\"children\":[{\"type\":\"person\",\"title\":\"Charles Davies\",\"age\":85,\"state_2\":true,\"state_3\":true,\"state_6\":true,\"state_8\":true,\"state_14\":true,\"state_19\":true,\"state_23\":true,\"state_36\":true,\"state_37\":true,\"state_41\":true,\"state_43\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Toby Payne\",\"age\":29,\"date\":757296000000.0,\"state_24\":true,\"state_33\":true,\"state_37\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Taylor E. Paige\",\"avail\":true,\"age\":57,\"date\":1179619200000.0,\"state_2\":true,\"state_3\":true,\"state_4\":true,\"state_6\":true,\"state_19\":true,\"state_23\":true,\"state_27\":true,\"state_33\":true},{\"type\":\"person\",\"title\":\"Toby X. Parsons\",\"state\":\"h\",\"avail\":true,\"age\":64,\"date\":174096000000.0,\"state_3\":true,\"state_10\":true,\"state_12\":true,\"state_22\":true,\"state_26\":true,\"state_29\":true,\"state_32\":true,\"state_39\":true,\"state_41\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Bobbie R. Quinn\",\"avail\":true,\"age\":68,\"date\":973641600000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_1\":true,\"state_6\":true,\"state_7\":true,\"state_9\":true,\"state_11\":true,\"state_22\":true,\"state_26\":true,\"state_34\":true,\"state_46\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Katherine Oliver\",\"avail\":true,\"age\":73,\"state_10\":true,\"state_14\":true,\"state_17\":true,\"state_19\":true,\"state_20\":true,\"state_25\":true,\"state_26\":true,\"state_30\":true,\"state_45\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Frank R. Morrison\",\"avail\":true,\"age\":91,\"date\":768268800000.0,\"state_1\":true,\"state_10\":true,\"state_15\":true,\"state_32\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Sarah Hodges\",\"avail\":true,\"age\":30,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_1\":true,\"state_2\":true,\"state_11\":true,\"state_15\":true,\"state_16\":true,\"state_18\":true,\"state_30\":true,\"state_31\":true,\"state_42\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Colin Churchill\",\"state\":\"h\",\"avail\":true,\"age\":28,\"date\":996451200000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_15\":true,\"state_18\":true,\"state_23\":true,\"state_26\":true,\"state_27\":true,\"state_31\":true,\"state_33\":true,\"state_41\":true,\"state_42\":true,\"state_43\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Alexander Y. Vaughan\",\"age\":84,\"date\":211161600000.0,\"state_15\":true,\"state_24\":true,\"state_28\":true,\"state_32\":true,\"state_33\":true,\"state_36\":true,\"state_37\":true,\"state_42\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Alison Lyman\",\"state\":\"s\",\"avail\":true,\"age\":92,\"date\":1153526400000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_1\":true,\"state_3\":true,\"state_8\":true,\"state_9\":true,\"state_10\":true,\"state_11\":true,\"state_12\":true,\"state_16\":true,\"state_30\":true,\"state_32\":true,\"state_37\":true,\"state_41\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Eddie Turner\",\"avail\":true,\"age\":79,\"date\":1268697600000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_3\":true,\"state_8\":true,\"state_9\":true,\"state_10\":true,\"state_14\":true,\"state_17\":true,\"state_23\":true,\"state_28\":true,\"state_30\":true,\"state_32\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Lillian J. Fisher\",\"avail\":true,\"age\":59,\"date\":960595200000.0,\"state_1\":true,\"state_3\":true,\"state_5\":true,\"state_8\":true,\"state_21\":true,\"state_29\":true,\"state_35\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Ella Ball\",\"state\":\"s\",\"age\":40,\"state_2\":true,\"state_3\":true,\"state_4\":true,\"state_6\":true,\"state_12\":true,\"state_13\":true,\"state_14\":true,\"state_15\":true,\"state_17\":true,\"state_18\":true,\"state_23\":true,\"state_24\":true,\"state_25\":true,\"state_31\":true,\"state_34\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Pat Hardacre\",\"state\":\"h\",\"age\":45,\"state_3\":true,\"state_6\":true,\"state_9\":true,\"state_13\":true,\"state_15\":true,\"state_24\":true,\"state_30\":true,\"state_36\":true,\"state_41\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Cameron Greene\",\"avail\":true,\"age\":77,\"date\":1170288000000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_3\":true,\"state_6\":true,\"state_21\":true,\"state_29\":true,\"state_34\":true,\"state_37\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Charlie V. Bell\",\"state\":\"h\",\"avail\":true,\"age\":51,\"state_1\":true,\"state_3\":true,\"state_4\":true,\"state_6\":true,\"state_12\":true,\"state_18\":true,\"state_24\":true,\"state_32\":true,\"state_40\":true,\"state_43\":true,\"state_45\":true,\"state_47\":true,\"state_48\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Stephanie Hill\",\"avail\":true,\"age\":57,\"state_4\":true,\"state_10\":true,\"state_11\":true,\"state_26\":true,\"state_29\":true,\"state_30\":true,\"state_34\":true,\"state_35\":true,\"state_44\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Natalie P. Dickens\",\"avail\":true,\"age\":39,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_6\":true,\"state_8\":true,\"state_12\":true,\"state_18\":true,\"state_21\":true,\"state_31\":true,\"state_35\":true,\"state_36\":true,\"state_39\":true,\"state_42\":true,\"state_45\":true,\"state_46\":true}]},{\"type\":\"role\",\"title\":\"Shock routines\",\"children\":[{\"type\":\"person\",\"title\":\"Jack L. Walsh\",\"state\":\"s\",\"age\":87,\"date\":1204675200000.0,\"state_1\":true,\"state_14\":true,\"state_18\":true,\"state_25\":true,\"state_29\":true,\"state_30\":true,\"state_35\":true,\"state_40\":true,\"state_47\":true,\"state_49\":true}]},{\"type\":\"role\",\"title\":\"Strew visuals\"},{\"type\":\"role\",\"title\":\"Cause uncles\",\"children\":[{\"type\":\"person\",\"title\":\"Lisa C. Morrison\",\"avail\":true,\"age\":84,\"state_2\":true,\"state_5\":true,\"state_9\":true,\"state_10\":true,\"state_22\":true,\"state_25\":true,\"state_28\":true,\"state_30\":true,\"state_38\":true,\"state_39\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Chris S. Coleman\",\"state\":\"h\",\"avail\":true,\"age\":54,\"state_1\":true,\"state_4\":true,\"state_12\":true,\"state_19\":true,\"state_26\":true,\"state_34\":true,\"state_40\":true,\"state_42\":true,\"state_44\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Carolyn Black\",\"age\":68,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_1\":true,\"state_2\":true,\"state_3\":true,\"state_9\":true,\"state_16\":true,\"state_29\":true,\"state_30\":true,\"state_31\":true,\"state_42\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Amanda O. Lambert\",\"avail\":true,\"age\":56,\"date\":511488000000.0,\"state_8\":true,\"state_29\":true,\"state_33\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Alison S. Edmunds\",\"avail\":true,\"age\":84,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_6\":true,\"state_7\":true,\"state_11\":true,\"state_28\":true,\"state_31\":true,\"state_36\":true,\"state_41\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Eric Johnston\",\"avail\":true,\"age\":64,\"date\":1327104000000.0,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_9\":true,\"state_20\":true,\"state_26\":true,\"state_38\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Felicity Y. Bailey\",\"state\":\"h\",\"avail\":true,\"age\":45,\"date\":723859200000.0,\"state_5\":true,\"state_8\":true,\"state_13\":true,\"state_30\":true,\"state_31\":true,\"state_32\":true,\"state_37\":true,\"state_40\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Blake V. Rees\",\"avail\":true,\"age\":77,\"date\":467510400000.0,\"state_1\":true,\"state_2\":true,\"state_10\":true,\"state_15\":true,\"state_19\":true,\"state_29\":true,\"state_30\":true,\"state_32\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Kyle Morrison\",\"state\":\"s\",\"avail\":true,\"age\":76,\"state_7\":true,\"state_10\":true,\"state_11\":true,\"state_17\":true,\"state_24\":true,\"state_25\":true,\"state_28\":true,\"state_31\":true,\"state_35\":true,\"state_40\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Bobbie Wilson\",\"avail\":true,\"age\":32,\"state_2\":true,\"state_3\":true,\"state_13\":true,\"state_15\":true,\"state_20\":true,\"state_27\":true,\"state_28\":true,\"state_29\":true,\"state_30\":true,\"state_31\":true,\"state_34\":true,\"state_35\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Jesse Carr\",\"avail\":true,\"age\":51,\"state_1\":true,\"state_10\":true,\"state_15\":true,\"state_17\":true,\"state_27\":true,\"state_28\":true,\"state_30\":true,\"state_36\":true,\"state_41\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Jean N. Churchill\",\"state\":\"h\",\"avail\":true,\"age\":65,\"date\":1503532800000.0,\"state_1\":true,\"state_3\":true,\"state_8\":true,\"state_16\":true,\"state_20\":true,\"state_21\":true,\"state_22\":true,\"state_25\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Pippa King\",\"state\":\"h\",\"avail\":true,\"age\":93,\"date\":1192492800000.0,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_1\":true,\"state_2\":true,\"state_18\":true,\"state_29\":true,\"state_36\":true,\"state_38\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Sam U. Glover\",\"avail\":true,\"age\":24,\"state_3\":true,\"state_4\":true,\"state_13\":true,\"state_16\":true,\"state_19\":true,\"state_21\":true,\"state_25\":true,\"state_27\":true,\"state_29\":true,\"state_37\":true,\"state_38\":true,\"state_39\":true,\"state_44\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Lou McLean\",\"avail\":true,\"age\":60,\"date\":232848000000.0,\"state_1\":true,\"state_3\":true,\"state_4\":true,\"state_8\":true,\"state_9\":true,\"state_12\":true,\"state_28\":true,\"state_37\":true,\"state_42\":true,\"state_44\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Crib indications\",\"children\":[{\"type\":\"person\",\"title\":\"Phil U. Ince\",\"avail\":true,\"age\":63,\"date\":366422400000.0,\"state_2\":true,\"state_11\":true,\"state_12\":true,\"state_17\":true,\"state_18\":true,\"state_23\":true,\"state_32\":true,\"state_33\":true,\"state_36\":true,\"state_41\":true}]},{\"type\":\"role\",\"title\":\"Finish designers\",\"children\":[{\"type\":\"person\",\"title\":\"Phoenix Arnold\",\"state\":\"s\",\"avail\":true,\"age\":76,\"date\":535248000000.0,\"state_5\":true,\"state_9\":true,\"state_11\":true,\"state_20\":true,\"state_25\":true,\"state_27\":true,\"state_28\":true,\"state_37\":true,\"state_42\":true,\"state_47\":true}]},{\"type\":\"role\",\"title\":\"Diminish processes\",\"children\":[{\"type\":\"person\",\"title\":\"Joshua V. Dyer\",\"state\":\"h\",\"avail\":true,\"age\":93,\"date\":386467200000.0,\"state_3\":true,\"state_5\":true,\"state_7\":true,\"state_8\":true,\"state_10\":true,\"state_11\":true,\"state_12\":true,\"state_16\":true,\"state_17\":true,\"state_19\":true,\"state_20\":true,\"state_21\":true,\"state_23\":true,\"state_27\":true,\"state_33\":true,\"state_36\":true,\"state_37\":true,\"state_40\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Lou B. Black\",\"avail\":true,\"age\":27,\"date\":1721260800000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_2\":true,\"state_8\":true,\"state_9\":true,\"state_13\":true,\"state_20\":true,\"state_23\":true,\"state_27\":true,\"state_38\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Kimberly I. Taylor\",\"avail\":true,\"age\":93,\"date\":1530748800000.0,\"state_2\":true,\"state_6\":true,\"state_12\":true,\"state_16\":true,\"state_21\":true,\"state_32\":true,\"state_36\":true,\"state_38\":true,\"state_40\":true,\"state_45\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Andrew Piper\",\"avail\":true,\"age\":81,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_11\":true,\"state_22\":true,\"state_24\":true,\"state_32\":true,\"state_36\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Zoe Carr\",\"age\":88,\"date\":1155254400000.0,\"state_7\":true,\"state_11\":true,\"state_15\":true,\"state_16\":true,\"state_18\":true,\"state_20\":true,\"state_22\":true,\"state_23\":true,\"state_37\":true,\"state_40\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Penelope Cornish\",\"avail\":true,\"age\":77,\"date\":1317168000000.0,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_1\":true,\"state_2\":true,\"state_4\":true,\"state_10\":true,\"state_14\":true,\"state_17\":true,\"state_28\":true,\"state_44\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Irene Welch\",\"state\":\"h\",\"avail\":true,\"age\":78,\"date\":1654646400000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_7\":true,\"state_16\":true,\"state_21\":true,\"state_30\":true,\"state_39\":true},{\"type\":\"person\",\"title\":\"Chloe V. Lawrence\",\"state\":\"h\",\"avail\":true,\"age\":78,\"state_1\":true,\"state_5\":true,\"state_9\":true,\"state_10\":true,\"state_13\":true,\"state_15\":true,\"state_27\":true,\"state_28\":true,\"state_30\":true,\"state_36\":true},{\"type\":\"person\",\"title\":\"Frank Smith\",\"avail\":true,\"age\":29,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_3\":true,\"state_7\":true,\"state_9\":true,\"state_12\":true,\"state_17\":true,\"state_34\":true,\"state_35\":true,\"state_41\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Rachel Fisher\",\"avail\":true,\"age\":92,\"date\":36201600000.0,\"state_7\":true,\"state_10\":true,\"state_14\":true,\"state_16\":true,\"state_20\":true,\"state_26\":true,\"state_31\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Victoria Clark\",\"state\":\"h\",\"avail\":true,\"age\":54,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_4\":true,\"state_7\":true,\"state_9\":true,\"state_10\":true,\"state_16\":true,\"state_19\":true,\"state_25\":true,\"state_26\":true,\"state_27\":true,\"state_39\":true,\"state_40\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Kelly Dickens\",\"avail\":true,\"age\":83,\"date\":381456000000.0,\"state_9\":true,\"state_14\":true,\"state_17\":true,\"state_19\":true,\"state_23\":true,\"state_32\":true,\"state_38\":true,\"state_41\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Lily Short\",\"state\":\"s\",\"avail\":true,\"age\":77,\"date\":436060800000.0,\"state_2\":true,\"state_4\":true,\"state_10\":true,\"state_22\":true,\"state_27\":true,\"state_36\":true,\"state_41\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Casey Payne\",\"avail\":true,\"age\":54,\"date\":1581638400000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_1\":true,\"state_2\":true,\"state_4\":true,\"state_9\":true,\"state_10\":true,\"state_14\":true,\"state_17\":true,\"state_18\":true,\"state_25\":true,\"state_27\":true,\"state_31\":true,\"state_34\":true,\"state_38\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Nicholas Rampling\",\"avail\":true,\"age\":27,\"date\":555984000000.0,\"state_1\":true,\"state_12\":true,\"state_13\":true,\"state_24\":true,\"state_30\":true,\"state_33\":true,\"state_37\":true,\"state_41\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Wendy A. Hudson\",\"avail\":true,\"age\":29,\"date\":1133222400000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_18\":true,\"state_23\":true,\"state_27\":true,\"state_33\":true,\"state_35\":true,\"state_49\":true}]},{\"type\":\"role\",\"title\":\"Glow repeats\",\"children\":[{\"type\":\"person\",\"title\":\"Frank Davies\",\"state\":\"s\",\"avail\":true,\"age\":61,\"date\":958953600000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_6\":true,\"state_30\":true,\"state_31\":true,\"state_34\":true,\"state_36\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Hannah Avery\",\"avail\":true,\"age\":28,\"date\":694310400000.0,\"state_3\":true,\"state_14\":true,\"state_19\":true,\"state_21\":true,\"state_25\":true,\"state_32\":true,\"state_39\":true},{\"type\":\"person\",\"title\":\"Lisa V. Poole\",\"avail\":true,\"age\":47,\"date\":378086400000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_2\":true,\"state_3\":true,\"state_6\":true,\"state_7\":true,\"state_17\":true,\"state_19\":true,\"state_20\":true,\"state_22\":true,\"state_28\":true,\"state_29\":true,\"state_30\":true,\"state_31\":true,\"state_36\":true,\"state_39\":true,\"state_44\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Alex Dowd\",\"state\":\"s\",\"avail\":true,\"age\":73,\"state_6\":true,\"state_13\":true,\"state_14\":true,\"state_20\":true,\"state_24\":true,\"state_29\":true,\"state_34\":true,\"state_42\":true,\"state_44\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Liam Blake\",\"avail\":true,\"age\":34,\"date\":615859200000.0,\"state_6\":true,\"state_16\":true,\"state_23\":true,\"state_24\":true,\"state_25\":true,\"state_32\":true,\"state_34\":true,\"state_41\":true,\"state_46\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Julia Ogden\",\"avail\":true,\"age\":60,\"date\":832118400000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_8\":true,\"state_13\":true,\"state_23\":true,\"state_32\":true,\"state_35\":true,\"state_37\":true,\"state_39\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Bella Bailey\",\"age\":51,\"state_7\":true,\"state_19\":true,\"state_21\":true,\"state_27\":true,\"state_32\":true,\"state_41\":true,\"state_42\":true,\"state_43\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Madeleine Z. Russell\",\"state\":\"s\",\"avail\":true,\"age\":90,\"date\":1571788800000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_4\":true,\"state_5\":true,\"state_7\":true,\"state_9\":true,\"state_11\":true,\"state_15\":true,\"state_17\":true,\"state_18\":true,\"state_22\":true,\"state_24\":true,\"state_31\":true,\"state_36\":true,\"state_40\":true,\"state_42\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Eddie F. Gill\",\"state\":\"h\",\"avail\":true,\"age\":71,\"state_8\":true,\"state_9\":true,\"state_13\":true,\"state_14\":true,\"state_19\":true,\"state_31\":true,\"state_38\":true,\"state_44\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Samantha Piper\",\"avail\":true,\"age\":52,\"state_5\":true,\"state_7\":true,\"state_8\":true,\"state_16\":true,\"state_41\":true,\"state_45\":true}]},{\"type\":\"role\",\"title\":\"Apologize burns\"}]},{\"type\":\"department\",\"title\":\"Dept. for Distributions and Mights\",\"children\":[{\"type\":\"role\",\"title\":\"Patch internationals\",\"children\":[{\"type\":\"person\",\"title\":\"Charles S. Duncan\",\"avail\":true,\"age\":76,\"date\":188179200000.0,\"state_2\":true,\"state_6\":true,\"state_8\":true,\"state_13\":true,\"state_16\":true,\"state_17\":true,\"state_18\":true,\"state_29\":true,\"state_37\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Penelope Sharp\",\"state\":\"s\",\"avail\":true,\"age\":54,\"date\":1422748800000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_1\":true,\"state_11\":true,\"state_24\":true,\"state_25\":true,\"state_26\":true,\"state_28\":true,\"state_29\":true,\"state_32\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Sean X. Berry\",\"avail\":true,\"age\":28,\"date\":970790400000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_7\":true,\"state_13\":true,\"state_16\":true,\"state_21\":true,\"state_24\":true,\"state_37\":true},{\"type\":\"person\",\"title\":\"Samantha Henderson\",\"state\":\"h\",\"avail\":true,\"age\":32,\"state_9\":true,\"state_36\":true},{\"type\":\"person\",\"title\":\"Jamie W. Hart\",\"state\":\"h\",\"avail\":true,\"age\":83,\"state_5\":true,\"state_7\":true,\"state_21\":true,\"state_23\":true,\"state_27\":true,\"state_28\":true,\"state_31\":true,\"state_36\":true,\"state_37\":true,\"state_44\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Sonia P. Wilson\",\"avail\":true,\"age\":82,\"state_2\":true,\"state_3\":true,\"state_10\":true,\"state_12\":true,\"state_18\":true,\"state_23\":true,\"state_24\":true,\"state_26\":true,\"state_34\":true},{\"type\":\"person\",\"title\":\"Chloe N. Randall\",\"avail\":true,\"age\":63,\"state_9\":true,\"state_10\":true,\"state_20\":true,\"state_29\":true,\"state_34\":true,\"state_43\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Pat Arnold\",\"avail\":true,\"age\":54,\"date\":1553731200000.0,\"state_7\":true,\"state_13\":true,\"state_22\":true,\"state_23\":true,\"state_24\":true,\"state_32\":true,\"state_35\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Phoenix V. Langdon\",\"state\":\"h\",\"avail\":true,\"age\":57,\"date\":1496620800000.0,\"state_12\":true,\"state_14\":true,\"state_15\":true,\"state_17\":true,\"state_18\":true,\"state_19\":true,\"state_27\":true,\"state_30\":true,\"state_32\":true,\"state_36\":true,\"state_39\":true}]},{\"type\":\"role\",\"title\":\"Depend peoples\",\"children\":[{\"type\":\"person\",\"title\":\"Olivia Hemmings\",\"avail\":true,\"age\":25,\"state_2\":true,\"state_13\":true,\"state_19\":true,\"state_23\":true,\"state_24\":true,\"state_26\":true,\"state_43\":true,\"state_44\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Piers Thomson\",\"avail\":true,\"age\":86,\"date\":705888000000.0,\"state_5\":true,\"state_6\":true,\"state_27\":true,\"state_32\":true,\"state_39\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Charlie Murray\",\"avail\":true,\"age\":33,\"state_1\":true,\"state_10\":true,\"state_17\":true,\"state_21\":true,\"state_25\":true,\"state_29\":true,\"state_32\":true,\"state_36\":true,\"state_41\":true,\"state_44\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Justin Q. Wallace\",\"age\":91,\"state_7\":true,\"state_15\":true,\"state_17\":true,\"state_18\":true,\"state_21\":true,\"state_22\":true,\"state_27\":true,\"state_37\":true,\"state_45\":true}]},{\"type\":\"role\",\"title\":\"Disuse mixes\",\"children\":[{\"type\":\"person\",\"title\":\"Jessica Jackson\",\"avail\":true,\"age\":90,\"date\":1340409600000.0,\"state_8\":true,\"state_10\":true,\"state_14\":true,\"state_17\":true,\"state_33\":true,\"state_39\":true,\"state_43\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"John I. Ball\",\"state\":\"h\",\"avail\":true,\"age\":72,\"date\":1059782400000.0,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_5\":true,\"state_6\":true,\"state_13\":true,\"state_14\":true,\"state_18\":true,\"state_23\":true,\"state_35\":true,\"state_38\":true,\"state_40\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Alex Forsyth\",\"avail\":true,\"age\":39,\"state_9\":true,\"state_14\":true,\"state_18\":true,\"state_25\":true,\"state_26\":true,\"state_28\":true,\"state_33\":true,\"state_35\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Tracey Welch\",\"avail\":true,\"age\":66,\"date\":1585094400000.0,\"state_2\":true,\"state_4\":true,\"state_8\":true,\"state_9\":true,\"state_10\":true,\"state_13\":true,\"state_36\":true,\"state_39\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Luke Churchill\",\"avail\":true,\"age\":85,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_3\":true,\"state_8\":true,\"state_10\":true,\"state_20\":true,\"state_24\":true,\"state_27\":true,\"state_29\":true,\"state_35\":true,\"state_39\":true,\"state_40\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Rachel N. Fraser\",\"age\":61,\"date\":415843200000.0,\"state_2\":true,\"state_9\":true,\"state_12\":true,\"state_13\":true,\"state_23\":true,\"state_24\":true,\"state_29\":true,\"state_33\":true,\"state_39\":true,\"state_40\":true,\"state_42\":true,\"state_44\":true,\"state_46\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Sonia K. Poole\",\"avail\":true,\"age\":26,\"date\":614131200000.0,\"state_14\":true,\"state_17\":true,\"state_19\":true,\"state_26\":true,\"state_27\":true,\"state_32\":true,\"state_35\":true,\"state_39\":true,\"state_40\":true,\"state_41\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Lou Lyman\",\"avail\":true,\"age\":26,\"date\":1466035200000.0,\"state_10\":true,\"state_17\":true,\"state_20\":true,\"state_21\":true,\"state_26\":true,\"state_31\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Tim Lambert\",\"avail\":true,\"age\":62,\"date\":169862400000.0,\"state_5\":true,\"state_6\":true,\"state_26\":true,\"state_36\":true,\"state_39\":true,\"state_40\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Julian Parsons\",\"state\":\"h\",\"avail\":true,\"age\":97,\"state_2\":true,\"state_4\":true,\"state_11\":true,\"state_17\":true,\"state_19\":true,\"state_21\":true,\"state_25\":true,\"state_29\":true,\"state_36\":true,\"state_37\":true,\"state_42\":true,\"state_44\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Jayden S. Powell\",\"state\":\"s\",\"avail\":true,\"age\":29,\"date\":361584000000.0,\"state_9\":true,\"state_11\":true,\"state_16\":true,\"state_37\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Lauren Clark\",\"avail\":true,\"age\":60,\"state_1\":true,\"state_5\":true,\"state_11\":true,\"state_14\":true,\"state_25\":true,\"state_26\":true,\"state_35\":true,\"state_39\":true,\"state_40\":true,\"state_41\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Andrew L. Nolan\",\"avail\":true,\"age\":84,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_2\":true,\"state_8\":true,\"state_10\":true,\"state_16\":true,\"state_17\":true,\"state_23\":true,\"state_24\":true,\"state_32\":true,\"state_39\":true,\"state_42\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Ella Martin\",\"avail\":true,\"age\":48,\"date\":1182124800000.0,\"state_9\":true,\"state_15\":true,\"state_16\":true,\"state_20\":true,\"state_25\":true,\"state_26\":true,\"state_27\":true,\"state_28\":true,\"state_29\":true,\"state_36\":true,\"state_39\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Phoenix Lawrence\",\"avail\":true,\"age\":62,\"date\":328233600000.0,\"state_2\":true,\"state_3\":true,\"state_4\":true,\"state_8\":true,\"state_12\":true,\"state_15\":true,\"state_18\":true,\"state_23\":true,\"state_26\":true,\"state_33\":true,\"state_34\":true,\"state_39\":true,\"state_41\":true,\"state_42\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Joan May\",\"state\":\"s\",\"avail\":true,\"age\":47,\"date\":1373846400000.0,\"state_1\":true,\"state_5\":true,\"state_6\":true,\"state_14\":true,\"state_15\":true,\"state_17\":true,\"state_28\":true,\"state_29\":true,\"state_32\":true,\"state_36\":true,\"state_37\":true,\"state_43\":true,\"state_44\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Ruth Vance\",\"avail\":true,\"age\":97,\"date\":873244800000.0,\"state_3\":true,\"state_4\":true,\"state_8\":true,\"state_11\":true,\"state_13\":true,\"state_31\":true,\"state_33\":true,\"state_35\":true,\"state_39\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Amelia S. Terry\",\"avail\":true,\"age\":41,\"date\":328838400000.0,\"state_2\":true,\"state_12\":true,\"state_15\":true,\"state_20\":true,\"state_31\":true,\"state_35\":true,\"state_39\":true,\"state_42\":true}]},{\"type\":\"role\",\"title\":\"Conclude calendars\",\"children\":[{\"type\":\"person\",\"title\":\"Emma V. Rampling\",\"avail\":true,\"age\":83,\"date\":434764800000.0,\"state_6\":true,\"state_12\":true,\"state_15\":true,\"state_20\":true,\"state_37\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"David G. Cameron\",\"age\":46,\"date\":740016000000.0,\"state_1\":true,\"state_7\":true,\"state_11\":true,\"state_21\":true,\"state_24\":true,\"state_36\":true,\"state_40\":true,\"state_42\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Bernadette Abraham\",\"avail\":true,\"age\":67,\"state_2\":true,\"state_8\":true,\"state_11\":true,\"state_12\":true,\"state_16\":true,\"state_35\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Jesse J. Young\",\"avail\":true,\"age\":73,\"date\":470534400000.0,\"state_2\":true,\"state_4\":true,\"state_6\":true,\"state_16\":true,\"state_20\":true,\"state_22\":true,\"state_28\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Bernadette C. Peters\",\"avail\":true,\"age\":81,\"date\":937353600000.0,\"state_22\":true,\"state_27\":true,\"state_30\":true,\"state_37\":true,\"state_42\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Harry Alsop\",\"state\":\"h\",\"avail\":true,\"age\":42,\"state_2\":true,\"state_3\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Samantha Bower\",\"state\":\"h\",\"avail\":true,\"age\":40,\"state_1\":true,\"state_2\":true,\"state_9\":true,\"state_14\":true,\"state_23\":true,\"state_26\":true,\"state_28\":true,\"state_30\":true,\"state_32\":true,\"state_33\":true},{\"type\":\"person\",\"title\":\"Samantha D. Parr\",\"avail\":true,\"age\":97,\"state_7\":true,\"state_9\":true,\"state_14\":true,\"state_15\":true,\"state_16\":true,\"state_17\":true,\"state_27\":true,\"state_37\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Dylan Dyer\",\"avail\":true,\"age\":40,\"state_2\":true,\"state_3\":true,\"state_9\":true,\"state_16\":true,\"state_21\":true,\"state_22\":true,\"state_31\":true,\"state_43\":true}]},{\"type\":\"role\",\"title\":\"Spring balances\",\"children\":[{\"type\":\"person\",\"title\":\"Corey M. Cornish\",\"state\":\"s\",\"avail\":true,\"age\":46,\"state_11\":true,\"state_13\":true,\"state_19\":true,\"state_21\":true,\"state_25\":true,\"state_28\":true,\"state_34\":true,\"state_36\":true,\"state_39\":true,\"state_41\":true,\"state_42\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Amelia I. Harris\",\"avail\":true,\"age\":54,\"date\":1594425600000.0,\"state_9\":true,\"state_10\":true,\"state_19\":true,\"state_23\":true,\"state_26\":true,\"state_27\":true,\"state_29\":true,\"state_38\":true,\"state_44\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Bobbie McGrath\",\"age\":63,\"date\":549072000000.0,\"state_1\":true,\"state_9\":true,\"state_13\":true,\"state_17\":true,\"state_21\":true,\"state_28\":true,\"state_29\":true,\"state_35\":true,\"state_39\":true,\"state_40\":true}]},{\"type\":\"role\",\"title\":\"Knit functions\",\"children\":[{\"type\":\"person\",\"title\":\"Carolyn McGrath\",\"state\":\"s\",\"avail\":true,\"age\":36,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_7\":true,\"state_8\":true,\"state_9\":true,\"state_11\":true,\"state_13\":true,\"state_15\":true,\"state_27\":true,\"state_31\":true,\"state_35\":true,\"state_37\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Sydney Morgan\",\"avail\":true,\"age\":88,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_17\":true,\"state_18\":true,\"state_22\":true,\"state_25\":true,\"state_27\":true,\"state_31\":true,\"state_32\":true,\"state_37\":true,\"state_42\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Cameron Dickens\",\"avail\":true,\"age\":56,\"state_11\":true,\"state_15\":true,\"state_19\":true,\"state_20\":true,\"state_26\":true,\"state_31\":true,\"state_43\":true,\"state_44\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Mary T. McDonald\",\"avail\":true,\"age\":58,\"date\":1724889600000.0,\"state_14\":true,\"state_17\":true,\"state_23\":true,\"state_30\":true,\"state_32\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Wanda F. Hart\",\"avail\":true,\"age\":83,\"date\":1590624000000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_9\":true,\"state_17\":true,\"state_18\":true,\"state_22\":true,\"state_42\":true,\"state_43\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Dylan Ross\",\"age\":38,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_1\":true,\"state_2\":true,\"state_11\":true,\"state_12\":true,\"state_13\":true,\"state_14\":true,\"state_20\":true,\"state_23\":true,\"state_29\":true,\"state_32\":true,\"state_33\":true,\"state_37\":true,\"state_44\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Ella Lambert\",\"state\":\"s\",\"avail\":true,\"age\":41,\"date\":70588800000.0,\"state_7\":true,\"state_9\":true,\"state_11\":true,\"state_14\":true,\"state_16\":true,\"state_19\":true,\"state_20\":true,\"state_22\":true,\"state_27\":true,\"state_31\":true,\"state_44\":true}]},{\"type\":\"role\",\"title\":\"Send surveies\",\"children\":[{\"type\":\"person\",\"title\":\"Kimberly Cornish\",\"state\":\"h\",\"avail\":true,\"age\":44,\"state_16\":true,\"state_20\":true,\"state_22\":true,\"state_26\":true,\"state_28\":true,\"state_39\":true},{\"type\":\"person\",\"title\":\"Rachel C. Clark\",\"state\":\"h\",\"age\":53,\"date\":45100800000.0,\"state_6\":true,\"state_8\":true,\"state_11\":true,\"state_12\":true,\"state_20\":true,\"state_22\":true,\"state_24\":true,\"state_26\":true,\"state_29\":true,\"state_36\":true,\"state_40\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Chris C. Hardacre\",\"avail\":true,\"age\":71,\"date\":648259200000.0,\"state_2\":true,\"state_5\":true,\"state_6\":true,\"state_15\":true,\"state_24\":true,\"state_25\":true,\"state_26\":true,\"state_37\":true,\"state_43\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Eric M. Marshall\",\"state\":\"s\",\"avail\":true,\"age\":81,\"date\":537926400000.0,\"state_1\":true,\"state_3\":true,\"state_12\":true,\"state_16\":true,\"state_17\":true,\"state_18\":true,\"state_34\":true,\"state_35\":true,\"state_39\":true,\"state_42\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Melanie Thomson\",\"avail\":true,\"age\":38,\"date\":1126828800000.0,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_3\":true,\"state_4\":true,\"state_23\":true,\"state_27\":true,\"state_29\":true,\"state_30\":true},{\"type\":\"person\",\"title\":\"Lily Roberts\",\"state\":\"s\",\"avail\":true,\"age\":53,\"date\":599097600000.0,\"state_2\":true,\"state_6\":true,\"state_8\":true,\"state_9\":true,\"state_22\":true,\"state_31\":true,\"state_43\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Carolyn Y. Taylor\",\"age\":66,\"date\":989107200000.0,\"state_2\":true,\"state_3\":true,\"state_4\":true,\"state_5\":true,\"state_8\":true,\"state_13\":true,\"state_25\":true,\"state_26\":true,\"state_29\":true,\"state_30\":true,\"state_40\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Grace G. Peake\",\"avail\":true,\"age\":27,\"date\":1224374400000.0,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_2\":true,\"state_3\":true,\"state_8\":true,\"state_11\":true,\"state_15\":true,\"state_18\":true,\"state_26\":true,\"state_28\":true,\"state_38\":true,\"state_40\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Jack Y. Lawrence\",\"age\":43,\"date\":702518400000.0,\"state_2\":true,\"state_6\":true,\"state_13\":true,\"state_16\":true,\"state_18\":true,\"state_28\":true,\"state_32\":true,\"state_37\":true,\"state_39\":true,\"state_41\":true,\"state_46\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Justin A. Howard\",\"avail\":true,\"age\":51,\"date\":1687996800000.0,\"state_7\":true,\"state_8\":true,\"state_14\":true,\"state_21\":true,\"state_25\":true,\"state_26\":true,\"state_28\":true,\"state_30\":true,\"state_43\":true,\"state_44\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Wendy G. Clark\",\"avail\":true,\"age\":84,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_15\":true,\"state_20\":true,\"state_36\":true,\"state_39\":true},{\"type\":\"person\",\"title\":\"Jane Allan\",\"avail\":true,\"age\":27,\"date\":391651200000.0,\"state_3\":true,\"state_7\":true,\"state_14\":true,\"state_15\":true,\"state_20\":true,\"state_21\":true,\"state_26\":true,\"state_30\":true,\"state_33\":true,\"state_42\":true,\"state_45\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Cameron L. Alsop\",\"state\":\"s\",\"avail\":true,\"age\":83,\"date\":791337600000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_4\":true,\"state_5\":true,\"state_17\":true,\"state_23\":true,\"state_26\":true,\"state_27\":true,\"state_32\":true,\"state_38\":true,\"state_39\":true,\"state_45\":true,\"state_47\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Alex L. Payne\",\"state\":\"h\",\"avail\":true,\"age\":38,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_1\":true,\"state_6\":true,\"state_9\":true,\"state_12\":true,\"state_15\":true,\"state_17\":true,\"state_22\":true,\"state_23\":true,\"state_43\":true,\"state_49\":true}]},{\"type\":\"role\",\"title\":\"Cash airlines\",\"children\":[{\"type\":\"person\",\"title\":\"Paul S. Lawrence\",\"state\":\"s\",\"avail\":true,\"age\":84,\"state_1\":true,\"state_16\":true,\"state_21\":true,\"state_23\":true,\"state_24\":true,\"state_29\":true,\"state_32\":true,\"state_35\":true,\"state_36\":true,\"state_42\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Victoria Z. MacLeod\",\"avail\":true,\"age\":40,\"state_1\":true,\"state_5\":true,\"state_13\":true,\"state_14\":true,\"state_22\":true,\"state_24\":true,\"state_27\":true,\"state_28\":true,\"state_38\":true,\"state_39\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Wanda Campbell\",\"state\":\"s\",\"avail\":true,\"age\":88,\"date\":283564800000.0,\"state_5\":true,\"state_9\":true,\"state_21\":true,\"state_34\":true,\"state_35\":true,\"state_36\":true,\"state_42\":true,\"state_47\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Colin Y. Parr\",\"state\":\"h\",\"avail\":true,\"age\":70,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_1\":true,\"state_13\":true,\"state_14\":true,\"state_15\":true,\"state_18\":true,\"state_19\":true,\"state_23\":true,\"state_29\":true,\"state_37\":true,\"state_38\":true,\"state_41\":true,\"state_42\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Boris R. Henderson\",\"avail\":true,\"age\":28,\"date\":318816000000.0,\"state_6\":true,\"state_10\":true,\"state_13\":true,\"state_21\":true,\"state_27\":true,\"state_31\":true,\"state_34\":true}]},{\"type\":\"role\",\"title\":\"Gaze escapes\",\"children\":[{\"type\":\"person\",\"title\":\"Eddie E. MacDonald\",\"avail\":true,\"age\":73,\"date\":729043200000.0,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_5\":true,\"state_12\":true,\"state_13\":true,\"state_18\":true,\"state_25\":true,\"state_36\":true,\"state_39\":true,\"state_43\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Jayden Brown\",\"avail\":true,\"age\":69,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_9\":true,\"state_19\":true,\"state_22\":true,\"state_26\":true,\"state_28\":true,\"state_37\":true,\"state_39\":true,\"state_43\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Jake Z. Henderson\",\"avail\":true,\"age\":94,\"date\":162259200000.0,\"state_5\":true,\"state_9\":true,\"state_16\":true,\"state_18\":true,\"state_24\":true,\"state_26\":true,\"state_32\":true,\"state_36\":true,\"state_37\":true,\"state_39\":true,\"state_44\":true,\"state_46\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Keith K. Lewis\",\"avail\":true,\"age\":87,\"date\":1304726400000.0,\"state_3\":true,\"state_4\":true,\"state_12\":true,\"state_13\":true,\"state_16\":true,\"state_20\":true,\"state_21\":true,\"state_31\":true,\"state_33\":true,\"state_40\":true,\"state_43\":true,\"state_46\":true,\"state_49\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Reuse cycles\",\"children\":[{\"type\":\"person\",\"title\":\"Joseph M. Poole\",\"state\":\"h\",\"avail\":true,\"age\":56,\"state_2\":true,\"state_4\":true,\"state_6\":true,\"state_18\":true,\"state_29\":true,\"state_36\":true},{\"type\":\"person\",\"title\":\"Joanne A. Allan\",\"state\":\"s\",\"avail\":true,\"age\":54,\"date\":421545600000.0,\"state_1\":true,\"state_3\":true,\"state_7\":true,\"state_9\":true,\"state_15\":true,\"state_21\":true,\"state_22\":true,\"state_24\":true,\"state_28\":true,\"state_33\":true,\"state_39\":true,\"state_41\":true,\"state_42\":true,\"state_44\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Felicity J. Walsh\",\"avail\":true,\"age\":43,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_4\":true,\"state_8\":true,\"state_12\":true,\"state_21\":true,\"state_44\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Una Gray\",\"avail\":true,\"age\":73,\"date\":599184000000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_8\":true,\"state_11\":true,\"state_21\":true,\"state_39\":true,\"state_41\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Maria R. Blake\",\"avail\":true,\"age\":74,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_11\":true,\"state_21\":true,\"state_24\":true,\"state_25\":true,\"state_27\":true,\"state_37\":true,\"state_40\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Lucas Berry\",\"state\":\"s\",\"avail\":true,\"age\":44,\"date\":379382400000.0,\"state_7\":true,\"state_8\":true,\"state_15\":true,\"state_19\":true,\"state_34\":true,\"state_38\":true,\"state_39\":true,\"state_40\":true,\"state_43\":true,\"state_44\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Caroline Miller\",\"avail\":true,\"age\":70,\"date\":718416000000.0,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_2\":true,\"state_14\":true,\"state_24\":true,\"state_25\":true,\"state_31\":true,\"state_39\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Lou Manning\",\"avail\":true,\"age\":48,\"date\":956102400000.0,\"state_1\":true,\"state_7\":true,\"state_26\":true,\"state_31\":true,\"state_33\":true,\"state_36\":true,\"state_43\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Faith X. Hemmings\",\"avail\":true,\"age\":76,\"state_11\":true,\"state_17\":true,\"state_19\":true,\"state_27\":true,\"state_29\":true,\"state_30\":true,\"state_35\":true,\"state_36\":true,\"state_37\":true,\"state_39\":true,\"state_44\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Casey Q. Abraham\",\"state\":\"s\",\"avail\":true,\"age\":27,\"state_5\":true,\"state_6\":true,\"state_15\":true,\"state_16\":true,\"state_24\":true,\"state_31\":true,\"state_32\":true,\"state_34\":true,\"state_36\":true,\"state_39\":true,\"state_44\":true,\"state_45\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Isaac B. Simpson\",\"avail\":true,\"age\":26,\"date\":1235088000000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_1\":true,\"state_4\":true,\"state_11\":true,\"state_19\":true,\"state_26\":true,\"state_35\":true,\"state_36\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Max Q. Wilson\",\"avail\":true,\"age\":27,\"date\":146534400000.0,\"state_7\":true,\"state_15\":true,\"state_17\":true,\"state_20\":true,\"state_26\":true,\"state_31\":true,\"state_34\":true,\"state_38\":true,\"state_42\":true,\"state_44\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Lou Y. Chapman\",\"avail\":true,\"age\":71,\"date\":491443200000.0,\"state_9\":true,\"state_13\":true,\"state_15\":true,\"state_19\":true,\"state_20\":true,\"state_27\":true,\"state_28\":true,\"state_29\":true,\"state_34\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Sam Fraser\",\"age\":29,\"date\":1700179200000.0,\"state_3\":true,\"state_8\":true,\"state_12\":true,\"state_13\":true,\"state_18\":true,\"state_24\":true,\"state_30\":true},{\"type\":\"person\",\"title\":\"Gabrielle K. Pullman\",\"avail\":true,\"age\":69,\"state_5\":true,\"state_6\":true,\"state_11\":true,\"state_20\":true,\"state_27\":true,\"state_28\":true,\"state_33\":true,\"state_34\":true,\"state_36\":true,\"state_37\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Daryl Rutherford\",\"state\":\"s\",\"avail\":true,\"age\":46,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_3\":true,\"state_12\":true,\"state_13\":true,\"state_14\":true,\"state_19\":true,\"state_32\":true,\"state_38\":true,\"state_41\":true,\"state_46\":true}]},{\"type\":\"role\",\"title\":\"Spill wins\",\"children\":[{\"type\":\"person\",\"title\":\"Evan Paige\",\"avail\":true,\"age\":33,\"date\":1711929600000.0,\"state_3\":true,\"state_7\":true,\"state_12\":true,\"state_15\":true,\"state_20\":true,\"state_37\":true},{\"type\":\"person\",\"title\":\"Natalie A. Roberts\",\"state\":\"s\",\"avail\":true,\"age\":78,\"state_7\":true,\"state_9\":true,\"state_12\":true,\"state_13\":true,\"state_17\":true,\"state_18\":true,\"state_33\":true,\"state_35\":true,\"state_37\":true,\"state_39\":true,\"state_45\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Benjamin I. Greene\",\"state\":\"h\",\"avail\":true,\"age\":26,\"state_3\":true,\"state_4\":true,\"state_5\":true,\"state_10\":true,\"state_12\":true,\"state_19\":true,\"state_21\":true,\"state_28\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Julian Smith\",\"state\":\"h\",\"avail\":true,\"age\":51,\"date\":62294400000.0,\"state_12\":true,\"state_15\":true,\"state_19\":true,\"state_21\":true,\"state_24\":true,\"state_26\":true,\"state_30\":true,\"state_36\":true,\"state_40\":true,\"state_43\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Chris O. Knox\",\"state\":\"h\",\"avail\":true,\"age\":22,\"date\":62380800000.0,\"state_10\":true,\"state_11\":true,\"state_14\":true,\"state_26\":true,\"state_40\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Amanda K. Davies\",\"state\":\"s\",\"avail\":true,\"age\":44,\"date\":29894400000.0,\"state_7\":true,\"state_9\":true,\"state_14\":true,\"state_15\":true,\"state_21\":true,\"state_22\":true,\"state_27\":true,\"state_31\":true,\"state_35\":true,\"state_36\":true,\"state_41\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"William S. McLean\",\"avail\":true,\"age\":81,\"date\":882057600000.0,\"state_10\":true,\"state_13\":true,\"state_18\":true,\"state_21\":true,\"state_36\":true,\"state_38\":true,\"state_41\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Diane X. Glover\",\"avail\":true,\"age\":70,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_6\":true,\"state_9\":true,\"state_12\":true,\"state_24\":true,\"state_28\":true,\"state_38\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Irene F. Burgess\",\"avail\":true,\"age\":48,\"state_14\":true,\"state_17\":true,\"state_25\":true,\"state_26\":true,\"state_29\":true,\"state_32\":true,\"state_33\":true,\"state_38\":true,\"state_41\":true,\"state_42\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jason J. Abraham\",\"avail\":true,\"age\":59,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_1\":true,\"state_7\":true,\"state_8\":true,\"state_17\":true,\"state_31\":true,\"state_34\":true,\"state_37\":true},{\"type\":\"person\",\"title\":\"Bernadette Springer\",\"avail\":true,\"age\":35,\"state_13\":true,\"state_16\":true,\"state_21\":true,\"state_22\":true,\"state_30\":true,\"state_31\":true,\"state_40\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Brian W. Carr\",\"avail\":true,\"age\":71,\"date\":420768000000.0,\"state_3\":true,\"state_13\":true,\"state_28\":true},{\"type\":\"person\",\"title\":\"Brian K. Chapman\",\"avail\":true,\"age\":57,\"date\":1339632000000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_1\":true,\"state_18\":true,\"state_21\":true,\"state_30\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Kelly L. Paige\",\"state\":\"h\",\"avail\":true,\"age\":69,\"state_6\":true,\"state_8\":true,\"state_13\":true,\"state_17\":true,\"state_23\":true,\"state_24\":true,\"state_30\":true}]},{\"type\":\"role\",\"title\":\"Misuse foots\",\"children\":[{\"type\":\"person\",\"title\":\"Trevor Y. MacLeod\",\"avail\":true,\"age\":86,\"date\":5097600000.0,\"state_1\":true,\"state_2\":true,\"state_4\":true,\"state_6\":true,\"state_12\":true,\"state_19\":true,\"state_22\":true,\"state_26\":true,\"state_27\":true,\"state_37\":true,\"state_39\":true,\"state_41\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Casey Y. Oliver\",\"avail\":true,\"age\":74,\"date\":54518400000.0,\"state_4\":true,\"state_5\":true,\"state_11\":true,\"state_13\":true,\"state_17\":true,\"state_23\":true,\"state_25\":true,\"state_34\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Michelle Churchill\",\"avail\":true,\"age\":72,\"date\":760492800000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_5\":true,\"state_6\":true,\"state_7\":true,\"state_8\":true,\"state_26\":true,\"state_27\":true,\"state_31\":true,\"state_33\":true,\"state_43\":true,\"state_45\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Wendy Carr\",\"state\":\"s\",\"avail\":true,\"age\":89,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_4\":true,\"state_14\":true,\"state_15\":true,\"state_17\":true,\"state_18\":true,\"state_19\":true,\"state_21\":true,\"state_24\":true,\"state_26\":true,\"state_27\":true,\"state_29\":true,\"state_30\":true,\"state_34\":true,\"state_39\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Frances Gill\",\"state\":\"s\",\"age\":46,\"state_16\":true,\"state_17\":true,\"state_18\":true,\"state_20\":true,\"state_22\":true,\"state_23\":true,\"state_24\":true,\"state_26\":true,\"state_40\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Dylan U. Young\",\"avail\":true,\"age\":43,\"date\":1338508800000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_3\":true,\"state_4\":true,\"state_6\":true,\"state_21\":true,\"state_28\":true,\"state_30\":true,\"state_33\":true,\"state_42\":true,\"state_49\":true}]}]},{\"type\":\"department\",\"title\":\"Dept. for Folds and Hedgehogs\",\"children\":[{\"type\":\"role\",\"title\":\"String companies\",\"children\":[{\"type\":\"person\",\"title\":\"Eric Oliver\",\"state\":\"s\",\"avail\":true,\"age\":42,\"date\":637027200000.0,\"state_4\":true,\"state_17\":true,\"state_18\":true,\"state_20\":true,\"state_32\":true,\"state_38\":true,\"state_41\":true,\"state_42\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Chris O. Bailey\",\"state\":\"h\",\"avail\":true,\"age\":44,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_1\":true,\"state_10\":true,\"state_20\":true,\"state_21\":true,\"state_25\":true,\"state_31\":true,\"state_35\":true,\"state_40\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Pippa F. Greene\",\"avail\":true,\"age\":79,\"date\":505612800000.0,\"state_4\":true,\"state_11\":true,\"state_24\":true,\"state_26\":true,\"state_30\":true,\"state_36\":true,\"state_42\":true,\"state_45\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Max K. Vaughan\",\"state\":\"s\",\"avail\":true,\"age\":69,\"date\":471744000000.0,\"state_1\":true,\"state_5\":true,\"state_7\":true,\"state_9\":true,\"state_10\":true,\"state_14\":true,\"state_17\":true,\"state_20\":true,\"state_27\":true,\"state_34\":true,\"state_36\":true,\"state_38\":true,\"state_42\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Madeleine Wilkins\",\"avail\":true,\"age\":81,\"date\":1564704000000.0,\"state_3\":true,\"state_4\":true,\"state_5\":true,\"state_7\":true,\"state_14\":true,\"state_22\":true,\"state_25\":true,\"state_26\":true,\"state_31\":true,\"state_38\":true,\"state_39\":true,\"state_41\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Joshua Wright\",\"age\":96,\"date\":214444800000.0,\"state_1\":true,\"state_8\":true,\"state_15\":true,\"state_17\":true,\"state_18\":true,\"state_22\":true,\"state_23\":true,\"state_29\":true,\"state_37\":true,\"state_39\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Kyle I. Allan\",\"state\":\"h\",\"avail\":true,\"age\":63,\"date\":1404345600000.0,\"state_6\":true,\"state_12\":true,\"state_18\":true,\"state_20\":true,\"state_32\":true,\"state_35\":true,\"state_36\":true,\"state_42\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Lucas F. Manning\",\"avail\":true,\"age\":77,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_1\":true,\"state_2\":true,\"state_4\":true,\"state_6\":true,\"state_9\":true,\"state_10\":true,\"state_12\":true,\"state_29\":true,\"state_30\":true,\"state_31\":true,\"state_35\":true,\"state_38\":true,\"state_41\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Chris S. Simpson\",\"avail\":true,\"age\":76,\"state_1\":true,\"state_2\":true,\"state_19\":true,\"state_24\":true,\"state_25\":true,\"state_28\":true,\"state_30\":true,\"state_33\":true,\"state_39\":true,\"state_40\":true}]},{\"type\":\"role\",\"title\":\"Indulge zebras\",\"children\":[{\"type\":\"person\",\"title\":\"Anna F. Hill\",\"avail\":true,\"age\":27,\"date\":710726400000.0,\"state_2\":true,\"state_29\":true,\"state_36\":true,\"state_37\":true,\"state_39\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Hannah Burgess\",\"state\":\"h\",\"avail\":true,\"age\":55,\"date\":307324800000.0,\"state_19\":true,\"state_20\":true,\"state_22\":true,\"state_26\":true,\"state_29\":true,\"state_33\":true,\"state_39\":true},{\"type\":\"person\",\"title\":\"Colin Thomson\",\"avail\":true,\"age\":27,\"state_2\":true,\"state_8\":true,\"state_9\":true,\"state_17\":true,\"state_21\":true,\"state_27\":true,\"state_28\":true,\"state_30\":true,\"state_39\":true,\"state_40\":true,\"state_43\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Kelly Graham\",\"avail\":true,\"age\":56,\"state_1\":true,\"state_6\":true,\"state_18\":true,\"state_20\":true,\"state_28\":true,\"state_35\":true,\"state_44\":true,\"state_46\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Abigail Johnston\",\"avail\":true,\"age\":76,\"date\":495158400000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_2\":true,\"state_3\":true,\"state_5\":true,\"state_7\":true,\"state_9\":true,\"state_14\":true,\"state_17\":true,\"state_18\":true,\"state_31\":true,\"state_40\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Jacob Wilkins\",\"avail\":true,\"age\":48,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_1\":true,\"state_4\":true,\"state_6\":true,\"state_8\":true,\"state_9\":true,\"state_13\":true,\"state_22\":true,\"state_23\":true,\"state_24\":true,\"state_29\":true,\"state_40\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Penelope G. Hamilton\",\"avail\":true,\"age\":87,\"date\":1281657600000.0,\"state_2\":true,\"state_4\":true,\"state_15\":true,\"state_25\":true,\"state_36\":true,\"state_38\":true,\"state_39\":true,\"state_40\":true,\"state_42\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Jesse Brown\",\"state\":\"s\",\"avail\":true,\"age\":75,\"state_1\":true,\"state_2\":true,\"state_20\":true,\"state_25\":true,\"state_36\":true,\"state_40\":true,\"state_41\":true,\"state_44\":true,\"state_47\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Joseph Burgess\",\"avail\":true,\"age\":55,\"date\":483148800000.0,\"state_7\":true,\"state_9\":true,\"state_24\":true,\"state_27\":true,\"state_28\":true,\"state_30\":true,\"state_35\":true,\"state_37\":true,\"state_43\":true,\"state_45\":true,\"state_49\":true}]},{\"type\":\"role\",\"title\":\"Click sells\",\"children\":[{\"type\":\"person\",\"title\":\"Rachel H. Stewart\",\"state\":\"h\",\"avail\":true,\"age\":70,\"date\":190339200000.0,\"state_2\":true,\"state_6\":true,\"state_12\":true,\"state_17\":true,\"state_18\":true,\"state_23\":true,\"state_25\":true,\"state_31\":true,\"state_46\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Michelle F. Piper\",\"state\":\"h\",\"avail\":true,\"age\":39,\"date\":1572393600000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_12\":true,\"state_16\":true,\"state_17\":true,\"state_31\":true,\"state_33\":true,\"state_35\":true,\"state_38\":true,\"state_43\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Andy S. Walker\",\"avail\":true,\"age\":50,\"state_5\":true,\"state_7\":true,\"state_11\":true,\"state_26\":true,\"state_34\":true,\"state_36\":true,\"state_37\":true,\"state_39\":true,\"state_40\":true,\"state_43\":true,\"state_45\":true,\"state_46\":true,\"state_47\":true,\"state_48\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Emma D. Scott\",\"avail\":true,\"age\":57,\"date\":170985600000.0,\"state_5\":true,\"state_9\":true,\"state_10\":true,\"state_17\":true,\"state_27\":true,\"state_28\":true,\"state_31\":true,\"state_36\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Jason Johnston\",\"state\":\"s\",\"avail\":true,\"age\":31,\"state_2\":true,\"state_4\":true,\"state_8\":true,\"state_9\":true,\"state_11\":true,\"state_12\":true,\"state_13\":true,\"state_16\":true,\"state_21\":true,\"state_22\":true,\"state_26\":true,\"state_28\":true,\"state_31\":true},{\"type\":\"person\",\"title\":\"Deirdre Davies\",\"state\":\"s\",\"avail\":true,\"age\":64,\"date\":380764800000.0,\"state_2\":true,\"state_11\":true,\"state_13\":true,\"state_14\":true,\"state_15\":true,\"state_16\":true,\"state_18\":true,\"state_20\":true,\"state_22\":true,\"state_23\":true,\"state_24\":true,\"state_27\":true,\"state_29\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Rebecca Pullman\",\"avail\":true,\"age\":47,\"state_1\":true,\"state_2\":true,\"state_5\":true,\"state_6\":true,\"state_9\":true,\"state_12\":true,\"state_13\":true,\"state_15\":true,\"state_17\":true,\"state_18\":true,\"state_19\":true,\"state_26\":true,\"state_27\":true,\"state_29\":true,\"state_31\":true,\"state_40\":true,\"state_45\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Trevor M. Tucker\",\"avail\":true,\"age\":34,\"date\":1167609600000.0,\"state_4\":true,\"state_11\":true,\"state_21\":true,\"state_22\":true,\"state_37\":true,\"state_41\":true,\"state_43\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Una C. Dowd\",\"avail\":true,\"age\":78,\"state_2\":true,\"state_14\":true,\"state_16\":true,\"state_18\":true,\"state_20\":true,\"state_21\":true,\"state_22\":true,\"state_24\":true,\"state_35\":true,\"state_36\":true,\"state_40\":true,\"state_41\":true,\"state_43\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Sam A. Newman\",\"state\":\"s\",\"avail\":true,\"age\":34,\"state_6\":true,\"state_7\":true,\"state_9\":true,\"state_11\":true,\"state_12\":true,\"state_21\":true,\"state_22\":true,\"state_24\":true,\"state_26\":true,\"state_31\":true,\"state_42\":true,\"state_45\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Kelly Y. Powell\",\"state\":\"h\",\"avail\":true,\"age\":63,\"date\":292032000000.0,\"state_1\":true,\"state_3\":true,\"state_4\":true,\"state_5\":true,\"state_7\":true,\"state_9\":true,\"state_21\":true,\"state_22\":true,\"state_23\":true,\"state_24\":true,\"state_31\":true,\"state_37\":true,\"state_38\":true,\"state_43\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Joseph Abraham\",\"age\":51,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_14\":true,\"state_17\":true,\"state_21\":true,\"state_35\":true,\"state_40\":true,\"state_42\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Bernadette Young\",\"avail\":true,\"age\":31,\"date\":647395200000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_11\":true,\"state_13\":true,\"state_18\":true,\"state_20\":true,\"state_22\":true,\"state_26\":true,\"state_29\":true,\"state_30\":true,\"state_33\":true,\"state_43\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Chris A. Hughes\",\"avail\":true,\"age\":95,\"date\":325641600000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_4\":true,\"state_5\":true,\"state_7\":true,\"state_10\":true,\"state_11\":true,\"state_12\":true,\"state_14\":true,\"state_16\":true,\"state_32\":true,\"state_35\":true,\"state_36\":true,\"state_38\":true},{\"type\":\"person\",\"title\":\"Leonard Paterson\",\"state\":\"h\",\"avail\":true,\"age\":59,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_10\":true,\"state_14\":true,\"state_19\":true,\"state_35\":true,\"state_36\":true,\"state_37\":true,\"state_39\":true,\"state_43\":true,\"state_44\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Chris L. Turner\",\"avail\":true,\"age\":37,\"date\":610070400000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_5\":true,\"state_10\":true,\"state_11\":true,\"state_12\":true,\"state_18\":true,\"state_19\":true,\"state_20\":true,\"state_23\":true,\"state_24\":true,\"state_26\":true,\"state_27\":true,\"state_30\":true,\"state_37\":true,\"state_40\":true}]},{\"type\":\"role\",\"title\":\"Digest combines\",\"children\":[{\"type\":\"person\",\"title\":\"Sebastian Q. Hardacre\",\"avail\":true,\"age\":68,\"date\":745891200000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_1\":true,\"state_20\":true,\"state_28\":true,\"state_33\":true,\"state_34\":true,\"state_37\":true,\"state_46\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Casey S. Oliver\",\"state\":\"h\",\"avail\":true,\"age\":72,\"date\":966211200000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_7\":true,\"state_13\":true,\"state_18\":true,\"state_20\":true,\"state_21\":true,\"state_22\":true,\"state_23\":true,\"state_25\":true,\"state_30\":true,\"state_31\":true,\"state_32\":true,\"state_34\":true,\"state_35\":true,\"state_40\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Cameron A. Wright\",\"avail\":true,\"age\":60,\"date\":1115510400000.0,\"state_6\":true,\"state_10\":true,\"state_22\":true,\"state_25\":true,\"state_32\":true,\"state_37\":true,\"state_40\":true,\"state_41\":true,\"state_43\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Sydney Wilkins\",\"avail\":true,\"age\":86,\"state_3\":true,\"state_5\":true,\"state_23\":true,\"state_24\":true,\"state_28\":true,\"state_41\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Discover promises\",\"children\":[{\"type\":\"person\",\"title\":\"Emma N. Sharp\",\"avail\":true,\"age\":92,\"date\":915926400000.0,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_6\":true,\"state_8\":true,\"state_9\":true,\"state_15\":true,\"state_16\":true,\"state_19\":true,\"state_22\":true,\"state_23\":true,\"state_26\":true,\"state_43\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Charlie Morrison\",\"state\":\"s\",\"avail\":true,\"age\":59,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_6\":true,\"state_17\":true,\"state_19\":true,\"state_20\":true,\"state_27\":true,\"state_28\":true,\"state_41\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Jamie Arnold\",\"avail\":true,\"age\":52,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_7\":true,\"state_13\":true,\"state_14\":true,\"state_15\":true,\"state_19\":true,\"state_21\":true,\"state_24\":true,\"state_28\":true,\"state_45\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Stephanie Hodges\",\"avail\":true,\"age\":84,\"date\":324172800000.0,\"state_9\":true,\"state_10\":true,\"state_11\":true,\"state_14\":true,\"state_23\":true,\"state_33\":true,\"state_36\":true,\"state_39\":true},{\"type\":\"person\",\"title\":\"Jasmine Chapman\",\"state\":\"s\",\"avail\":true,\"age\":31,\"date\":626227200000.0,\"state_3\":true,\"state_7\":true,\"state_10\":true,\"state_13\":true,\"state_15\":true,\"state_18\":true,\"state_23\":true,\"state_25\":true,\"state_32\":true,\"state_34\":true,\"state_37\":true,\"state_38\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Elizabeth O. Duncan\",\"avail\":true,\"age\":61,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_3\":true,\"state_7\":true,\"state_8\":true,\"state_15\":true,\"state_19\":true,\"state_23\":true,\"state_30\":true,\"state_37\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Paul N. Quinn\",\"state\":\"s\",\"avail\":true,\"age\":63,\"date\":1279497600000.0,\"state_13\":true,\"state_20\":true,\"state_23\":true,\"state_31\":true,\"state_32\":true,\"state_33\":true,\"state_34\":true,\"state_35\":true,\"state_37\":true,\"state_40\":true,\"state_41\":true,\"state_44\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Harry Graham\",\"avail\":true,\"age\":65,\"date\":680313600000.0,\"state_1\":true,\"state_11\":true,\"state_19\":true,\"state_24\":true,\"state_32\":true,\"state_39\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Alan Jones\",\"avail\":true,\"age\":26,\"state_2\":true,\"state_8\":true,\"state_10\":true,\"state_15\":true,\"state_17\":true,\"state_19\":true,\"state_21\":true,\"state_28\":true,\"state_31\":true,\"state_32\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Joseph Henderson\",\"avail\":true,\"age\":91,\"date\":925689600000.0,\"state_11\":true,\"state_12\":true,\"state_24\":true,\"state_25\":true,\"state_28\":true,\"state_41\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Edward Baker\",\"avail\":true,\"age\":44,\"date\":281750400000.0,\"state_4\":true,\"state_22\":true,\"state_23\":true,\"state_25\":true,\"state_30\":true,\"state_37\":true,\"state_40\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Adrian V. Parsons\",\"state\":\"s\",\"avail\":true,\"age\":23,\"date\":139536000000.0,\"state_2\":true,\"state_3\":true,\"state_8\":true,\"state_39\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Virginia Parr\",\"avail\":true,\"age\":77,\"date\":845251200000.0,\"state_1\":true,\"state_4\":true,\"state_11\":true,\"state_12\":true,\"state_20\":true,\"state_28\":true,\"state_30\":true,\"state_41\":true,\"state_42\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Fiona Terry\",\"avail\":true,\"age\":74,\"state_18\":true,\"state_19\":true,\"state_26\":true,\"state_37\":true,\"state_40\":true,\"state_42\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Sarah Roberts\",\"avail\":true,\"age\":71,\"date\":469843200000.0,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_8\":true,\"state_9\":true,\"state_10\":true,\"state_12\":true,\"state_19\":true,\"state_25\":true,\"state_26\":true,\"state_33\":true,\"state_34\":true,\"state_38\":true,\"state_41\":true,\"state_45\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Zoe Pullman\",\"avail\":true,\"age\":90,\"date\":1200009600000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_3\":true,\"state_5\":true,\"state_12\":true,\"state_14\":true,\"state_17\":true,\"state_19\":true,\"state_22\":true,\"state_30\":true,\"state_33\":true,\"state_39\":true,\"state_43\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Chloe V. Edmunds\",\"avail\":true,\"age\":24,\"date\":1130457600000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_12\":true,\"state_17\":true,\"state_21\":true,\"state_23\":true,\"state_26\":true,\"state_31\":true,\"state_36\":true,\"state_40\":true,\"state_45\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Jason K. Burgess\",\"avail\":true,\"age\":26,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_1\":true,\"state_5\":true,\"state_8\":true,\"state_11\":true,\"state_12\":true,\"state_14\":true,\"state_18\":true,\"state_19\":true,\"state_23\":true,\"state_26\":true,\"state_28\":true,\"state_37\":true,\"state_38\":true,\"state_41\":true,\"state_45\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jennifer Turner\",\"avail\":true,\"age\":35,\"state_10\":true,\"state_14\":true,\"state_15\":true,\"state_21\":true,\"state_26\":true,\"state_34\":true,\"state_38\":true,\"state_44\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Simon Grant\",\"avail\":true,\"age\":70,\"date\":1208217600000.0,\"state_5\":true,\"state_9\":true,\"state_20\":true,\"state_30\":true,\"state_31\":true,\"state_38\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Frank Q. Sanderson\",\"avail\":true,\"age\":96,\"state_3\":true,\"state_4\":true,\"state_7\":true,\"state_11\":true,\"state_12\":true,\"state_13\":true,\"state_18\":true,\"state_33\":true,\"state_36\":true,\"state_42\":true}]},{\"type\":\"role\",\"title\":\"Argue futures\",\"children\":[{\"type\":\"person\",\"title\":\"Jayden Q. Wallace\",\"avail\":true,\"age\":27,\"date\":1254960000000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_7\":true,\"state_16\":true,\"state_19\":true,\"state_25\":true,\"state_28\":true,\"state_31\":true,\"state_34\":true,\"state_36\":true,\"state_42\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Andy Graham\",\"state\":\"s\",\"age\":48,\"date\":884995200000.0,\"state_2\":true,\"state_4\":true,\"state_7\":true,\"state_32\":true,\"state_34\":true,\"state_38\":true,\"state_40\":true,\"state_41\":true,\"state_42\":true,\"state_43\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Dan W. Hill\",\"state\":\"h\",\"avail\":true,\"age\":92,\"state_7\":true,\"state_11\":true,\"state_14\":true,\"state_19\":true,\"state_20\":true,\"state_23\":true,\"state_24\":true,\"state_26\":true,\"state_27\":true,\"state_29\":true,\"state_32\":true,\"state_34\":true,\"state_43\":true,\"state_44\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Heather Piper\",\"avail\":true,\"age\":44,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_14\":true,\"state_17\":true,\"state_21\":true,\"state_24\":true,\"state_29\":true,\"state_30\":true,\"state_34\":true},{\"type\":\"person\",\"title\":\"Adrian B. Bower\",\"state\":\"s\",\"avail\":true,\"age\":80,\"state_2\":true,\"state_3\":true,\"state_9\":true,\"state_23\":true,\"state_27\":true,\"state_29\":true,\"state_31\":true,\"state_32\":true,\"state_37\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Amy E. Ogden\",\"avail\":true,\"age\":22,\"date\":666489600000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_4\":true,\"state_12\":true,\"state_17\":true,\"state_20\":true,\"state_22\":true,\"state_23\":true,\"state_24\":true,\"state_31\":true,\"state_37\":true,\"state_38\":true,\"state_43\":true,\"state_45\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"James Russell\",\"avail\":true,\"age\":92,\"date\":352857600000.0,\"state_8\":true,\"state_17\":true,\"state_18\":true,\"state_20\":true,\"state_23\":true,\"state_28\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Stephanie S. Rees\",\"avail\":true,\"age\":67,\"state_2\":true,\"state_5\":true,\"state_6\":true,\"state_16\":true,\"state_19\":true,\"state_22\":true,\"state_25\":true,\"state_26\":true,\"state_39\":true,\"state_43\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Charlie Hunter\",\"avail\":true,\"age\":43,\"date\":1084665600000.0,\"state_11\":true,\"state_12\":true,\"state_16\":true,\"state_20\":true,\"state_21\":true,\"state_25\":true,\"state_27\":true,\"state_31\":true,\"state_32\":true,\"state_33\":true,\"state_37\":true,\"state_39\":true,\"state_44\":true,\"state_45\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Bernadette T. Lyman\",\"avail\":true,\"age\":73,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_8\":true,\"state_20\":true,\"state_23\":true,\"state_29\":true,\"state_35\":true,\"state_38\":true,\"state_40\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Faith Sanderson\",\"avail\":true,\"age\":73,\"date\":258940800000.0,\"state_1\":true,\"state_8\":true,\"state_9\":true,\"state_10\":true,\"state_11\":true,\"state_13\":true,\"state_18\":true,\"state_33\":true,\"state_34\":true,\"state_39\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Anna Abraham\",\"avail\":true,\"age\":90,\"state_11\":true,\"state_12\":true,\"state_22\":true,\"state_24\":true,\"state_31\":true,\"state_32\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Jean Greene\",\"state\":\"s\",\"avail\":true,\"age\":68,\"date\":1465776000000.0,\"state_3\":true,\"state_13\":true,\"state_14\":true,\"state_19\":true,\"state_27\":true,\"state_29\":true,\"state_35\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Austin Bell\",\"age\":81,\"state_1\":true,\"state_2\":true,\"state_3\":true,\"state_9\":true,\"state_10\":true,\"state_14\":true,\"state_19\":true,\"state_26\":true,\"state_28\":true,\"state_35\":true,\"state_36\":true,\"state_37\":true,\"state_38\":true,\"state_40\":true,\"state_45\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Jonathan Murray\",\"avail\":true,\"age\":34,\"date\":585705600000.0,\"state_7\":true,\"state_8\":true,\"state_11\":true,\"state_29\":true,\"state_37\":true,\"state_38\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Anthony Russell\",\"state\":\"s\",\"avail\":true,\"age\":63,\"date\":1080950400000.0,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_3\":true,\"state_5\":true,\"state_9\":true,\"state_11\":true,\"state_14\":true,\"state_29\":true,\"state_40\":true,\"state_42\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Kimberly Allan\",\"avail\":true,\"age\":90,\"date\":468374400000.0,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_5\":true,\"state_14\":true,\"state_24\":true,\"state_26\":true,\"state_29\":true,\"state_33\":true,\"state_36\":true,\"state_39\":true,\"state_44\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Trevor Z. Manning\",\"avail\":true,\"age\":66,\"state_11\":true,\"state_29\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Sophie C. Randall\",\"avail\":true,\"age\":92,\"date\":199756800000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_3\":true,\"state_7\":true,\"state_10\":true,\"state_14\":true,\"state_17\":true,\"state_18\":true,\"state_22\":true,\"state_34\":true,\"state_40\":true,\"state_41\":true,\"state_45\":true,\"state_46\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Sydney H. Mills\",\"state\":\"h\",\"avail\":true,\"age\":92,\"state_2\":true,\"state_3\":true,\"state_4\":true,\"state_12\":true,\"state_13\":true,\"state_15\":true,\"state_17\":true,\"state_18\":true,\"state_19\":true,\"state_20\":true,\"state_22\":true,\"state_24\":true,\"state_25\":true,\"state_26\":true,\"state_40\":true,\"state_43\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Irene Vance\",\"avail\":true,\"age\":75,\"state_1\":true,\"state_4\":true,\"state_10\":true,\"state_11\":true,\"state_17\":true,\"state_18\":true,\"state_20\":true,\"state_21\":true,\"state_26\":true,\"state_31\":true,\"state_37\":true,\"state_42\":true,\"state_47\":true,\"state_48\":true}]},{\"type\":\"role\",\"title\":\"Inculcate camps\"},{\"type\":\"role\",\"title\":\"Inflame recovers\",\"children\":[{\"type\":\"person\",\"title\":\"Claire U. Greene\",\"avail\":true,\"age\":60,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_7\":true,\"state_12\":true,\"state_19\":true,\"state_22\":true,\"state_25\":true,\"state_30\":true,\"state_38\":true,\"state_46\":true}]},{\"type\":\"role\",\"title\":\"Swear oxes\",\"children\":[{\"type\":\"person\",\"title\":\"Eddie Alsop\",\"avail\":true,\"age\":56,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_13\":true,\"state_14\":true,\"state_18\":true,\"state_22\":true,\"state_23\":true,\"state_37\":true,\"state_38\":true,\"state_44\":true,\"state_45\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Keith D. Underwood\",\"avail\":true,\"age\":74,\"date\":1336003200000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_8\":true,\"state_10\":true,\"state_16\":true,\"state_18\":true,\"state_20\":true,\"state_22\":true,\"state_28\":true,\"state_33\":true,\"state_39\":true},{\"type\":\"person\",\"title\":\"Liam O. Parr\",\"avail\":true,\"age\":22,\"date\":1130544000000.0,\"state_8\":true,\"state_14\":true,\"state_28\":true,\"state_29\":true,\"state_34\":true,\"state_35\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Anthony V. Baker\",\"state\":\"h\",\"avail\":true,\"age\":57,\"date\":312595200000.0,\"state_5\":true,\"state_12\":true,\"state_23\":true,\"state_25\":true,\"state_27\":true,\"state_29\":true,\"state_31\":true,\"state_32\":true,\"state_37\":true,\"state_45\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Rachel U. Skinner\",\"avail\":true,\"age\":56,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_2\":true,\"state_7\":true,\"state_9\":true,\"state_18\":true,\"state_24\":true,\"state_30\":true,\"state_32\":true,\"state_41\":true,\"state_44\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Samantha E. Underwood\",\"avail\":true,\"age\":80,\"date\":1671148800000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_1\":true,\"state_3\":true,\"state_4\":true,\"state_20\":true,\"state_25\":true,\"state_31\":true,\"state_34\":true,\"state_41\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Frank V. Ferguson\",\"avail\":true,\"age\":90,\"state_8\":true,\"state_29\":true,\"state_33\":true,\"state_34\":true,\"state_35\":true,\"state_43\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Gordon Parr\",\"avail\":true,\"age\":70,\"state_6\":true,\"state_10\":true,\"state_15\":true,\"state_23\":true,\"state_26\":true,\"state_29\":true,\"state_36\":true,\"state_44\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Mew anywheres\",\"children\":[{\"type\":\"person\",\"title\":\"Olivia Miller\",\"avail\":true,\"age\":63,\"state_1\":true,\"state_13\":true,\"state_14\":true,\"state_15\":true,\"state_16\":true,\"state_22\":true,\"state_23\":true,\"state_26\":true,\"state_27\":true,\"state_30\":true,\"state_32\":true}]}]},{\"type\":\"department\",\"title\":\"Dept. for Listens and Battles\",\"children\":[{\"type\":\"role\",\"title\":\"Fail constants\",\"children\":[{\"type\":\"person\",\"title\":\"Steven H. Davidson\",\"avail\":true,\"age\":22,\"date\":1396051200000.0,\"state_2\":true,\"state_19\":true,\"state_22\":true,\"state_23\":true,\"state_25\":true,\"state_26\":true,\"state_36\":true,\"state_37\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Samantha G. Oliver\",\"state\":\"h\",\"avail\":true,\"age\":43,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_9\":true,\"state_13\":true,\"state_23\":true,\"state_24\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Phoenix Greene\",\"state\":\"s\",\"avail\":true,\"age\":87,\"date\":1103414400000.0,\"state_7\":true,\"state_8\":true,\"state_10\":true,\"state_13\":true,\"state_19\":true,\"state_24\":true,\"state_26\":true,\"state_35\":true,\"state_41\":true,\"state_42\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Madeleine May\",\"avail\":true,\"age\":82,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_1\":true,\"state_5\":true,\"state_7\":true,\"state_8\":true,\"state_17\":true,\"state_19\":true,\"state_25\":true,\"state_28\":true,\"state_29\":true,\"state_32\":true,\"state_38\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Connor I. McGrath\",\"avail\":true,\"age\":35,\"date\":419040000000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_4\":true,\"state_6\":true,\"state_8\":true,\"state_15\":true,\"state_23\":true,\"state_24\":true,\"state_26\":true,\"state_28\":true,\"state_29\":true,\"state_30\":true,\"state_33\":true,\"state_36\":true,\"state_37\":true,\"state_40\":true,\"state_41\":true,\"state_44\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Wendy C. Nash\",\"avail\":true,\"age\":79,\"date\":1266364800000.0,\"state_7\":true,\"state_8\":true,\"state_13\":true,\"state_20\":true,\"state_25\":true,\"state_33\":true,\"state_38\":true,\"state_41\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Joe D. Hart\",\"age\":57,\"date\":973296000000.0,\"state_1\":true,\"state_14\":true,\"state_23\":true,\"state_34\":true,\"state_35\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Peter F. McDonald\",\"avail\":true,\"age\":36,\"state_2\":true,\"state_6\":true,\"state_8\":true,\"state_9\":true,\"state_12\":true,\"state_14\":true,\"state_18\":true,\"state_26\":true,\"state_28\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Carl Murray\",\"avail\":true,\"age\":89,\"state_3\":true,\"state_7\":true,\"state_13\":true,\"state_22\":true,\"state_32\":true,\"state_37\":true,\"state_40\":true,\"state_41\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Simon X. Paterson\",\"state\":\"s\",\"avail\":true,\"age\":42,\"date\":213235200000.0,\"state_2\":true,\"state_3\":true,\"state_5\":true,\"state_11\":true,\"state_19\":true,\"state_22\":true,\"state_24\":true,\"state_38\":true,\"state_45\":true,\"state_49\":true}]},{\"type\":\"role\",\"title\":\"Crush choices\",\"children\":[{\"type\":\"person\",\"title\":\"Jennifer G. Churchill\",\"state\":\"h\",\"avail\":true,\"age\":26,\"date\":974246400000.0,\"state_3\":true,\"state_14\":true,\"state_15\":true,\"state_20\":true,\"state_22\":true,\"state_23\":true,\"state_28\":true,\"state_32\":true,\"state_39\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Frances Marshall\",\"avail\":true,\"age\":70,\"date\":1384992000000.0,\"state_3\":true,\"state_14\":true,\"state_29\":true,\"state_36\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Daryl Alsop\",\"state\":\"s\",\"avail\":true,\"age\":49,\"state_10\":true,\"state_14\":true,\"state_21\":true,\"state_33\":true,\"state_39\":true,\"state_43\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Matt R. Hart\",\"avail\":true,\"age\":79,\"date\":230342400000.0,\"state_2\":true,\"state_3\":true,\"state_11\":true,\"state_21\":true,\"state_22\":true,\"state_26\":true,\"state_28\":true,\"state_29\":true,\"state_32\":true,\"state_45\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Kelly Wright\",\"state\":\"h\",\"avail\":true,\"age\":45,\"date\":1216512000000.0,\"state_5\":true,\"state_8\":true,\"state_19\":true,\"state_21\":true,\"state_28\":true,\"state_29\":true,\"state_35\":true,\"state_37\":true,\"state_38\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Emily Anderson\",\"avail\":true,\"age\":85,\"date\":453945600000.0,\"state_6\":true,\"state_24\":true,\"state_25\":true,\"state_26\":true,\"state_30\":true,\"state_36\":true,\"state_39\":true,\"state_43\":true,\"state_47\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Nathan Graham\",\"avail\":true,\"age\":47,\"state_8\":true,\"state_22\":true,\"state_26\":true,\"state_31\":true,\"state_35\":true,\"state_37\":true,\"state_47\":true}]},{\"type\":\"role\",\"title\":\"Limp resolutions\",\"children\":[{\"type\":\"person\",\"title\":\"Carl F. Johnston\",\"state\":\"h\",\"avail\":true,\"age\":67,\"date\":734832000000.0,\"state_1\":true,\"state_4\":true,\"state_10\":true,\"state_13\":true,\"state_17\":true,\"state_20\":true,\"state_24\":true,\"state_34\":true,\"state_35\":true,\"state_43\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Frances F. Sutherland\",\"state\":\"s\",\"avail\":true,\"age\":66,\"state_18\":true,\"state_23\":true,\"state_24\":true,\"state_25\":true,\"state_29\":true,\"state_34\":true,\"state_36\":true,\"state_37\":true,\"state_39\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Corey G. Vance\",\"avail\":true,\"age\":66,\"date\":329616000000.0,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_1\":true,\"state_2\":true,\"state_7\":true,\"state_15\":true,\"state_16\":true,\"state_22\":true,\"state_29\":true,\"state_33\":true,\"state_37\":true,\"state_42\":true,\"state_44\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Jamie Lawrence\",\"avail\":true,\"age\":69,\"state_14\":true,\"state_17\":true,\"state_26\":true,\"state_39\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Gordon K. Morgan\",\"state\":\"h\",\"avail\":true,\"age\":33,\"state_9\":true,\"state_20\":true,\"state_28\":true,\"state_34\":true,\"state_37\":true,\"state_40\":true,\"state_41\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Una Bower\",\"avail\":true,\"age\":81,\"date\":41040000000.0,\"state_1\":true,\"state_9\":true,\"state_11\":true,\"state_12\":true,\"state_13\":true,\"state_18\":true,\"state_19\":true,\"state_20\":true,\"state_25\":true,\"state_29\":true,\"state_33\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Joseph C. Gill\",\"state\":\"s\",\"avail\":true,\"age\":81,\"state_2\":true,\"state_3\":true,\"state_8\":true,\"state_19\":true,\"state_23\":true,\"state_28\":true,\"state_30\":true,\"state_32\":true,\"state_37\":true},{\"type\":\"person\",\"title\":\"Natalie Buckland\",\"state\":\"h\",\"avail\":true,\"age\":97,\"date\":60652800000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_2\":true,\"state_5\":true,\"state_6\":true,\"state_7\":true,\"state_11\":true,\"state_20\":true,\"state_21\":true,\"state_23\":true,\"state_29\":true,\"state_44\":true,\"state_45\":true,\"state_46\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Virginia Greene\",\"state\":\"s\",\"age\":63,\"state_6\":true,\"state_9\":true,\"state_10\":true,\"state_12\":true,\"state_13\":true,\"state_20\":true,\"state_27\":true,\"state_28\":true,\"state_29\":true,\"state_38\":true,\"state_43\":true,\"state_44\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Felicity Brown\",\"state\":\"h\",\"avail\":true,\"age\":43,\"state_7\":true,\"state_11\":true,\"state_15\":true,\"state_20\":true,\"state_24\":true,\"state_28\":true,\"state_34\":true,\"state_37\":true,\"state_39\":true,\"state_44\":true,\"state_46\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Donna Lewis\",\"avail\":true,\"age\":85,\"date\":452736000000.0,\"state_6\":true,\"state_15\":true,\"state_18\":true,\"state_20\":true,\"state_23\":true,\"state_24\":true,\"state_26\":true,\"state_28\":true,\"state_29\":true,\"state_30\":true,\"state_33\":true,\"state_37\":true,\"state_39\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Christopher Hudson\",\"avail\":true,\"age\":68,\"state_2\":true,\"state_7\":true,\"state_16\":true,\"state_17\":true,\"state_21\":true,\"state_26\":true,\"state_28\":true,\"state_31\":true,\"state_38\":true,\"state_43\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Pat Paige\",\"state\":\"s\",\"avail\":true,\"age\":54,\"state_5\":true,\"state_6\":true,\"state_18\":true,\"state_19\":true,\"state_21\":true,\"state_25\":true,\"state_34\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Austin Sutherland\",\"avail\":true,\"age\":21,\"date\":576892800000.0,\"state_1\":true,\"state_2\":true,\"state_4\":true,\"state_5\":true,\"state_25\":true,\"state_26\":true,\"state_28\":true,\"state_40\":true,\"state_41\":true,\"state_42\":true,\"state_43\":true,\"state_49\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Decorate increases\",\"children\":[{\"type\":\"person\",\"title\":\"Virginia May\",\"avail\":true,\"age\":42,\"state_4\":true,\"state_7\":true,\"state_16\":true,\"state_32\":true,\"state_36\":true,\"state_42\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Austin M. Wright\",\"state\":\"s\",\"avail\":true,\"age\":85,\"date\":837216000000.0,\"state_1\":true,\"state_7\":true,\"state_17\":true,\"state_20\":true,\"state_21\":true,\"state_31\":true,\"state_35\":true,\"state_36\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Gabrielle Springer\",\"avail\":true,\"age\":73,\"date\":810604800000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_3\":true,\"state_4\":true,\"state_10\":true,\"state_14\":true,\"state_15\":true,\"state_20\":true,\"state_23\":true,\"state_24\":true,\"state_34\":true,\"state_36\":true,\"state_37\":true,\"state_41\":true,\"state_43\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Rebecca T. Reid\",\"avail\":true,\"age\":27,\"date\":211680000000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_1\":true,\"state_3\":true,\"state_12\":true,\"state_14\":true,\"state_16\":true,\"state_17\":true,\"state_19\":true,\"state_33\":true,\"state_37\":true,\"state_38\":true,\"state_41\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Anne Piper\",\"avail\":true,\"age\":35,\"date\":581904000000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_4\":true,\"state_6\":true,\"state_22\":true,\"state_24\":true,\"state_32\":true,\"state_38\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Boris McGrath\",\"state\":\"s\",\"avail\":true,\"age\":61,\"state_1\":true,\"state_12\":true,\"state_17\":true,\"state_18\":true,\"state_20\":true,\"state_21\":true,\"state_24\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Justin Q. Lawrence\",\"avail\":true,\"age\":47,\"date\":1330128000000.0,\"state_8\":true,\"state_10\":true,\"state_11\":true,\"state_19\":true,\"state_20\":true,\"state_31\":true,\"state_32\":true,\"state_34\":true,\"state_37\":true,\"state_38\":true},{\"type\":\"person\",\"title\":\"Dorothy Berry\",\"state\":\"h\",\"avail\":true,\"age\":68,\"date\":679795200000.0,\"state_1\":true,\"state_9\":true,\"state_16\":true,\"state_17\":true,\"state_19\":true,\"state_21\":true,\"state_22\":true,\"state_30\":true,\"state_41\":true,\"state_46\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Abigail J. Ferguson\",\"avail\":true,\"age\":76,\"date\":340675200000.0,\"state_2\":true,\"state_3\":true,\"state_4\":true,\"state_11\":true,\"state_13\":true,\"state_16\":true,\"state_17\":true,\"state_20\":true,\"state_21\":true,\"state_25\":true,\"state_26\":true,\"state_28\":true,\"state_35\":true,\"state_40\":true,\"state_43\":true,\"state_44\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Trevor Sharp\",\"avail\":true,\"age\":32,\"date\":1436918400000.0,\"state_4\":true,\"state_7\":true,\"state_11\":true,\"state_14\":true,\"state_16\":true,\"state_20\":true,\"state_24\":true,\"state_27\":true,\"state_33\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Casey A. Thomson\",\"avail\":true,\"age\":58,\"state_1\":true,\"state_5\":true,\"state_9\":true,\"state_11\":true,\"state_13\":true,\"state_16\":true,\"state_18\":true,\"state_24\":true,\"state_25\":true,\"state_26\":true,\"state_30\":true,\"state_34\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Una V. Hemmings\",\"avail\":true,\"age\":87,\"state_8\":true,\"state_16\":true,\"state_23\":true,\"state_34\":true,\"state_40\":true,\"state_42\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Molly B. Butler\",\"avail\":true,\"age\":33,\"date\":1084838400000.0,\"state_2\":true,\"state_4\":true,\"state_6\":true,\"state_11\":true,\"state_13\":true,\"state_14\":true,\"state_16\":true,\"state_26\":true,\"state_27\":true,\"state_36\":true,\"state_38\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Sebastian W. Walsh\",\"avail\":true,\"age\":82,\"date\":231638400000.0,\"state_7\":true,\"state_11\":true,\"state_18\":true,\"state_26\":true,\"state_28\":true,\"state_32\":true,\"state_47\":true,\"state_49\":true}]},{\"type\":\"role\",\"title\":\"Digest acts\",\"children\":[{\"type\":\"person\",\"title\":\"Alexandra Hemmings\",\"avail\":true,\"age\":21,\"date\":282873600000.0,\"state_1\":true,\"state_8\":true,\"state_11\":true,\"state_23\":true,\"state_26\":true,\"state_41\":true,\"state_45\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Carolyn H. Carr\",\"age\":41,\"date\":1023753600000.0,\"state_7\":true,\"state_16\":true,\"state_20\":true,\"state_24\":true,\"state_34\":true,\"state_40\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Dorothy Ogden\",\"age\":40,\"date\":283046400000.0,\"state_4\":true,\"state_13\":true,\"state_17\":true,\"state_27\":true,\"state_36\":true,\"state_38\":true,\"state_41\":true,\"state_43\":true,\"state_45\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Amy King\",\"avail\":true,\"age\":85,\"date\":921628800000.0,\"state_11\":true,\"state_13\":true,\"state_16\":true,\"state_19\":true,\"state_32\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Justin N. Hughes\",\"avail\":true,\"age\":81,\"date\":1332201600000.0,\"state_7\":true,\"state_11\":true,\"state_13\":true,\"state_14\":true,\"state_19\":true,\"state_20\":true,\"state_21\":true,\"state_23\":true,\"state_26\":true,\"state_28\":true,\"state_35\":true,\"state_38\":true,\"state_39\":true,\"state_44\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Bobbie D. Bailey\",\"age\":40,\"date\":952214400000.0,\"state_14\":true,\"state_15\":true,\"state_19\":true,\"state_23\":true,\"state_26\":true,\"state_28\":true,\"state_34\":true,\"state_35\":true,\"state_36\":true,\"state_37\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jayden Mathis\",\"avail\":true,\"age\":47,\"date\":1372636800000.0,\"state_26\":true,\"state_33\":true,\"state_34\":true,\"state_36\":true,\"state_38\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Eddie D. Randall\",\"state\":\"h\",\"avail\":true,\"age\":69,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_3\":true,\"state_4\":true,\"state_7\":true,\"state_9\":true,\"state_10\":true,\"state_17\":true,\"state_19\":true,\"state_26\":true,\"state_29\":true,\"state_31\":true,\"state_43\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Adrian Henderson\",\"avail\":true,\"age\":33,\"date\":562982400000.0,\"state_7\":true,\"state_9\":true,\"state_11\":true,\"state_20\":true,\"state_28\":true,\"state_31\":true,\"state_43\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Contrast representatives\",\"children\":[{\"type\":\"person\",\"title\":\"Gabrielle N. Payne\",\"age\":24,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_6\":true,\"state_7\":true,\"state_10\":true,\"state_12\":true,\"state_35\":true,\"state_42\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Kimberly Thomson\",\"state\":\"h\",\"avail\":true,\"age\":23,\"date\":450403200000.0,\"state_1\":true,\"state_13\":true,\"state_15\":true,\"state_25\":true,\"state_31\":true,\"state_42\":true,\"state_45\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Bernadette O. James\",\"state\":\"h\",\"avail\":true,\"age\":22,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_4\":true,\"state_10\":true,\"state_22\":true,\"state_32\":true,\"state_36\":true,\"state_38\":true,\"state_42\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Abigail Wilkins\",\"state\":\"s\",\"avail\":true,\"age\":45,\"state_2\":true,\"state_7\":true,\"state_8\":true,\"state_9\":true,\"state_11\":true,\"state_22\":true,\"state_23\":true,\"state_24\":true,\"state_32\":true,\"state_38\":true},{\"type\":\"person\",\"title\":\"Rebecca I. Dowd\",\"age\":42,\"state_1\":true,\"state_5\":true,\"state_8\":true,\"state_10\":true,\"state_13\":true,\"state_14\":true,\"state_15\":true,\"state_25\":true,\"state_26\":true,\"state_36\":true,\"state_39\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Sue Lawrence\",\"state\":\"h\",\"avail\":true,\"age\":44,\"date\":1555977600000.0,\"state_11\":true,\"state_16\":true,\"state_19\":true,\"state_20\":true,\"state_21\":true,\"state_22\":true,\"state_27\":true,\"state_29\":true,\"state_32\":true,\"state_34\":true,\"state_36\":true,\"state_41\":true,\"state_42\":true,\"state_45\":true,\"state_46\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Emily Dyer\",\"state\":\"h\",\"avail\":true,\"age\":40,\"date\":16934400000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_4\":true,\"state_13\":true,\"state_17\":true,\"state_18\":true,\"state_23\":true,\"state_33\":true,\"state_34\":true,\"state_35\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Frances Hudson\",\"avail\":true,\"age\":83,\"date\":415324800000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_1\":true,\"state_6\":true,\"state_14\":true,\"state_22\":true,\"state_24\":true,\"state_29\":true,\"state_30\":true,\"state_32\":true,\"state_39\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Ian A. Avery\",\"state\":\"h\",\"avail\":true,\"age\":42,\"date\":538358400000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_4\":true,\"state_6\":true,\"state_11\":true,\"state_19\":true,\"state_21\":true,\"state_26\":true,\"state_29\":true,\"state_31\":true,\"state_33\":true,\"state_46\":true,\"state_47\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Cameron L. Gray\",\"avail\":true,\"age\":66,\"state_3\":true,\"state_4\":true,\"state_5\":true,\"state_7\":true,\"state_8\":true,\"state_14\":true,\"state_19\":true,\"state_21\":true,\"state_22\":true,\"state_25\":true,\"state_28\":true,\"state_33\":true,\"state_36\":true,\"state_39\":true,\"state_40\":true,\"state_44\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Frank Young\",\"avail\":true,\"age\":77,\"state_3\":true,\"state_7\":true,\"state_8\":true,\"state_15\":true,\"state_16\":true,\"state_27\":true,\"state_30\":true,\"state_32\":true,\"state_33\":true,\"state_34\":true,\"state_39\":true,\"state_40\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jan T. Marshall\",\"avail\":true,\"age\":39,\"state_4\":true,\"state_18\":true,\"state_19\":true,\"state_27\":true,\"state_29\":true,\"state_39\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Anna Fisher\",\"avail\":true,\"age\":30,\"date\":80524800000.0,\"state_1\":true,\"state_3\":true,\"state_4\":true,\"state_8\":true,\"state_10\":true,\"state_32\":true,\"state_43\":true,\"state_46\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Wanda V. Terry\",\"avail\":true,\"age\":39,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_3\":true,\"state_9\":true,\"state_10\":true,\"state_11\":true,\"state_13\":true,\"state_14\":true,\"state_15\":true,\"state_18\":true,\"state_19\":true,\"state_23\":true,\"state_24\":true,\"state_25\":true,\"state_34\":true,\"state_38\":true,\"state_40\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Leonard Chapman\",\"avail\":true,\"age\":93,\"state_7\":true,\"state_8\":true,\"state_9\":true,\"state_23\":true,\"state_27\":true,\"state_30\":true,\"state_32\":true,\"state_33\":true,\"state_38\":true,\"state_41\":true,\"state_42\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Casey B. Baker\",\"state\":\"h\",\"age\":34,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_2\":true,\"state_3\":true,\"state_16\":true,\"state_20\":true,\"state_22\":true,\"state_23\":true,\"state_24\":true,\"state_25\":true,\"state_30\":true,\"state_37\":true,\"state_38\":true,\"state_43\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Christian Watson\",\"avail\":true,\"age\":83,\"state_22\":true,\"state_26\":true,\"state_27\":true,\"state_32\":true,\"state_33\":true,\"state_38\":true,\"state_40\":true,\"state_44\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Una J. Grant\",\"avail\":true,\"age\":47,\"state_8\":true,\"state_11\":true,\"state_15\":true,\"state_18\":true,\"state_22\":true,\"state_23\":true,\"state_26\":true,\"state_35\":true,\"state_39\":true,\"state_41\":true,\"state_45\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Corey I. Payne\",\"age\":72,\"date\":968544000000.0,\"state_5\":true,\"state_15\":true,\"state_20\":true,\"state_27\":true,\"state_30\":true,\"state_36\":true,\"state_37\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Cameron P. Metcalfe\",\"state\":\"h\",\"avail\":true,\"age\":86,\"state_2\":true,\"state_3\":true,\"state_13\":true,\"state_14\":true,\"state_21\":true,\"state_22\":true,\"state_29\":true,\"state_30\":true,\"state_33\":true,\"state_44\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Abigail F. Davies\",\"state\":\"h\",\"avail\":true,\"age\":64,\"date\":1188172800000.0,\"state_2\":true,\"state_6\":true,\"state_10\":true,\"state_12\":true,\"state_17\":true,\"state_23\":true,\"state_26\":true,\"state_27\":true,\"state_33\":true,\"state_37\":true,\"state_40\":true,\"state_41\":true,\"state_42\":true,\"state_47\":true}]},{\"type\":\"role\",\"title\":\"Idolize releases\",\"children\":[{\"type\":\"person\",\"title\":\"Luke Clarkson\",\"avail\":true,\"age\":72,\"date\":398131200000.0,\"state_4\":true,\"state_5\":true,\"state_10\":true,\"state_16\":true,\"state_27\":true,\"state_37\":true,\"state_41\":true,\"state_44\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Kyle Z. Oliver\",\"avail\":true,\"age\":60,\"date\":701740800000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_3\":true,\"state_7\":true,\"state_17\":true,\"state_20\":true,\"state_23\":true,\"state_28\":true,\"state_29\":true,\"state_31\":true,\"state_32\":true,\"state_37\":true,\"state_38\":true,\"state_41\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Justin F. Graham\",\"state\":\"s\",\"avail\":true,\"age\":73,\"date\":1664496000000.0,\"state_6\":true,\"state_10\":true,\"state_19\":true,\"state_26\":true,\"state_32\":true,\"state_41\":true,\"state_45\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Kevin K. May\",\"avail\":true,\"age\":90,\"state_2\":true,\"state_7\":true,\"state_13\":true,\"state_18\":true,\"state_24\":true,\"state_26\":true,\"state_29\":true,\"state_31\":true,\"state_38\":true,\"state_41\":true,\"state_44\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"John A. McGrath\",\"avail\":true,\"age\":45,\"date\":886896000000.0,\"state_1\":true,\"state_16\":true,\"state_23\":true,\"state_25\":true,\"state_29\":true,\"state_34\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Matt Q. Morgan\",\"avail\":true,\"age\":69,\"date\":1327017600000.0,\"state_3\":true,\"state_12\":true,\"state_14\":true,\"state_16\":true,\"state_18\":true,\"state_23\":true,\"state_25\":true,\"state_35\":true,\"state_36\":true,\"state_37\":true,\"state_40\":true,\"state_41\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Michael X. Cornish\",\"avail\":true,\"age\":80,\"state_5\":true,\"state_8\":true,\"state_11\":true,\"state_16\":true,\"state_22\":true,\"state_28\":true,\"state_29\":true,\"state_33\":true,\"state_39\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Phoenix Nolan\",\"avail\":true,\"age\":44,\"state_1\":true,\"state_8\":true,\"state_13\":true,\"state_18\":true,\"state_22\":true,\"state_40\":true,\"state_42\":true,\"state_44\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Donna E. May\",\"state\":\"h\",\"avail\":true,\"age\":24,\"date\":410745600000.0,\"state_8\":true,\"state_9\":true,\"state_10\":true,\"state_13\":true,\"state_23\":true,\"state_27\":true,\"state_29\":true,\"state_42\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Jesse Slater\",\"avail\":true,\"age\":33,\"date\":859680000000.0,\"state_17\":true,\"state_20\":true,\"state_22\":true,\"state_23\":true,\"state_24\":true,\"state_28\":true,\"state_37\":true,\"state_38\":true,\"state_42\":true,\"state_43\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Matt I. Roberts\",\"avail\":true,\"age\":85,\"state_2\":true,\"state_8\":true,\"state_16\":true,\"state_26\":true,\"state_28\":true,\"state_30\":true,\"state_31\":true,\"state_36\":true,\"state_37\":true,\"state_41\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Christopher X. Hemmings\",\"state\":\"h\",\"avail\":true,\"age\":23,\"date\":1308268800000.0,\"state_3\":true,\"state_5\":true,\"state_9\":true,\"state_13\":true,\"state_25\":true,\"state_27\":true,\"state_28\":true,\"state_46\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Trevor X. Miller\",\"avail\":true,\"age\":95,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_1\":true,\"state_4\":true,\"state_5\":true,\"state_9\":true,\"state_12\":true,\"state_17\":true,\"state_23\":true,\"state_29\":true,\"state_34\":true,\"state_38\":true,\"state_41\":true,\"state_45\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Clean atmospheres\"},{\"type\":\"role\",\"title\":\"Alight baths\",\"children\":[{\"type\":\"person\",\"title\":\"Ella R. McLean\",\"avail\":true,\"age\":30,\"state_4\":true,\"state_8\":true,\"state_11\":true,\"state_19\":true,\"state_20\":true,\"state_29\":true,\"state_36\":true,\"state_37\":true},{\"type\":\"person\",\"title\":\"Joe G. Peake\",\"state\":\"s\",\"avail\":true,\"age\":67,\"state_8\":true,\"state_17\":true,\"state_19\":true,\"state_24\":true,\"state_38\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Dylan Knox\",\"avail\":true,\"age\":58,\"date\":647481600000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_17\":true,\"state_21\":true,\"state_22\":true,\"state_23\":true,\"state_25\":true,\"state_28\":true,\"state_29\":true,\"state_34\":true,\"state_35\":true,\"state_39\":true,\"state_40\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Joshua Taylor\",\"avail\":true,\"age\":38,\"date\":1567900800000.0,\"state_1\":true,\"state_5\":true,\"state_8\":true,\"state_9\":true,\"state_13\":true,\"state_29\":true,\"state_36\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Dylan Y. Wilson\",\"avail\":true,\"age\":22,\"date\":521164800000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_7\":true,\"state_9\":true,\"state_14\":true,\"state_17\":true,\"state_20\":true,\"state_32\":true,\"state_34\":true,\"state_39\":true,\"state_45\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Alexandra F. Thomson\",\"avail\":true,\"age\":75,\"date\":442195200000.0,\"state_2\":true,\"state_7\":true,\"state_11\":true,\"state_15\":true,\"state_24\":true,\"state_28\":true,\"state_29\":true,\"state_30\":true,\"state_32\":true,\"state_33\":true,\"state_34\":true,\"state_35\":true,\"state_39\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Brian H. Allan\",\"avail\":true,\"age\":22,\"state_21\":true,\"state_30\":true,\"state_33\":true,\"state_40\":true,\"state_42\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Alexandra Marshall\",\"state\":\"s\",\"avail\":true,\"age\":25,\"date\":862876800000.0,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_5\":true,\"state_14\":true,\"state_16\":true,\"state_18\":true,\"state_21\":true,\"state_23\":true,\"state_33\":true,\"state_34\":true,\"state_43\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Joseph H. Bailey\",\"avail\":true,\"age\":96,\"state_6\":true,\"state_19\":true,\"state_25\":true,\"state_36\":true,\"state_37\":true,\"state_38\":true,\"state_42\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Phoenix R. Walker\",\"avail\":true,\"age\":73,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_1\":true,\"state_2\":true,\"state_10\":true,\"state_16\":true,\"state_20\":true,\"state_25\":true,\"state_32\":true,\"state_38\":true,\"state_40\":true,\"state_42\":true,\"state_44\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Gabrielle Fraser\",\"avail\":true,\"age\":79,\"date\":339379200000.0,\"state_3\":true,\"state_8\":true,\"state_22\":true,\"state_43\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Phoenix Dowd\",\"avail\":true,\"age\":33,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_8\":true,\"state_11\":true,\"state_20\":true,\"state_32\":true,\"state_36\":true,\"state_41\":true,\"state_44\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Neil Sanderson\",\"state\":\"h\",\"avail\":true,\"age\":69,\"state_4\":true,\"state_6\":true,\"state_7\":true,\"state_8\":true,\"state_9\":true,\"state_13\":true,\"state_16\":true,\"state_33\":true,\"state_44\":true,\"state_46\":true,\"state_49\":true}]},{\"type\":\"role\",\"title\":\"Construe temporaries\",\"children\":[{\"type\":\"person\",\"title\":\"Victor M. Underwood\",\"avail\":true,\"age\":42,\"date\":1625875200000.0,\"state_1\":true,\"state_7\":true,\"state_8\":true,\"state_10\":true,\"state_14\":true,\"state_25\":true,\"state_26\":true,\"state_28\":true,\"state_37\":true,\"state_40\":true,\"state_41\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Zoe S. Bell\",\"avail\":true,\"age\":57,\"date\":1285891200000.0,\"state_5\":true,\"state_9\":true,\"state_13\":true,\"state_15\":true,\"state_23\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Taylor E. MacLeod\",\"state\":\"s\",\"avail\":true,\"age\":34,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_4\":true,\"state_8\":true,\"state_10\":true,\"state_24\":true,\"state_30\":true,\"state_31\":true,\"state_34\":true,\"state_36\":true,\"state_43\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Lily O. Forsyth\",\"avail\":true,\"age\":61,\"date\":1602201600000.0,\"state_8\":true,\"state_12\":true,\"state_18\":true,\"state_24\":true,\"state_27\":true,\"state_28\":true,\"state_38\":true},{\"type\":\"person\",\"title\":\"Owen Mitchell\",\"state\":\"h\",\"avail\":true,\"age\":46,\"state_9\":true,\"state_10\":true,\"state_15\":true,\"state_27\":true,\"state_30\":true,\"state_32\":true,\"state_33\":true,\"state_39\":true,\"state_43\":true,\"state_44\":true}]}]},{\"type\":\"department\",\"title\":\"Dept. for Beats and Reputations\",\"children\":[{\"type\":\"role\",\"title\":\"Rob skunks\",\"children\":[{\"type\":\"person\",\"title\":\"Emily Terry\",\"state\":\"s\",\"avail\":true,\"age\":39,\"date\":1306627200000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_18\":true,\"state_25\":true,\"state_27\":true,\"state_33\":true,\"state_47\":true}]},{\"type\":\"role\",\"title\":\"Grind yards\",\"children\":[{\"type\":\"person\",\"title\":\"Lily Hunter\",\"avail\":true,\"age\":48,\"date\":352512000000.0,\"state_15\":true,\"state_24\":true,\"state_32\":true,\"state_35\":true,\"state_43\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"David Hardacre\",\"avail\":true,\"age\":48,\"date\":672451200000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_2\":true,\"state_12\":true,\"state_19\":true,\"state_31\":true,\"state_43\":true,\"state_47\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Pat Glover\",\"avail\":true,\"age\":89,\"date\":451699200000.0,\"state_8\":true,\"state_9\":true,\"state_10\":true,\"state_18\":true,\"state_27\":true,\"state_42\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Piers H. Buckland\",\"avail\":true,\"age\":47,\"state_1\":true,\"state_2\":true,\"state_3\":true,\"state_4\":true,\"state_11\":true,\"state_14\":true,\"state_17\":true,\"state_23\":true,\"state_26\":true,\"state_28\":true,\"state_29\":true,\"state_35\":true,\"state_38\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Lily Terry\",\"state\":\"h\",\"age\":72,\"state_5\":true,\"state_7\":true,\"state_12\":true,\"state_27\":true,\"state_28\":true,\"state_30\":true,\"state_43\":true,\"state_45\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Ryan Rutherford\",\"avail\":true,\"age\":65,\"date\":1044489600000.0,\"state_6\":true,\"state_8\":true,\"state_15\":true,\"state_17\":true,\"state_23\":true,\"state_25\":true,\"state_26\":true,\"state_39\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Olivia B. Langdon\",\"age\":34,\"date\":1618617600000.0,\"state_3\":true,\"state_5\":true,\"state_20\":true,\"state_26\":true,\"state_34\":true,\"state_40\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Dan R. Buckland\",\"state\":\"h\",\"avail\":true,\"age\":42,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_5\":true,\"state_6\":true,\"state_8\":true,\"state_11\":true,\"state_12\":true,\"state_24\":true,\"state_32\":true,\"state_40\":true,\"state_42\":true,\"state_45\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Stewart J. Berry\",\"avail\":true,\"age\":73,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_4\":true,\"state_12\":true,\"state_16\":true,\"state_24\":true,\"state_25\":true,\"state_26\":true,\"state_27\":true,\"state_41\":true,\"state_44\":true,\"state_45\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Chris Rampling\",\"avail\":true,\"age\":69,\"state_4\":true,\"state_5\":true,\"state_11\":true,\"state_13\":true,\"state_19\":true,\"state_20\":true,\"state_24\":true,\"state_26\":true,\"state_27\":true,\"state_31\":true,\"state_40\":true,\"state_43\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Kylie Wright\",\"state\":\"s\",\"avail\":true,\"age\":78,\"date\":955065600000.0,\"state_10\":true,\"state_11\":true,\"state_19\":true,\"state_20\":true,\"state_22\":true,\"state_24\":true,\"state_36\":true,\"state_48\":true}]},{\"type\":\"role\",\"title\":\"Believe swimmings\",\"children\":[{\"type\":\"person\",\"title\":\"Katherine Quinn\",\"state\":\"s\",\"avail\":true,\"age\":74,\"state_10\":true,\"state_18\":true,\"state_19\":true,\"state_23\":true,\"state_24\":true,\"state_26\":true,\"state_27\":true,\"state_38\":true,\"state_40\":true,\"state_42\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Maria Slater\",\"avail\":true,\"age\":53,\"date\":329270400000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_3\":true,\"state_10\":true,\"state_12\":true,\"state_18\":true,\"state_23\":true,\"state_27\":true,\"state_35\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Audrey Ogden\",\"avail\":true,\"age\":35,\"state_4\":true,\"state_5\":true,\"state_6\":true,\"state_13\":true,\"state_14\":true,\"state_17\":true,\"state_19\":true,\"state_21\":true,\"state_26\":true,\"state_29\":true,\"state_30\":true,\"state_33\":true,\"state_40\":true,\"state_42\":true,\"state_43\":true,\"state_44\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Austin C. Davidson\",\"state\":\"h\",\"avail\":true,\"age\":48,\"state_2\":true,\"state_5\":true,\"state_14\":true,\"state_23\":true,\"state_27\":true,\"state_36\":true,\"state_40\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Pippa Hamilton\",\"age\":40,\"date\":635644800000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_1\":true,\"state_3\":true,\"state_5\":true,\"state_14\":true,\"state_25\":true,\"state_26\":true,\"state_28\":true,\"state_36\":true,\"state_40\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Jack S. Terry\",\"avail\":true,\"age\":92,\"date\":817257600000.0,\"state_1\":true,\"state_13\":true,\"state_22\":true,\"state_23\":true,\"state_25\":true,\"state_42\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Vanessa Mackay\",\"avail\":true,\"age\":34,\"date\":242524800000.0,\"state_8\":true,\"state_10\":true,\"state_15\":true,\"state_19\":true,\"state_23\":true,\"state_27\":true,\"state_28\":true,\"state_30\":true,\"state_32\":true,\"state_36\":true,\"state_46\":true,\"state_47\":true,\"state_48\":true}]},{\"type\":\"role\",\"title\":\"Modify departures\",\"children\":[{\"type\":\"person\",\"title\":\"Audrey Wilson\",\"avail\":true,\"age\":34,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_1\":true,\"state_5\":true,\"state_6\":true,\"state_8\":true,\"state_15\":true,\"state_17\":true,\"state_25\":true,\"state_29\":true,\"state_45\":true,\"state_46\":true,\"state_48\":true}]},{\"type\":\"role\",\"title\":\"Vomit tigers\",\"children\":[{\"type\":\"person\",\"title\":\"Carl T. Russell\",\"avail\":true,\"age\":69,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_8\":true,\"state_11\":true,\"state_13\":true,\"state_18\":true,\"state_38\":true,\"state_42\":true,\"state_43\":true,\"state_44\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Joan J. Hardacre\",\"avail\":true,\"age\":70,\"date\":1250035200000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_10\":true,\"state_18\":true,\"state_19\":true,\"state_20\":true,\"state_22\":true,\"state_31\":true,\"state_33\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Max Howard\",\"avail\":true,\"age\":40,\"state_2\":true,\"state_18\":true,\"state_19\":true,\"state_21\":true,\"state_22\":true,\"state_24\":true,\"state_37\":true,\"state_42\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Jan Ball\",\"state\":\"h\",\"avail\":true,\"age\":50,\"date\":1669420800000.0,\"state_1\":true,\"state_3\":true,\"state_13\":true,\"state_20\":true,\"state_21\":true,\"state_23\":true,\"state_24\":true,\"state_41\":true}]},{\"type\":\"role\",\"title\":\"Grab preparations\",\"children\":[{\"type\":\"person\",\"title\":\"Corey McLean\",\"avail\":true,\"age\":29,\"date\":654134400000.0,\"state_2\":true,\"state_9\":true,\"state_13\":true,\"state_14\":true,\"state_18\":true,\"state_24\":true,\"state_27\":true,\"state_29\":true,\"state_36\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Victor Hardacre\",\"avail\":true,\"age\":83,\"date\":206409600000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_1\":true,\"state_6\":true,\"state_15\":true,\"state_18\":true,\"state_20\":true,\"state_26\":true,\"state_33\":true,\"state_36\":true,\"state_37\":true,\"state_41\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Oliver Y. Martin\",\"state\":\"s\",\"avail\":true,\"age\":74,\"state_4\":true,\"state_8\":true,\"state_10\":true,\"state_16\":true,\"state_21\":true,\"state_24\":true,\"state_31\":true,\"state_33\":true,\"state_36\":true,\"state_39\":true,\"state_41\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Phil L. Underwood\",\"age\":66,\"date\":532396800000.0,\"state_2\":true,\"state_3\":true,\"state_8\":true,\"state_9\":true,\"state_11\":true,\"state_18\":true,\"state_29\":true,\"state_37\":true,\"state_44\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Amy Cameron\",\"state\":\"h\",\"avail\":true,\"age\":54,\"date\":794102400000.0,\"state_2\":true,\"state_5\":true,\"state_11\":true,\"state_12\":true,\"state_16\":true,\"state_26\":true,\"state_31\":true,\"state_34\":true,\"state_35\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Victoria North\",\"avail\":true,\"age\":27,\"state_10\":true,\"state_18\":true,\"state_19\":true,\"state_22\":true,\"state_35\":true},{\"type\":\"person\",\"title\":\"Mary Rutherford\",\"avail\":true,\"age\":94,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_4\":true,\"state_13\":true,\"state_15\":true,\"state_35\":true,\"state_36\":true,\"state_41\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Alexander T. Wilkins\",\"avail\":true,\"age\":69,\"date\":439603200000.0,\"state_2\":true,\"state_10\":true,\"state_12\":true,\"state_15\":true,\"state_28\":true,\"state_31\":true,\"state_36\":true,\"state_37\":true,\"state_38\":true,\"state_41\":true,\"state_43\":true,\"state_44\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Anne C. Hemmings\",\"age\":95,\"date\":708739200000.0,\"state_2\":true,\"state_7\":true,\"state_10\":true,\"state_16\":true,\"state_23\":true,\"state_27\":true,\"state_28\":true,\"state_42\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Sarah U. James\",\"state\":\"s\",\"avail\":true,\"age\":51,\"date\":424569600000.0,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_4\":true,\"state_5\":true,\"state_7\":true,\"state_11\":true,\"state_12\":true,\"state_13\":true,\"state_15\":true,\"state_19\":true,\"state_21\":true,\"state_28\":true,\"state_36\":true,\"state_40\":true,\"state_44\":true,\"state_45\":true,\"state_48\":true}]},{\"type\":\"role\",\"title\":\"Opt criticisms\",\"children\":[{\"type\":\"person\",\"title\":\"Wendy C. Kelly\",\"age\":34,\"state_5\":true,\"state_7\":true,\"state_8\":true,\"state_11\":true,\"state_29\":true,\"state_33\":true,\"state_36\":true,\"state_40\":true,\"state_41\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Wendy Brown\",\"avail\":true,\"age\":95,\"state_21\":true,\"state_23\":true,\"state_32\":true,\"state_36\":true,\"state_43\":true,\"state_44\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Dylan McDonald\",\"avail\":true,\"age\":40,\"date\":598838400000.0,\"state_13\":true,\"state_25\":true,\"state_27\":true,\"state_32\":true,\"state_38\":true,\"state_41\":true,\"state_45\":true,\"state_46\":true,\"state_47\":true,\"state_48\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Convert staies\",\"children\":[{\"type\":\"person\",\"title\":\"Liam I. Chapman\",\"avail\":true,\"age\":54,\"date\":384134400000.0,\"state_1\":true,\"state_15\":true,\"state_27\":true,\"state_34\":true,\"state_41\":true,\"state_42\":true,\"state_44\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Vanessa Slater\",\"avail\":true,\"age\":22,\"date\":305596800000.0,\"state_3\":true,\"state_11\":true,\"state_17\":true,\"state_22\":true,\"state_27\":true,\"state_28\":true,\"state_30\":true,\"state_31\":true,\"state_37\":true,\"state_40\":true,\"state_41\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Dylan Springer\",\"avail\":true,\"age\":61,\"date\":313977600000.0,\"state_13\":true,\"state_15\":true,\"state_16\":true,\"state_21\":true,\"state_23\":true,\"state_26\":true,\"state_30\":true,\"state_31\":true,\"state_37\":true,\"state_42\":true,\"state_43\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Ruth Piper\",\"avail\":true,\"age\":78,\"state_5\":true,\"state_6\":true,\"state_7\":true,\"state_8\":true,\"state_11\":true,\"state_18\":true,\"state_25\":true,\"state_26\":true,\"state_30\":true,\"state_35\":true,\"state_44\":true}]},{\"type\":\"role\",\"title\":\"Nap schedules\",\"children\":[{\"type\":\"person\",\"title\":\"Adam Poole\",\"age\":93,\"state_5\":true,\"state_7\":true,\"state_9\":true,\"state_16\":true,\"state_18\":true,\"state_19\":true,\"state_21\":true,\"state_24\":true,\"state_28\":true,\"state_32\":true,\"state_33\":true,\"state_34\":true,\"state_35\":true,\"state_42\":true,\"state_45\":true,\"state_48\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jasmine Wilson\",\"state\":\"h\",\"avail\":true,\"age\":40,\"state_4\":true,\"state_7\":true,\"state_10\":true,\"state_14\":true,\"state_20\":true,\"state_21\":true,\"state_27\":true,\"state_34\":true,\"state_35\":true,\"state_41\":true,\"state_45\":true,\"state_47\":true}]},{\"type\":\"role\",\"title\":\"Solicit lacks\",\"children\":[{\"type\":\"person\",\"title\":\"Karen Lyman\",\"avail\":true,\"age\":44,\"date\":169603200000.0,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_7\":true,\"state_8\":true,\"state_16\":true,\"state_23\":true,\"state_24\":true,\"state_27\":true,\"state_41\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Jesse A. Newman\",\"state\":\"s\",\"avail\":true,\"age\":84,\"date\":233107200000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_1\":true,\"state_3\":true,\"state_15\":true,\"state_26\":true,\"state_28\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Toby P. Dyer\",\"avail\":true,\"age\":85,\"date\":653529600000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_9\":true,\"state_19\":true,\"state_32\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Alan Nash\",\"avail\":true,\"age\":69,\"state_6\":true,\"state_16\":true,\"state_19\":true,\"state_33\":true,\"state_37\":true,\"state_39\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"David P. Hill\",\"avail\":true,\"age\":72,\"date\":712713600000.0,\"state_9\":true,\"state_18\":true,\"state_19\":true,\"state_21\":true,\"state_22\":true,\"state_27\":true,\"state_33\":true,\"state_35\":true,\"state_41\":true,\"state_42\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Daryl Q. Peake\",\"avail\":true,\"age\":29,\"date\":755568000000.0,\"state_2\":true,\"state_5\":true,\"state_12\":true,\"state_23\":true,\"state_32\":true,\"state_35\":true,\"state_43\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Casey I. Randall\",\"avail\":true,\"age\":38,\"date\":1572307200000.0,\"state_3\":true,\"state_7\":true,\"state_10\":true,\"state_18\":true,\"state_19\":true,\"state_21\":true,\"state_24\":true,\"state_31\":true,\"state_38\":true,\"state_39\":true,\"state_41\":true,\"state_42\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Casey W. McDonald\",\"age\":92,\"date\":79574400000.0,\"state_3\":true,\"state_14\":true,\"state_17\":true,\"state_19\":true,\"state_40\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Joe B. Hughes\",\"avail\":true,\"age\":63,\"date\":257644800000.0,\"state_1\":true,\"state_4\":true,\"state_6\":true,\"state_7\":true,\"state_12\":true,\"state_13\":true,\"state_17\":true,\"state_23\":true,\"state_25\":true,\"state_37\":true,\"state_41\":true,\"state_42\":true,\"state_43\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Zoe D. Thomson\",\"state\":\"s\",\"avail\":true,\"age\":52,\"date\":892080000000.0,\"state_3\":true,\"state_4\":true,\"state_6\":true,\"state_9\":true,\"state_10\":true,\"state_12\":true,\"state_15\":true,\"state_20\":true,\"state_31\":true,\"state_38\":true,\"state_42\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Jamie Ogden\",\"state\":\"h\",\"avail\":true,\"age\":62,\"date\":354240000000.0,\"state_3\":true,\"state_5\":true,\"state_8\":true,\"state_12\":true,\"state_13\":true,\"state_14\":true,\"state_20\":true,\"state_23\":true,\"state_24\":true,\"state_25\":true,\"state_28\":true,\"state_29\":true,\"state_30\":true,\"state_31\":true,\"state_33\":true,\"state_37\":true,\"state_41\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Abigail Turner\",\"avail\":true,\"age\":62,\"date\":745113600000.0,\"state_2\":true,\"state_5\":true,\"state_8\":true,\"state_13\":true,\"state_16\":true,\"state_17\":true,\"state_24\":true,\"state_25\":true,\"state_27\":true,\"state_29\":true,\"state_42\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Leonard Berry\",\"age\":71,\"date\":1473292800000.0,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_4\":true,\"state_13\":true,\"state_19\":true,\"state_28\":true,\"state_31\":true,\"state_35\":true,\"state_37\":true,\"state_38\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Jonathan Vaughan\",\"state\":\"s\",\"age\":45,\"date\":1532649600000.0,\"state_1\":true,\"state_5\":true,\"state_7\":true,\"state_8\":true,\"state_20\":true,\"state_24\":true,\"state_25\":true,\"state_26\":true,\"state_32\":true,\"state_33\":true,\"state_36\":true,\"state_42\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Audrey U. Ince\",\"avail\":true,\"age\":57,\"state_6\":true,\"state_23\":true,\"state_24\":true,\"state_25\":true,\"state_26\":true,\"state_34\":true,\"state_37\":true,\"state_44\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Samantha H. Clarkson\",\"avail\":true,\"age\":65,\"state_3\":true,\"state_7\":true,\"state_13\":true,\"state_20\":true,\"state_21\":true,\"state_25\":true,\"state_28\":true,\"state_32\":true,\"state_34\":true,\"state_35\":true,\"state_36\":true,\"state_39\":true},{\"type\":\"person\",\"title\":\"Kyle U. Dickens\",\"state\":\"s\",\"avail\":true,\"age\":94,\"date\":55814400000.0,\"state_3\":true,\"state_5\":true,\"state_11\":true,\"state_13\":true,\"state_15\":true,\"state_22\":true,\"state_23\":true,\"state_25\":true,\"state_26\":true,\"state_27\":true,\"state_35\":true,\"state_37\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Jean Ogden\",\"avail\":true,\"age\":50,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_3\":true,\"state_14\":true,\"state_17\":true,\"state_30\":true,\"state_35\":true,\"state_36\":true,\"state_38\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Max V. Forsyth\",\"avail\":true,\"age\":21,\"date\":789004800000.0,\"state_4\":true,\"state_9\":true,\"state_15\":true,\"state_18\":true,\"state_26\":true,\"state_28\":true,\"state_30\":true,\"state_34\":true,\"state_39\":true,\"state_40\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Alison F. Thomson\",\"state\":\"s\",\"avail\":true,\"age\":75,\"state_2\":true,\"state_14\":true,\"state_20\":true,\"state_21\":true,\"state_23\":true,\"state_25\":true,\"state_26\":true,\"state_29\":true,\"state_35\":true,\"state_36\":true,\"state_41\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Ryan A. Sanderson\",\"state\":\"s\",\"avail\":true,\"age\":77,\"date\":883699200000.0,\"state_1\":true,\"state_4\":true,\"state_9\":true,\"state_10\":true,\"state_14\":true,\"state_18\":true,\"state_20\":true,\"state_27\":true,\"state_39\":true,\"state_44\":true,\"state_45\":true,\"state_48\":true}]},{\"type\":\"role\",\"title\":\"Choose blames\",\"children\":[{\"type\":\"person\",\"title\":\"Bernadette White\",\"avail\":true,\"age\":21,\"state_3\":true,\"state_11\":true,\"state_14\":true,\"state_21\":true,\"state_27\":true,\"state_35\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Anne S. May\",\"avail\":true,\"age\":79,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_2\":true,\"state_3\":true,\"state_18\":true,\"state_30\":true,\"state_31\":true,\"state_44\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Ryan K. McLean\",\"avail\":true,\"age\":55,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_1\":true,\"state_8\":true,\"state_32\":true,\"state_35\":true,\"state_40\":true,\"state_42\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Alex E. Gray\",\"state\":\"s\",\"avail\":true,\"age\":60,\"state_6\":true,\"state_9\":true,\"state_10\":true,\"state_15\":true,\"state_17\":true,\"state_27\":true,\"state_28\":true,\"state_29\":true,\"state_34\":true,\"state_40\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Jennifer R. Howard\",\"avail\":true,\"age\":98,\"state_8\":true,\"state_10\":true,\"state_17\":true,\"state_18\":true,\"state_20\":true,\"state_34\":true,\"state_37\":true,\"state_42\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Samantha U. Campbell\",\"avail\":true,\"age\":56,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_9\":true,\"state_10\":true,\"state_18\":true,\"state_19\":true,\"state_23\":true,\"state_39\":true,\"state_47\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Audrey B. Kerr\",\"age\":24,\"date\":328060800000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_6\":true,\"state_13\":true,\"state_27\":true,\"state_29\":true,\"state_30\":true,\"state_32\":true,\"state_33\":true,\"state_39\":true,\"state_40\":true,\"state_42\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Jean Young\",\"avail\":true,\"age\":71,\"date\":1101686400000.0,\"state_2\":true,\"state_4\":true,\"state_6\":true,\"state_9\":true,\"state_13\":true,\"state_16\":true,\"state_31\":true,\"state_35\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Alison Hunter\",\"state\":\"s\",\"age\":44,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_1\":true,\"state_8\":true,\"state_10\":true,\"state_11\":true,\"state_15\":true,\"state_17\":true,\"state_22\":true,\"state_26\":true,\"state_36\":true,\"state_37\":true,\"state_39\":true,\"state_41\":true,\"state_44\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Rachel V. Ellison\",\"age\":68,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_4\":true,\"state_9\":true,\"state_10\":true,\"state_16\":true,\"state_17\":true,\"state_23\":true,\"state_25\":true,\"state_28\":true,\"state_36\":true,\"state_48\":true,\"state_50\":true}]}]},{\"type\":\"department\",\"title\":\"Dept. for Snows and Scratches\",\"children\":[{\"type\":\"role\",\"title\":\"Forsake picks\",\"children\":[{\"type\":\"person\",\"title\":\"Jayden N. Coleman\",\"state\":\"s\",\"avail\":true,\"age\":24,\"date\":1016668800000.0,\"state_2\":true,\"state_14\":true,\"state_15\":true,\"state_17\":true,\"state_29\":true,\"state_33\":true,\"state_39\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Jason Springer\",\"state\":\"h\",\"avail\":true,\"age\":25,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_3\":true,\"state_7\":true,\"state_15\":true,\"state_18\":true,\"state_22\":true,\"state_23\":true,\"state_25\":true,\"state_28\":true,\"state_35\":true,\"state_37\":true,\"state_38\":true,\"state_40\":true,\"state_42\":true,\"state_43\":true,\"state_45\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jean R. Powell\",\"avail\":true,\"age\":35,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_13\":true,\"state_22\":true,\"state_24\":true,\"state_27\":true,\"state_35\":true,\"state_37\":true,\"state_38\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Daryl Gibson\",\"avail\":true,\"age\":82,\"state_6\":true,\"state_18\":true,\"state_22\":true,\"state_23\":true,\"state_33\":true,\"state_35\":true,\"state_45\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Molly Walker\",\"state\":\"h\",\"avail\":true,\"age\":74,\"date\":687398400000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_3\":true,\"state_17\":true,\"state_20\":true,\"state_25\":true,\"state_35\":true},{\"type\":\"person\",\"title\":\"Alexander North\",\"avail\":true,\"age\":55,\"date\":1583193600000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_2\":true,\"state_3\":true,\"state_5\":true,\"state_8\":true,\"state_12\":true,\"state_13\":true,\"state_17\":true,\"state_31\":true,\"state_40\":true,\"state_41\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Sebastian Hamilton\",\"state\":\"s\",\"avail\":true,\"age\":47,\"date\":1323734400000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_17\":true,\"state_22\":true,\"state_25\":true,\"state_30\":true,\"state_33\":true,\"state_35\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Jake A. Hodges\",\"avail\":true,\"age\":50,\"state_2\":true,\"state_4\":true,\"state_12\":true,\"state_28\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Kelly W. MacLeod\",\"avail\":true,\"age\":32,\"date\":1193356800000.0,\"state_10\":true,\"state_11\":true,\"state_16\":true,\"state_18\":true,\"state_30\":true,\"state_32\":true,\"state_38\":true,\"state_39\":true,\"state_45\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Julia H. Metcalfe\",\"avail\":true,\"age\":86,\"date\":555379200000.0,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_1\":true,\"state_5\":true,\"state_10\":true,\"state_12\":true,\"state_17\":true,\"state_19\":true,\"state_24\":true,\"state_29\":true,\"state_33\":true,\"state_39\":true,\"state_40\":true,\"state_43\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Dorothy Churchill\",\"avail\":true,\"age\":44,\"state_25\":true,\"state_27\":true,\"state_29\":true,\"state_34\":true,\"state_44\":true,\"state_45\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Nicholas G. Piper\",\"avail\":true,\"age\":51,\"date\":1647734400000.0,\"state_3\":true,\"state_4\":true,\"state_8\":true,\"state_16\":true,\"state_19\":true,\"state_20\":true,\"state_21\":true,\"state_23\":true,\"state_31\":true,\"state_32\":true,\"state_33\":true,\"state_43\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Dorothy Carr\",\"avail\":true,\"age\":43,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_2\":true,\"state_5\":true,\"state_8\":true,\"state_32\":true,\"state_40\":true,\"state_42\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Gordon Berry\",\"age\":79,\"date\":292118400000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_6\":true,\"state_11\":true,\"state_21\":true,\"state_28\":true,\"state_30\":true,\"state_36\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Dan Grant\",\"age\":22,\"date\":1406160000000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_2\":true,\"state_4\":true,\"state_14\":true,\"state_15\":true,\"state_17\":true,\"state_21\":true,\"state_31\":true,\"state_35\":true,\"state_38\":true,\"state_42\":true,\"state_43\":true,\"state_47\":true}]},{\"type\":\"role\",\"title\":\"Show clocks\",\"children\":[{\"type\":\"person\",\"title\":\"Alexander Ball\",\"state\":\"h\",\"age\":53,\"state_2\":true,\"state_3\":true,\"state_9\":true,\"state_12\":true,\"state_20\":true,\"state_21\":true,\"state_23\":true,\"state_34\":true,\"state_42\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Sam Buckland\",\"avail\":true,\"age\":68,\"date\":142041600000.0,\"state_5\":true,\"state_8\":true,\"state_12\":true,\"state_24\":true,\"state_25\":true,\"state_27\":true,\"state_29\":true,\"state_30\":true,\"state_31\":true,\"state_35\":true,\"state_41\":true,\"state_44\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Blake Davidson\",\"avail\":true,\"age\":74,\"date\":1373846400000.0,\"state_1\":true,\"state_6\":true,\"state_9\":true,\"state_11\":true,\"state_12\":true,\"state_13\":true,\"state_22\":true,\"state_26\":true,\"state_27\":true,\"state_35\":true,\"state_40\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Luke I. Short\",\"state\":\"s\",\"avail\":true,\"age\":36,\"state_2\":true,\"state_10\":true,\"state_17\":true,\"state_22\":true,\"state_25\":true,\"state_36\":true,\"state_39\":true,\"state_41\":true,\"state_43\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Vanessa X. Murray\",\"avail\":true,\"age\":64,\"state_4\":true,\"state_11\":true,\"state_26\":true,\"state_34\":true,\"state_39\":true,\"state_40\":true,\"state_44\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Irene Ball\",\"avail\":true,\"age\":88,\"date\":781920000000.0,\"state_1\":true,\"state_7\":true,\"state_9\":true,\"state_14\":true,\"state_16\":true,\"state_20\":true,\"state_25\":true,\"state_27\":true,\"state_29\":true,\"state_37\":true,\"state_41\":true,\"state_45\":true,\"state_48\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Amanda Johnston\",\"avail\":true,\"age\":85,\"state_4\":true,\"state_5\":true,\"state_11\":true,\"state_15\":true,\"state_21\":true,\"state_31\":true,\"state_45\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Steven Mitchell\",\"state\":\"h\",\"avail\":true,\"age\":93,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_1\":true,\"state_8\":true,\"state_16\":true,\"state_19\":true,\"state_21\":true,\"state_25\":true,\"state_42\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Sebastian U. Walker\",\"avail\":true,\"age\":45,\"date\":290390400000.0,\"state_5\":true,\"state_7\":true,\"state_14\":true,\"state_18\":true,\"state_24\":true,\"state_27\":true,\"state_30\":true,\"state_37\":true,\"state_40\":true,\"state_45\":true,\"state_46\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Lillian P. Paterson\",\"avail\":true,\"age\":40,\"date\":421632000000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_2\":true,\"state_6\":true,\"state_24\":true,\"state_25\":true,\"state_30\":true,\"state_37\":true,\"state_39\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Paul Q. Arnold\",\"state\":\"h\",\"avail\":true,\"age\":91,\"date\":694915200000.0,\"state_8\":true,\"state_11\":true,\"state_12\":true,\"state_29\":true,\"state_38\":true,\"state_40\":true,\"state_44\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Brian Wallace\",\"state\":\"h\",\"avail\":true,\"age\":31,\"date\":1504224000000.0,\"state_7\":true,\"state_8\":true,\"state_13\":true,\"state_14\":true,\"state_41\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Gavin Powell\",\"avail\":true,\"age\":33,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_4\":true,\"state_6\":true,\"state_11\":true,\"state_19\":true,\"state_26\":true,\"state_36\":true,\"state_39\":true,\"state_42\":true,\"state_44\":true}]},{\"type\":\"role\",\"title\":\"Seize individuals\",\"children\":[{\"type\":\"person\",\"title\":\"Frank Jones\",\"state\":\"s\",\"avail\":true,\"age\":96,\"date\":1397347200000.0,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_9\":true,\"state_26\":true,\"state_32\":true,\"state_34\":true,\"state_35\":true,\"state_44\":true,\"state_45\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Ryan Ellison\",\"avail\":true,\"age\":87,\"date\":1066089600000.0,\"state_7\":true,\"state_17\":true,\"state_30\":true,\"state_31\":true,\"state_39\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Diane Newman\",\"avail\":true,\"age\":24,\"state_1\":true,\"state_2\":true,\"state_9\":true,\"state_14\":true,\"state_16\":true,\"state_18\":true,\"state_21\":true,\"state_24\":true,\"state_28\":true,\"state_33\":true,\"state_39\":true,\"state_41\":true,\"state_42\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Piers Allan\",\"avail\":true,\"age\":70,\"state_14\":true,\"state_15\":true,\"state_18\":true,\"state_20\":true,\"state_24\":true,\"state_31\":true,\"state_32\":true,\"state_41\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Phoenix Z. Young\",\"state\":\"h\",\"avail\":true,\"age\":40,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_6\":true,\"state_13\":true,\"state_15\":true,\"state_39\":true,\"state_42\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Cameron Rutherford\",\"age\":27,\"date\":817344000000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_13\":true,\"state_17\":true,\"state_18\":true,\"state_23\":true,\"state_27\":true,\"state_28\":true,\"state_31\":true,\"state_44\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Jason Turner\",\"avail\":true,\"age\":77,\"state_5\":true,\"state_15\":true,\"state_19\":true,\"state_23\":true,\"state_28\":true,\"state_32\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Irene T. Skinner\",\"state\":\"h\",\"avail\":true,\"age\":74,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_4\":true,\"state_14\":true,\"state_24\":true,\"state_32\":true,\"state_39\":true,\"state_40\":true}]},{\"type\":\"role\",\"title\":\"Violate secretaries\",\"children\":[{\"type\":\"person\",\"title\":\"Gordon H. Greene\",\"age\":97,\"date\":980899200000.0,\"state_26\":true,\"state_34\":true,\"state_37\":true,\"state_44\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Evan Thomson\",\"avail\":true,\"age\":66,\"date\":863568000000.0,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_2\":true,\"state_3\":true,\"state_19\":true,\"state_26\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Maria J. King\",\"avail\":true,\"age\":94,\"date\":1326499200000.0,\"state_6\":true,\"state_21\":true,\"state_30\":true,\"state_32\":true,\"state_33\":true,\"state_40\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Yvonne H. Nash\",\"avail\":true,\"age\":38,\"date\":1102032000000.0,\"state_3\":true,\"state_5\":true,\"state_11\":true,\"state_15\":true,\"state_25\":true,\"state_28\":true,\"state_31\":true},{\"type\":\"person\",\"title\":\"Dylan F. Short\",\"avail\":true,\"age\":61,\"date\":482976000000.0,\"state_2\":true,\"state_7\":true,\"state_9\":true,\"state_11\":true,\"state_13\":true,\"state_14\":true,\"state_26\":true,\"state_36\":true,\"state_37\":true,\"state_42\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Katherine Miller\",\"age\":84,\"date\":937267200000.0,\"state_13\":true,\"state_17\":true,\"state_19\":true,\"state_25\":true,\"state_30\":true,\"state_41\":true,\"state_43\":true,\"state_48\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Pippa U. Stewart\",\"avail\":true,\"age\":57,\"date\":1266105600000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_1\":true,\"state_2\":true,\"state_4\":true,\"state_5\":true,\"state_10\":true,\"state_11\":true,\"state_13\":true,\"state_17\":true,\"state_23\":true,\"state_28\":true,\"state_32\":true,\"state_37\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"William P. Wallace\",\"avail\":true,\"age\":22,\"date\":27648000000.0,\"state_12\":true,\"state_19\":true,\"state_22\":true,\"state_26\":true,\"state_28\":true,\"state_39\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Justin D. Gray\",\"state\":\"h\",\"avail\":true,\"age\":83,\"state_3\":true,\"state_11\":true,\"state_13\":true,\"state_14\":true,\"state_17\":true,\"state_20\":true,\"state_22\":true,\"state_37\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Joanne Y. Mathis\",\"avail\":true,\"age\":57,\"date\":374284800000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_8\":true,\"state_30\":true,\"state_31\":true,\"state_33\":true,\"state_36\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Fiona K. Hodges\",\"avail\":true,\"age\":25,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_1\":true,\"state_3\":true,\"state_6\":true,\"state_8\":true,\"state_20\":true,\"state_23\":true,\"state_24\":true,\"state_32\":true,\"state_45\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Julian Robertson\",\"age\":88,\"date\":732758400000.0,\"state_5\":true,\"state_7\":true,\"state_17\":true,\"state_31\":true},{\"type\":\"person\",\"title\":\"Fiona Kelly\",\"avail\":true,\"age\":55,\"date\":150508800000.0,\"state_1\":true,\"state_2\":true,\"state_8\":true,\"state_15\":true,\"state_18\":true,\"state_19\":true,\"state_23\":true,\"state_24\":true,\"state_36\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Gavin C. Nash\",\"age\":25,\"date\":955584000000.0,\"state_1\":true,\"state_5\":true,\"state_12\":true,\"state_20\":true,\"state_25\":true,\"state_27\":true,\"state_33\":true,\"state_39\":true,\"state_43\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Andrew M. Berry\",\"avail\":true,\"age\":29,\"date\":1476403200000.0,\"state_2\":true,\"state_7\":true,\"state_22\":true,\"state_26\":true,\"state_30\":true,\"state_31\":true,\"state_34\":true,\"state_35\":true,\"state_37\":true,\"state_43\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Abigail Davies\",\"state\":\"s\",\"avail\":true,\"age\":22,\"state_2\":true,\"state_5\":true,\"state_11\":true,\"state_19\":true,\"state_20\":true,\"state_31\":true,\"state_35\":true,\"state_42\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Jennifer L. Thomson\",\"avail\":true,\"age\":25,\"date\":1014595200000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_8\":true,\"state_14\":true,\"state_17\":true,\"state_21\":true,\"state_24\":true,\"state_37\":true,\"state_43\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Sydney Z. Springer\",\"state\":\"h\",\"avail\":true,\"age\":75,\"state_14\":true,\"state_15\":true,\"state_19\":true,\"state_20\":true,\"state_25\":true,\"state_29\":true,\"state_30\":true,\"state_33\":true,\"state_35\":true,\"state_46\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Alexandra M. Mathis\",\"avail\":true,\"age\":73,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_4\":true,\"state_7\":true,\"state_13\":true,\"state_22\":true,\"state_24\":true,\"state_32\":true,\"state_38\":true,\"state_39\":true,\"state_41\":true,\"state_43\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Keith MacDonald\",\"state\":\"h\",\"avail\":true,\"age\":83,\"date\":651628800000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_5\":true,\"state_6\":true,\"state_12\":true,\"state_20\":true}]},{\"type\":\"role\",\"title\":\"Forbid students\",\"children\":[{\"type\":\"person\",\"title\":\"James Bond\",\"avail\":true,\"age\":94,\"date\":879552000000.0,\"state_5\":true,\"state_16\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Bobbie Short\",\"avail\":true,\"age\":87,\"date\":391392000000.0,\"state_2\":true,\"state_16\":true,\"state_25\":true,\"state_28\":true,\"state_31\":true,\"state_33\":true,\"state_35\":true,\"state_37\":true,\"state_38\":true,\"state_43\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"William Jones\",\"state\":\"s\",\"avail\":true,\"age\":41,\"state_12\":true,\"state_13\":true,\"state_16\":true,\"state_17\":true,\"state_18\":true,\"state_20\":true,\"state_21\":true,\"state_36\":true,\"state_39\":true,\"state_44\":true,\"state_45\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Jamie Bell\",\"avail\":true,\"age\":95,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_5\":true,\"state_8\":true,\"state_12\":true,\"state_17\":true,\"state_40\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Stephen C. Henderson\",\"state\":\"h\",\"avail\":true,\"age\":98,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_5\":true,\"state_6\":true,\"state_10\":true,\"state_18\":true,\"state_20\":true,\"state_25\":true,\"state_26\":true,\"state_29\":true,\"state_36\":true,\"state_37\":true},{\"type\":\"person\",\"title\":\"Gordon R. Edmunds\",\"age\":67,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_11\":true,\"state_20\":true,\"state_30\":true,\"state_31\":true,\"state_34\":true,\"state_41\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Joshua Q. MacDonald\",\"avail\":true,\"age\":77,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_12\":true,\"state_17\":true,\"state_19\":true,\"state_20\":true,\"state_24\":true,\"state_28\":true,\"state_32\":true,\"state_33\":true,\"state_36\":true,\"state_37\":true,\"state_41\":true,\"state_43\":true,\"state_44\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Cameron Hart\",\"avail\":true,\"age\":37,\"date\":301104000000.0,\"state_4\":true,\"state_5\":true,\"state_12\":true,\"state_15\":true,\"state_22\":true,\"state_23\":true,\"state_24\":true,\"state_25\":true,\"state_32\":true,\"state_33\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Jesse Hudson\",\"avail\":true,\"age\":80,\"date\":1168214400000.0,\"state_4\":true,\"state_18\":true,\"state_29\":true,\"state_35\":true,\"state_38\":true,\"state_42\":true,\"state_43\":true,\"state_45\":true,\"state_46\":true}]},{\"type\":\"role\",\"title\":\"Increase boyfriends\",\"children\":[{\"type\":\"person\",\"title\":\"Liam Greene\",\"state\":\"s\",\"avail\":true,\"age\":74,\"state_5\":true,\"state_17\":true,\"state_21\":true,\"state_24\":true,\"state_28\":true,\"state_30\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jasmine P. Walsh\",\"state\":\"h\",\"avail\":true,\"age\":94,\"state_8\":true,\"state_19\":true,\"state_26\":true,\"state_33\":true,\"state_35\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Yvonne Buckland\",\"avail\":true,\"age\":27,\"date\":492220800000.0,\"state_1\":true,\"state_6\":true,\"state_7\":true,\"state_24\":true,\"state_27\":true,\"state_29\":true,\"state_36\":true,\"state_37\":true,\"state_42\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jamie Ross\",\"avail\":true,\"age\":36,\"state_3\":true,\"state_4\":true,\"state_5\":true,\"state_7\":true,\"state_9\":true,\"state_10\":true,\"state_13\":true,\"state_21\":true,\"state_23\":true,\"state_24\":true,\"state_34\":true,\"state_37\":true,\"state_41\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Jamie Wilson\",\"state\":\"s\",\"avail\":true,\"age\":21,\"date\":1498435200000.0,\"state_4\":true,\"state_5\":true,\"state_11\":true,\"state_22\":true,\"state_27\":true,\"state_29\":true,\"state_32\":true},{\"type\":\"person\",\"title\":\"Chloe Johnston\",\"age\":71,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_2\":true,\"state_3\":true,\"state_7\":true,\"state_8\":true,\"state_9\":true,\"state_14\":true,\"state_18\":true,\"state_29\":true,\"state_30\":true,\"state_31\":true,\"state_32\":true,\"state_38\":true,\"state_45\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Daryl Bell\",\"avail\":true,\"age\":26,\"state_2\":true,\"state_3\":true,\"state_7\":true,\"state_12\":true,\"state_18\":true,\"state_22\":true,\"state_27\":true,\"state_28\":true,\"state_30\":true,\"state_36\":true,\"state_40\":true,\"state_42\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Frank Bond\",\"state\":\"s\",\"avail\":true,\"age\":55,\"date\":729993600000.0,\"state_3\":true,\"state_5\":true,\"state_10\":true,\"state_12\":true,\"state_20\":true,\"state_25\":true,\"state_28\":true,\"state_32\":true,\"state_35\":true,\"state_39\":true,\"state_42\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Julian Martin\",\"avail\":true,\"age\":77,\"date\":650851200000.0,\"state_2\":true,\"state_5\":true,\"state_6\":true,\"state_14\":true,\"state_17\":true,\"state_22\":true,\"state_38\":true,\"state_42\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Max Sharp\",\"avail\":true,\"age\":25,\"state_1\":true,\"state_12\":true,\"state_14\":true,\"state_38\":true,\"state_41\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Jean Z. Ellison\",\"avail\":true,\"age\":33,\"date\":899510400000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_10\":true,\"state_12\":true,\"state_21\":true,\"state_23\":true,\"state_30\":true,\"state_37\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Phoenix O. McGrath\",\"avail\":true,\"age\":55,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_4\":true,\"state_5\":true,\"state_9\":true,\"state_12\":true,\"state_15\":true,\"state_19\":true,\"state_28\":true,\"state_29\":true,\"state_30\":true,\"state_33\":true,\"state_37\":true,\"state_40\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Anne Peake\",\"avail\":true,\"age\":52,\"date\":777254400000.0,\"state_3\":true,\"state_5\":true,\"state_13\":true,\"state_14\":true,\"state_20\":true,\"state_21\":true,\"state_29\":true,\"state_30\":true,\"state_35\":true,\"state_37\":true,\"state_38\":true,\"state_41\":true,\"state_42\":true,\"state_43\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Ian Walsh\",\"avail\":true,\"age\":42,\"state_3\":true,\"state_5\":true,\"state_6\":true,\"state_8\":true,\"state_16\":true,\"state_33\":true,\"state_38\":true,\"state_40\":true,\"state_46\":true,\"state_47\":true,\"state_48\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Corey Vance\",\"avail\":true,\"age\":69,\"state_1\":true,\"state_14\":true,\"state_22\":true,\"state_23\":true,\"state_24\":true,\"state_27\":true,\"state_29\":true,\"state_30\":true,\"state_36\":true,\"state_40\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Mary Paige\",\"avail\":true,\"age\":58,\"date\":777513600000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_1\":true,\"state_3\":true,\"state_5\":true,\"state_7\":true,\"state_11\":true,\"state_13\":true,\"state_15\":true,\"state_18\":true,\"state_22\":true,\"state_29\":true,\"state_34\":true},{\"type\":\"person\",\"title\":\"Max Alsop\",\"avail\":true,\"age\":24,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_1\":true,\"state_5\":true,\"state_8\":true,\"state_11\":true,\"state_27\":true,\"state_29\":true,\"state_37\":true,\"state_38\":true,\"state_40\":true,\"state_42\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Jamie Smith\",\"avail\":true,\"age\":54,\"state_18\":true,\"state_21\":true,\"state_28\":true,\"state_37\":true}]},{\"type\":\"role\",\"title\":\"Cover foods\",\"children\":[{\"type\":\"person\",\"title\":\"Jayden N. Lee\",\"state\":\"s\",\"avail\":true,\"age\":45,\"state_8\":true,\"state_13\":true,\"state_14\":true,\"state_20\":true,\"state_34\":true,\"state_37\":true,\"state_38\":true,\"state_40\":true,\"state_43\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Stephen E. Ince\",\"avail\":true,\"age\":47,\"state_4\":true,\"state_6\":true,\"state_8\":true,\"state_13\":true,\"state_16\":true,\"state_18\":true,\"state_20\":true,\"state_23\":true,\"state_24\":true,\"state_29\":true,\"state_38\":true,\"state_46\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Cower strengths\",\"children\":[{\"type\":\"person\",\"title\":\"Carolyn B. Dowd\",\"avail\":true,\"age\":95,\"date\":1672704000000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_2\":true,\"state_4\":true,\"state_15\":true,\"state_16\":true,\"state_23\":true,\"state_27\":true,\"state_33\":true,\"state_35\":true,\"state_38\":true,\"state_44\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Daryl L. Reid\",\"avail\":true,\"age\":30,\"date\":1163289600000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_6\":true,\"state_7\":true,\"state_9\":true,\"state_10\":true,\"state_15\":true,\"state_18\":true,\"state_20\":true,\"state_25\":true,\"state_30\":true,\"state_31\":true,\"state_38\":true,\"state_41\":true,\"state_42\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Benjamin B. Vance\",\"state\":\"h\",\"avail\":true,\"age\":58,\"state_1\":true,\"state_8\":true,\"state_20\":true,\"state_23\":true,\"state_29\":true,\"state_30\":true,\"state_33\":true,\"state_37\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Vie agents\",\"children\":[{\"type\":\"person\",\"title\":\"Nathan C. May\",\"avail\":true,\"age\":74,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_19\":true,\"state_21\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Stewart V. Churchill\",\"avail\":true,\"age\":51,\"state_2\":true,\"state_18\":true,\"state_22\":true,\"state_25\":true,\"state_26\":true,\"state_35\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Caroline Johnston\",\"avail\":true,\"age\":95,\"date\":1081814400000.0,\"state_1\":true,\"state_13\":true,\"state_26\":true,\"state_34\":true,\"state_35\":true,\"state_42\":true,\"state_43\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Andy Lambert\",\"avail\":true,\"age\":88,\"state_7\":true,\"state_9\":true,\"state_11\":true,\"state_35\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Carl M. Avery\",\"avail\":true,\"age\":45,\"date\":1366588800000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_10\":true,\"state_20\":true,\"state_38\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Lucas Butler\",\"state\":\"s\",\"avail\":true,\"age\":50,\"date\":541728000000.0,\"state_2\":true,\"state_5\":true,\"state_9\":true,\"state_22\":true,\"state_24\":true,\"state_27\":true,\"state_38\":true,\"state_43\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Faith V. Reid\",\"avail\":true,\"age\":56,\"date\":1560988800000.0,\"state_3\":true,\"state_6\":true,\"state_17\":true,\"state_25\":true,\"state_27\":true,\"state_30\":true,\"state_35\":true,\"state_36\":true,\"state_38\":true,\"state_47\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Decay governments\",\"children\":[{\"type\":\"person\",\"title\":\"Heather K. Russell\",\"avail\":true,\"age\":58,\"date\":1039046400000.0,\"state_4\":true,\"state_6\":true,\"state_22\":true,\"state_26\":true,\"state_29\":true,\"state_30\":true,\"state_34\":true,\"state_37\":true,\"state_39\":true,\"state_42\":true,\"state_44\":true,\"state_45\":true,\"state_46\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Rebecca Chapman\",\"state\":\"s\",\"age\":33,\"state_2\":true,\"state_5\":true,\"state_6\":true,\"state_13\":true,\"state_16\":true,\"state_17\":true,\"state_22\":true,\"state_24\":true,\"state_28\":true,\"state_31\":true,\"state_36\":true,\"state_38\":true,\"state_39\":true},{\"type\":\"person\",\"title\":\"Amelia B. Glover\",\"avail\":true,\"age\":97,\"date\":1243900800000.0,\"state_3\":true,\"state_5\":true,\"state_7\":true,\"state_11\":true,\"state_15\":true,\"state_25\":true,\"state_29\":true,\"state_30\":true,\"state_33\":true,\"state_37\":true,\"state_44\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jennifer Mackay\",\"avail\":true,\"age\":32,\"state_10\":true,\"state_15\":true,\"state_21\":true,\"state_30\":true,\"state_31\":true,\"state_39\":true,\"state_40\":true,\"state_47\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"John Robertson\",\"state\":\"h\",\"avail\":true,\"age\":77,\"state_7\":true,\"state_16\":true,\"state_19\":true,\"state_29\":true,\"state_37\":true,\"state_38\":true,\"state_45\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Frances Rees\",\"avail\":true,\"age\":34,\"date\":1532822400000.0,\"state_8\":true,\"state_10\":true,\"state_12\":true,\"state_15\":true,\"state_22\":true,\"state_23\":true,\"state_28\":true,\"state_38\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Christian Skinner\",\"avail\":true,\"age\":94,\"date\":983836800000.0,\"state_1\":true,\"state_16\":true,\"state_21\":true,\"state_27\":true,\"state_40\":true,\"state_43\":true,\"state_46\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Alison Chapman\",\"state\":\"s\",\"avail\":true,\"age\":85,\"state_10\":true,\"state_16\":true,\"state_19\":true,\"state_23\":true,\"state_24\":true,\"state_25\":true,\"state_32\":true},{\"type\":\"person\",\"title\":\"Carol S. Grant\",\"state\":\"h\",\"avail\":true,\"age\":98,\"date\":1520899200000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_4\":true,\"state_5\":true,\"state_10\":true,\"state_13\":true,\"state_17\":true,\"state_23\":true,\"state_27\":true,\"state_31\":true,\"state_32\":true,\"state_44\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Diana R. Sanderson\",\"state\":\"s\",\"avail\":true,\"age\":67,\"state_16\":true,\"state_23\":true,\"state_28\":true,\"state_33\":true,\"state_42\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jamie Marshall\",\"state\":\"s\",\"avail\":true,\"age\":92,\"date\":1386288000000.0,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_3\":true,\"state_5\":true,\"state_6\":true,\"state_14\":true,\"state_22\":true,\"state_30\":true,\"state_33\":true,\"state_34\":true,\"state_43\":true,\"state_46\":true,\"state_49\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Recall gives\",\"children\":[{\"type\":\"person\",\"title\":\"Michael G. Fraser\",\"avail\":true,\"age\":92,\"date\":669427200000.0,\"state_5\":true,\"state_6\":true,\"state_7\":true,\"state_11\":true,\"state_12\":true,\"state_21\":true,\"state_23\":true,\"state_24\":true,\"state_32\":true,\"state_37\":true,\"state_43\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Andrew L. Paterson\",\"state\":\"h\",\"avail\":true,\"age\":46,\"date\":1618358400000.0,\"state_1\":true,\"state_2\":true,\"state_4\":true,\"state_8\":true,\"state_9\":true,\"state_17\":true,\"state_20\":true,\"state_23\":true,\"state_24\":true,\"state_27\":true,\"state_28\":true,\"state_33\":true,\"state_35\":true,\"state_36\":true,\"state_39\":true},{\"type\":\"person\",\"title\":\"Harry Z. Morrison\",\"avail\":true,\"age\":86,\"date\":1215043200000.0,\"state_10\":true,\"state_14\":true,\"state_18\":true,\"state_20\":true,\"state_23\":true,\"state_35\":true,\"state_40\":true,\"state_44\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Tracey H. Coleman\",\"avail\":true,\"age\":73,\"date\":1320624000000.0,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_2\":true,\"state_4\":true,\"state_15\":true,\"state_16\":true,\"state_37\":true,\"state_41\":true,\"state_44\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Harry Y. Abraham\",\"avail\":true,\"age\":30,\"date\":1424044800000.0,\"state_2\":true,\"state_5\":true,\"state_13\":true,\"state_15\":true,\"state_17\":true,\"state_27\":true,\"state_29\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Tracey B. Quinn\",\"state\":\"s\",\"age\":98,\"date\":1721088000000.0,\"state_6\":true,\"state_7\":true,\"state_9\":true,\"state_20\":true,\"state_21\":true,\"state_26\":true,\"state_27\":true,\"state_28\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Gavin H. Davidson\",\"avail\":true,\"age\":50,\"state_2\":true,\"state_7\":true,\"state_10\":true,\"state_20\":true,\"state_21\":true,\"state_22\":true,\"state_23\":true,\"state_27\":true,\"state_31\":true,\"state_34\":true,\"state_35\":true,\"state_37\":true,\"state_42\":true,\"state_43\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Stare seconds\",\"children\":[{\"type\":\"person\",\"title\":\"Cameron Mathis\",\"state\":\"s\",\"avail\":true,\"age\":74,\"date\":540950400000.0,\"state_4\":true,\"state_5\":true,\"state_16\":true,\"state_19\":true,\"state_24\":true,\"state_29\":true},{\"type\":\"person\",\"title\":\"Virginia Burgess\",\"avail\":true,\"age\":78,\"state_4\":true,\"state_20\":true,\"state_26\":true,\"state_28\":true,\"state_33\":true,\"state_39\":true,\"state_40\":true,\"state_42\":true,\"state_45\":true}]}]},{\"type\":\"department\",\"title\":\"Dept. for Principles and Officers\",\"children\":[{\"type\":\"role\",\"title\":\"Count assumptions\",\"children\":[{\"type\":\"person\",\"title\":\"Jessica Poole\",\"avail\":true,\"age\":62,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_2\":true,\"state_3\":true,\"state_5\":true,\"state_6\":true,\"state_8\":true,\"state_9\":true,\"state_15\":true,\"state_28\":true,\"state_40\":true,\"state_44\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Brandon Wilkins\",\"avail\":true,\"age\":46,\"date\":847670400000.0,\"state_9\":true,\"state_20\":true,\"state_22\":true,\"state_25\":true,\"state_30\":true,\"state_37\":true,\"state_38\":true,\"state_41\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Oliver Z. King\",\"avail\":true,\"age\":93,\"date\":865382400000.0,\"state_1\":true,\"state_10\":true,\"state_15\":true,\"state_16\":true,\"state_21\":true,\"state_23\":true,\"state_25\":true,\"state_30\":true},{\"type\":\"person\",\"title\":\"Sue X. Morgan\",\"avail\":true,\"age\":42,\"date\":172454400000.0,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_2\":true,\"state_3\":true,\"state_6\":true,\"state_9\":true,\"state_10\":true,\"state_13\":true,\"state_17\":true,\"state_38\":true,\"state_42\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Mary Z. Reid\",\"avail\":true,\"age\":48,\"date\":896918400000.0,\"state_4\":true,\"state_10\":true,\"state_17\":true,\"state_19\":true,\"state_20\":true,\"state_29\":true,\"state_37\":true,\"state_39\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Zoe Forsyth\",\"avail\":true,\"age\":71,\"state_7\":true,\"state_8\":true,\"state_9\":true,\"state_11\":true,\"state_20\":true,\"state_25\":true,\"state_31\":true,\"state_34\":true,\"state_35\":true},{\"type\":\"person\",\"title\":\"Brian Knox\",\"avail\":true,\"age\":27,\"state_23\":true,\"state_26\":true,\"state_27\":true,\"state_28\":true,\"state_29\":true,\"state_31\":true,\"state_36\":true,\"state_41\":true,\"state_43\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Diana Lambert\",\"avail\":true,\"age\":95,\"date\":901670400000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_2\":true,\"state_15\":true,\"state_29\":true,\"state_35\":true,\"state_36\":true,\"state_39\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Dylan Ince\",\"state\":\"s\",\"avail\":true,\"age\":40,\"date\":462067200000.0,\"state_7\":true,\"state_11\":true,\"state_13\":true,\"state_18\":true,\"state_19\":true,\"state_21\":true,\"state_29\":true,\"state_38\":true,\"state_40\":true,\"state_43\":true,\"state_44\":true,\"state_46\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Trevor Johnston\",\"avail\":true,\"age\":25,\"date\":1188950400000.0,\"state_1\":true,\"state_4\":true,\"state_5\":true,\"state_12\":true,\"state_14\":true,\"state_20\":true,\"state_23\":true,\"state_29\":true,\"state_32\":true,\"state_33\":true,\"state_47\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Katherine T. Hamilton\",\"avail\":true,\"age\":32,\"date\":123120000000.0,\"state_1\":true,\"state_4\":true,\"state_13\":true,\"state_19\":true,\"state_35\":true,\"state_40\":true,\"state_43\":true,\"state_45\":true,\"state_49\":true}]},{\"type\":\"role\",\"title\":\"Terrify solutions\",\"children\":[{\"type\":\"person\",\"title\":\"Tim R. Slater\",\"avail\":true,\"age\":34,\"date\":256089600000.0,\"state_9\":true,\"state_13\":true,\"state_15\":true,\"state_29\":true,\"state_32\":true,\"state_36\":true,\"state_38\":true},{\"type\":\"person\",\"title\":\"Kevin W. Watson\",\"avail\":true,\"age\":90,\"date\":443232000000.0,\"state_3\":true,\"state_6\":true,\"state_10\":true,\"state_29\":true,\"state_31\":true,\"state_33\":true,\"state_34\":true,\"state_37\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Jonathan L. Buckland\",\"state\":\"s\",\"avail\":true,\"age\":91,\"date\":588124800000.0,\"state_2\":true,\"state_7\":true,\"state_8\":true,\"state_11\":true,\"state_12\":true,\"state_14\":true,\"state_15\":true,\"state_26\":true,\"state_29\":true,\"state_30\":true,\"state_38\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Adam X. Lewis\",\"avail\":true,\"age\":50,\"date\":1061683200000.0,\"state_2\":true,\"state_5\":true,\"state_13\":true,\"state_22\":true,\"state_23\":true,\"state_25\":true,\"state_30\":true,\"state_31\":true,\"state_32\":true,\"state_34\":true,\"state_35\":true,\"state_39\":true,\"state_40\":true,\"state_41\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Anthony Turner\",\"state\":\"h\",\"avail\":true,\"age\":94,\"date\":1700438400000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_3\":true,\"state_5\":true,\"state_7\":true,\"state_9\":true,\"state_16\":true,\"state_23\":true,\"state_25\":true,\"state_29\":true,\"state_35\":true},{\"type\":\"person\",\"title\":\"Stephen Fisher\",\"avail\":true,\"age\":23,\"state_8\":true,\"state_11\":true,\"state_15\":true,\"state_17\":true,\"state_18\":true,\"state_20\":true,\"state_23\":true,\"state_28\":true,\"state_29\":true,\"state_33\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"David M. Hodges\",\"avail\":true,\"age\":63,\"state_6\":true,\"state_7\":true,\"state_8\":true,\"state_11\":true,\"state_14\":true,\"state_17\":true,\"state_19\":true,\"state_21\":true,\"state_22\":true,\"state_30\":true,\"state_31\":true,\"state_36\":true,\"state_43\":true,\"state_44\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jayden F. James\",\"state\":\"h\",\"avail\":true,\"age\":77,\"date\":482457600000.0,\"state_6\":true,\"state_12\":true,\"state_15\":true,\"state_18\":true,\"state_22\":true,\"state_26\":true,\"state_29\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Amy Grant\",\"avail\":true,\"age\":35,\"state_2\":true,\"state_11\":true,\"state_12\":true,\"state_13\":true,\"state_19\":true,\"state_28\":true,\"state_30\":true,\"state_31\":true,\"state_33\":true,\"state_34\":true,\"state_39\":true,\"state_41\":true,\"state_44\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Dan Hill\",\"avail\":true,\"age\":40,\"date\":466128000000.0,\"state_8\":true,\"state_11\":true,\"state_12\":true,\"state_16\":true,\"state_19\":true,\"state_22\":true,\"state_28\":true,\"state_30\":true,\"state_34\":true,\"state_39\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Wendy Tucker\",\"state\":\"s\",\"avail\":true,\"age\":96,\"date\":652406400000.0,\"state_3\":true,\"state_8\":true,\"state_14\":true,\"state_15\":true,\"state_16\":true,\"state_25\":true,\"state_31\":true,\"state_33\":true,\"state_37\":true},{\"type\":\"person\",\"title\":\"Yvonne Cornish\",\"avail\":true,\"age\":42,\"date\":583372800000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_4\":true,\"state_5\":true,\"state_8\":true,\"state_13\":true,\"state_18\":true,\"state_40\":true,\"state_44\":true,\"state_45\":true,\"state_47\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Katherine Z. Ince\",\"state\":\"h\",\"age\":43,\"date\":109900800000.0,\"state_6\":true,\"state_9\":true,\"state_10\":true,\"state_22\":true,\"state_32\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Paul Walsh\",\"avail\":true,\"age\":68,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_4\":true,\"state_8\":true,\"state_14\":true,\"state_20\":true,\"state_23\":true,\"state_29\":true,\"state_33\":true,\"state_37\":true,\"state_43\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Dorothy C. McGrath\",\"age\":66,\"date\":1108512000000.0,\"state_3\":true,\"state_4\":true,\"state_13\":true,\"state_16\":true,\"state_20\":true,\"state_21\":true,\"state_32\":true,\"state_33\":true,\"state_34\":true,\"state_40\":true,\"state_43\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Frank O. McDonald\",\"avail\":true,\"age\":59,\"date\":1321488000000.0,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_2\":true,\"state_4\":true,\"state_5\":true,\"state_22\":true,\"state_24\":true,\"state_26\":true,\"state_33\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Jamie Hill\",\"avail\":true,\"age\":41,\"state_2\":true,\"state_4\":true,\"state_11\":true,\"state_24\":true,\"state_27\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Sam Poole\",\"avail\":true,\"age\":88,\"state_5\":true,\"state_7\":true,\"state_14\":true,\"state_21\":true,\"state_22\":true,\"state_26\":true,\"state_29\":true,\"state_33\":true},{\"type\":\"person\",\"title\":\"Piers Tucker\",\"avail\":true,\"age\":69,\"date\":1693094400000.0,\"state_4\":true,\"state_8\":true,\"state_10\":true,\"state_15\":true,\"state_16\":true,\"state_24\":true,\"state_28\":true,\"state_34\":true,\"state_35\":true,\"state_38\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Andy Hamilton\",\"avail\":true,\"age\":80,\"date\":198288000000.0,\"state_1\":true,\"state_16\":true,\"state_23\":true,\"state_37\":true,\"state_39\":true,\"state_44\":true}]},{\"type\":\"role\",\"title\":\"Force reflections\",\"children\":[{\"type\":\"person\",\"title\":\"Diane N. Hunter\",\"avail\":true,\"age\":41,\"date\":817257600000.0,\"state_7\":true,\"state_17\":true,\"state_19\":true,\"state_26\":true,\"state_32\":true,\"state_38\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Sonia E. Baker\",\"age\":32,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_2\":true,\"state_13\":true,\"state_15\":true,\"state_19\":true,\"state_22\":true,\"state_32\":true,\"state_38\":true,\"state_42\":true,\"state_43\":true,\"state_47\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Amanda Avery\",\"state\":\"s\",\"avail\":true,\"age\":93,\"state_7\":true,\"state_10\":true,\"state_16\":true,\"state_17\":true,\"state_19\":true,\"state_26\":true,\"state_31\":true,\"state_35\":true,\"state_36\":true,\"state_42\":true,\"state_43\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Trevor McLean\",\"avail\":true,\"age\":63,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_16\":true,\"state_19\":true,\"state_20\":true,\"state_25\":true,\"state_26\":true,\"state_32\":true,\"state_35\":true,\"state_37\":true,\"state_41\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Isaac Johnston\",\"state\":\"h\",\"age\":94,\"date\":1718409600000.0,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_1\":true,\"state_3\":true,\"state_5\":true,\"state_10\":true,\"state_18\":true,\"state_21\":true,\"state_29\":true,\"state_34\":true,\"state_42\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Carolyn Rampling\",\"avail\":true,\"age\":55,\"date\":124070400000.0,\"state_3\":true,\"state_10\":true,\"state_13\":true,\"state_14\":true,\"state_15\":true,\"state_17\":true,\"state_23\":true,\"state_27\":true,\"state_28\":true,\"state_30\":true,\"state_32\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Tracey J. Avery\",\"avail\":true,\"age\":59,\"state_6\":true,\"state_11\":true,\"state_14\":true,\"state_20\":true,\"state_30\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Lillian M. Nolan\",\"state\":\"h\",\"age\":27,\"state_6\":true,\"state_17\":true,\"state_21\":true,\"state_24\":true,\"state_28\":true,\"state_32\":true,\"state_35\":true,\"state_40\":true,\"state_41\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Chris Wilkins\",\"avail\":true,\"age\":92,\"state_6\":true,\"state_9\":true,\"state_13\":true,\"state_34\":true,\"state_37\":true},{\"type\":\"person\",\"title\":\"Samantha D. Ellison\",\"avail\":true,\"age\":65,\"date\":618796800000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_9\":true,\"state_18\":true,\"state_25\":true,\"state_27\":true,\"state_34\":true,\"state_38\":true,\"state_39\":true,\"state_41\":true,\"state_42\":true,\"state_43\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Jane M. Ball\",\"state\":\"h\",\"avail\":true,\"age\":93,\"date\":1020643200000.0,\"state_4\":true,\"state_9\":true,\"state_10\":true,\"state_15\":true,\"state_16\":true,\"state_17\":true,\"state_27\":true,\"state_31\":true,\"state_38\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Jean Hunter\",\"avail\":true,\"age\":33,\"date\":1522627200000.0,\"state_2\":true,\"state_6\":true,\"state_7\":true,\"state_9\":true,\"state_12\":true,\"state_14\":true,\"state_20\":true,\"state_27\":true,\"state_32\":true,\"state_35\":true,\"state_43\":true,\"state_44\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Piers T. Mills\",\"avail\":true,\"age\":98,\"date\":1651363200000.0,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_30\":true,\"state_36\":true,\"state_41\":true,\"state_42\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Sally Clark\",\"avail\":true,\"age\":22,\"date\":419990400000.0,\"state_2\":true,\"state_4\":true,\"state_7\":true,\"state_15\":true,\"state_18\":true,\"state_20\":true,\"state_27\":true,\"state_33\":true,\"state_34\":true,\"state_35\":true,\"state_36\":true,\"state_44\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Gordon H. Sanderson\",\"age\":24,\"state_11\":true,\"state_17\":true,\"state_19\":true,\"state_20\":true,\"state_24\":true,\"state_26\":true,\"state_37\":true,\"state_38\":true,\"state_44\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Ava X. Abraham\",\"state\":\"s\",\"avail\":true,\"age\":59,\"state_8\":true,\"state_11\":true,\"state_12\":true,\"state_13\":true,\"state_38\":true,\"state_43\":true,\"state_45\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Warren Lewis\",\"avail\":true,\"age\":29,\"date\":678240000000.0,\"state_6\":true,\"state_10\":true,\"state_22\":true,\"state_27\":true,\"state_30\":true,\"state_38\":true,\"state_44\":true,\"state_45\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Blake Glover\",\"avail\":true,\"age\":79,\"state_2\":true,\"state_8\":true,\"state_13\":true,\"state_14\":true,\"state_17\":true,\"state_20\":true,\"state_22\":true,\"state_30\":true,\"state_34\":true,\"state_39\":true,\"state_44\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Carl H. Butler\",\"avail\":true,\"age\":68,\"state_1\":true,\"state_4\":true,\"state_5\":true,\"state_17\":true,\"state_18\":true,\"state_20\":true,\"state_32\":true,\"state_35\":true,\"state_37\":true,\"state_43\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Sam D. Hart\",\"avail\":true,\"age\":61,\"state_2\":true,\"state_6\":true,\"state_8\":true,\"state_9\":true,\"state_15\":true,\"state_19\":true,\"state_20\":true,\"state_26\":true,\"state_29\":true,\"state_31\":true,\"state_32\":true,\"state_35\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Justin Lyman\",\"avail\":true,\"age\":38,\"state_3\":true,\"state_8\":true,\"state_12\":true,\"state_14\":true,\"state_15\":true,\"state_20\":true,\"state_23\":true,\"state_25\":true,\"state_26\":true,\"state_32\":true,\"state_35\":true,\"state_38\":true,\"state_39\":true,\"state_42\":true,\"state_44\":true,\"state_45\":true,\"state_46\":true,\"state_50\":true}]},{\"type\":\"role\",\"title\":\"Inflate clerks\",\"children\":[{\"type\":\"person\",\"title\":\"Carol G. Wilson\",\"avail\":true,\"age\":26,\"state_4\":true,\"state_5\":true,\"state_10\":true,\"state_14\":true,\"state_17\":true,\"state_29\":true,\"state_35\":true,\"state_38\":true,\"state_41\":true,\"state_42\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Nicola U. Jackson\",\"avail\":true,\"age\":94,\"state_19\":true,\"state_21\":true,\"state_22\":true,\"state_29\":true,\"state_31\":true,\"state_38\":true,\"state_40\":true,\"state_43\":true,\"state_46\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Sean Lewis\",\"state\":\"h\",\"avail\":true,\"age\":33,\"date\":1242518400000.0,\"state_14\":true,\"state_32\":true},{\"type\":\"person\",\"title\":\"Christopher Underwood\",\"avail\":true,\"age\":72,\"date\":1089849600000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_2\":true,\"state_13\":true,\"state_23\":true,\"state_25\":true,\"state_28\":true,\"state_35\":true,\"state_38\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Daryl X. Lee\",\"avail\":true,\"age\":72,\"state_11\":true,\"state_19\":true,\"state_20\":true,\"state_21\":true,\"state_22\":true,\"state_27\":true,\"state_28\":true,\"state_29\":true,\"state_41\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Luke Gray\",\"state\":\"s\",\"age\":79,\"date\":955670400000.0,\"state_2\":true,\"state_16\":true,\"state_22\":true,\"state_24\":true,\"state_26\":true,\"state_29\":true,\"state_38\":true,\"state_40\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Alan W. Scott\",\"avail\":true,\"age\":79,\"date\":426556800000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_3\":true,\"state_10\":true,\"state_13\":true,\"state_15\":true,\"state_17\":true,\"state_28\":true,\"state_35\":true,\"state_36\":true,\"state_41\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Bernadette Johnston\",\"avail\":true,\"age\":21,\"date\":1188000000000.0,\"state_2\":true,\"state_8\":true,\"state_14\":true,\"state_16\":true,\"state_22\":true,\"state_32\":true,\"state_41\":true,\"state_43\":true}]},{\"type\":\"role\",\"title\":\"Cool suspects\",\"children\":[{\"type\":\"person\",\"title\":\"Vanessa Ross\",\"state\":\"h\",\"avail\":true,\"age\":27,\"date\":963100800000.0,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_1\":true,\"state_9\":true,\"state_10\":true,\"state_17\":true,\"state_18\":true,\"state_24\":true,\"state_25\":true,\"state_26\":true,\"state_29\":true,\"state_35\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Frances O. Brown\",\"avail\":true,\"age\":39,\"date\":402105600000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_8\":true,\"state_9\":true,\"state_17\":true,\"state_23\":true,\"state_24\":true,\"state_29\":true,\"state_37\":true,\"state_38\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Charlie Tucker\",\"avail\":true,\"age\":56,\"date\":1576627200000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_7\":true,\"state_8\":true,\"state_10\":true,\"state_13\":true,\"state_17\":true,\"state_18\":true,\"state_20\":true,\"state_22\":true,\"state_32\":true},{\"type\":\"person\",\"title\":\"Heather Walsh\",\"avail\":true,\"age\":40,\"date\":535420800000.0,\"state_6\":true,\"state_13\":true,\"state_14\":true,\"state_16\":true,\"state_18\":true,\"state_20\":true,\"state_23\":true,\"state_24\":true,\"state_27\":true,\"state_32\":true,\"state_36\":true},{\"type\":\"person\",\"title\":\"Andrea White\",\"age\":36,\"date\":412387200000.0,\"state_11\":true,\"state_12\":true,\"state_14\":true,\"state_19\":true,\"state_25\":true,\"state_27\":true,\"state_30\":true,\"state_32\":true,\"state_34\":true,\"state_38\":true,\"state_39\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Anne C. MacLeod\",\"age\":94,\"date\":795571200000.0,\"state_7\":true,\"state_19\":true,\"state_20\":true,\"state_22\":true,\"state_25\":true,\"state_27\":true,\"state_34\":true,\"state_36\":true,\"state_45\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Liam Vaughan\",\"avail\":true,\"age\":58,\"date\":694828800000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_1\":true,\"state_4\":true,\"state_15\":true,\"state_17\":true,\"state_23\":true,\"state_32\":true,\"state_34\":true,\"state_35\":true,\"state_38\":true,\"state_42\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Dorothy E. Hardacre\",\"avail\":true,\"age\":56,\"date\":200448000000.0,\"state_3\":true,\"state_14\":true,\"state_18\":true,\"state_27\":true,\"state_34\":true},{\"type\":\"person\",\"title\":\"Ian N. Bell\",\"avail\":true,\"age\":94,\"date\":740880000000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_4\":true,\"state_9\":true,\"state_12\":true,\"state_22\":true,\"state_26\":true,\"state_31\":true,\"state_32\":true,\"state_35\":true,\"state_45\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Jamie S. Parr\",\"avail\":true,\"age\":55,\"state_2\":true,\"state_3\":true,\"state_5\":true,\"state_7\":true,\"state_11\":true,\"state_12\":true,\"state_17\":true,\"state_24\":true,\"state_30\":true,\"state_33\":true,\"state_40\":true,\"state_43\":true,\"state_44\":true,\"state_47\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Colin Murray\",\"avail\":true,\"age\":71,\"state_15\":true,\"state_16\":true,\"state_25\":true,\"state_38\":true},{\"type\":\"person\",\"title\":\"Piers C. Sutherland\",\"avail\":true,\"age\":62,\"date\":511747200000.0,\"state_13\":true,\"state_14\":true,\"state_20\":true,\"state_26\":true,\"state_28\":true,\"state_34\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jack Ellison\",\"avail\":true,\"age\":31,\"date\":1211760000000.0,\"state_2\":true,\"state_5\":true,\"state_15\":true,\"state_31\":true,\"state_34\":true,\"state_40\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Sydney Wright\",\"avail\":true,\"age\":69,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_2\":true,\"state_6\":true,\"state_7\":true,\"state_8\":true,\"state_10\":true,\"state_14\":true,\"state_16\":true,\"state_23\":true,\"state_24\":true,\"state_35\":true,\"state_36\":true,\"state_44\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Alex Y. Scott\",\"state\":\"s\",\"avail\":true,\"age\":68,\"state_3\":true,\"state_21\":true,\"state_22\":true,\"state_27\":true,\"state_36\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Daryl MacDonald\",\"avail\":true,\"age\":46,\"date\":1449705600000.0,\"state_3\":true,\"state_5\":true,\"state_8\":true,\"state_12\":true,\"state_17\":true,\"state_25\":true,\"state_32\":true,\"state_35\":true,\"state_36\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Kyle C. Ferguson\",\"avail\":true,\"age\":45,\"date\":906336000000.0,\"state_7\":true,\"state_12\":true,\"state_14\":true,\"state_21\":true,\"state_24\":true,\"state_25\":true,\"state_26\":true,\"state_42\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Ryan Simpson\",\"avail\":true,\"age\":26,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_8\":true,\"state_18\":true,\"state_23\":true,\"state_25\":true,\"state_28\":true,\"state_38\":true,\"state_39\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Lillian King\",\"avail\":true,\"age\":21,\"state_2\":true,\"state_5\":true,\"state_10\":true,\"state_13\":true,\"state_17\":true,\"state_20\":true,\"state_26\":true,\"state_29\":true,\"state_31\":true,\"state_36\":true,\"state_45\":true}]},{\"type\":\"role\",\"title\":\"Ignore parts\",\"children\":[{\"type\":\"person\",\"title\":\"Andrew H. Greene\",\"state\":\"s\",\"avail\":true,\"age\":71,\"state_10\":true,\"state_11\":true,\"state_12\":true,\"state_14\":true,\"state_18\":true,\"state_24\":true,\"state_26\":true,\"state_28\":true,\"state_30\":true,\"state_37\":true}]},{\"type\":\"role\",\"title\":\"Bite terms\",\"children\":[{\"type\":\"person\",\"title\":\"Audrey C. Walker\",\"avail\":true,\"age\":57,\"date\":1701216000000.0,\"state_2\":true,\"state_5\":true,\"state_6\":true,\"state_7\":true,\"state_24\":true,\"state_31\":true},{\"type\":\"person\",\"title\":\"Jean L. Mitchell\",\"avail\":true,\"age\":75,\"date\":1311638400000.0,\"state_4\":true,\"state_7\":true,\"state_10\":true,\"state_15\":true,\"state_28\":true,\"state_40\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Daryl Cameron\",\"avail\":true,\"age\":50,\"date\":316742400000.0,\"state_8\":true,\"state_9\":true,\"state_14\":true,\"state_18\":true,\"state_19\":true,\"state_21\":true,\"state_27\":true,\"state_33\":true,\"state_38\":true,\"state_45\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Maria Davidson\",\"avail\":true,\"age\":66,\"date\":582076800000.0,\"state_6\":true,\"state_7\":true,\"state_8\":true,\"state_11\":true,\"state_36\":true,\"state_44\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Gabrielle M. Vance\",\"avail\":true,\"age\":92,\"state_5\":true,\"state_6\":true,\"state_7\":true,\"state_9\":true,\"state_11\":true,\"state_20\":true,\"state_36\":true,\"state_37\":true,\"state_41\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Felicity W. Lee\",\"avail\":true,\"age\":96,\"date\":1168732800000.0,\"state_3\":true,\"state_23\":true,\"state_25\":true,\"state_32\":true,\"state_34\":true,\"state_35\":true,\"state_45\":true,\"state_46\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Adam Henderson\",\"age\":73,\"state_3\":true,\"state_9\":true,\"state_21\":true,\"state_26\":true,\"state_35\":true,\"state_39\":true,\"state_40\":true,\"state_42\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Jacob P. Russell\",\"age\":30,\"date\":1610668800000.0,\"state_8\":true,\"state_18\":true,\"state_20\":true,\"state_33\":true,\"state_34\":true,\"state_37\":true,\"state_39\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Dorothy I. Berry\",\"avail\":true,\"age\":64,\"date\":1570320000000.0,\"state_1\":true,\"state_2\":true,\"state_6\":true,\"state_10\":true,\"state_12\":true,\"state_18\":true,\"state_23\":true,\"state_25\":true,\"state_42\":true,\"state_44\":true,\"state_45\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Nathan Cornish\",\"avail\":true,\"age\":70,\"date\":210038400000.0,\"state_5\":true,\"state_12\":true,\"state_13\":true,\"state_15\":true,\"state_19\":true,\"state_21\":true,\"state_29\":true,\"state_30\":true,\"state_33\":true,\"state_35\":true,\"state_37\":true,\"state_45\":true,\"state_48\":true}]},{\"type\":\"role\",\"title\":\"Omit elevators\",\"children\":[{\"type\":\"person\",\"title\":\"Taylor H. Vance\",\"avail\":true,\"age\":86,\"state_2\":true,\"state_14\":true,\"state_17\":true,\"state_19\":true,\"state_26\":true,\"state_27\":true,\"state_29\":true,\"state_32\":true,\"state_36\":true}]}]},{\"type\":\"department\",\"title\":\"Dept. for Importances and Mammoths\",\"children\":[{\"type\":\"role\",\"title\":\"Kid minutes\",\"children\":[{\"type\":\"person\",\"title\":\"Isaac Sharp\",\"avail\":true,\"age\":58,\"date\":1254960000000.0,\"state_13\":true,\"state_33\":true,\"state_35\":true,\"state_39\":true,\"state_45\":true,\"state_46\":true,\"state_47\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Rose X. Allan\",\"state\":\"h\",\"avail\":true,\"age\":73,\"date\":1477008000000.0,\"state_1\":true,\"state_8\":true,\"state_14\":true,\"state_15\":true,\"state_16\":true,\"state_18\":true,\"state_22\":true,\"state_23\":true,\"state_24\":true,\"state_25\":true,\"state_36\":true,\"state_37\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Max Clark\",\"avail\":true,\"age\":89,\"date\":1371081600000.0,\"state_1\":true,\"state_11\":true,\"state_19\":true,\"state_25\":true,\"state_26\":true,\"state_27\":true,\"state_30\":true,\"state_36\":true,\"state_38\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Casey Z. Poole\",\"avail\":true,\"age\":45,\"state_9\":true,\"state_10\":true,\"state_11\":true,\"state_12\":true,\"state_14\":true,\"state_15\":true,\"state_24\":true,\"state_29\":true,\"state_32\":true,\"state_40\":true,\"state_42\":true,\"state_44\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Stewart J. Short\",\"avail\":true,\"age\":54,\"date\":881712000000.0,\"state_1\":true,\"state_3\":true,\"state_10\":true,\"state_15\":true,\"state_20\":true,\"state_24\":true,\"state_26\":true,\"state_29\":true,\"state_35\":true,\"state_37\":true,\"state_38\":true,\"state_39\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Amy Ellison\",\"avail\":true,\"age\":23,\"state_2\":true,\"state_4\":true,\"state_5\":true,\"state_17\":true,\"state_18\":true,\"state_23\":true,\"state_40\":true,\"state_44\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Liam N. Lambert\",\"avail\":true,\"age\":83,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_9\":true,\"state_15\":true,\"state_18\":true,\"state_22\":true,\"state_27\":true,\"state_30\":true,\"state_31\":true,\"state_36\":true,\"state_37\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Dylan Bower\",\"avail\":true,\"age\":89,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_9\":true,\"state_22\":true,\"state_27\":true,\"state_29\":true,\"state_32\":true,\"state_34\":true,\"state_36\":true,\"state_44\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Luke Y. Johnston\",\"avail\":true,\"age\":38,\"date\":1190160000000.0,\"state_20\":true,\"state_21\":true,\"state_28\":true,\"state_40\":true,\"state_41\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Anthony H. MacDonald\",\"state\":\"h\",\"avail\":true,\"age\":45,\"state_2\":true,\"state_6\":true,\"state_10\":true,\"state_23\":true,\"state_25\":true,\"state_26\":true,\"state_40\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Jacob Poole\",\"state\":\"h\",\"avail\":true,\"age\":66,\"state_7\":true,\"state_17\":true,\"state_18\":true,\"state_20\":true,\"state_33\":true,\"state_37\":true,\"state_41\":true,\"state_44\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Olivia X. Dickens\",\"state\":\"s\",\"avail\":true,\"age\":86,\"state_4\":true,\"state_6\":true,\"state_8\":true,\"state_26\":true,\"state_32\":true,\"state_35\":true,\"state_36\":true,\"state_37\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Eddie Dowd\",\"avail\":true,\"age\":73,\"state_5\":true,\"state_7\":true,\"state_10\":true,\"state_18\":true,\"state_21\":true,\"state_24\":true,\"state_32\":true,\"state_35\":true,\"state_36\":true,\"state_43\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Sonia D. Peake\",\"avail\":true,\"age\":23,\"state_2\":true,\"state_4\":true,\"state_7\":true,\"state_15\":true,\"state_23\":true,\"state_34\":true,\"state_39\":true,\"state_41\":true,\"state_42\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Emma Reid\",\"avail\":true,\"age\":22,\"date\":1033603200000.0,\"state_8\":true,\"state_13\":true,\"state_14\":true,\"state_27\":true,\"state_31\":true,\"state_42\":true,\"state_43\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Taylor G. Peake\",\"age\":82,\"date\":484876800000.0,\"state_4\":true,\"state_9\":true,\"state_15\":true,\"state_16\":true,\"state_19\":true,\"state_24\":true,\"state_26\":true,\"state_42\":true,\"state_46\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Carol Nolan\",\"avail\":true,\"age\":30,\"date\":277084800000.0,\"state_1\":true,\"state_3\":true,\"state_5\":true,\"state_10\":true,\"state_11\":true,\"state_12\":true,\"state_13\":true,\"state_36\":true,\"state_43\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Adam Z. Hill\",\"state\":\"h\",\"avail\":true,\"age\":84,\"state_6\":true,\"state_8\":true,\"state_13\":true,\"state_18\":true,\"state_30\":true,\"state_32\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Pat R. Hamilton\",\"avail\":true,\"age\":53,\"state_3\":true,\"state_5\":true,\"state_14\":true,\"state_26\":true,\"state_29\":true,\"state_38\":true,\"state_41\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Julia Q. Parsons\",\"state\":\"h\",\"age\":67,\"state_2\":true,\"state_3\":true,\"state_5\":true,\"state_12\":true,\"state_16\":true,\"state_21\":true,\"state_22\":true,\"state_24\":true,\"state_25\":true,\"state_30\":true,\"state_41\":true,\"state_45\":true,\"state_47\":true,\"state_49\":true}]},{\"type\":\"role\",\"title\":\"Arise clerks\",\"children\":[{\"type\":\"person\",\"title\":\"Alison K. Fisher\",\"avail\":true,\"age\":59,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_3\":true,\"state_8\":true,\"state_10\":true,\"state_15\":true,\"state_19\":true,\"state_20\":true,\"state_21\":true,\"state_24\":true,\"state_25\":true,\"state_29\":true,\"state_33\":true,\"state_45\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Austin Rampling\",\"avail\":true,\"age\":78,\"date\":136771200000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_4\":true,\"state_9\":true,\"state_10\":true,\"state_13\":true,\"state_14\":true,\"state_15\":true,\"state_21\":true,\"state_23\":true,\"state_31\":true,\"state_35\":true,\"state_42\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Frances Quinn\",\"avail\":true,\"age\":86,\"date\":136684800000.0,\"state_12\":true,\"state_14\":true,\"state_16\":true,\"state_17\":true,\"state_18\":true,\"state_24\":true,\"state_30\":true,\"state_36\":true,\"state_38\":true,\"state_45\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Joseph Hunter\",\"avail\":true,\"age\":37,\"date\":1675987200000.0,\"state_13\":true,\"state_20\":true,\"state_34\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Victor Thomson\",\"state\":\"s\",\"avail\":true,\"age\":82,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_2\":true,\"state_10\":true,\"state_18\":true,\"state_22\":true,\"state_35\":true,\"state_42\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Molly R. MacLeod\",\"avail\":true,\"age\":89,\"date\":686793600000.0,\"state_1\":true,\"state_6\":true,\"state_12\":true,\"state_13\":true,\"state_19\":true,\"state_31\":true},{\"type\":\"person\",\"title\":\"William Bailey\",\"avail\":true,\"age\":61,\"date\":425433600000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_1\":true,\"state_6\":true,\"state_17\":true,\"state_26\":true,\"state_27\":true,\"state_28\":true,\"state_32\":true,\"state_34\":true,\"state_38\":true,\"state_41\":true,\"state_42\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Jack Forsyth\",\"state\":\"h\",\"avail\":true,\"age\":23,\"date\":10454400000.0,\"state_3\":true,\"state_4\":true,\"state_11\":true,\"state_18\":true,\"state_19\":true,\"state_26\":true,\"state_29\":true,\"state_33\":true,\"state_45\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Sally Y. Avery\",\"avail\":true,\"age\":98,\"date\":625881600000.0,\"state_11\":true,\"state_13\":true,\"state_16\":true,\"state_17\":true,\"state_19\":true,\"state_29\":true,\"state_33\":true,\"state_34\":true,\"state_37\":true,\"state_40\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Jamie Hardacre\",\"avail\":true,\"age\":82,\"date\":1517443200000.0,\"state_2\":true,\"state_11\":true,\"state_12\":true,\"state_13\":true,\"state_19\":true,\"state_27\":true,\"state_28\":true,\"state_32\":true,\"state_33\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Ian Walker\",\"state\":\"h\",\"avail\":true,\"age\":60,\"date\":1166313600000.0,\"state_2\":true,\"state_6\":true,\"state_7\":true,\"state_12\":true,\"state_15\":true,\"state_20\":true,\"state_24\":true,\"state_25\":true,\"state_38\":true,\"state_39\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Caroline Abraham\",\"avail\":true,\"age\":94,\"date\":607392000000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_7\":true,\"state_12\":true,\"state_13\":true,\"state_14\":true,\"state_22\":true,\"state_35\":true,\"state_39\":true,\"state_44\":true,\"state_45\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Leonard S. Morrison\",\"avail\":true,\"age\":33,\"date\":550022400000.0,\"state_6\":true,\"state_17\":true,\"state_18\":true,\"state_19\":true,\"state_45\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Kylie McLean\",\"avail\":true,\"age\":71,\"date\":575769600000.0,\"state_7\":true,\"state_14\":true,\"state_15\":true,\"state_21\":true,\"state_29\":true,\"state_31\":true,\"state_36\":true,\"state_38\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Zoe Tucker\",\"age\":83,\"date\":459302400000.0,\"state_4\":true,\"state_10\":true,\"state_11\":true,\"state_15\":true,\"state_16\":true,\"state_17\":true,\"state_22\":true,\"state_38\":true,\"state_39\":true,\"state_43\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Liam A. Bower\",\"avail\":true,\"age\":75,\"state_3\":true,\"state_15\":true,\"state_20\":true,\"state_22\":true,\"state_24\":true,\"state_26\":true,\"state_31\":true,\"state_34\":true,\"state_38\":true,\"state_39\":true,\"state_40\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Kylie Blake\",\"avail\":true,\"age\":29,\"state_4\":true,\"state_7\":true,\"state_9\":true,\"state_12\":true,\"state_14\":true,\"state_16\":true,\"state_24\":true,\"state_25\":true,\"state_26\":true,\"state_29\":true,\"state_31\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Fiona Tucker\",\"avail\":true,\"age\":72,\"date\":830908800000.0,\"state_4\":true,\"state_6\":true,\"state_7\":true,\"state_15\":true,\"state_28\":true,\"state_36\":true,\"state_37\":true,\"state_38\":true,\"state_43\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Phoenix L. Wilkins\",\"avail\":true,\"age\":62,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_11\":true,\"state_19\":true,\"state_28\":true,\"state_34\":true,\"state_35\":true,\"state_37\":true,\"state_45\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Heather Y. Bond\",\"age\":85,\"date\":1620259200000.0,\"state_7\":true,\"state_11\":true,\"state_15\":true,\"state_19\":true,\"state_22\":true,\"state_27\":true,\"state_35\":true,\"state_36\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Frances Welch\",\"avail\":true,\"age\":55,\"date\":1250726400000.0,\"state_2\":true,\"state_15\":true,\"state_16\":true,\"state_19\":true,\"state_28\":true,\"state_31\":true,\"state_38\":true,\"state_44\":true}]},{\"type\":\"role\",\"title\":\"Course noises\"},{\"type\":\"role\",\"title\":\"Fax boxes\",\"children\":[{\"type\":\"person\",\"title\":\"Joe White\",\"state\":\"h\",\"avail\":true,\"age\":55,\"state_4\":true,\"state_11\":true,\"state_22\":true,\"state_30\":true,\"state_42\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Anthony Short\",\"avail\":true,\"age\":95,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_5\":true,\"state_6\":true,\"state_7\":true,\"state_9\":true,\"state_12\":true,\"state_13\":true,\"state_14\":true,\"state_17\":true,\"state_19\":true,\"state_23\":true,\"state_30\":true,\"state_42\":true,\"state_45\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Theresa Paterson\",\"avail\":true,\"age\":61,\"date\":1032998400000.0,\"state_1\":true,\"state_3\":true,\"state_11\":true,\"state_13\":true,\"state_24\":true,\"state_37\":true},{\"type\":\"person\",\"title\":\"Sam M. Hunter\",\"state\":\"h\",\"age\":29,\"date\":686188800000.0,\"state_7\":true,\"state_11\":true,\"state_21\":true,\"state_27\":true,\"state_29\":true,\"state_37\":true,\"state_38\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Sue Underwood\",\"state\":\"s\",\"avail\":true,\"age\":55,\"date\":362880000000.0,\"state_11\":true,\"state_12\":true,\"state_19\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Joseph E. Morgan\",\"age\":40,\"date\":1400976000000.0,\"state_4\":true,\"state_11\":true,\"state_19\":true,\"state_21\":true,\"state_23\":true,\"state_39\":true,\"state_42\":true,\"state_43\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Toby Dickens\",\"state\":\"s\",\"avail\":true,\"age\":88,\"state_5\":true,\"state_11\":true,\"state_17\":true,\"state_19\":true,\"state_20\":true,\"state_28\":true,\"state_29\":true,\"state_34\":true,\"state_46\":true,\"state_47\":true,\"state_48\":true}]},{\"type\":\"role\",\"title\":\"Leer guineas\",\"children\":[{\"type\":\"person\",\"title\":\"Felicity J. Blake\",\"avail\":true,\"age\":90,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_9\":true,\"state_16\":true,\"state_17\":true,\"state_19\":true,\"state_23\":true,\"state_24\":true,\"state_28\":true,\"state_29\":true,\"state_31\":true,\"state_34\":true,\"state_44\":true,\"state_47\":true}]},{\"type\":\"role\",\"title\":\"Try paths\",\"children\":[{\"type\":\"person\",\"title\":\"Caroline M. Davies\",\"avail\":true,\"age\":81,\"date\":873244800000.0,\"state_12\":true,\"state_13\":true,\"state_22\":true,\"state_23\":true,\"state_27\":true,\"state_41\":true,\"state_43\":true,\"state_44\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Pat Clarkson\",\"avail\":true,\"age\":37,\"date\":70761600000.0,\"state_5\":true,\"state_9\":true,\"state_10\":true,\"state_12\":true,\"state_15\":true,\"state_17\":true,\"state_19\":true,\"state_22\":true,\"state_23\":true,\"state_26\":true,\"state_28\":true,\"state_29\":true,\"state_30\":true,\"state_35\":true,\"state_36\":true,\"state_39\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Hannah W. Butler\",\"state\":\"h\",\"avail\":true,\"age\":92,\"date\":1328400000000.0,\"state_1\":true,\"state_3\":true,\"state_5\":true,\"state_14\":true,\"state_16\":true,\"state_19\":true,\"state_20\":true,\"state_26\":true,\"state_28\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Austin MacLeod\",\"avail\":true,\"age\":40,\"date\":118886400000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_7\":true,\"state_8\":true,\"state_11\":true,\"state_12\":true,\"state_16\":true,\"state_23\":true,\"state_26\":true,\"state_27\":true,\"state_28\":true,\"state_31\":true,\"state_34\":true,\"state_40\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Sydney McLean\",\"state\":\"s\",\"avail\":true,\"age\":55,\"state_2\":true,\"state_5\":true,\"state_13\":true,\"state_23\":true,\"state_33\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Kyle X. White\",\"avail\":true,\"age\":47,\"date\":1506816000000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_2\":true,\"state_3\":true,\"state_4\":true,\"state_5\":true,\"state_8\":true,\"state_13\":true,\"state_17\":true,\"state_19\":true,\"state_22\":true,\"state_30\":true,\"state_40\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Melanie N. Metcalfe\",\"avail\":true,\"age\":44,\"date\":167875200000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_3\":true,\"state_8\":true,\"state_11\":true,\"state_12\":true,\"state_20\":true,\"state_24\":true,\"state_25\":true,\"state_29\":true,\"state_36\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Deirdre Baker\",\"avail\":true,\"age\":90,\"date\":1160697600000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_4\":true,\"state_26\":true,\"state_29\":true,\"state_48\":true}]},{\"type\":\"role\",\"title\":\"Disobey rivers\",\"children\":[{\"type\":\"person\",\"title\":\"Kelly E. Campbell\",\"avail\":true,\"age\":35,\"date\":904694400000.0,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_8\":true,\"state_9\":true,\"state_16\":true,\"state_22\":true,\"state_24\":true,\"state_28\":true,\"state_38\":true,\"state_40\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Pippa Ogden\",\"state\":\"h\",\"avail\":true,\"age\":32,\"date\":1708041600000.0,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_1\":true,\"state_5\":true,\"state_7\":true,\"state_12\":true,\"state_15\":true,\"state_18\":true,\"state_19\":true,\"state_23\":true,\"state_24\":true,\"state_29\":true,\"state_30\":true,\"state_32\":true,\"state_33\":true,\"state_35\":true,\"state_36\":true,\"state_38\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Deirdre T. Robertson\",\"avail\":true,\"age\":37,\"date\":1399248000000.0,\"state_3\":true,\"state_6\":true,\"state_13\":true,\"state_20\":true,\"state_24\":true,\"state_42\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Colin O. Davies\",\"age\":59,\"state_1\":true,\"state_4\":true,\"state_12\":true,\"state_13\":true,\"state_18\":true,\"state_25\":true,\"state_28\":true,\"state_30\":true,\"state_35\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Boris V. Piper\",\"state\":\"h\",\"avail\":true,\"age\":55,\"date\":729734400000.0,\"state_8\":true,\"state_15\":true,\"state_24\":true,\"state_31\":true,\"state_32\":true,\"state_41\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Justin U. Walsh\",\"avail\":true,\"age\":68,\"date\":217728000000.0,\"state_13\":true,\"state_20\":true,\"state_25\":true,\"state_30\":true,\"state_35\":true,\"state_38\":true,\"state_39\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Jean Parr\",\"avail\":true,\"age\":30,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_2\":true,\"state_15\":true,\"state_17\":true,\"state_18\":true,\"state_33\":true,\"state_43\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Grace E. McGrath\",\"state\":\"h\",\"avail\":true,\"age\":67,\"date\":1170633600000.0,\"state_4\":true,\"state_6\":true,\"state_11\":true,\"state_12\":true,\"state_15\":true,\"state_27\":true,\"state_30\":true,\"state_40\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Colin X. Tucker\",\"avail\":true,\"age\":95,\"date\":439862400000.0,\"state_1\":true,\"state_2\":true,\"state_6\":true,\"state_9\":true,\"state_10\":true,\"state_12\":true,\"state_18\":true,\"state_19\":true,\"state_20\":true,\"state_24\":true,\"state_33\":true,\"state_39\":true},{\"type\":\"person\",\"title\":\"Alexander Hudson\",\"avail\":true,\"age\":25,\"state_2\":true,\"state_5\":true,\"state_7\":true,\"state_10\":true,\"state_16\":true,\"state_18\":true,\"state_19\":true,\"state_27\":true,\"state_35\":true,\"state_39\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Jean Dickens\",\"state\":\"s\",\"age\":64,\"date\":619574400000.0,\"state_4\":true,\"state_6\":true,\"state_7\":true,\"state_8\":true,\"state_14\":true,\"state_15\":true,\"state_16\":true,\"state_19\":true,\"state_22\":true,\"state_24\":true,\"state_30\":true,\"state_31\":true,\"state_36\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Megan Q. Rampling\",\"avail\":true,\"age\":91,\"date\":173491200000.0,\"state_16\":true,\"state_17\":true,\"state_20\":true,\"state_22\":true,\"state_23\":true,\"state_31\":true,\"state_36\":true,\"state_39\":true,\"state_40\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Fiona K. Hemmings\",\"avail\":true,\"age\":94,\"state_1\":true,\"state_8\":true,\"state_10\":true,\"state_12\":true,\"state_28\":true,\"state_29\":true,\"state_31\":true,\"state_40\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Madeleine Cameron\",\"avail\":true,\"age\":97,\"state_1\":true,\"state_2\":true,\"state_10\":true,\"state_19\":true,\"state_30\":true,\"state_42\":true,\"state_46\":true}]},{\"type\":\"role\",\"title\":\"Solve leaderships\",\"children\":[{\"type\":\"person\",\"title\":\"Sarah Greene\",\"state\":\"s\",\"age\":63,\"date\":1029196800000.0,\"state_1\":true,\"state_2\":true,\"state_6\":true,\"state_10\":true,\"state_12\":true,\"state_15\":true,\"state_16\":true,\"state_20\":true,\"state_38\":true,\"state_40\":true,\"state_42\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Sydney V. Marshall\",\"avail\":true,\"age\":95,\"state_5\":true,\"state_6\":true,\"state_8\":true,\"state_9\":true,\"state_11\":true,\"state_12\":true,\"state_14\":true,\"state_17\":true,\"state_36\":true,\"state_42\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Elizabeth Payne\",\"avail\":true,\"age\":21,\"date\":954806400000.0,\"state_14\":true,\"state_19\":true,\"state_24\":true,\"state_26\":true,\"state_30\":true,\"state_40\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Adam E. Ogden\",\"state\":\"h\",\"avail\":true,\"age\":79,\"date\":897436800000.0,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_4\":true,\"state_5\":true,\"state_15\":true,\"state_16\":true,\"state_17\":true,\"state_23\":true,\"state_28\":true,\"state_31\":true,\"state_33\":true,\"state_35\":true,\"state_37\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Nathan N. Langdon\",\"avail\":true,\"age\":28,\"date\":491875200000.0,\"state_2\":true,\"state_8\":true,\"state_12\":true,\"state_13\":true,\"state_18\":true,\"state_25\":true,\"state_30\":true,\"state_38\":true,\"state_43\":true,\"state_44\":true}]},{\"type\":\"role\",\"title\":\"Swear times\",\"children\":[{\"type\":\"person\",\"title\":\"Phoenix Lee\",\"avail\":true,\"age\":83,\"state_2\":true,\"state_3\":true,\"state_5\":true,\"state_8\":true,\"state_10\":true,\"state_18\":true,\"state_23\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Luke X. Edmunds\",\"avail\":true,\"age\":92,\"date\":1412726400000.0,\"state_4\":true,\"state_6\":true,\"state_8\":true,\"state_19\":true,\"state_21\":true,\"state_23\":true,\"state_26\":true,\"state_27\":true,\"state_31\":true,\"state_44\":true,\"state_45\":true,\"state_47\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Charlie Ross\",\"avail\":true,\"age\":61,\"date\":1306800000000.0,\"state_1\":true,\"state_6\":true,\"state_10\":true,\"state_16\":true,\"state_19\":true,\"state_30\":true,\"state_31\":true,\"state_34\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Frances Black\",\"state\":\"h\",\"avail\":true,\"age\":38,\"state_7\":true,\"state_22\":true,\"state_23\":true,\"state_25\":true,\"state_32\":true,\"state_34\":true,\"state_35\":true}]},{\"type\":\"role\",\"title\":\"Verify replacements\",\"children\":[{\"type\":\"person\",\"title\":\"Sam K. Knox\",\"state\":\"s\",\"avail\":true,\"age\":95,\"date\":1109030400000.0,\"state_15\":true,\"state_24\":true,\"state_30\":true,\"state_41\":true,\"state_42\":true,\"state_44\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Michelle Avery\",\"avail\":true,\"age\":36,\"state_3\":true,\"state_20\":true,\"state_26\":true,\"state_27\":true,\"state_36\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Lillian Hardacre\",\"state\":\"h\",\"avail\":true,\"age\":66,\"date\":1281571200000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_2\":true,\"state_3\":true,\"state_4\":true,\"state_7\":true,\"state_9\":true,\"state_13\":true,\"state_19\":true,\"state_30\":true,\"state_34\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Boris Piper\",\"avail\":true,\"age\":79,\"date\":152668800000.0,\"state_2\":true,\"state_9\":true,\"state_10\":true,\"state_11\":true,\"state_18\":true,\"state_20\":true,\"state_42\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Neil W. Churchill\",\"avail\":true,\"age\":24,\"remarks\":\"At vero eos et accusam et justo duo dolores et ea rebum.\",\"state_9\":true,\"state_12\":true,\"state_13\":true,\"state_14\":true,\"state_16\":true,\"state_18\":true,\"state_25\":true,\"state_33\":true,\"state_34\":true,\"state_39\":true,\"state_40\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Anne B. Hart\",\"avail\":true,\"age\":88,\"date\":1161388800000.0,\"state_2\":true,\"state_4\":true,\"state_9\":true,\"state_20\":true,\"state_21\":true,\"state_23\":true,\"state_24\":true,\"state_44\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Cameron S. Slater\",\"avail\":true,\"age\":90,\"state_7\":true,\"state_13\":true,\"state_16\":true,\"state_17\":true,\"state_18\":true,\"state_19\":true,\"state_20\":true,\"state_25\":true,\"state_31\":true,\"state_33\":true,\"state_35\":true,\"state_39\":true,\"state_44\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Jan Powell\",\"state\":\"h\",\"age\":84,\"date\":155433600000.0,\"state_8\":true,\"state_9\":true,\"state_25\":true,\"state_28\":true,\"state_39\":true,\"state_43\":true,\"state_45\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Eddie L. Dowd\",\"age\":89,\"state_2\":true,\"state_5\":true,\"state_9\":true,\"state_24\":true,\"state_27\":true,\"state_32\":true,\"state_34\":true,\"state_37\":true,\"state_39\":true,\"state_42\":true,\"state_43\":true,\"state_44\":true,\"state_45\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Toby B. Paterson\",\"avail\":true,\"age\":81,\"state_5\":true,\"state_12\":true,\"state_18\":true,\"state_20\":true,\"state_26\":true,\"state_35\":true,\"state_37\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Sebastian Peters\",\"state\":\"s\",\"avail\":true,\"age\":77,\"state_4\":true,\"state_9\":true,\"state_15\":true,\"state_17\":true,\"state_35\":true,\"state_36\":true,\"state_40\":true,\"state_45\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Joe Payne\",\"age\":98,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_1\":true,\"state_2\":true,\"state_6\":true,\"state_9\":true,\"state_18\":true,\"state_27\":true,\"state_28\":true,\"state_33\":true,\"state_35\":true,\"state_38\":true},{\"type\":\"person\",\"title\":\"Madeleine Duncan\",\"state\":\"s\",\"avail\":true,\"age\":68,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_1\":true,\"state_14\":true,\"state_15\":true,\"state_16\":true,\"state_19\":true,\"state_24\":true,\"state_26\":true,\"state_31\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Colin N. Ogden\",\"avail\":true,\"age\":42,\"date\":1078272000000.0,\"state_6\":true,\"state_9\":true,\"state_10\":true,\"state_15\":true,\"state_17\":true,\"state_25\":true,\"state_31\":true,\"state_32\":true,\"state_41\":true,\"state_43\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Lucas H. Sharp\",\"avail\":true,\"age\":28,\"date\":1550448000000.0,\"state_1\":true,\"state_2\":true,\"state_4\":true,\"state_9\":true,\"state_10\":true,\"state_13\":true,\"state_16\":true,\"state_19\":true,\"state_20\":true,\"state_24\":true,\"state_37\":true,\"state_39\":true,\"state_40\":true,\"state_43\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Angela Sharp\",\"state\":\"h\",\"avail\":true,\"age\":31,\"date\":966124800000.0,\"state_1\":true,\"state_2\":true,\"state_6\":true,\"state_33\":true,\"state_35\":true,\"state_37\":true,\"state_41\":true,\"state_44\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Amanda F. Carr\",\"avail\":true,\"age\":54,\"state_2\":true,\"state_16\":true,\"state_17\":true,\"state_27\":true,\"state_31\":true,\"state_33\":true,\"state_37\":true,\"state_38\":true}]},{\"type\":\"role\",\"title\":\"Scar reflections\",\"children\":[{\"type\":\"person\",\"title\":\"Frank A. Oliver\",\"avail\":true,\"age\":60,\"state_2\":true,\"state_5\":true,\"state_7\":true,\"state_11\":true,\"state_18\":true,\"state_29\":true,\"state_35\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Casey Blake\",\"avail\":true,\"age\":81,\"date\":1482537600000.0,\"state_11\":true,\"state_15\":true,\"state_18\":true,\"state_22\":true,\"state_25\":true,\"state_26\":true,\"state_38\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Jasmine V. Metcalfe\",\"avail\":true,\"age\":53,\"state_3\":true,\"state_6\":true,\"state_7\":true,\"state_8\":true,\"state_10\":true,\"state_20\":true,\"state_23\":true,\"state_27\":true,\"state_31\":true,\"state_38\":true,\"state_42\":true,\"state_45\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Sam X. Gray\",\"state\":\"h\",\"avail\":true,\"age\":65,\"date\":332812800000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_1\":true,\"state_2\":true,\"state_17\":true,\"state_21\":true,\"state_22\":true,\"state_23\":true,\"state_30\":true,\"state_33\":true,\"state_36\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Lauren O. Ellison\",\"avail\":true,\"age\":70,\"date\":41990400000.0,\"state_2\":true,\"state_6\":true,\"state_11\":true,\"state_15\":true,\"state_17\":true,\"state_18\":true,\"state_19\":true,\"state_24\":true,\"state_26\":true,\"state_27\":true,\"state_35\":true,\"state_36\":true,\"state_37\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Robert Hudson\",\"state\":\"h\",\"age\":29,\"state_11\":true,\"state_17\":true,\"state_26\":true,\"state_32\":true,\"state_40\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Eric Kelly\",\"avail\":true,\"age\":25,\"date\":1036368000000.0,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_1\":true,\"state_2\":true,\"state_4\":true,\"state_20\":true,\"state_21\":true,\"state_31\":true,\"state_32\":true,\"state_39\":true,\"state_40\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Melanie Sharp\",\"avail\":true,\"age\":21,\"date\":382233600000.0,\"state_2\":true,\"state_9\":true,\"state_15\":true,\"state_16\":true,\"state_23\":true,\"state_28\":true,\"state_29\":true,\"state_33\":true,\"state_39\":true,\"state_40\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Kylie W. Morgan\",\"avail\":true,\"age\":93,\"date\":567129600000.0,\"state_3\":true,\"state_6\":true,\"state_12\":true,\"state_24\":true,\"state_29\":true,\"state_30\":true,\"state_38\":true},{\"type\":\"person\",\"title\":\"Taylor R. Nash\",\"state\":\"s\",\"age\":63,\"state_8\":true,\"state_10\":true,\"state_16\":true,\"state_26\":true,\"state_28\":true,\"state_29\":true,\"state_38\":true,\"state_39\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Christopher P. Morgan\",\"avail\":true,\"age\":78,\"date\":1667260800000.0,\"state_3\":true,\"state_11\":true,\"state_12\":true,\"state_15\":true,\"state_19\":true,\"state_20\":true,\"state_25\":true,\"state_27\":true,\"state_29\":true,\"state_34\":true,\"state_35\":true,\"state_47\":true}]},{\"type\":\"role\",\"title\":\"Search classes\",\"children\":[{\"type\":\"person\",\"title\":\"Ruth Robertson\",\"avail\":true,\"age\":84,\"state_2\":true,\"state_4\":true,\"state_10\":true,\"state_11\":true,\"state_16\":true,\"state_25\":true,\"state_26\":true,\"state_34\":true,\"state_36\":true,\"state_45\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Andrea Clark\",\"avail\":true,\"age\":82,\"date\":820713600000.0,\"state_1\":true,\"state_9\":true,\"state_23\":true,\"state_37\":true},{\"type\":\"person\",\"title\":\"Frances A. Piper\",\"age\":75,\"state_6\":true,\"state_9\":true,\"state_10\":true,\"state_11\":true,\"state_14\":true,\"state_18\":true,\"state_24\":true,\"state_30\":true,\"state_32\":true,\"state_36\":true,\"state_39\":true,\"state_46\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Isaac Allan\",\"state\":\"s\",\"age\":42,\"date\":1066262400000.0,\"state_1\":true,\"state_5\":true,\"state_15\":true,\"state_19\":true,\"state_25\":true,\"state_26\":true,\"state_28\":true,\"state_33\":true,\"state_39\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Brandon Baker\",\"avail\":true,\"age\":66,\"state_2\":true,\"state_4\":true,\"state_6\":true,\"state_7\":true,\"state_9\":true,\"state_11\":true,\"state_13\":true,\"state_15\":true,\"state_28\":true,\"state_30\":true,\"state_34\":true,\"state_35\":true,\"state_38\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Sophie C. Paige\",\"avail\":true,\"age\":30,\"state_1\":true,\"state_6\":true,\"state_14\":true,\"state_20\":true,\"state_21\":true,\"state_27\":true,\"state_30\":true,\"state_32\":true,\"state_33\":true,\"state_37\":true,\"state_38\":true,\"state_39\":true,\"state_42\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Abigail G. Alsop\",\"avail\":true,\"age\":64,\"state_5\":true,\"state_9\":true,\"state_19\":true,\"state_24\":true,\"state_43\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Andy Wilson\",\"avail\":true,\"age\":73,\"date\":171158400000.0,\"state_3\":true,\"state_6\":true,\"state_8\":true,\"state_14\":true,\"state_17\":true,\"state_24\":true,\"state_29\":true,\"state_33\":true,\"state_34\":true,\"state_40\":true,\"state_41\":true,\"state_44\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Andrea Rampling\",\"avail\":true,\"age\":29,\"date\":1694908800000.0,\"state_1\":true,\"state_3\":true,\"state_4\":true,\"state_5\":true,\"state_12\":true,\"state_14\":true,\"state_27\":true,\"state_32\":true,\"state_38\":true,\"state_43\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Frank Morgan\",\"avail\":true,\"age\":75,\"remarks\":\"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.\",\"state_8\":true,\"state_9\":true,\"state_12\":true,\"state_16\":true,\"state_17\":true,\"state_19\":true,\"state_20\":true,\"state_24\":true,\"state_25\":true,\"state_28\":true,\"state_29\":true,\"state_31\":true,\"state_33\":true,\"state_44\":true,\"state_46\":true,\"state_47\":true,\"state_49\":true,\"state_50\":true}]}]},{\"type\":\"department\",\"title\":\"Dept. for Bigs and Abroads\",\"children\":[{\"type\":\"role\",\"title\":\"Uproot creatives\",\"children\":[{\"type\":\"person\",\"title\":\"Dan McGrath\",\"avail\":true,\"age\":78,\"date\":436320000000.0,\"state_8\":true,\"state_10\":true,\"state_11\":true,\"state_19\":true,\"state_23\":true,\"state_34\":true,\"state_37\":true,\"state_38\":true,\"state_44\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Steven Metcalfe\",\"avail\":true,\"age\":92,\"date\":1452556800000.0,\"state_2\":true,\"state_3\":true,\"state_13\":true,\"state_16\":true,\"state_24\":true,\"state_29\":true,\"state_41\":true,\"state_43\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Anna Hardacre\",\"avail\":true,\"age\":50,\"date\":38793600000.0,\"state_1\":true,\"state_14\":true,\"state_16\":true,\"state_18\":true,\"state_22\":true,\"state_31\":true,\"state_33\":true,\"state_38\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Justin K. Rampling\",\"avail\":true,\"age\":46,\"date\":1543968000000.0,\"state_2\":true,\"state_20\":true,\"state_22\":true,\"state_26\":true,\"state_29\":true,\"state_33\":true,\"state_38\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Amanda Wallace\",\"state\":\"s\",\"avail\":true,\"age\":27,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_4\":true,\"state_8\":true,\"state_14\":true,\"state_24\":true,\"state_28\":true,\"state_29\":true,\"state_38\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Hannah Ellison\",\"state\":\"h\",\"avail\":true,\"age\":81,\"date\":1635984000000.0,\"state_7\":true,\"state_25\":true,\"state_36\":true,\"state_41\":true,\"state_44\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Kelly T. Clarkson\",\"state\":\"h\",\"avail\":true,\"age\":83,\"state_4\":true,\"state_8\":true,\"state_17\":true,\"state_20\":true,\"state_24\":true,\"state_31\":true,\"state_36\":true,\"state_38\":true,\"state_39\":true,\"state_40\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Caroline U. Hemmings\",\"avail\":true,\"age\":66,\"date\":1295222400000.0,\"state_6\":true,\"state_14\":true,\"state_18\":true,\"state_23\":true,\"state_25\":true,\"state_33\":true,\"state_34\":true,\"state_42\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Virginia McLean\",\"state\":\"s\",\"age\":48,\"date\":1347062400000.0,\"state_5\":true,\"state_10\":true,\"state_22\":true,\"state_30\":true,\"state_38\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Dorothy L. Gill\",\"avail\":true,\"age\":71,\"date\":15552000000.0,\"state_8\":true,\"state_9\":true,\"state_15\":true,\"state_20\":true,\"state_23\":true,\"state_24\":true,\"state_25\":true,\"state_39\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Victor T. Watson\",\"state\":\"s\",\"avail\":true,\"age\":30,\"state_2\":true,\"state_3\":true,\"state_13\":true,\"state_22\":true,\"state_23\":true,\"state_30\":true,\"state_34\":true,\"state_35\":true,\"state_44\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Jayden A. Miller\",\"avail\":true,\"age\":64,\"state_2\":true,\"state_6\":true,\"state_16\":true,\"state_17\":true,\"state_19\":true,\"state_23\":true,\"state_26\":true,\"state_28\":true,\"state_31\":true,\"state_36\":true,\"state_44\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Christopher Churchill\",\"avail\":true,\"age\":76,\"state_12\":true,\"state_23\":true,\"state_24\":true,\"state_26\":true,\"state_29\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Theresa Sanderson\",\"avail\":true,\"age\":95,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_2\":true,\"state_4\":true,\"state_5\":true,\"state_10\":true,\"state_20\":true,\"state_27\":true,\"state_29\":true,\"state_33\":true,\"state_34\":true,\"state_37\":true,\"state_44\":true,\"state_45\":true,\"state_48\":true}]},{\"type\":\"role\",\"title\":\"Secure memories\",\"children\":[{\"type\":\"person\",\"title\":\"Carolyn X. Wright\",\"avail\":true,\"age\":48,\"date\":498268800000.0,\"state_8\":true,\"state_11\":true,\"state_12\":true,\"state_18\":true,\"state_30\":true,\"state_33\":true,\"state_36\":true,\"state_39\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Sam W. Paterson\",\"state\":\"s\",\"avail\":true,\"age\":75,\"date\":1303603200000.0,\"state_5\":true,\"state_7\":true,\"state_12\":true,\"state_14\":true,\"state_15\":true,\"state_18\":true,\"state_25\":true,\"state_27\":true,\"state_30\":true,\"state_32\":true,\"state_38\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Pat Ince\",\"state\":\"h\",\"avail\":true,\"age\":30,\"state_6\":true,\"state_7\":true,\"state_8\":true,\"state_11\":true,\"state_15\":true,\"state_25\":true,\"state_27\":true,\"state_28\":true,\"state_31\":true,\"state_43\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Gordon R. Powell\",\"age\":59,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_8\":true,\"state_9\":true,\"state_10\":true,\"state_27\":true,\"state_31\":true,\"state_40\":true,\"state_41\":true,\"state_44\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Steven Jones\",\"avail\":true,\"age\":96,\"state_3\":true,\"state_5\":true,\"state_6\":true,\"state_9\":true,\"state_16\":true,\"state_18\":true,\"state_31\":true,\"state_36\":true,\"state_39\":true,\"state_40\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Eddie R. Coleman\",\"avail\":true,\"age\":66,\"date\":1630886400000.0,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_14\":true,\"state_17\":true,\"state_19\":true,\"state_26\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Katherine Payne\",\"avail\":true,\"age\":44,\"date\":419731200000.0,\"state_2\":true,\"state_14\":true,\"state_16\":true,\"state_17\":true,\"state_19\":true,\"state_23\":true,\"state_27\":true,\"state_31\":true,\"state_36\":true,\"state_40\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Dan S. Rutherford\",\"avail\":true,\"age\":63,\"date\":1320883200000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_2\":true,\"state_6\":true,\"state_7\":true,\"state_8\":true,\"state_19\":true,\"state_26\":true,\"state_32\":true,\"state_37\":true,\"state_39\":true,\"state_41\":true,\"state_45\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Julia Anderson\",\"state\":\"s\",\"avail\":true,\"age\":50,\"state_2\":true,\"state_5\":true,\"state_20\":true,\"state_25\":true,\"state_26\":true,\"state_30\":true,\"state_31\":true,\"state_36\":true,\"state_37\":true},{\"type\":\"person\",\"title\":\"Faith S. Alsop\",\"avail\":true,\"age\":33,\"date\":1284681600000.0,\"state_1\":true,\"state_2\":true,\"state_3\":true,\"state_7\":true,\"state_10\":true,\"state_19\":true,\"state_27\":true,\"state_28\":true,\"state_35\":true,\"state_36\":true}]},{\"type\":\"role\",\"title\":\"Confiscate tomorrows\",\"children\":[{\"type\":\"person\",\"title\":\"Grace Chapman\",\"state\":\"s\",\"avail\":true,\"age\":49,\"state_1\":true,\"state_6\":true,\"state_8\":true,\"state_10\":true,\"state_14\":true,\"state_22\":true,\"state_24\":true,\"state_33\":true,\"state_40\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Elizabeth B. Watson\",\"state\":\"h\",\"avail\":true,\"age\":36,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_12\":true,\"state_16\":true,\"state_18\":true,\"state_19\":true,\"state_21\":true,\"state_27\":true,\"state_28\":true,\"state_36\":true,\"state_41\":true,\"state_43\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Tim R. Mackenzie\",\"avail\":true,\"age\":95,\"state_2\":true,\"state_3\":true,\"state_5\":true,\"state_8\":true,\"state_9\":true,\"state_10\":true,\"state_11\":true,\"state_12\":true,\"state_13\":true,\"state_25\":true,\"state_36\":true,\"state_39\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Julia Underwood\",\"avail\":true,\"age\":68,\"date\":944006400000.0,\"state_14\":true,\"state_20\":true,\"state_25\":true,\"state_28\":true,\"state_32\":true,\"state_33\":true,\"state_35\":true,\"state_38\":true,\"state_39\":true,\"state_40\":true,\"state_44\":true,\"state_45\":true,\"state_47\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Sydney U. Cameron\",\"avail\":true,\"age\":28,\"date\":1570060800000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_6\":true,\"state_11\":true,\"state_12\":true,\"state_13\":true,\"state_20\":true,\"state_28\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Joanne Ogden\",\"state\":\"h\",\"avail\":true,\"age\":31,\"date\":732067200000.0,\"state_1\":true,\"state_7\":true,\"state_13\":true,\"state_20\":true,\"state_28\":true,\"state_30\":true,\"state_41\":true},{\"type\":\"person\",\"title\":\"Kylie E. Glover\",\"state\":\"s\",\"age\":61,\"state_2\":true,\"state_8\":true,\"state_18\":true,\"state_22\":true,\"state_27\":true,\"state_28\":true,\"state_45\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Grace R. Mackenzie\",\"avail\":true,\"age\":75,\"state_3\":true,\"state_7\":true,\"state_17\":true,\"state_19\":true,\"state_24\":true,\"state_27\":true,\"state_28\":true,\"state_29\":true,\"state_31\":true,\"state_32\":true,\"state_39\":true,\"state_40\":true,\"state_43\":true,\"state_44\":true,\"state_49\":true}]},{\"type\":\"role\",\"title\":\"Bid smells\",\"children\":[{\"type\":\"person\",\"title\":\"Sonia U. Hardacre\",\"age\":81,\"date\":71280000000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_9\":true,\"state_12\":true,\"state_23\":true,\"state_24\":true,\"state_27\":true,\"state_30\":true,\"state_31\":true,\"state_35\":true,\"state_38\":true,\"state_40\":true,\"state_42\":true,\"state_43\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Joanne Ferguson\",\"state\":\"h\",\"avail\":true,\"age\":92,\"state_11\":true,\"state_13\":true,\"state_14\":true,\"state_20\":true,\"state_21\":true,\"state_22\":true,\"state_30\":true},{\"type\":\"person\",\"title\":\"Jasmine B. Grant\",\"avail\":true,\"age\":75,\"date\":754444800000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_3\":true,\"state_6\":true,\"state_10\":true,\"state_15\":true,\"state_17\":true,\"state_19\":true,\"state_20\":true,\"state_30\":true,\"state_40\":true,\"state_41\":true,\"state_45\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Sebastian F. Edmunds\",\"state\":\"h\",\"avail\":true,\"age\":79,\"date\":1535155200000.0,\"state_3\":true,\"state_17\":true,\"state_32\":true,\"state_35\":true,\"state_36\":true,\"state_40\":true,\"state_42\":true,\"state_43\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Benjamin F. Baker\",\"avail\":true,\"age\":59,\"date\":4752000000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_6\":true,\"state_17\":true,\"state_21\":true,\"state_28\":true,\"state_37\":true,\"state_39\":true,\"state_40\":true,\"state_43\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Matt Bower\",\"avail\":true,\"age\":31,\"date\":1642636800000.0,\"state_6\":true,\"state_13\":true,\"state_19\":true,\"state_20\":true,\"state_21\":true,\"state_25\":true,\"state_26\":true,\"state_27\":true,\"state_30\":true,\"state_36\":true,\"state_39\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Joan Piper\",\"avail\":true,\"age\":93,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_9\":true,\"state_16\":true,\"state_18\":true,\"state_37\":true,\"state_38\":true,\"state_42\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Jean R. Greene\",\"avail\":true,\"age\":30,\"date\":213667200000.0,\"remarks\":\"Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.\",\"state_1\":true,\"state_10\":true,\"state_11\":true,\"state_15\":true,\"state_23\":true,\"state_25\":true,\"state_27\":true,\"state_31\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Jack Murray\",\"avail\":true,\"age\":63,\"state_2\":true,\"state_3\":true,\"state_27\":true,\"state_30\":true,\"state_37\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Boris C. Langdon\",\"avail\":true,\"age\":83,\"date\":1502064000000.0,\"state_7\":true,\"state_10\":true,\"state_18\":true,\"state_20\":true,\"state_25\":true,\"state_29\":true,\"state_32\":true,\"state_33\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Eddie Sharp\",\"age\":61,\"state_5\":true,\"state_10\":true,\"state_11\":true,\"state_22\":true,\"state_30\":true,\"state_40\":true,\"state_43\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Michael Smith\",\"state\":\"h\",\"avail\":true,\"age\":69,\"date\":1469491200000.0,\"state_2\":true,\"state_4\":true,\"state_13\":true,\"state_21\":true,\"state_27\":true,\"state_30\":true,\"state_39\":true,\"state_41\":true,\"state_44\":true,\"state_47\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Sydney Terry\",\"avail\":true,\"age\":42,\"date\":808617600000.0,\"state_11\":true,\"state_17\":true,\"state_22\":true,\"state_29\":true,\"state_34\":true,\"state_36\":true,\"state_44\":true,\"state_45\":true,\"state_46\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Joe D. Russell\",\"state\":\"h\",\"avail\":true,\"age\":90,\"date\":1353542400000.0,\"state_2\":true,\"state_7\":true,\"state_15\":true,\"state_24\":true,\"state_28\":true,\"state_31\":true,\"state_32\":true,\"state_34\":true,\"state_35\":true,\"state_41\":true,\"state_42\":true,\"state_43\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Diane Wright\",\"avail\":true,\"age\":63,\"date\":131846400000.0,\"state_8\":true,\"state_9\":true,\"state_11\":true,\"state_13\":true,\"state_15\":true,\"state_16\":true,\"state_21\":true,\"state_23\":true,\"state_29\":true,\"state_30\":true,\"state_32\":true,\"state_44\":true,\"state_45\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Michael Thomson\",\"avail\":true,\"age\":50,\"date\":804902400000.0,\"state_16\":true,\"state_20\":true,\"state_22\":true,\"state_27\":true,\"state_30\":true,\"state_32\":true,\"state_34\":true,\"state_38\":true,\"state_44\":true,\"state_46\":true,\"state_48\":true}]},{\"type\":\"role\",\"title\":\"Punish chips\",\"children\":[{\"type\":\"person\",\"title\":\"Casey Mathis\",\"avail\":true,\"age\":97,\"state_7\":true,\"state_9\":true,\"state_19\":true,\"state_23\":true,\"state_26\":true,\"state_27\":true,\"state_32\":true,\"state_35\":true,\"state_38\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Alexandra Lee\",\"avail\":true,\"age\":80,\"date\":1374278400000.0,\"state_5\":true,\"state_9\":true,\"state_24\":true,\"state_30\":true,\"state_33\":true,\"state_42\":true,\"state_47\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Sam Forsyth\",\"avail\":true,\"age\":78,\"state_1\":true,\"state_6\":true,\"state_9\":true,\"state_10\":true,\"state_16\":true,\"state_23\":true,\"state_25\":true,\"state_27\":true,\"state_28\":true,\"state_33\":true,\"state_39\":true,\"state_43\":true,\"state_46\":true}]},{\"type\":\"role\",\"title\":\"Download pianos\",\"children\":[{\"type\":\"person\",\"title\":\"Kylie I. Mackay\",\"age\":25,\"date\":803174400000.0,\"state_6\":true,\"state_8\":true,\"state_10\":true,\"state_14\":true,\"state_24\":true,\"state_31\":true,\"state_32\":true,\"state_36\":true,\"state_37\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Nicholas Peake\",\"avail\":true,\"age\":38,\"date\":98928000000.0,\"state_7\":true,\"state_14\":true,\"state_18\":true,\"state_21\":true,\"state_25\":true,\"state_34\":true,\"state_36\":true,\"state_40\":true,\"state_43\":true,\"state_44\":true,\"state_45\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"James Hamilton\",\"avail\":true,\"age\":46,\"date\":1667520000000.0,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_3\":true,\"state_5\":true,\"state_7\":true,\"state_9\":true,\"state_23\":true,\"state_24\":true,\"state_25\":true,\"state_26\":true,\"state_31\":true,\"state_41\":true,\"state_44\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Charlie N. McGrath\",\"age\":52,\"date\":911260800000.0,\"remarks\":\"Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"state_12\":true,\"state_16\":true,\"state_21\":true,\"state_24\":true,\"state_26\":true,\"state_37\":true,\"state_44\":true,\"state_46\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Maria P. Paige\",\"avail\":true,\"age\":32,\"date\":668304000000.0,\"state_11\":true,\"state_16\":true,\"state_20\":true,\"state_21\":true,\"state_23\":true,\"state_29\":true,\"state_30\":true,\"state_36\":true},{\"type\":\"person\",\"title\":\"Charlie Fraser\",\"avail\":true,\"age\":52,\"date\":1153094400000.0,\"state_6\":true,\"state_10\":true,\"state_11\":true,\"state_16\":true,\"state_18\":true,\"state_22\":true,\"state_28\":true,\"state_33\":true},{\"type\":\"person\",\"title\":\"Jake Z. Terry\",\"avail\":true,\"age\":66,\"date\":1353888000000.0,\"state_2\":true,\"state_4\":true,\"state_9\":true,\"state_10\":true,\"state_24\":true,\"state_27\":true,\"state_36\":true,\"state_39\":true},{\"type\":\"person\",\"title\":\"Stephen L. Gill\",\"avail\":true,\"age\":78,\"state_4\":true,\"state_5\":true,\"state_18\":true,\"state_26\":true,\"state_29\":true,\"state_32\":true,\"state_38\":true,\"state_40\":true,\"state_42\":true,\"state_43\":true,\"state_46\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Thomas Q. Clarkson\",\"avail\":true,\"age\":84,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_20\":true,\"state_21\":true,\"state_25\":true,\"state_27\":true,\"state_33\":true,\"state_35\":true,\"state_39\":true,\"state_42\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Samantha N. Churchill\",\"avail\":true,\"age\":72,\"date\":1244332800000.0,\"state_1\":true,\"state_2\":true,\"state_35\":true,\"state_36\":true,\"state_37\":true,\"state_43\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Casey Chapman\",\"avail\":true,\"age\":84,\"date\":1158105600000.0,\"remarks\":\"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\",\"state_3\":true,\"state_5\":true,\"state_10\":true,\"state_11\":true,\"state_14\":true,\"state_15\":true,\"state_23\":true,\"state_25\":true,\"state_38\":true,\"state_45\":true,\"state_49\":true}]},{\"type\":\"role\",\"title\":\"Advise sizes\",\"children\":[{\"type\":\"person\",\"title\":\"Harry Dickens\",\"avail\":true,\"age\":79,\"date\":755740800000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_1\":true,\"state_11\":true,\"state_14\":true,\"state_18\":true,\"state_19\":true,\"state_20\":true,\"state_35\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Cameron Terry\",\"state\":\"s\",\"avail\":true,\"age\":63,\"date\":1620518400000.0,\"state_1\":true,\"state_5\":true,\"state_7\":true,\"state_11\":true,\"state_15\":true,\"state_23\":true,\"state_30\":true,\"state_35\":true,\"state_39\":true,\"state_40\":true,\"state_41\":true,\"state_44\":true,\"state_45\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Taylor Y. Thomson\",\"state\":\"h\",\"avail\":true,\"age\":24,\"remarks\":\"Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.\",\"state_5\":true,\"state_6\":true,\"state_16\":true,\"state_36\":true,\"state_38\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Jane Carr\",\"avail\":true,\"age\":96,\"date\":1365465600000.0,\"state_2\":true,\"state_3\":true,\"state_4\":true,\"state_10\":true,\"state_14\":true,\"state_15\":true,\"state_17\":true,\"state_20\":true,\"state_22\":true,\"state_30\":true,\"state_36\":true,\"state_42\":true,\"state_46\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Megan Z. Harris\",\"age\":62,\"state_7\":true,\"state_10\":true,\"state_11\":true,\"state_16\":true,\"state_17\":true,\"state_31\":true,\"state_34\":true,\"state_39\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Vanessa C. Blake\",\"state\":\"s\",\"avail\":true,\"age\":21,\"date\":753408000000.0,\"state_15\":true,\"state_17\":true,\"state_18\":true,\"state_27\":true,\"state_37\":true,\"state_42\":true,\"state_44\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Anne Y. Mitchell\",\"avail\":true,\"age\":42,\"date\":205632000000.0,\"state_1\":true,\"state_2\":true,\"state_33\":true,\"state_37\":true,\"state_41\":true,\"state_42\":true,\"state_44\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Connor Clarkson\",\"state\":\"h\",\"avail\":true,\"age\":70,\"date\":1330214400000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\",\"state_2\":true,\"state_9\":true,\"state_12\":true,\"state_15\":true,\"state_18\":true,\"state_20\":true,\"state_21\":true,\"state_22\":true,\"state_26\":true,\"state_28\":true,\"state_35\":true,\"state_41\":true,\"state_43\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Justin Q. Roberts\",\"avail\":true,\"age\":33,\"state_15\":true,\"state_17\":true,\"state_18\":true,\"state_28\":true,\"state_29\":true,\"state_30\":true,\"state_40\":true,\"state_43\":true,\"state_47\":true},{\"type\":\"person\",\"title\":\"Sue M. Hart\",\"avail\":true,\"age\":60,\"state_2\":true,\"state_5\":true,\"state_8\":true,\"state_11\":true,\"state_17\":true,\"state_21\":true,\"state_29\":true,\"state_33\":true,\"state_36\":true,\"state_40\":true,\"state_42\":true,\"state_43\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Steven Sanderson\",\"avail\":true,\"age\":93,\"date\":209174400000.0,\"state_11\":true,\"state_24\":true,\"state_28\":true,\"state_34\":true,\"state_42\":true,\"state_46\":true,\"state_49\":true}]},{\"type\":\"role\",\"title\":\"Pray staffs\"},{\"type\":\"role\",\"title\":\"Yell shares\",\"children\":[{\"type\":\"person\",\"title\":\"Molly Baker\",\"avail\":true,\"age\":36,\"state_5\":true,\"state_7\":true,\"state_11\":true,\"state_12\":true,\"state_17\":true,\"state_29\":true,\"state_30\":true,\"state_31\":true},{\"type\":\"person\",\"title\":\"Edward Rees\",\"avail\":true,\"age\":52,\"state_12\":true,\"state_14\":true,\"state_24\":true,\"state_30\":true,\"state_31\":true,\"state_32\":true,\"state_35\":true,\"state_37\":true,\"state_38\":true},{\"type\":\"person\",\"title\":\"Cameron H. Wilson\",\"avail\":true,\"age\":88,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\",\"state_2\":true,\"state_4\":true,\"state_5\":true,\"state_7\":true,\"state_8\":true,\"state_10\":true,\"state_20\":true,\"state_22\":true,\"state_24\":true,\"state_27\":true,\"state_30\":true,\"state_35\":true,\"state_38\":true,\"state_44\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Victor Ellison\",\"avail\":true,\"age\":24,\"remarks\":\"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\",\"state_11\":true,\"state_21\":true,\"state_29\":true,\"state_32\":true,\"state_36\":true,\"state_46\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Justin May\",\"avail\":true,\"age\":91,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_6\":true,\"state_12\":true,\"state_30\":true,\"state_32\":true,\"state_41\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Daryl Terry\",\"state\":\"s\",\"avail\":true,\"age\":58,\"state_10\":true,\"state_14\":true,\"state_17\":true,\"state_21\":true,\"state_34\":true,\"state_36\":true,\"state_44\":true,\"state_47\":true}]},{\"type\":\"role\",\"title\":\"Hang nobodies\",\"children\":[{\"type\":\"person\",\"title\":\"Diana Hill\",\"avail\":true,\"age\":87,\"date\":342316800000.0,\"state_6\":true,\"state_12\":true,\"state_15\":true,\"state_25\":true,\"state_28\":true,\"state_40\":true},{\"type\":\"person\",\"title\":\"Paul Turner\",\"avail\":true,\"age\":70,\"date\":99964800000.0,\"state_7\":true,\"state_14\":true,\"state_19\":true,\"state_23\":true,\"state_26\":true,\"state_27\":true,\"state_35\":true,\"state_41\":true,\"state_44\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Jennifer Fisher\",\"avail\":true,\"age\":32,\"state_3\":true,\"state_4\":true,\"state_5\":true,\"state_18\":true,\"state_22\":true,\"state_32\":true,\"state_42\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Deirdre F. McGrath\",\"avail\":true,\"age\":78,\"state_6\":true,\"state_15\":true,\"state_17\":true,\"state_22\":true,\"state_26\":true,\"state_36\":true,\"state_41\":true,\"state_47\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Simon S. North\",\"avail\":true,\"age\":29,\"state_4\":true,\"state_6\":true,\"state_7\":true,\"state_20\":true,\"state_22\":true,\"state_34\":true,\"state_40\":true}]},{\"type\":\"role\",\"title\":\"Sling walruses\",\"children\":[{\"type\":\"person\",\"title\":\"Brandon Poole\",\"state\":\"s\",\"avail\":true,\"age\":53,\"state_4\":true,\"state_6\":true,\"state_13\":true,\"state_15\":true,\"state_21\":true,\"state_26\":true,\"state_27\":true,\"state_30\":true,\"state_32\":true,\"state_41\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Chris Y. Dyer\",\"avail\":true,\"age\":48,\"date\":1644278400000.0,\"state_2\":true,\"state_7\":true,\"state_15\":true,\"state_16\":true,\"state_18\":true,\"state_31\":true,\"state_33\":true,\"state_47\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Joanne D. Miller\",\"avail\":true,\"age\":34,\"date\":106358400000.0,\"state_5\":true,\"state_11\":true,\"state_16\":true,\"state_24\":true,\"state_27\":true,\"state_39\":true,\"state_42\":true},{\"type\":\"person\",\"title\":\"Dominic Wright\",\"age\":48,\"state_9\":true,\"state_13\":true,\"state_22\":true,\"state_28\":true,\"state_29\":true,\"state_43\":true,\"state_45\":true},{\"type\":\"person\",\"title\":\"Jacob S. Stewart\",\"avail\":true,\"age\":34,\"date\":433382400000.0,\"state_1\":true,\"state_2\":true,\"state_4\":true,\"state_5\":true,\"state_6\":true,\"state_9\":true,\"state_10\":true,\"state_12\":true,\"state_13\":true,\"state_33\":true,\"state_40\":true,\"state_45\":true,\"state_49\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Emily Lee\",\"state\":\"h\",\"avail\":true,\"age\":96,\"date\":1275177600000.0,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_1\":true,\"state_14\":true,\"state_17\":true,\"state_19\":true,\"state_22\":true,\"state_24\":true,\"state_28\":true,\"state_34\":true,\"state_40\":true,\"state_44\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Brian J. Parr\",\"state\":\"s\",\"avail\":true,\"age\":29,\"remarks\":\"Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.\",\"state_2\":true,\"state_8\":true,\"state_9\":true,\"state_10\":true,\"state_14\":true,\"state_15\":true,\"state_16\":true,\"state_19\":true,\"state_33\":true,\"state_43\":true,\"state_44\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Victoria Duncan\",\"avail\":true,\"age\":62,\"state_6\":true,\"state_10\":true,\"state_11\":true,\"state_20\":true,\"state_22\":true,\"state_25\":true,\"state_26\":true,\"state_30\":true,\"state_33\":true,\"state_38\":true,\"state_40\":true,\"state_41\":true,\"state_44\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Sydney Terry\",\"age\":56,\"date\":344304000000.0,\"state_3\":true,\"state_10\":true,\"state_19\":true,\"state_20\":true,\"state_21\":true,\"state_22\":true,\"state_25\":true,\"state_36\":true,\"state_38\":true,\"state_41\":true,\"state_42\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Charles B. Walker\",\"state\":\"h\",\"avail\":true,\"age\":42,\"date\":1529539200000.0,\"state_16\":true,\"state_20\":true,\"state_21\":true,\"state_27\":true,\"state_32\":true,\"state_44\":true},{\"type\":\"person\",\"title\":\"Frank D. Manning\",\"state\":\"h\",\"avail\":true,\"age\":85,\"state_20\":true,\"state_25\":true,\"state_27\":true,\"state_29\":true,\"state_30\":true,\"state_38\":true,\"state_47\":true,\"state_48\":true,\"state_50\":true},{\"type\":\"person\",\"title\":\"Tracey MacLeod\",\"avail\":true,\"age\":94,\"state_1\":true,\"state_5\":true,\"state_9\":true,\"state_11\":true,\"state_20\":true,\"state_27\":true,\"state_28\":true,\"state_35\":true,\"state_39\":true,\"state_41\":true,\"state_45\":true,\"state_46\":true}]},{\"type\":\"role\",\"title\":\"Mow cicadas\",\"children\":[{\"type\":\"person\",\"title\":\"Andrea V. Gibson\",\"avail\":true,\"age\":40,\"date\":529804800000.0,\"state_17\":true,\"state_19\":true,\"state_21\":true,\"state_25\":true,\"state_39\":true,\"state_42\":true,\"state_43\":true},{\"type\":\"person\",\"title\":\"Charles C. Parsons\",\"avail\":true,\"age\":61,\"date\":411091200000.0,\"remarks\":\"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.\",\"state_1\":true,\"state_4\":true,\"state_13\":true,\"state_28\":true,\"state_32\":true,\"state_33\":true,\"state_36\":true,\"state_43\":true,\"state_44\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Austin R. Scott\",\"avail\":true,\"age\":86,\"date\":1352937600000.0,\"state_1\":true,\"state_6\":true,\"state_11\":true,\"state_13\":true,\"state_14\":true,\"state_17\":true,\"state_20\":true,\"state_24\":true,\"state_28\":true,\"state_29\":true,\"state_38\":true,\"state_41\":true,\"state_44\":true,\"state_48\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Una D. Arnold\",\"avail\":true,\"age\":90,\"date\":1025654400000.0,\"state_5\":true,\"state_9\":true,\"state_11\":true,\"state_16\":true,\"state_18\":true,\"state_36\":true,\"state_42\":true,\"state_44\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Felicity N. Berry\",\"state\":\"h\",\"avail\":true,\"age\":37,\"date\":1597363200000.0,\"remarks\":\"Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\",\"state_1\":true,\"state_8\":true,\"state_21\":true,\"state_32\":true,\"state_34\":true,\"state_38\":true,\"state_44\":true,\"state_46\":true},{\"type\":\"person\",\"title\":\"Elizabeth Walker\",\"avail\":true,\"age\":23,\"state_3\":true,\"state_6\":true,\"state_7\":true,\"state_10\":true,\"state_14\":true,\"state_15\":true,\"state_19\":true,\"state_22\":true,\"state_40\":true,\"state_48\":true},{\"type\":\"person\",\"title\":\"Theresa A. Knox\",\"avail\":true,\"age\":52,\"date\":1059350400000.0,\"state_4\":true,\"state_9\":true,\"state_13\":true,\"state_19\":true,\"state_21\":true,\"state_25\":true,\"state_37\":true,\"state_43\":true,\"state_49\":true},{\"type\":\"person\",\"title\":\"Zoe S. Tucker\",\"avail\":true,\"age\":43,\"state_1\":true,\"state_2\":true,\"state_6\":true,\"state_11\":true,\"state_12\":true,\"state_19\":true,\"state_28\":true,\"state_31\":true,\"state_35\":true,\"state_38\":true,\"state_41\":true}]}]}]}"
  },
  {
    "path": "docs/assets/skeleton.html",
    "content": "<html>\n  <head>\n    <style>\n      div.skeleton ul {\n        list-style-type: none;\n      }\n      div.skeleton li {\n        margin-bottom: 8px;\n      }\n      div.skeleton li span {\n        background-color: #eee;\n        color: #eee;\n        border-radius: 3px;\n      }\n    </style>\n  </head>\n  <body>\n    <div class=\"skeleton\">\n      <ul>\n        <li><span>Xxxx xx </span></li>\n        <li>\n          <ul>\n            <li><span>Xxxx xxx xxx</span></li>\n            <ul>\n              <li><span>Xxxx xxx</span></li>\n            </ul>\n            <li><span>Xxxx xx xx</span></li>\n          </ul>\n        </li>\n        <li><span>Xxxx </span></li>\n        <li>\n          <ul>\n            <li><span>xx xxx</span></li>\n            <ul>\n              <li><span>Xx xx xxx</span></li>\n            </ul>\n            <li><span>Xxx xx xxx</span></li>\n          </ul>\n        </li>\n      </ul>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "docs/demo/demo-custom.js",
    "content": "/**\n * Demo code for Wunderbaum (https://github.com/mar10/wunderbaum).\n *\n * Copyright (c) 2021-2025, Martin Wendt (https://wwWendt.de).\n */\n\n/* global mar10 */\n\ndocument.getElementById(\"demo-info\").innerHTML = `\nConvert and consume data from a custom endpoint\n(<a href=\"https://fakestoreapi.com/\" target=\"_blank\">Fake Store API</a>).\n`;\n\nnew mar10.Wunderbaum({\n  id: \"demo\",\n  element: document.getElementById(\"demo-tree\"),\n  source: { url: \"https://fakestoreapi.com/products/categories\" },\n  columns: [\n    { id: \"*\", title: \"Product\", width: \"250px\" },\n    {\n      id: \"price\",\n      title: \"Price ($)\",\n      width: \"80px\",\n      classes: \"wb-helper-end\",\n    },\n    { id: \"description\", title: \"Details\", width: \"*\" },\n  ],\n  columnsResizable: true,\n  types: {\n    category: { colspan: true },\n    electronics: { icon: \"bi bi-cpu\" },\n    jewelery: { icon: \"bi bi-gem\" },\n    \"men's clothing\": { icon: \"bi bi-gender-male\" },\n    \"women's clothing\": { icon: \"bi bi-gender-female\" },\n  },\n  receive: (e) => {\n    const parent = e.node;\n    const parentType = parent.isRootNode() ? \"root\" : parent.type;\n\n    switch (parentType) {\n      case \"root\":\n        // Initial request: we received the list of category names\n        return e.response.map((elem) => {\n          return {\n            title: elem,\n            type: \"category\",\n            refKey: elem,\n            lazy: true,\n          };\n        });\n      case \"category\":\n        // Lazy-load a category node:\n        return e.response.map((elem) => {\n          return {\n            title: elem.title,\n            type: parent.refKey,\n            price: elem.price,\n            description: elem.description,\n          };\n        });\n    }\n  },\n  lazyLoad: (e) => {\n    return {\n      url: `https://fakestoreapi.com/products/category/${e.node.refKey}`,\n    };\n  },\n  render: function (e) {\n    const node = e.node;\n\n    for (const col of Object.values(e.renderColInfosById)) {\n      switch (col.id) {\n        default:\n          // Assumption: we named column.id === node.data.NAME\n          col.elem.textContent = node.data[col.id];\n          break;\n      }\n    }\n  },\n});\n"
  },
  {
    "path": "docs/demo/demo-editable.js",
    "content": "/**\n * Demo code for Wunderbaum (https://github.com/mar10/wunderbaum).\n *\n * Copyright (c) 2021-2025, Martin Wendt (https://wwWendt.de).\n */\n/* global mar10 */\n/* eslint-disable no-console */\n\ndocument.getElementById(\"demo-info\").innerHTML = `\n A treegrid with embedded input controls (also renaming nodes, but no filter or d'n'd).\n Navigation mode: 'startRow'.\n`;\n\nnew mar10.Wunderbaum({\n  id: \"demo\",\n  element: document.getElementById(\"demo-tree\"),\n  debugLevel: 5,\n  connectTopBreadcrumb: \"output#parentPath\",\n  checkbox: true,\n  // fixedCol: true,\n  // navigationModeOption: \"row\",\n  navigationModeOption: \"startRow\",\n  // navigationModeOption: \"cell\",\n\n  // The JSON only contains a list of nested node dicts, but no types or\n  // column definitions:\n  source:\n    \"https://cdn.jsdelivr.net/gh/mar10/assets@master/wunderbaum/tree_department_M_p.json\",\n  types: {\n    department: { icon: \"bi bi-diagram-3\", colspan: true },\n    role: { icon: \"bi bi-microsoft-teams\", colspan: true },\n    person: { icon: \"bi bi-person\" },\n  },\n  // The `html` properties are shown as comments.\n  // If enabled, it would be used as markup, so `if (e.isNew) {...}` could be\n  // omitted in the `render` callback:\n  columns: [\n    {\n      title: \"Title\",\n      id: \"*\",\n      width: \"250px\",\n    },\n    {\n      title: \"Age\",\n      id: \"age\",\n      width: \"50px\",\n      classes: \"wb-helper-end\",\n      // \"html\": \"<input type=number min=0 tabindex='-1'>\",\n    },\n    {\n      title: \"Date\",\n      id: \"date\",\n      width: \"100px\",\n      classes: \"wb-helper-end\",\n      // \"html\": '<input type=date tabindex=\"-1\">',\n    },\n    {\n      title: \"Status\",\n      id: \"state\",\n      width: \"70px\",\n      classes: \"wb-helper-center\",\n      // \"html\": `<select tabindex=\"-1\">\n      //     <option value=\"h\">Happy</option>\n      //     <option value=\"s\">Sad</option>\n      //     </select>`\n    },\n    {\n      title: \"Avail.\",\n      id: \"avail\",\n      width: \"80px\",\n      classes: \"wb-helper-center\",\n      // \"html\": '<input type=checkbox tabindex=\"-1\">',\n    },\n    {\n      title: \"Remarks\",\n      id: \"remarks\",\n      width: \"*\",\n      // \"html\": \"<input type=text tabindex='-1'>\",\n\n      menu: true,\n    },\n  ],\n  columnsResizable: true,\n  columnsSortable: true,\n\n  edit: {\n    trigger: [\"clickActive\", \"F2\"], // \"macEnter\"],\n    select: true,\n    beforeEdit: function (e) {\n      // console.log(e.type, e);\n      // return e.node.type === \"person\";\n    },\n    edit: function (e) {\n      console.log(e.type, e);\n    },\n    apply: function (e) {\n      console.log(e.type, e);\n      // Simulate async storage that also validates:\n      return e.util.setTimeoutPromise(() => {\n        e.inputElem.setCustomValidity(\"\");\n        if (e.newValue.match(/.*\\d.*/)) {\n          e.inputElem.setCustomValidity(\"No numbers please.\");\n          return false;\n        }\n      }, 1000);\n    },\n  },\n  filter: {\n    mode: \"hide\",\n    autoExpand: true,\n    connect: {\n      inputElem: \"#filter-query\",\n      // modeButton: \"#filter-hide\",  // using a custom handler\n      nextButton: \"#filter-next\",\n      prevButton: \"#filter-prev\",\n      matchInfoElem: \"#filter-match-info\",\n    },\n  },\n  init: (e) => {},\n  // load: function (e) {\n  // },\n  buttonClick: function (e) {\n    console.log(e.type, e);\n    if (e.command === \"sort\") {\n      e.tree.sortByProperty({ colId: e.info.colId, updateColInfo: true });\n    }\n  },\n  change: function (e) {\n    const util = e.util;\n    const node = e.node;\n    const info = e.info;\n    const colId = info.colId;\n\n    this.logDebug(`change(${colId})`, util.getValueFromElem(e.inputElem, true));\n    // For demo purposes, simulate a backend delay:\n    return util.setTimeoutPromise(() => {\n      // Assumption: we named column.id === node.data.NAME\n\n      // We can hand-code and customize it like so:\n      // switch (colId) {\n      //   case \"author\":\n      //   case \"details\":\n      //   case \"price\":\n      //   case \"qty\":\n      //   case \"sale\": // checkbox control\n      //   case \"avail\": // checkbox control\n      //   case \"state\": // dropdown\n      //   case \"year\":\n      //     // e.node.data[colId] = e.inputValue;\n      //     // ... but this helper should work in most cases:\n      //     e.node.data[colId] = util.getValueFromElem(e.inputElem, true);\n      //     break;\n      // }\n\n      // ... but this helper should work in most cases:\n      node.data[colId] = util.getValueFromElem(e.inputElem, true);\n    }, 500);\n  },\n  render: function (e) {\n    // console.log(e.type, e.isNew, e);\n    const node = e.node;\n    const util = e.util;\n\n    // Render embedded input controls for all data columns\n    for (const col of Object.values(e.renderColInfosById)) {\n      // Assumption: we named column.id === node.data.NAME\n      const val = node.data[col.id];\n\n      switch (col.id) {\n        case \"author\":\n          if (e.isNew) {\n            col.elem.innerHTML = '<input type=\"text\" tabindex=\"-1\">';\n          }\n          util.setValueToElem(col.elem, val);\n          break;\n        case \"remarks\": // text control\n          if (e.isNew) {\n            col.elem.innerHTML = '<input type=\"text\" tabindex=\"-1\">';\n          }\n          util.setValueToElem(col.elem, val);\n          break;\n        // case \"details\": // text control\n        //   if (e.isNew) {\n        //     col.elem.innerHTML = '<input type=\"text\" tabindex=\"-1\">';\n        //   }\n        //   util.setValueToElem(col.elem, node.data.details);\n        //   break;\n        // case \"price\":\n        //   if (e.isNew) {\n        //     col.elem.innerHTML = '<input type=\"number\" min=\"0.00\" step=\"0.01\" tabindex=\"-1\">';\n        //   }\n        //   util.setValueToElem(col.elem, node.data.price.toFixed(2));\n        //   break;\n        case \"age\":\n          if (e.isNew) {\n            col.elem.innerHTML = '<input type=\"number\" min=\"0\" tabindex=\"-1\">';\n          }\n          util.setValueToElem(col.elem, val);\n          break;\n        case \"state\":\n          if (e.isNew) {\n            col.elem.innerHTML = `<select tabindex=\"-1\">\n                <option value=\"h\">Happy</option>\n                <option value=\"s\">Sad</option>\n                </select>`;\n          }\n          util.setValueToElem(col.elem, val);\n          break;\n        case \"avail\":\n          if (e.isNew) {\n            col.elem.innerHTML = '<input type=\"checkbox\" tabindex=\"-1\">';\n          }\n          util.setValueToElem(col.elem, val);\n          break;\n        // case \"qty\":\n        //   if (e.isNew) {\n        //     col.elem.innerHTML = '<input type=\"number\" min=\"0\" tabindex=\"-1\">';\n        //   }\n        //   util.setValueToElem(col.elem, val);\n        //   break;\n        // case \"sale\": // checkbox control\n        //   if (e.isNew) {\n        //     col.elem.innerHTML = '<input type=\"checkbox\" tabindex=\"-1\">';\n        //   }\n        //   // Cast value to bool, since we don't want tri-state behavior\n        //   util.setValueToElem(col.elem, !!val);\n        //   break;\n        case \"date\":\n          if (e.isNew) {\n            col.elem.innerHTML = '<input type=\"date\" tabindex=\"-1\">';\n          }\n          util.setValueToElem(col.elem, val);\n          break;\n        // case \"year\":\n        //   if (e.isNew) {\n        //     col.elem.innerHTML = '<input type=\"number\" max=\"9999\" tabindex=\"-1\">';\n        //   }\n        //   util.setValueToElem(col.elem, node.data.year);\n        //   break;\n        default:\n          // Assumption: we named column.id === node.data.NAME\n          col.elem.textContent = node.data[col.id];\n          break;\n      }\n    }\n  },\n});\n"
  },
  {
    "path": "docs/demo/demo-fixedcol.js",
    "content": "/**\n * Demo code for Wunderbaum (https://github.com/mar10/wunderbaum).\n *\n * Copyright (c) 2021-2025, Martin Wendt (https://wwWendt.de).\n */\n/* global mar10 */\n/* eslint-disable no-console */\n\ndocument.getElementById(\"demo-info\").innerHTML = `\n A treegrid with a fixed left column: Try horizontal scrolling...\n Navigation mode: 'cell'.\n`;\n\nnew mar10.Wunderbaum({\n  id: \"demo\",\n  element: document.getElementById(\"demo-tree\"),\n  // Columns- and types-definition are part of the Ajax response:\n  source:\n    // \"../../test/fixtures/tree_department_M_t_c.json\",\n    \"https://cdn.jsdelivr.net/gh/mar10/assets@master/wunderbaum/tree_department_M_t_c_comp.json\",\n  // \"https://cdn.jsdelivr.net/gh/mar10/assets@master/wunderbaum/fixture_department_1k_3_6_p.json\",\n  debugLevel: 5,\n  // header: false,\n  connectTopBreadcrumb: \"output#parentPath\",\n  // checkbox: true,\n  // minExpandLevel: 1,\n  fixedCol: true,\n  // columnsResizable: true,\n  navigationModeOption: \"cell\",\n  edit: {\n    trigger: [\"clickActive\", \"F2\", \"macEnter\"],\n    select: true,\n    beforeEdit: function (e) {\n      console.log(e.type, e);\n      // return false;\n    },\n    edit: function (e) {\n      console.log(e.type, e);\n    },\n    apply: function (e) {\n      console.log(e.type, e);\n      // Simulate async storage that also validates:\n      return e.util.setTimeoutPromise(() => {\n        e.inputElem.setCustomValidity(\"\");\n        if (e.newValue.match(/.*\\d.*/)) {\n          e.inputElem.setCustomValidity(\"No numbers please.\");\n          return false;\n        }\n      }, 1000);\n    },\n  },\n  filter: {\n    mode: \"hide\",\n    autoExpand: true,\n    connect: {\n      inputElem: \"#filter-query\",\n      // modeButton: \"#filter-hide\",  // using a custom handler\n      nextButton: \"#filter-next\",\n      prevButton: \"#filter-prev\",\n      matchInfoElem: \"#filter-match-info\",\n    },\n    // mode: \"dim\",\n  },\n  init: (e) => {\n    // e.tree.setFocus();\n  },\n  load: function (e) {\n    // e.tree.addChildren({ title: \"custom1\", classes: \"wb-error\" });\n  },\n  lazyLoad: function (e) {\n    console.log(e.type, e);\n    // return { url: \"../assets/json/ajax-lazy-products.json\" };\n    return new Promise((resolve, reject) => {\n      setTimeout(() => {\n        // reject(\"Epic fail\")\n        resolve({ url: \"../assets/json/ajax-lazy-products.json\" });\n      }, 1500);\n    });\n  },\n  buttonClick: function (e) {\n    console.log(e.type, e);\n    if (e.command === \"sort\") {\n      e.tree.sortByProperty({ colId: e.info.colId, updateColInfo: true });\n    } else if (e.command === \"menu\") {\n      // eslint-disable-next-line no-alert\n      alert(\"Menu clicked\");\n    }\n  },\n  change: function (e) {\n    const info = e.info;\n    const colId = info.colId;\n\n    console.log(e.type, e);\n    // For demo purposes, simulate a backend delay:\n    return e.util.setTimeoutPromise(() => {\n      // Assumption: we named column.id === node.data.NAME\n      switch (colId) {\n        case \"sale\":\n        case \"details\":\n          e.node.data[colId] = e.inputValue;\n          break;\n      }\n      // e.node.update()\n    }, 500);\n  },\n  render: function (e) {\n    // console.log(e.type, e.isNew, e);\n    const node = e.node;\n    const util = e.util;\n\n    for (const col of Object.values(e.renderColInfosById)) {\n      // Assumption: we named column.id === node.data.NAME\n      const val = node.data[col.id];\n\n      switch (col.id) {\n        case \"date\":\n          if (val) {\n            const dt = new Date(val);\n            col.elem.textContent = dt.toISOString().slice(0, 10);\n          } else {\n            col.elem.textContent = \"n.a.\";\n          }\n          break;\n        case \"mood\":\n          {\n            const map = { h: \"Happy\", s: \"Sad\" };\n            col.elem.textContent = map[val] || \"\";\n          }\n          break;\n        case \"price\":\n          col.elem.textContent = \"$ \" + val.toFixed(2);\n          break;\n        case \"qty\": // thousands separator\n          col.elem.textContent = val.toLocaleString();\n          break;\n        case \"details\": // text control\n          if (e.isNew) {\n            col.elem.innerHTML = \"<input type='text'>\";\n          }\n          util.setValueToElem(col.elem, val);\n          break;\n        default:\n          // Assumption: we named column.id === node.data.NAME\n          if (typeof val === \"boolean\") {\n            col.elem.textContent = val ? \"X\" : \"\";\n          } else {\n            col.elem.textContent = val;\n          }\n          break;\n      }\n    }\n  },\n});\n"
  },
  {
    "path": "docs/demo/demo-grid.js",
    "content": "/**\n * Demo code for Wunderbaum (https://github.com/mar10/wunderbaum).\n *\n * Copyright (c) 2021-2025, Martin Wendt (https://wwWendt.de).\n */\n/* global mar10 addCssImport */\n/* eslint-disable no-console */\n\ndocument.getElementById(\"demo-info\").innerHTML = `\n A readonly treegrid with renaming, 'checkbox: true', 'minExpandLevel: 1'.\n Navigation mode: 'row/cell'.\n <br>\n Click the <i class=\"bi bi-grid-3x3-gap\"></i> button to toggle navigation mode.\n`;\n\n// addCssImport(\n//   \"fontawesome6\",\n//   \"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css\"\n// );\n\nnew mar10.Wunderbaum({\n  id: \"demo\",\n  element: document.getElementById(\"demo-tree\"),\n  source: \"../assets/json/ajax-tree-products.json\",\n  debugLevel: 5,\n  connectTopBreadcrumb: \"output#parentPath\",\n  checkbox: true,\n  minExpandLevel: 1,\n  // iconMap: \"fontawesome6\",\n  // fixedCol: true,\n  // Types are sent as part of the source data:\n  navigationModeOption: \"startRow\",\n  types: {},\n  columns: [\n    { id: \"*\", title: \"Product\", width: \"250px\" },\n    {\n      id: \"author\",\n      title: \"Author\",\n      width: 1,\n      minWidth: \"100px\",\n    },\n    {\n      id: \"year\",\n      title: \"Year\",\n      width: \"50px\",\n      classes: \"wb-helper-end\",\n    },\n    {\n      id: \"qty\",\n      title: \"Qty\",\n      width: \"50px\",\n      classes: \"wb-helper-end\",\n    },\n    {\n      id: \"price\",\n      title: \"Price ($)\",\n      width: \"80px\",\n      classes: \"wb-helper-end\",\n    },\n    // In order to test horizontal scrolling, we need a fixed or at least minimal width:\n    { id: \"details\", title: \"Details\", width: 3, minWidth: \"200px\" },\n  ],\n  columnsResizable: true,\n  columnsSortable: true,\n  dnd: {\n    dragStart: (e) => {\n      if (e.node.type === \"folder\") {\n        return false;\n      }\n      e.event.dataTransfer.effectAllowed = \"all\";\n      return true;\n    },\n    dragEnter: (e) => {\n      if (e.node.type === \"folder\") {\n        e.event.dataTransfer.dropEffect = \"copy\";\n        return \"over\";\n      }\n      return [\"before\", \"after\"];\n    },\n    drop: (e) => {\n      console.log(\"Drop \" + e.sourceNode + \" => \" + e.region + \" \" + e.node);\n      e.sourceNode.moveTo(e.node, e.suggestedDropMode);\n    },\n  },\n  edit: {\n    trigger: [\"clickActive\", \"F2\", \"macEnter\"],\n    select: true,\n    beforeEdit: function (e) {\n      console.log(e.type, e);\n      // return false;\n    },\n    edit: function (e) {\n      console.log(e.type, e);\n    },\n    apply: function (e) {\n      console.log(e.type, e);\n      // Simulate async storage that also validates:\n      return e.util.setTimeoutPromise(() => {\n        e.inputElem.setCustomValidity(\"\");\n        if (e.newValue.match(/.*\\d.*/)) {\n          e.inputElem.setCustomValidity(\"No numbers please.\");\n          return false;\n        }\n      }, 1000);\n    },\n  },\n  filter: {\n    mode: \"hide\",\n    autoExpand: true,\n    connect: {\n      inputElem: \"#filter-query\",\n      // modeButton: \"#filter-hide\",  // using a custom handler\n      nextButton: \"#filter-next\",\n      prevButton: \"#filter-prev\",\n      matchInfoElem: \"#filter-match-info\",\n    },\n    // mode: \"dim\",\n  },\n  init: (e) => {\n    console.log(e.type, e);\n    e.tree.findFirst(\"More...\").setExpanded();\n    e.tree\n      .findFirst((n) => {\n        return n.data.qty === 21;\n      })\n      .setActive();\n    // e.tree.setFocus();\n  },\n  load: (e) => {\n    console.log(e.type, e);\n    // e.tree.addChildren({ title: \"custom1\", classes: \"wb-error\" });\n  },\n  buttonClick: function (e) {\n    console.log(e.type, e);\n    if (e.command === \"sort\") {\n      e.tree.sortByProperty({ colId: e.info.colId, updateColInfo: true });\n    }\n  },\n  lazyLoad: function (e) {\n    console.log(e.type, e);\n    // return { url: \"../assets/json/ajax-lazy-products.json\" };\n    return new Promise((resolve, reject) => {\n      setTimeout(() => {\n        // reject(\"Epic fail\")\n        // resolve({ url: \"../assets/json/ajax-lazy-products.json\", params: {foo: 42} , options:{method: \"PUT\"}});\n        resolve({ url: \"../assets/json/ajax-lazy-products.json\" });\n      }, 1500);\n    });\n  },\n  render: function (e) {\n    // console.log(e.type, e.isNew, e);\n    const node = e.node;\n    // const util = e.util;\n\n    for (const col of Object.values(e.renderColInfosById)) {\n      switch (col.id) {\n        default:\n          // Assumption: we named column.id === node.data.NAME\n          col.elem.textContent = node.data[col.id];\n          break;\n      }\n    }\n  },\n});\n"
  },
  {
    "path": "docs/demo/demo-large.js",
    "content": "/**\n * Demo code for Wunderbaum (https://github.com/mar10/wunderbaum).\n *\n * Copyright (c) 2021-2025, Martin Wendt (https://wwWendt.de).\n */\n/* global mar10 */\n/* eslint-disable no-console */\n\ndocument.getElementById(\"demo-info\").innerHTML = `\n A treegrid with about 100,000 nodes.\n Navigation mode: 'row'.\n `;\n\nnew mar10.Wunderbaum({\n  id: \"demo\",\n  element: document.getElementById(\"demo-tree\"),\n  debugLevel: 5,\n  connectTopBreadcrumb: \"output#parentPath\",\n  // checkbox: false,\n  // minExpandLevel: 1,\n  // fixedCol: true,\n  navigationModeOption: \"row\",\n  source:\n    // \"../../test/fixtures/tree_store_XL_t_c_comp.json\",\n    \"https://cdn.jsdelivr.net/gh/mar10/assets@master/wunderbaum/tree_store_XL_t_c_comp.json\",\n  columnsResizable: true,\n  columnsSortable: true,\n  dnd: {\n    dragStart: (e) => {\n      if (e.node.type === \"folder\") {\n        return false;\n      }\n      e.event.dataTransfer.effectAllowed = \"all\";\n      return true;\n    },\n    dragEnter: (e) => {\n      if (e.node.type === \"folder\") {\n        e.event.dataTransfer.dropEffect = \"copy\";\n        return \"over\";\n      }\n      return [\"before\", \"after\"];\n    },\n    drop: (e) => {\n      console.log(\"Drop \" + e.sourceNode + \" => \" + e.region + \" \" + e.node);\n      e.sourceNode.moveTo(e.node, e.suggestedDropMode);\n    },\n  },\n  edit: {\n    trigger: [\"clickActive\", \"F2\", \"macEnter\"],\n    select: true,\n    beforeEdit: function (e) {\n      console.log(e.type, e);\n      // return false;\n    },\n    edit: function (e) {\n      console.log(e.type, e);\n    },\n    apply: function (e) {\n      console.log(e.type, e);\n      // Simulate async storage that also validates:\n      return e.util.setTimeoutPromise(() => {\n        e.inputElem.setCustomValidity(\"\");\n        if (e.newValue.match(/.*\\d.*/)) {\n          e.inputElem.setCustomValidity(\"No numbers please.\");\n          return false;\n        }\n      }, 1000);\n    },\n  },\n  filter: {\n    mode: \"hide\",\n    autoExpand: true,\n    connect: {\n      inputElem: \"#filter-query\",\n      // modeButton: \"#filter-hide\",  // using a custom handler\n      nextButton: \"#filter-next\",\n      prevButton: \"#filter-prev\",\n      matchInfoElem: \"#filter-match-info\",\n    },\n    // mode: \"dim\",\n  },\n  init: (e) => {\n    // e.tree.setFocus();\n  },\n  load: function (e) {\n    // e.tree.addChildren({ title: \"custom1\", classes: \"wb-error\" });\n  },\n  lazyLoad: function (e) {\n    console.log(e.type, e);\n    // return { url: \"../assets/json/ajax-lazy-products.json\" };\n    return new Promise((resolve, reject) => {\n      setTimeout(() => {\n        // reject(\"Epic fail\")\n        resolve({ url: \"../assets/json/ajax-lazy-products.json\" });\n      }, 1500);\n    });\n  },\n  buttonClick: function (e) {\n    console.log(e.type, e);\n    if (e.command === \"sort\") {\n      e.tree.sortByProperty({ colId: e.info.colId, updateColInfo: true });\n    } else if (e.command === \"menu\") {\n      // eslint-disable-next-line no-alert\n      alert(\"Menu clicked\");\n    }\n  },\n  change: function (e) {\n    const info = e.info;\n    const colId = info.colId;\n\n    console.log(e.type, e);\n    // For demo purposes, simulate a backend delay:\n    return e.util.setTimeoutPromise(() => {\n      // Assumption: we named column.id === node.data.NAME\n      switch (colId) {\n        case \"sale\":\n        case \"details\":\n          e.node.data[colId] = e.inputValue;\n          break;\n      }\n      // e.node.update()\n    }, 500);\n  },\n  render: function (e) {\n    // console.log(e.type, e.isNew, e);\n    const node = e.node;\n    const util = e.util;\n\n    for (const col of Object.values(e.renderColInfosById)) {\n      switch (col.id) {\n        case \"price\":\n          col.elem.textContent = \"$ \" + node.data.price.toFixed(2);\n          break;\n        case \"year\": // date stamp\n          col.elem.textContent = new Date(node.data.year).getFullYear();\n          break;\n        case \"qty\": // thousands separator\n          col.elem.textContent = node.data.qty.toLocaleString();\n          break;\n        case \"sale\": // checkbox control\n          if (e.isNew) {\n            col.elem.innerHTML = \"<input type='checkbox'>\";\n          }\n          // Cast value to bool, since we don't want tri-state behavior\n          util.setValueToElem(col.elem, !!node.data.sale);\n          break;\n        // case \"details\": // text control\n        //   if (e.isNew) {\n        //     col.elem.innerHTML = \"<input type='text'>\";\n        //   }\n        //   util.setValueToElem(col.elem, node.data.details);\n        // break;\n        default:\n          // Assumption: we named column.id === node.data.NAME\n          col.elem.textContent = node.data[col.id];\n          break;\n      }\n    }\n  },\n});\n"
  },
  {
    "path": "docs/demo/demo-minimal.js",
    "content": "/**\n * Demo code for Wunderbaum (https://github.com/mar10/wunderbaum).\n *\n * Copyright (c) 2021-2025, Martin Wendt (https://wwWendt.de).\n */\n/* global mar10 */\n\ndocument.getElementById(\"demo-info\").innerHTML = `\nA simple tree, no frills (filter will not work).\nSource node list is inlined, instead of using Ajax.\n`;\n\nnew mar10.Wunderbaum({\n  id: \"demo\",\n  element: document.getElementById(\"demo-tree\"),\n  source: [\n    {\n      title: \"Node 1\",\n      expanded: true,\n      children: [{ title: \"Node 1.1\" }, { title: \"Node 1.2\" }],\n    },\n    { title: \"Node 2\" },\n  ],\n  activate: (e) => {\n    alert(`Thank you for activating ${e.node}.`); // eslint-disable-line no-alert\n  },\n});\n"
  },
  {
    "path": "docs/demo/demo-plain.js",
    "content": "/**\n * Demo code for Wunderbaum (https://github.com/mar10/wunderbaum).\n *\n * Copyright (c) 2021-2025, Martin Wendt (https://wwWendt.de).\n */\n/* global mar10 */\n/* eslint-disable no-console */\n\ndocument.getElementById(\"demo-info\").innerHTML = `\nA simple tree with filter, rename, drag'n'drop, lazy-loading. Auto-focus on init.<br>\n100k nodes: click <i class=\"bi bi-plus-slash-minus\"></i> to expand them all.\n`;\n\nnew mar10.Wunderbaum({\n  id: \"demo\",\n  element: document.getElementById(\"demo-tree\"),\n  // header: \"Plain Tree\",\n  source:\n    // \"../../test/fixtures/tree_fmea_XL_t_flat_comp.json\",\n    \"https://cdn.jsdelivr.net/gh/mar10/assets@master/wunderbaum/tree_fmea_XL_t_flat_comp.json\",\n  debugLevel: 5,\n  connectTopBreadcrumb: \"output#parentPath\",\n  checkbox: true,\n  // minExpandLevel: 1,\n  types: {},\n  dnd: {\n    dragStart: (e) => {\n      if (e.node.type === \"folder\") {\n        return false;\n      }\n      e.event.dataTransfer.effectAllowed = \"all\";\n      return true;\n    },\n    dragEnter: (e) => {\n      if (e.node.type === \"folder\") {\n        e.event.dataTransfer.dropEffect = \"copy\";\n        return \"over\";\n      }\n      return [\"before\", \"after\"];\n    },\n    drop: (e) => {\n      console.log(\n        `Drop ${e.sourceNode} => ${e.suggestedDropEffect} ${e.suggestedDropMode} ${e.node}`,\n        e\n      );\n      e.sourceNode.moveTo(e.node, e.suggestedDropMode);\n    },\n  },\n  edit: {\n    trigger: [\"clickActive\", \"F2\", \"macEnter\"],\n    select: true,\n    beforeEdit: function (e) {\n      console.log(e.type, e);\n      // return false;\n    },\n    edit: function (e) {\n      console.log(e.type, e);\n    },\n    apply: function (e) {\n      console.log(e.type, e);\n      // Simulate async storage that also validates:\n      return new Promise((resolve, reject) => {\n        setTimeout(() => {\n          e.inputElem.setCustomValidity(\"\");\n          if (e.newValue.match(/.*\\d.*/)) {\n            e.inputElem.setCustomValidity(\"No numbers please.\");\n            reject();\n          } else {\n            resolve();\n          }\n        }, 500);\n      });\n      // return new e.util.setTimeoutPromise(() => {\n      //   e.inputElem.setCustomValidity(\"\");\n      //   if (e.newValue.match(/.*\\d.*/)) {\n      //     e.inputElem.setCustomValidity(\"No numbers please.\");\n      //     return false;\n      //   }\n      // }, 500);\n    },\n  },\n  filter: {\n    mode: \"hide\",\n    autoExpand: true,\n    connect: {\n      inputElem: \"#filter-query\",\n      // modeButton: \"#filter-hide\",  // using a custom handler\n      nextButton: \"#filter-next\",\n      prevButton: \"#filter-prev\",\n      matchInfoElem: \"#filter-match-info\",\n    },\n  },\n  iconBadge: (e) => {\n    const node = e.node;\n    if (node.children?.length > 0 && !node.expanded && node.subMatchCount > 0) {\n      return {\n        badge: node.subMatchCount,\n        badgeTooltip: `${node.subMatchCount} matches`,\n        badgeClass: \"match-count\",\n      };\n    }\n  },\n  init: (e) => {\n    // Tree was loaded and rendered. Now set focus:\n    const node = e.tree.findFirst(\"Crazies not provided\");\n    node.setActive();\n    e.tree.setFocus();\n  },\n  lazyLoad: function (e) {\n    // User expanded a lazy node for the first time.\n    console.log(e.type, e);\n    // A typical handler would return a URL that should be fetched:\n    // return { url: \"../assets/json/ajax-lazy-products.json\" };\n    // ... Simulate a long-running request\n    return new Promise((resolve, reject) => {\n      setTimeout(() => {\n        reject(\"Epic fail\");\n        // resolve({ url: \"../assets/json/ajax-lazy-products.json\" });\n      }, 1500);\n    });\n  },\n});\n"
  },
  {
    "path": "docs/demo/demo-readonly.js",
    "content": "/**\n * Demo code for Wunderbaum (https://github.com/mar10/wunderbaum).\n *\n * Copyright (c) 2021-2025, Martin Wendt (https://wwWendt.de).\n */\n/* global mar10 */\n/* eslint-disable no-console */\n\ndocument.getElementById(\"demo-info\").innerHTML = `\n A read-only treegrid (no d'n'd).\nNavigation mode: 'cell'.\n `;\n\nnew mar10.Wunderbaum({\n  id: \"demo\",\n  element: document.getElementById(\"demo-tree\"),\n  debugLevel: 5,\n  connectTopBreadcrumb: \"output#parentPath\",\n  // checkbox: true,\n  // fixedCol: true,\n  navigationModeOption: \"cell\",\n  // The JSON only contains a list of nested node dicts (no types or columns):\n  source:\n    \"https://cdn.jsdelivr.net/gh/mar10/assets@master/wunderbaum/tree_department_M_p.json\",\n  types: {\n    department: { icon: \"bi bi-diagram-3\", colspan: true },\n    role: { icon: \"bi bi-microsoft-teams\", colspan: true },\n    person: { icon: \"bi bi-person\" },\n  },\n  columns: [\n    { title: \"Title\", id: \"*\", width: \"250px\" },\n    { title: \"Age\", id: \"age\", width: \"60px\", classes: \"wb-helper-end\" },\n    { title: \"Date\", id: \"date\", width: \"90px\", classes: \"wb-helper-end\" },\n    {\n      title: \"Status\",\n      id: \"state\",\n      width: \"70px\",\n      classes: \"wb-helper-center\",\n    },\n    {\n      title: \"Avail.\",\n      id: \"avail\",\n      width: \"60px\",\n      classes: \"wb-helper-center\",\n    },\n    { title: \"Remarks\", id: \"remarks\", width: \"*\" },\n  ],\n  columnsResizable: true,\n  columnsSortable: true,\n  filter: {\n    mode: \"hide\",\n    autoExpand: true,\n    connect: {\n      inputElem: \"#filter-query\",\n      // modeButton: \"#filter-hide\",  // using a custom handler\n      nextButton: \"#filter-next\",\n      prevButton: \"#filter-prev\",\n      matchInfoElem: \"#filter-match-info\",\n    },\n  },\n  init: (e) => {},\n  buttonClick: function (e) {\n    console.log(e.type, e);\n    if (e.command === \"sort\") {\n      e.tree.sortByProperty({ colId: e.info.colId, updateColInfo: true });\n    }\n  },\n  render: function (e) {\n    // console.log(e.type, e.isNew, e);\n    const node = e.node;\n    // const util = e.util;\n\n    // Render formatted data values for all columns\n    for (const col of Object.values(e.renderColInfosById)) {\n      // Assumption: we named column.id === node.data.NAME\n      const val = node.data[col.id];\n\n      switch (col.id) {\n        case \"date\":\n          if (val) {\n            const dt = new Date(val);\n            col.elem.textContent = dt.toISOString().slice(0, 10);\n          } else {\n            col.elem.textContent = \"n.a.\";\n          }\n          break;\n        case \"state\":\n          {\n            const map = { h: \"Happy\", s: \"Sad\" };\n            col.elem.textContent = map[val] || \"n.a.\";\n          }\n          break;\n        case \"avail\":\n          col.elem.textContent = val ? \"Yes\" : \"No\";\n          break;\n        default:\n          // Assumption: we named column.id === node.data.NAME\n          col.elem.textContent = val;\n          break;\n      }\n    }\n  },\n});\n"
  },
  {
    "path": "docs/demo/demo-select.js",
    "content": "/**\n * Demo code for Wunderbaum (https://github.com/mar10/wunderbaum).\n *\n * Copyright (c) 2021-2025, Martin Wendt (https://wwWendt.de).\n */\n/* global mar10, addCssImport */\n/* eslint-disable no-console */\n\ndocument.getElementById(\"demo-info\").innerHTML = `\nHierarchical selection demo (<code>selectMode: 'hier'</code>) .\nUses icons from <a href=\"https://fontawesome.com/\">Font Awesome</a>.<br>\nCollapse nodes to test select counter badges.\n`;\n\n// document.getElementById(\"selectMode\").classList.remove(\"hidden\");\n\naddCssImport(\n  \"fontawesome6\",\n  \"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css\"\n);\n\nnew mar10.Wunderbaum({\n  id: \"demo\",\n  element: document.getElementById(\"demo-tree\"),\n  header: \"Select Tree\",\n  // selectMode: \"single\",\n  // iconMap: \"fontawesome6\",\n  selectMode: \"hier\",\n  checkbox: true,\n  // minExpandLevel: 1,\n  types: {},\n\n  source: [\n    {\n      title: \"n1\",\n      expanded: true,\n      children: [\n        { title: \"n1.1\" },\n        { title: \"n1.2\" },\n        { title: \"n1.3\", lazy: true },\n      ],\n    },\n    {\n      title: \"n2\",\n      expanded: true,\n      children: [\n        { title: \"n2.1 (selected)\", selected: true },\n        { title: \"n2.2\", selected: false },\n        { title: \"n2.3\", selected: null },\n      ],\n    },\n    {\n      title: \"n3\",\n      expanded: true,\n      children: [\n        {\n          title: \"n3.1\",\n          expanded: true,\n          children: [\n            { title: \"n3.1.1 (unselectable)\", unselectable: true },\n            { title: \"n3.1.2 (unselectable)\", unselectable: true },\n            { title: \"n3.1.3\" },\n          ],\n        },\n        {\n          title: \"n3.3\",\n          expanded: true,\n          children: [\n            { title: \"n3.2.1 (unselectable)\", unselectable: true },\n            {\n              title: \"n3.2.2 (unselectable, selected)\",\n              unselectable: true,\n              selected: true,\n            },\n            { title: \"n3.2.3\" },\n            { title: \"n3.2.4 (selected)\", selected: true },\n          ],\n        },\n        {\n          title: \"n3.4 (radiogroup)\",\n          expanded: true,\n          radiogroup: true,\n          checkbox: false,\n          children: [\n            {\n              title: \"n3.4.1 (unselectable: true)\",\n              unselectable: true,\n            },\n            {\n              title: \"n3.4.2 (selected)\",\n              selected: true,\n            },\n            { title: \"n3.4.3\" },\n          ],\n        },\n      ],\n    },\n  ],\n  debugLevel: 5,\n  connectTopBreadcrumb: \"output#parentPath\",\n\n  init: (e) => {\n    // Tree was loaded and rendered. Now set focus:\n    e.tree.setFocus();\n  },\n  lazyLoad: function (e) {\n    return e.util.setTimeoutPromise(() => {\n      return { url: \"../assets/json/ajax-lazy-products.json\" };\n    }, 4000);\n  },\n  filter: {\n    mode: \"hide\",\n    autoExpand: true,\n    connect: {\n      inputElem: \"#filter-query\",\n      // modeButton: \"#filter-hide\",  // using a custom handler\n      nextButton: \"#filter-next\",\n      prevButton: \"#filter-prev\",\n      matchInfoElem: \"#filter-match-info\",\n    },\n  },\n  iconBadge: (e) => {\n    const node = e.node;\n    if (node.expanded || !node.children) {\n      return;\n    }\n    const count = node.children && node.getSelectedNodes()?.length;\n    return {\n      badge: count,\n      badgeTooltip: `${count} selected`,\n      badgeClass: \"selection-count\",\n    };\n  },\n\n  beforeSelect: function (e) {\n    console.log(e.type, e);\n  },\n  select: function (e) {\n    console.log(e.type, e, e.tree.getSelectedNodes());\n    document.getElementById(\"tree-info-custom\").textContent =\n      `Selected: ${e.tree.getSelectedNodes(true)}`;\n  },\n});\n"
  },
  {
    "path": "docs/demo/demo-welcome.js",
    "content": "/**\n * Demo code for Wunderbaum (https://github.com/mar10/wunderbaum).\n *\n * Copyright (c) 2021-2025, Martin Wendt (https://wwWendt.de).\n */\n/* global mar10 */\n\ndocument.getElementById(\"demo-tree\").innerHTML = `\n<div class=\"welcome-page\">\n    <h3>Demo Application</h3>\n    <br>\n    <ul>\n    <li>Select a demo in the navigation tree on the left side.</li>\n    <li>Use buttons (<i class=\"bi bi-list-check\"></i>, <i class=\"bi bi-plus-slash-minus\"></i>, etc.)\n        and checkboxes above the demo trees to apply commands.</li>\n    <li>Click the <u>View Source Code</u> link below the demo trees to view\n        implementation details.</li>\n    <li>The navigation tree on the left of this demo app is also implemented\n        with Wunderbaum. <br>\n        Check the\n        <a href=\"./navigation.js\" target=\"_blank\">source code of this demo app</a>\n        for some ideas how to implement GUI controls for the tree.</li>\n    </ul>\n</div>\n`;\n"
  },
  {
    "path": "docs/demo/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n    <title>Demo &vert; Wunderbaum</title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n\n    <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"favicon.ico\" />\n\n    <link rel=\"stylesheet\" href=\"style.css\" />\n    <link\n      rel=\"stylesheet\"\n      href=\"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css\"\n    />\n\n    <script type=\"text/javascript\">\n      const is_local = !!window.location.hostname.match(/127.0.0.1/);\n      const folder = is_local ? \"build\" : \"dist\";\n      if (is_local) {\n        // Use current developer code\n        document.title += \" (DEV)\";\n        document.write(\n          `<link rel=\"stylesheet\" href=\"../../${folder}/wunderbaum.css\" />`\n        );\n        document.write(\n          `<script defer src=\"../../${folder}/wunderbaum.umd.js\"\\>\\</script\\>`\n        );\n      } else {\n        // Use latest published release\n        document.write(\n          `<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/gh/mar10/wunderbaum@main/dist/wunderbaum.css\" />`\n        );\n        document.write(\n          `<script defer src=\"https://cdn.jsdelivr.net/gh/mar10/wunderbaum@main/dist/wunderbaum.umd.min.js\"\\>\\</script\\>`\n        );\n      }\n    </script>\n\n    <script defer src=\"navigation.js\"></script>\n  </head>\n\n  <body>\n    <div class=\"grid-wrapper\">\n      <div class=\"menu\">\n        <h1>\n          <a class=\"neutral\" href=\"./\">\n            <img\n              src=\"../assets/tree_logo_32.png\"\n              class=\"logo\"\n              width=\"32\"\n              height=\"32\"\n              alt=\"wunderbaum-logo\"\n            />\n            Wunderbaum\n            <output class=\"tree-version\">v?.?.?</output>\n          </a>\n        </h1>\n      </div>\n      <nav class=\"nav\">\n        <div id=\"nav-tree\" class=\"wb-skeleton wb-initializing\"></div>\n      </nav>\n      <div class=\"flex-container\">\n        <section class=\"header\">\n          <output id=\"demo-info\" class=\"hide-on-welcome hint\"></output>\n          <hr class=\"hide-on-welcome\" />\n          <span id=\"demo-modifiers\" class=\"hide-on-welcome hidden\">\n            Modifiers:\n            <button\n              type=\"button\"\n              id=\"show-checkboxes\"\n              class=\"toggle-button\"\n              title=\"Show checkboxes\"\n            >\n              <i class=\"bi bi-list-check\"></i>\n            </button>\n            <button\n              type=\"button\"\n              id=\"disable-tree\"\n              class=\"toggle-button\"\n              title=\"Disable tree\"\n            >\n              <i class=\"bi bi-pause-circle\"></i>\n            </button>\n            <button\n              type=\"button\"\n              id=\"enable-cellnav\"\n              class=\"toggle-button\"\n              title=\"Enable cell-navigation mode (treegrids only)\"\n            >\n              <i class=\"bi bi-grid-3x3-gap\"></i>\n            </button>\n            &vert;\n            <label\n              ><input\n                type=\"checkbox\"\n                class=\"auto-class-setter\"\n                data-classname=\"wb-rainbow\"\n              />\n              wb-rainbow</label\n            >,\n            <label\n              ><input\n                type=\"checkbox\"\n                class=\"auto-class-setter\"\n                data-classname=\"wb-alternate\"\n              />\n              wb-alternate</label\n            >,\n            <label\n              ><input\n                type=\"checkbox\"\n                class=\"auto-class-setter\"\n                data-classname=\"wb-checkbox-auto-hide\"\n              />\n              wb-checkbox-auto-hide</label\n            >,\n            <label\n              ><input\n                type=\"checkbox\"\n                class=\"auto-class-setter\"\n                data-classname=\"wb-fade-expander\"\n              />\n              wb-fade-expander</label\n            >\n          </span>\n          <br class=\"hide-on-welcome hidden\" />\n          <!-- <hr> -->\n          <span id=\"demo-controls\" class=\"hide-on-welcome hidden\">\n            <!-- <button id=\"expand-all\" class=\"icon-button\"><i class=\"bi bi-plus-square\"></i></button> -->\n            <!-- <button id=\"collapse-all\" class=\"icon-button\"><i class=\"bi bi-dash-square\"></i></button> -->\n            <button\n              id=\"toggle-expand-all\"\n              class=\"icon-button\"\n              title=\"Expand/Collapse all\"\n            >\n              <i class=\"bi bi-plus-slash-minus\"></i>\n            </button>\n            <button\n              id=\"toggle-select-all\"\n              class=\"icon-button\"\n              title=\"(De)Select all\"\n            >\n              <i class=\"bi bi-check2-square\"></i>\n            </button>\n            &vert;\n            <label for=\"filter-query\">Filter:</label>\n            <input\n              id=\"filter-query\"\n              type=\"search\"\n              placeholder=\"Enter search query\"\n              autofocus\n            />\n            <button\n              type=\"button\"\n              id=\"filter-hide\"\n              title=\"Hide/dim unmatched nodes\"\n            >\n              <i class=\"bi bi-funnel\"></i>\n            </button>\n            <button type=\"button\" id=\"filter-prev\" title=\"Show previous match\">\n              <i class=\"bi bi-chevron-up\"></i>\n            </button>\n            <button type=\"button\" id=\"filter-next\" title=\"Show next match\">\n              <i class=\"bi bi-chevron-down\"></i>\n            </button>\n            &nbsp;\n            <output id=\"filter-match-info\" class=\"hide-on-welcome hidden\"\n              >&nbsp;</output\n            >\n\n            <!-- <select id=\"selectMode\" class=\"hide-on-init\">\n          <option value=\"single\">selectMode: 'single'</option>\n          <option value=\"multi\">selectMode: 'multi'</option>\n          <option value=\"hier\">selectMode: 'hier'</option>\n        </select> -->\n          </span>\n          <span\n            id=\"demo-modifiers-custom\"\n            class=\"hide-on-welcome clear-on-init hidden\"\n          >\n          </span>\n        </section>\n\n        <main class=\"view\">\n          <output id=\"parentPath\" class=\"hide-on-welcome hidden\"></output>\n          <div id=\"demo-tree\" class=\"wb-skeleton wb-initializing wb-no-select\">\n            <!-- class=\"wb-rainbow wb-skeleton wb-initializing wb-alternate wb-checkbox-auto-hide wb-fade-expander\"> -->\n            <h1>Wunderbaum Demo</h1>\n            <p>Loading&hellip;</p>\n          </div>\n        </main>\n\n        <section class=\"footer\">\n          <p>\n            <a id=\"sourceLink\" href=\"\" target=\"_blank\">\n              <i class=\"wb-icon bi bi-file-code\"></i> View Source Code\n            </a>\n          </p>\n          <span id=\"demo-stats\" class=\"hide-on-welcome hidden\">\n            <output id=\"tree-info\"></output>\n            <output id=\"tree-info-custom\" class=\"clear-on-init\"></output>\n          </span>\n        </section>\n      </div>\n\n      <div class=\"statbar\">\n        <a href=\"https://github.com/mar10/wunderbaum\" class=\"neutral\"\n          >Wunderbaum</a\n        >\n        <output class=\"tree-version\">v?.?.?</output>\n        &copy; 2021-2025 Martin Wendt\n      </div>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "docs/demo/navigation.js",
    "content": "/* global mar10 */\n/* eslint-disable no-console */\n\ndocument.addEventListener(\"DOMContentLoaded\", (event) => {\n  /* ---------------------------------------------------------------------------\n   * Navigation\n   */\n  const is_local = !!window.location.hostname.match(/127.0.0.1/);\n  const util = mar10.Wunderbaum.util;\n\n  const navTree = new mar10.Wunderbaum({\n    id: \"navigation\",\n    header: \"Wunderbaum\",\n    element: document.querySelector(\"#nav-tree\"),\n    // checkbox: false,\n    minExpandLevel: 2,\n    debugLevel: 2,\n    types: {\n      link: { icon: \"bi bi-link-45deg\", classes: \"wb-helper-link\" },\n      show: { icon: \"bi bi-file-code\" },\n    },\n    source: [\n      {\n        title: \"GitHub Project\",\n        type: \"link\",\n        icon: \"bi bi-github\",\n        href: \"https://github.com/mar10/wunderbaum\",\n      },\n      {\n        title: \"User Guide\",\n        type: \"link\",\n        href: \"../index.html\",\n      },\n      {\n        title: \"API Reference\",\n        type: \"link\",\n        href: \"../api\",\n      },\n      {\n        title: \"Unit Tests\",\n        type: \"link\",\n        href: is_local\n          ? \"../../test/unit/test-dev.html\"\n          : \"../unittest/test-dist.html\",\n      },\n      {\n        title: \"Demo\",\n        type: \"folder\",\n        expanded: true,\n        children: [\n          {\n            title: \"Welcome\",\n            type: \"show\",\n            key: \"demo-welcome\",\n            icon: \"bi bi-info-square\",\n          },\n          { title: \"Minimal\", type: \"show\", key: \"demo-minimal\" },\n          { title: \"Plain\", type: \"show\", key: \"demo-plain\" },\n          { title: \"Select\", type: \"show\", key: \"demo-select\" },\n          { title: \"Treegrid\", type: \"show\", key: \"demo-grid\" },\n          { title: \"Large Grid\", type: \"show\", key: \"demo-large\" },\n          { title: \"Readonly\", type: \"show\", key: \"demo-readonly\" },\n          { title: \"Editable\", type: \"show\", key: \"demo-editable\" },\n          { title: \"Fixed Column\", type: \"show\", key: \"demo-fixedcol\" },\n          { title: \"Custom Data\", type: \"show\", key: \"demo-custom\" },\n        ],\n      },\n    ],\n    init: (e) => {\n      // We do not get a 'hashchange' event on page load, so we call directly:\n      reconfigureTree(window.location.hash || \"demo-welcome\");\n    },\n    keydown: (e) => {\n      const node = e.tree.getActiveNode();\n\n      if (e.eventName === \"Enter\" && node && node.type === \"show\") {\n        window.location.hash = node.key;\n      }\n    },\n    click: (e) => {\n      switch (e.node.type) {\n        case \"link\":\n          window.open(e.node.data.href);\n          break;\n        case \"show\":\n          // Trigger a 'hashchange' event:\n          window.location.hash = e.node.key;\n          break;\n      }\n    },\n  });\n\n  /* ---------------------------------------------------------------------------\n   * Demo Behavior\n   */\n\n  window.addEventListener(\"hashchange\", (e) => {\n    console.log(e.type, e);\n    reconfigureTree(window.location.hash);\n  });\n\n  document.querySelectorAll(\"output.tree-version\").forEach((elem) => {\n    elem.textContent = mar10.Wunderbaum.version;\n  });\n\n  /**\n   * Handle checkboxes that set global modifier classes, e.g. `wb-rainbow`, ...\n   */\n  util.onEvent(document, \"change\", \"input.auto-class-setter\", (e) => {\n    document\n      .getElementById(\"demo-tree\")\n      .classList.toggle(e.target.dataset.classname, e.target.checked);\n  });\n\n  toggleButtonCreate(\"#filter-hide\", (e, flag) => {\n    const tree = mar10.Wunderbaum.getTree(\"demo\");\n    tree.setOption(\"filter.mode\", flag ? \"hide\" : \"dim\");\n  });\n  toggleButtonCreate(\"#show-checkboxes\", (e, flag) => {\n    const tree = mar10.Wunderbaum.getTree(\"demo\");\n    tree.setOption(\"checkbox\", !!flag);\n  });\n  toggleButtonCreate(\"#disable-tree\", (e, flag) => {\n    const tree = mar10.Wunderbaum.getTree(\"demo\");\n    tree.setOption(\"enabled\", !flag);\n  });\n  toggleButtonCreate(\"#enable-cellnav\", (e, flag) => {\n    const tree = mar10.Wunderbaum.getTree(\"demo\");\n    if (tree.isRowNav() && tree.isGrid()) {\n      tree.setCellNav();\n    } else {\n      tree.setCellNav(false);\n    }\n    return tree.isCellNav();\n  });\n  document\n    .querySelector(\"#toggle-expand-all\")\n    .addEventListener(\"click\", (e) => {\n      const tree = mar10.Wunderbaum.getTree(\"demo\");\n      tree.expandAll(!tree.getFirstChild().isExpanded());\n    });\n  document\n    .querySelector(\"#toggle-select-all\")\n    .addEventListener(\"click\", (e) => {\n      const tree = mar10.Wunderbaum.getTree(\"demo\");\n      const label = tree.logTime(`selectAll()`);\n      tree.toggleSelect();\n      // tree.selectAll(!tree.getFirstChild().isSelected());\n      tree.logTimeEnd(label);\n    });\n  /* Update info pane every second. This is fast and we handle exceptions, so\n     'evil' setInterval() should be Ok here. */\n  const STATUS_UPDATE_INTERVAL = 1_000;\n  setInterval(() => {\n    try {\n      const demoTree = mar10.Wunderbaum.getTree(\"demo\");\n      showStatus(demoTree);\n    } catch (error) {\n      console.error(\"showStatus() failed\", error);\n    }\n  }, STATUS_UPDATE_INTERVAL);\n});\n\n/** */\nfunction addCssImport(tag, url) {\n  let linkElem = document.querySelector(`link[data-tag=\"${tag}\"]`);\n  if (!linkElem) {\n    linkElem = document.createElement(\"link\");\n    linkElem.setAttribute(\"rel\", \"stylesheet\");\n    linkElem.setAttribute(\"href\", url);\n    linkElem.setAttribute(\"data-tag\", tag);\n    document.head.appendChild(linkElem);\n  }\n  return linkElem;\n}\n\n/**\n * Toggle button\n */\nfunction toggleButtonCreate(selector, onChange) {\n  const buttonElem = document.querySelector(selector);\n  buttonElem.classList.add(\"toggle-button\");\n  buttonElem.addEventListener(\"click\", (e) => {\n    buttonElem.classList.toggle(\"checked\");\n    const res = onChange(e, buttonElem.classList.contains(\"checked\"));\n    if (typeof res === \"boolean\") {\n      buttonElem.classList.toggle(\"checked\", res);\n    }\n  });\n}\n\n/**\n *\n */\nfunction loadScript(\n  url,\n  async = true,\n  module = true,\n  type = \"text/javascript\",\n  destroyExisting = true\n) {\n  return new Promise((resolve, reject) => {\n    console.log(`Loading script ${url}...`);\n    // Update address of 'View Source Code' link:\n    const sourceLink = document.getElementById(\"sourceLink\");\n    sourceLink.setAttribute(\"href\", url);\n    // Remove previously loaded demo scripts and event listeners:\n    if (destroyExisting) {\n      document.querySelectorAll(\"script.demo-case-handler\").forEach((elem) => {\n        console.log(\"Remove old script:\", elem);\n        elem.remove();\n      });\n    }\n    // const scriptElem = document.querySelector(\"#demo-tree-script\");\n    const scriptElem = document.createElement(\"script\");\n    if (module) {\n      scriptElem.setAttribute(\"type\", \"module\");\n    }\n    scriptElem.setAttribute(\"type\", type);\n    scriptElem.setAttribute(\"async\", async);\n    scriptElem.classList.add(\"demo-case-handler\");\n    document.body.appendChild(scriptElem);\n\n    scriptElem.setAttribute(\"src\", url);\n\n    scriptElem.addEventListener(\"load\", (e) => {\n      console.log(`Loading script ${url} done.`);\n      resolve(e);\n    });\n    scriptElem.addEventListener(\"error\", (e) => {\n      console.error(\"Loading script %s... ERROR:\", url, e);\n      reject(e);\n    });\n  });\n}\n\n/**\n *\n * @param {*} options\n */\nfunction reconfigureTree(tag = null) {\n  const navTree = mar10.Wunderbaum.getTree(\"navigation\");\n  let demoTree = mar10.Wunderbaum.getTree(\"demo\");\n  const detailsElem = document.getElementById(\"demo-info\");\n\n  console.info(\"reconfigureTree(%s), tree=%s\", tag, demoTree, demoTree);\n\n  if (tag == null) {\n    tag = window.location.hash;\n  }\n  tag = tag.replace(/^#/, \"\");\n  tag = tag || \"demo-welcome\";\n  const isWelcome = tag === \"demo-welcome\";\n  const label = `reconfigureTree(${tag})`;\n  console.time(label);\n\n  window.location.hash = tag;\n\n  detailsElem.classList.remove(\"error\");\n  detailsElem.textContent = `Loading demo '${tag}'...`;\n  // Elements that are hidden from the initial welcome page:\n  document.querySelectorAll(\".hide-on-welcome\").forEach((elem) => {\n    elem.classList.toggle(\"hidden\", isWelcome);\n  });\n  // Elements that are hidden on every page change (need to explicitly show by demo code):\n  document.querySelectorAll(\".hide-on-init\").forEach((elem) => {\n    elem.classList.add(\"hidden\");\n  });\n  document.querySelectorAll(\".clear-on-init\").forEach((elem) => {\n    elem.innerHTML = \"\";\n  });\n\n  demoTree?.destroy();\n\n  demoTree?.element.classList.add(\"wb-initializing\");\n\n  const url = `./${tag}.js`;\n  navTree.setActiveNode(tag);\n\n  loadScript(url)\n    .then(() => {\n      demoTree = mar10.Wunderbaum.getTree(\"demo\");\n      console.debug(\"Script %s was run. tree:\", url, demoTree);\n      if (!demoTree) {\n        detailsElem.innerHTML = \"&nbsp;\";\n        console.timeEnd(label);\n        return;\n      }\n\n      // Update GUI controls from current tree settings.\n      demoTree.ready.then(() => {\n        console.timeEnd(label);\n        // console.info(\"Reloaded tree is initialized!\")\n        document\n          .getElementById(\"show-checkboxes\")\n          .classList.toggle(\"checked\", !!demoTree.getOption(\"checkbox\"));\n        document\n          .getElementById(\"filter-hide\")\n          .classList.toggle(\n            \"checked\",\n            demoTree.getOption(\"filter.mode\") === \"hide\"\n          );\n        document\n          .getElementById(\"enable-cellnav\")\n          .classList.toggle(\n            \"checked\",\n            demoTree.isGrid() && demoTree.isRowNav()\n          );\n      });\n    })\n    .catch((e) => {\n      detailsElem.classList.add(\"error\");\n      detailsElem.innerHTML = `${e}`;\n    });\n}\n\n/**\n *\n * @param {*} tree\n * @param {*} options\n */\nfunction showStatus(tree) {\n  // const tree = mar10.Wunderbaum.getTree(\"demo\");\n  const info = document.querySelector(\"#tree-info\");\n  const nodeListElem = document.querySelector(\"#demo-tree .wb-node-list\");\n  if (!tree || !nodeListElem) {\n    info.textContent = \"n.a.\";\n    return;\n  }\n  const elemCount = nodeListElem.childElementCount;\n  const activeNode = tree.getActiveNode();\n  const focusNode = tree.getFocusNode();\n  const focusNodeInfo =\n    activeNode && focusNode === activeNode\n      ? \" (has focus)\"\n      : \", Focus: \" + focusNode;\n  const msg = `Nodes: ${tree.count().toLocaleString()}, rows: ${tree\n    .count(true)\n    .toLocaleString()}, rendered: ${elemCount}.\n      Active: ${activeNode}${focusNodeInfo}\n      `;\n\n  info.textContent = msg;\n  tree._check();\n}\n"
  },
  {
    "path": "docs/demo/style.css",
    "content": "body {\n  --font-color: darkslategray;\n  --font-color-header: whitesmoke;\n  --bg-color-dark: #707070;\n  /* --bg-color-dark: #7895cb; */\n  --bg-color-dimmed: whitesmoke;\n  --bg-color-light: white;\n  --hint-color: lightyellow;\n  --link-color: #1d47be;\n  --error-color: red;\n  --border-radius: 4px;\n}\n\n* {\n  box-sizing: border-box;\n  padding: 0;\n  margin: 0;\n}\n\nul {\n  padding: revert;\n}\n\nbody {\n  font-family:\n    \"Segoe UI\", Candara, \"Bitstream Vera Sans\", \"DejaVu Sans\",\n    \"Bitstream Vera Sans\", \"Trebuchet MS\", Verdana, \"Verdana Ref\", sans-serif;\n  background-color: var(--bg-color-dark);\n  color: var(--font-color);\n  /* `<!DOCTYPE html>` switches to standard mode, which would define\n  100% as content height. We want 100% to interpreted as viewport height: */\n  height: 100%;\n  /* prevent scrollbars, which would break `100vh` */\n  overflow: hidden;\n}\n\nimg.logo {\n  height: 1em;\n  vertical-align: text-bottom;\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.5);\n  padding: 3px;\n  background-color: var(--bg-color-dimmed);\n  border-radius: 2px;\n}\n\ndiv.grid-wrapper {\n  display: grid;\n  width: 100vw;\n  width: 100dvw;\n  /* 100vw minus width of scrollbar */\n  height: 100vh;\n  height: 100dvh;\n  /* 100vh minus height of address bar */\n  grid-template-columns: 1fr 4fr;\n  grid-template-rows: 3em 6em auto 5em 1em;\n  padding: 5px;\n  grid-gap: 2px;\n}\n\ndiv.grid-wrapper div.menu {\n  background-color: var(--bg-color-dark);\n  color: var(--font-color-header);\n  grid-column: 1 / span 2;\n  grid-row: 1;\n}\n\ndiv.grid-wrapper nav.nav {\n  grid-column: 1;\n  grid-row: 2 / 5;\n  /* Needed for fixed columns: embedded tree 100% width should not stretch the grid layout: */\n  overflow: hidden;\n}\n\ndiv.grid-wrapper div.flex-container {\n  grid-column: 2;\n  grid-row: 2 / 5;\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n  overflow: hidden;\n}\n\nsection.header {\n  border-top-left-radius: var(--border-radius);\n  border-top-right-radius: var(--border-radius);\n  background-color: var(--bg-color-light);\n  padding: 5px;\n  font-size: 90%;\n  /* min-height: 20px; */\n  max-height: 100px;\n}\n\nmain.view {\n  background-color: var(--bg-color-light);\n  min-height: 4px;\n  /* Needed for fixed columns: embedded tree 100% width should not stretch the grid layout: */\n  overflow: hidden;\n  flex-grow: 1;\n}\n\nsection.footer {\n  padding: 5px;\n  font-size: 90%;\n  background-color: var(--bg-color-dimmed);\n  border-bottom-left-radius: var(--border-radius);\n  border-bottom-right-radius: var(--border-radius);\n  /* min-height: 20px;   */\n  max-height: 100px;\n}\n\ndiv.grid-wrapper div.statbar {\n  grid-column: 1 / span 2;\n  grid-row: 5;\n  text-align: right;\n  font-size: 80%;\n  padding: 1px 4px;\n  color: var(--font-color-header);\n}\n\n/* Suppress system focus border. */\ndiv.wunderbaum:focus-visible {\n  outline-style: none;\n}\n\ndiv#demo-tree {\n  /* fill parent container */\n  height: calc(100% - 18px);\n  /* Leave some space for the blue focus outline*/\n  /* padding: 5px;  */\n}\n\ndiv#nav-tree {\n  background-color: var(--bg-color-dimmed);\n  /* background-color: transparent; */\n  overflow: hidden;\n  /* keep background color outside round borders */\n  border: none;\n}\n\n/* Show tree skeleton while initializing. */\ndiv.wunderbaum.wb-skeleton.wb-initializing {\n  background-position-y: 20px;\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJsAAAC+CAYAAAAiAH0JAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAdHSURBVHhe7d1PiCRXHcDxfu9VdTLd1TU5JKLGECVK/mhY/AMRwYuHCMkGT4KEoAcvi8GIOQo5KAkeRIjiRRGEaI4qRgVR0DUnFT0sMYEQDXhRYwLZdPdUb3dV9fNV5gdZnd7JTk/n1/Wqvx/YnffeZbp7vvOHqtdVPQAAALSekY9HFEVxfVmW76rrWlbiYIzppWm6yLLsOVlCS6yMbTwe2/DhfAjt4977w8WIOOdeC9F9Os/z38gSWqCJ6ghr7XerqooytEb4JtkPj/1X0+l0X5bQAitjWywWK9djEoKz4XnIDG0QfVSIB7FBDbFBDbFBDbFBDbFBDbFBDbFBzZHYvJ/tWWuuk2nUkuHwHTJEC6z6ybYfYrtRxlGzzt0uQ7TAkdiM2ft3WH5WptGy1vaWRfFbmaIFVv7NliTJN8IXK0QXJ2PMIjz+x8LzOJAltMBx+9nOlGX5iUj3s13MsuwHsgQAAAAAAAC81a54nK1NxuNxYq19qKqqe5fLpaziaiVJ0hx/PDcajV6Qpa2IIrbpdPpQWZbfivWthW3gnHshTdP7BoPB87KkLootRiG0uwntdMJvhPctFov3yHQrooiN0E6veQ23/SdIFLGhG4gNaogNaogNaogNaogNaogNaogNalofm/ezM87ZO2WKU0gGgwdkuBWtj82YvQvLpX9GpjiFejb7kQy3Iopfo2maXmjeNYX1Oef+1e/3/yPTrYhli9G1IbbHq6o6y3nSkwuhNVuMHsjz/LwsAQAAAAAAYLM4UrqmoijunM/nN3XpuJ9cbqzIsuwtOR5HbGuYTCYfXC6XP63r+mZZ6gxr7UH4dy5JkicHg8FGv5OIbQ3j8fjPVVV9WKad05xxCMHtj0ajsSxtBFuM1hBCk1E3NVcbLctSZptDbFBDbFBDbFBDbFBDbFBDbFBDbFBDbFBDbCfk/exGY8xIpp2Vjka3yXBjiO3krgn/ksNhd5lebyjDjSG2EzJm70Xn3Ksy7aTm3Ki/dOkvMt0YYltD+DX6JWvtP2XaKeF5zcLz+0IIbipLG8OujzUVRfGR+Xx+Swf3s02zLPulLAEAAAAAAODqRHGcbTweX2OMeXSXr8/WHANLkuTZ8PzP5Xn+iixHJYrYptPpI2VZfo0LAb5+Fc5fjEaj+2QalShOV4XQ7iK0Q+Gn+10yjE4UsRHaG2J+LTgRDzXEBjXEBjXEBjXEBjXEBjXEBjXEBjWtj41bQP4fY0YH3n9KZlFpfWzcAvJ/mV5vMjTmZzKNShS/Rvv9/u+bXQ/oNTs/npZhdGLZYpRaa79SluW9u3qe9LItRl/O8/yiLAMAAAAAAKAdrnicrSiKO8qy/FhzHyMNcrmmWZZlT8oSOmZlbCG0dy8Wi/Pe+5s1D6KG4Ern3KNJknx9MBhs/k5d2KqVp6uqqnpkuVyqhtYIny8Nn/er4fO/TZbQIVeKTUb6Qmydv8XiroriRDy6gdightightightightightightig5khs3s+ud86+V6ZbkWbZR2WIDln1k23uvZ/IeCv8cvmyDNEhR2IzZm/iXPKSTNU1tx80Zfl3maJDVv7NZq19MHzR/6T9Xk25/eBnwufu5O0Vd91x+9neWZblLcr72cosy/4gSwAAAAAAAEAsYrk+254x5vtVVbXm+mzNccHmwnzh8Xwuz/NXZRnHiCK26XT6zbIsH25LaJdL0/SHo9HoszLFMaLYYhRCu7WNoTXCT9vbZIg3EUVsbQ2t0ebH1jZRxIZuIDaoITaoITaoITaoITaoITaoITaoITaoiSI2a9v7MNv82NomilcqSZKntN9WeDVk58dTMsWbiGWLkXXOfb65BWRzzd02aELr9/tP13X97TzPuQgwAAAAAADAboviOFsbFUVxdj6ff6jL70Fozo70+/1fDwaDjVzGjNjWMJlM7q/r+nvL5XIoS50VgnstTdNPDofDP8rS2jixt4YQ2cO7EFojPM/9qqq+KNNTIbY1aF2Nsy029XyJDWqIDWqIDWqIDWqIDWqIDWqIDWqIDWqI7YS8n52x1rxdpjvBOPf+A+9vkunaiO3kXvS+t1vX0PX+H+H/U9+Wk9hO6PAWmW6nYkuce3lozCWZro3Y1nN/kiQX2vhe1k2S98X+znv/oCydCluM1lQUxQ3z+Xx/B/azvTIYDC7KEgAAAAAAkYnm0EdRFP3FYpG25ZJZ2uQSXfVwODz1wdVtiSK28XichQ8/ruv67l29V1QTm3Pu+TA8m+f53w5X4xLFGYTwQj9eVdXOhtZonnt4DW4Nw58crsQnitjCi7xTuyyOE/NrEUVsu/wTrUs4EQ81xAY1xAY1xAY1xAY1xAY1xAY1rY/N+1lzSo1vijeYA++djKMSwxfxA87ZO2QMY5orXt5zOIlL62MzZu8Z73t/lenOs8ZMh8b8XKZRieLXU5IkTxhjdnNv0WXCa+Cdc0/INDox7Wc7u1gs7tnx/WzPDYfD78gSAAAAAMSq1/svLQc8FjMNXjkAAAAASUVORK5CYII=);\n  background-repeat: no-repeat;\n}\n\ndiv.wunderbaum span.wb-badge {\n  &.selection-count {\n    color: white;\n    background-color: green;\n  }\n\n  &.match-count {\n    color: darkgreen;\n    background-color: #e0e0e0;\n  }\n}\n\ndiv.welcome-page {\n  padding: 4px 4px;\n}\n\noutput.error {\n  color: var(--error-color);\n}\n\noutput.hint {\n  display: block;\n  width: 100%;\n  padding: 1px 4px;\n  margin: -2px -1px 0 -4px;\n  color: var(--font-color);\n  background-color: var(--hint-color);\n  font-style: italic;\n}\n\noutput.tree-version {\n  font-size: 40%;\n  font-family: \"Courier New\", Courier, monospace;\n  font-weight: lighter;\n}\n\noutput#parentPath:not(.hidden) {\n  font-size: 80%;\n  display: block;\n  padding: 1px 3px;\n  height: 18px;\n  background-color: var(--bg-color-light);\n}\n\n.hide-on-welcome.hidden,\n.hide-on-init.hidden {\n  display: none;\n}\n\nhr {\n  margin: 1px 0;\n  border: none;\n  background-color: var(--font-color);\n  height: 1px;\n}\n\na {\n  text-decoration: none;\n  color: var(--link-color);\n}\n\na:hover,\na:active {\n  text-decoration: underline;\n}\n\na.neutral,\na.neutral:hover,\na.neutral:active {\n  text-decoration: none;\n  color: unset;\n}\n\nbutton.icon-button,\nbutton.toggle-button {\n  border: 1px solid var(--bg-color-light);\n  border-radius: 3px;\n  background-color: var(--bg-color-light);\n  color: var(--link-color);\n  padding: 1px 2px;\n}\n\nbutton.icon-button:hover,\nbutton.toggle-button:hover {\n  border-color: var(--link-color);\n}\n\nbutton.toggle-button.checked {\n  background-color: var(--link-color);\n  color: var(--bg-color-light);\n}\n"
  },
  {
    "path": "docs/googlecc7a2a5f2bb40f68.html",
    "content": "google-site-verification: googlecc7a2a5f2bb40f68.html"
  },
  {
    "path": "docs/index.md",
    "content": "# User Guide\n\n[![GitHub version](https://img.shields.io/github/v/release/mar10/wunderbaum?display_name=tag&sort=semver)](https://github.com/mar10/wunderbaum/releases/latest)\n\n> A modern JavaScript tree/treegrid control.\n\n!!! info\n\n    Wunderbaum has beta status:\n    API, Markup, Stylesheet, etc. are still subject to change.\n\n- [Quick Start](tutorial/quick_start.md)\n- [API Reference](https://mar10.github.io/wunderbaum/api/index.html){:target=\"\\_blank\"}\n- [Online Demo](https://mar10.github.io/wunderbaum/demo/){:target=\"\\_blank\"}\n- [Source Code on GitHub](https://github.com/mar10/wunderbaum){:target=\"\\_blank\"}\n\n![logo](assets/teaser_1.png)\n\n- Supports drag and drop, editing, filtering, sorting, and multi-selection.\n- Written in TypeScript, transpiled to ES6 (esm & umd).\n- Performant handling of _big_ data structures.\n- Provide an object oriented API.\n- Framework agnostic.\n- Zero dependencies.\n- Keyboard support.\n"
  },
  {
    "path": "docs/tutorial/concepts.md",
    "content": "# Concepts\n\nThis document describes some general concepts of Wunderbaum.\n\n## Design Goals\n\n- Implement a **treegrid** control with emphasis on \"tree\".<br>\n  Depending on the number of columns and nesting depth, Wunderbaum can also be\n  used as a **plain tree**, **plain grid**, or a **simple list** control.\n- **Performant** and efficient handling of **big data structures**.\n- Use modern technologies with **zero dependencies** (except for icon fonts you\n  may want to use).<br>\n  Drop legacy support (IE, jQuery, ...).\n- Robust, consistent handling of parallel, asynchronous behavior.\n- Built-in support for\n  <!-- [aria](https://www.w3.org/TR/wai-aria-1.1/), -->\n  [drag and drop](tutorial_dnd.md),\n  [editing](tutorial_edit.md),\n  [filtering](tutorial_filter.md),\n  [multi-selection](tutorial_select.md).\n- Fully [controllable using the keyboard](tutorial_keyboard.md).\n- Framework agnostic.\n- Good documentation.\n<!-- - Decent test coverage. -->\n- Written in TypeScript, transpiled to JavaScript ES6 with type hints (.esm & .umd).\n\n## Main Concepts\n\nWe have a tree **data model** as the backbone, i.e. an instance of the\n`Wunderbaum` class that contains a hierarchical structure of `WunderbaumNode`\nobjects.\n\nA node may be active, selected, focused, and/or hovered.\nThese **node states are independent**, so one node can have all, some, or none\nof these states at the same time. See [[FAQ]] 'What statuses can a node have?'.\n\nThis structure is initialized on startup from a JavaScript data structure, an\nAjax JSON response or a generator function.\n\nThe tree's data model can be accessed and modified using an extensive\n**object oriented API** like `tree.getNodeByKey()`, `node.setTitle()`,\nor `node.setExpanded()`.\n\nThe rectangular, scrollable area on the page, that contains the (potentially\nmuch larger) tree is called **viewport**.<br>\nHTML markup is **rendered on demand**, i.e. only for nodes that are visible\ninside the _viewport_.<br>\nAlso children of collapsed parent nodes don't have HTML elements.<br>\nThis concept allows to hold a _huge_ data model (100k+ nodes) in the frontend,\nwhile only having a few HTML elements materialized in the DOM.\nDevelopers should not manipulate the html directly, but change the data model\nand then call `tree.update()` or `node.update()` if needed.<br>\nDue to lazy rendering, it is not possible to bind events to all node HTML\nelements directly. However this is rarely necessary, since Wunderbaum offers\nevent handlers like `click`, `dblclick`, and `keypress`.\nUse event delegation otherwise.\n\nA tree is usually set up for **lazy loading**:\nFor one thing, the tree initialization may be delayed to an asynchronous Ajax\nrequest. This will result in a fast page load, and an empty tree displaying a\nspinner icon until the data arrives.<br>\nAdditionally, single child nodes may be marked 'lazy'. These nodes will generate\nAjax requests when expanded for the first time.\nLazy loading allows to present hierarchical structures of infinite size in an\nefficient way. But since neither all DOM elements nor even the complete tree\ndata model is available in the browser, API functions like `tree.getNodeByKey()`\nor `node.findAll()` may not work as expected.\n\nSome API functions are potentially **asynchronous**. For example `node.setExpanded()`\non a lazy node may have to issue an Ajax request, wait for its response and then\nscroll and render new nodes.\nThese functions generally return a\n[`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise),\nso handling deferred responses is easy:\n\n```js\nnode.setExpanded().then(() => {\n  alert(\"expand has finished\");\n});\n```\n\nor\n\n```js\nawait tree.expandAll();\nalert(\"expand has finished\");\n```\n\nActivities and state changes generate **events**. Event handlers are used\nto implement behavior:\n\n```js\nconst tree = new Wunderbaum({\n  // ...\n  activate: (e) => {\n    console.log(\"Node was activated:\", e.node);\n  },\n  change: (e) => {\n    console.log(\"Grid data was modified:\", e);\n  },\n  render: (e) => {\n    // e.node was rendered. We may now modify the markup...\n  },\n});\n```\n"
  },
  {
    "path": "docs/tutorial/contribute.md",
    "content": "# Contributors Guide\n\nFirst off: thank you for your contribution :heart: <br>\nThis open source project would not be possible without your support!\n\nThere are many ways how you can help:\n\n- Use and test the library. Provide constructive feedback.\n- Spread the word: Star this GitHub project, share links, or mention it if you\n  find it useful.\n- Improve the documentation.\n- Report - or fix - bugs (see below).\n- Suggest - or implement - new features (see below).\n- Donate.\n\n## Report Bugs\n\nIssues can be reported in the [bug tracker](https://github.com/mar10/wunderbaum/issues).\n\n!!! info\n\n    Try your best to make fixing as easy as possible.\n    Do not assume that bugs are fixed, just because they are reported:\n    Please understand that issues are likely to be closed, if they are hard to\n    reproduce.\n\nA bug report should contain:\n\n- A short description of the problem.\n- A [minimal, reproducible example](https://stackoverflow.com/help/minimal-reproducible-example):\n  - See here for [a wunderbaum triage template](https://github.com/mar10/wunderbaum/blob/main/test/triage/issue_000.html). <br>\n    Copy and rename this file, then edit it to reproduce the issue.\n    It can be opened directly in the browser.\n  - See here for [a wunderbaum JS Bin template](https://jsbin.com/lecasinava/edit?html,js,output).\n    Copy and edit this template to reproduce the issue.\n- The expected result.\n- The actual result.\n- The version of the library.\n- The version of the browser.\n\nOf course a\n[pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)\nis the most welcomed form of contribution. 😉<br>\nDo not forget to add an entry to the `CHANGELOG.md`.\n\n## Request New Features\n\nFeatures can be requested and discussed in the [bug tracker](https://github.com/mar10/wunderbaum/issues),\nor - often more adequate - in the [discussion forum](https://github.com/mar10/wunderbaum/discussions).\n\n!!! info\n\n    Please understand that feature requests sometimes are rejected due to the lack\n    of resources, or because they do not fit into the _greater plan_ or paradigm.<br>\n    This does not mean that the proposal is bad, so do not feel offended.\n\nIf you plan to contribute a feature via a\n[pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)\nwe highly recommend to discuss the approach beforehand to avoid effort.\n\nKeep in mind that a feature implementation also includes tests, documentation,\nand updates to the demo page.\n\n## Development\n\n### Edit TypeScript sources\n\ninstall node.js 18+\nCheckout the project from GiHub, then\n\n```bash\n$ cd path/to/project\n$ corepack enable\n$ corepack install\n```\n```bash\n$ cd path/to/project\n$ yarn\n$ yarn dev\n```\n\nYou can now edit the files in `.../wunderbaum/src` folder.\nTypeScript and SCSS files are automatically transpiled to the `.../wunderbaum/build` folder.\n\nReformat according to the style guide, run unit tests, build, or compile a\nversion using these commands:\n\n```bash\n$ yarn format\n$ yarn test\n```\n\n!!! note\n\n    Don't forget to call `yarn format` regularly and before committing:\n    Formatting errors will be rejected by the CI pipeline.\n\n### Edit Documentation\n\nThe documentation is written in Markdown and can be found in the `docs` folder.\n\nThe User Guide is generated using [MkDocs](https://www.mkdocs.org/) and the\nAPI documentation is generated using [TypeDoc](https://typedoc.org/).\n\n**API Documentation**\n\nThe API reference is generated from the TypeScript sources by TypeDoc and the\nresulting files are stored in the `docs/api` folder.\n\nThis is done by the build script or manually by running:\n\n```bash\n$ yarn api_docs\n```\n\n**User Guide**\n\nThe user guide (i.e. tutorial) is written in Markdown and can be found in the\n`docs/tutorial` folder.\nIt is rendered to HTML using MkDocs by a GitHub action and published as GitHub\npages every time we commit.\n\n!!! note\n\n    In order to generate the User Guide documentation locally, we need to have\n    [Python](https://www.python.org/) and\n    [pipenv](https://pipenv.pypa.io/en/stable/index.html) installed.\n\n    Then install the required packages:\n\n    ```bash\n    $ cd path/to/project\n    $ pipenv install\n    ```\n\nRun the following command to start the MkDocs server:\n\n```bash\n$ yarn dev_mkdocs\n```\n\nYou can now edit files in the `docs/tutorial` folder and see the changes in the\nbrowser.\n\n### Release\n\nFor a local test build, run the following commands:\n\n```bash\n$ yarn build\n```\n\nA new version is released by creating a new tag in the format `vX.Y.Z` and\n\n```bash\n$ grunt yabs:release:patch\n```\n"
  },
  {
    "path": "docs/tutorial/migrate.md",
    "content": "# Migrate from Fancytree to Wunderbaum\n\n## What has Changed?\n\n**Main Changes to [Fancytree](https://github.com/mar10/fancytree/):**\n\n- Written in TypeScript, transpiled to JavaScript ES6 with type hints (.esm & .umd).\n- Removed dependecy on jQuery and jQuery UI.\n- Dropped support for Internet Explorer.\n- Markup is now `<div>` based, instead of `<ul>/<li>` and `<table>`.\n- Grid layout is now built-in standard. A plain tree is only a special case thereof.\n- New viewport concept (implies a fixed header and a scrollable body).\n- 'Clone' suppport is now built-in standard (i.e. support for duplicate\n  `refKey`s in addition to unique `key`s).\n- Built-in html5 drag'n'drop.\n- Titles are always XSS-safe now (former explicit `escapeTitles: true`).\n- 'folder' is no longer a special built-in node type. Instead, the application\n  can define any number of node types.\n\n**Missing Features (as of today)**\n\n- Persistence\n<!-- - Built-in ARIA -->\n\n## Migration Guide\n\nMany general concepts from Fancytree are still the same, see the [Concepts](concepts.md)\nfor a general overview.\n\nEspecially the rendering model and grid support has changed significantly, however.\n\n| Feature         | Fancytree                                                                             | Wunderbaum                                                 |\n| --------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------- |\n| Dependency      | Requires jQuery and jQuery UI                                                         | No dependency on jQuery                                    |\n| Browser Support | Supports Internet Explorer                                                            | Dropped support for Internet Explorer                      |\n| Markup          | `<ul>/<li>` and `<table>` based                                                       | `<div>` based                                              |\n| Layout          | Grid layout as an extension                                                           | Grid layout built-in                                       |\n| Viewport        | No built-in viewport concept                                                          | New viewport concept with fixed header and scrollable body |\n| Drag and Drop   | Requires additional plugins                                                           | Built-in HTML5 drag and drop                               |\n| XSS Safety      | Requires `escapeTitles: true`                                                         | Titles are always XSS-safe                                 |\n| Node Types      | 'folder' as a special node type                                                       | Application-defined node types                             |\n| Performance     | Lazy rendering of HTML elements, but may be slow with large number of expanded nodes. | Handles large number of nodes (100k+)                      |\n\n### Replace the Script and CSS dependencies\n\n| Init     | Fancytree                                                                         | Wunderbaum                                                           |\n| -------- | --------------------------------------------------------------------------------- | -------------------------------------------------------------------- |\n| Tutorial | [Tutorial](https://github.com/mar10/fancytree/wiki#embed-fancytree-on-a-web-page) | [Tutorial](https://mar10.github.io/wunderbaum/tutorial/quick_start/) |\n\n### Tree Options\n\nOptions are mostly the same, but some property names have changed. <br>\nMajor changes were made to the `grid` and `dnd` configuration.\n\n| Options   | Fancytree                                                                       | Wunderbaum                                                                                 |\n| --------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |\n| Reference | [API](https://wwwendt.de/tech/fancytree/doc/jsdoc/global.html#FancytreeOptions) | [API](https://mar10.github.io/wunderbaum/api/interfaces/wb_options.WunderbaumOptions.html) |\n| Tutorial  | [Docs](https://github.com/mar10/fancytree/wiki)                                 | [Docs](https://mar10.github.io/wunderbaum/tutorial/tutorial_initialize/)                   |\n\n### Tree and Node Properties\n\n- `refKey` and `refType` are now direct properties of the node object.\n- `node.folder` was dropped in favor af a more general `node.type` property.\n\n| Properties     | Fancytree                                                                    | Wunderbaum                                                                               |\n| -------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |\n| Tree Reference | [Tree model](https://wwwendt.de/tech/fancytree/doc/jsdoc/Fancytree.html)     | [Tree model](https://mar10.github.io/wunderbaum/api/classes/wunderbaum.Wunderbaum.html)  |\n| Node Reference | [Node model](https://wwwendt.de/tech/fancytree/doc/jsdoc/FancytreeNode.html) | [Node model](https://mar10.github.io/wunderbaum/api/classes/wb_node.WunderbaumNode.html) |\n| Tutorial       | &mdash;                                                                      | [Tutorial](https://mar10.github.io/wunderbaum/tutorial/tutorial_initialize/)             |\n\n### Data Format\n\nThe data format is mostly the same, but some property names have changed.\nFor example, `folder` is now `type: \"folder\"`.\n\n| Data      | Fancytree                                                            | Wunderbaum                                                                            |\n| --------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |\n| Reference | &mdash;                                                              | [Initialize](https://mar10.github.io/wunderbaum/api/interfaces/types.WbNodeData.html) |\n|           | &mdash;                                                              | [Formats](https://mar10.github.io/wunderbaum/api/interfaces/types.WbNodeData.html)    |\n| Tutorial  | [Tutorial](https://github.com/mar10/fancytree/wiki/TutorialLoadData) | [Tutorial](https://mar10.github.io/wunderbaum/tutorial/tutorial_initialize/)          |\n\n### API Calls\n\nThe API is similar, but some method names and signatures have changed.\n\n| API       | Fancytree                                                                  | Wunderbaum                                                                            |\n| --------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |\n| Reference | [Tree API](https://wwwendt.de/tech/fancytree/doc/jsdoc/Fancytree.html)     | [Tree API](https://mar10.github.io/wunderbaum/api/classes/wunderbaum.Wunderbaum.html) |\n|           | [Node API](https://wwwendt.de/tech/fancytree/doc/jsdoc/FancytreeNode.html) | [NodeAPI](https://mar10.github.io/wunderbaum/api/classes/wb_node.WunderbaumNode.html) |\n| Tutorial  | [Tutorial](https://github.com/mar10/fancytree/wiki)                        | [Tutorial](https://mar10.github.io/wunderbaum/)                                       |\n\n### Event Handlers\n\nThe signature of event handlers has changed from `function(event, data)` to `function(event)`.\n\n| Events    | Fancytree                                                                              | Wunderbaum                                                                                         |\n| --------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |\n| Reference | [Handler API](https://wwwendt.de/tech/fancytree/doc/jsdoc/global.html#FancytreeEvents) | [Handler API](https://mar10.github.io/wunderbaum/api/interfaces/wb_options.WunderbaumOptions.html) |\n|           | [Event model](https://wwwendt.de/tech/fancytree/doc/jsdoc/global.html#EventData)       | [Event model](https://mar10.github.io/wunderbaum/api/interfaces/types.WbTreeEventType.html)        |\n| Tutorial  | [Tutorial](https://github.com/mar10/fancytree/wiki/TutorialEvents)                     | [Tutorial](https://mar10.github.io/wunderbaum/tutorial/tutorial_events/)                           |\n"
  },
  {
    "path": "docs/tutorial/quick_start.md",
    "content": "# Quick Start\n\n!!! note\n\n    Wunderbaum has beta status:<br>\n    API, Markup, Stylesheet, etc. are still subject to change.\n\nA Wunderbaum control is added to a web page by defining a `<div>` tag and\nthen create a new _Wunderbaum_ class instance, passing the tag and configuration\noptions.\n\n```html\n<!DOCTYPE html>\n<html>\n  <head>\n    <!-- Additional icon fonts. Wunderbaum uses bootstrap icons by default. -->\n    <link\n      rel=\"stylesheet\"\n      href=\"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css\"\n    />\n    <!-- Wunderbaum CSS and Library -->\n    <link\n      rel=\"stylesheet\"\n      href=\"https://cdn.jsdelivr.net/npm/wunderbaum@0/dist/wunderbaum.min.css\"\n    />\n    <script\n      defer\n      src=\"https://cdn.jsdelivr.net/npm/wunderbaum@0/dist/wunderbaum.umd.min.js\"\n    ></script>\n    <!-- Your application code -->\n    <script>\n      data = [\n        {\n          title: \"Node 1\",\n          expanded: true,\n          children: [\n            {\n              title: \"Node 1.1\",\n            },\n            {\n              title: \"Node 1.2\",\n            },\n          ],\n        },\n        {\n          title: \"Node 2\",\n        },\n      ];\n\n      document.addEventListener(\"DOMContentLoaded\", (event) => {\n        const tree = new mar10.Wunderbaum({\n          element: document.getElementById(\"demo-tree\"),\n          source: data,\n          init: (e) => {\n            e.tree.setFocus();\n          },\n          activate: (e) => {\n            alert(`Thank you for activating ${e.node}.`);\n          },\n        });\n      });\n    </script>\n  </head>\n\n  <body>\n    ...\n    <div\n      id=\"demo-tree\"\n      class=\"wb-skeleton wb-initializing wb-fade-expander\"\n    ></div>\n    ...\n  </body>\n</html>\n```\n\nESM modules are also supported:\n\n```html\n<script type=\"module\">\n  import wunderbaum from \"https://cdn.jsdelivr.net/npm/wunderbaum@0/+esm\";\n</script>\n```\n\n!!! info\n\n    Wunderbaum is a refactored version of [Fancytree](https://github.com/mar10/fancytree).\n\n    Read [migrate](migrate.md) for details and migration hints.\n\n!!! info \"See also\"\n\n    See also the [API Documentation](https://mar10.github.io/wunderbaum/api/)\n    and the [live demo](https://mar10.github.io/wunderbaum/demo/).\n"
  },
  {
    "path": "docs/tutorial/tutorial_api.md",
    "content": "# Tree API\n\n!!! abstract \"TL;DR\"\n\n    Wunderbaum offers an extensive, object oriented API.\n\n!!! warning\n\n    This chapter is still under construction.\n\n!!! info \"See also\"\n\n    See also the [API Reference](https://mar10.github.io/wunderbaum/api/).\n\nThis chapter describes different ways to modify the tree model using\nthe API.\n\n## Iteration\n\n- [tree.visit()](https://mar10.github.io/wunderbaum/api/classes/wunderbaum.Wunderbaum.html#visit)\n\nThere are two ways to traverse the tree _depth-first, pre-order_:\n\n```js\nfor (const node of tree) {\n  node.log();\n}\n```\n\n```js\ntree.visit((node) => {\n  node.log();\n});\n```\n\nBoth are 'fast enough' for most use cases, but the latter is slightly faster.\n\n`visit()` also allows to break or skip nodes by returning a\nspecial value:\n\n```js\ntree.visit((node) => {\n  if (node.isSelected()) {\n    return \"skip\"; // skip selected nodes and their children\n  }\n  if (node.title === \"foo\") {\n    return false; // stop iteration\n  }\n});\n```\n\nIteration is also available for subnodes:\n\n```js\nfor(const node of parentNode) {\n  ...\n}\nparentNode.visit((node) => {\n  ...\n});\n```\n\n**Related Methods**\n\n- [tree.visit()](https://mar10.github.io/wunderbaum/api/classes/wunderbaum.Wunderbaum.html#visit)\n\n## Searching\n\nSee [Search and Filter Nodes](tutorial_filter.md).\n\n## Selection\n\nSee [Search and Filter Nodes](tutorial_filter.md).\n\n## Sorting\n\nSee [Search and Filter Nodes](tutorial_filter.md).\n\n## Mutation\n\n### Adding Nodes\n\n### Removing Nodes\n\n### Moving Nodes\n\n### Changing Node Properties\n\n### Changing Node State\n\n### Changing Node Data\n\n### Changing Node Style\n\n### Changing Node Class\n\n### Changing Node Attributes\n\n### Changing Node Icons\n\n### Changing Node Badge\n\n### Changing Node Badge Colors\n\n## Related Methods\n\n- `node.moveTo()`\n- `node.setExpanded()`\n- `node.setSelected()`\n- `tree.applyCommand()`\n\n## Utility Methods\n\nThe [Module util](https://mar10.github.io/wunderbaum/api/modules/util.html)\nprovides a number of utility methods that are useful when working with trees.\n\n## Performance Tips\n\nUse `tree.runWithDeferredUpdate()` to avoid multiple updates while changing many\nnodes at once. <br>\nSynchronous methods can be wrapped in a `runWithDeferredUpdate()` call to avoid\nmultiple redraws:\n\n```js\ntree.runWithDeferredUpdate(() => {\n  tree.visit((node) => {\n    node.setSelected(true);\n  });\n});\n```\n\nAsynchronous methods can be wrapped in a `runWithDeferredUpdateAsync()` like so:\n\n```js\nawait tree.runWithDeferredUpdateAsync(async () => {\n  return await node.someAsyncFuntion();\n});\n```\n"
  },
  {
    "path": "docs/tutorial/tutorial_dnd.md",
    "content": "# Drag and Drop\n\n!!! abstract \"TL;DR\"\n\n    Wunderbaum implements drag and drop according to the native HTML protocol.\n    This allows interaction between different tree instances, browsers, and\n    even native applcations.\n\nWunderbaum supports drag and drop of nodes within the tree and between trees.\nIt is also possible to drag nodes from the tree to other elements on the page or\nvice versa. Even cross-window drag and drop is supported. <br>\nThe implementation is purely based on the native\n[HTML Drag and Drop API](https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API).\n\nNote that there is no automatic modification of nodes. Instead, the\n`drop` event is fired on the target tree and it is up to the application to\nmodify the tree accordingly.\n\n## Drag and Drop Events\n\nThe following events are fired on the tree during drag and drop.\n\n!!! info\n\n    Note that the `dragStart`, `drag`, and `dragEnd` events are fired on the\n    tree that contains the dragged node (i.e. the source node). <br>\n    The other events are fired on the tree that contains the drop target.\n\nThe events are named after the corresponding\n[HTML Drag and Drop events](https://developer.mozilla.org/en-US/docs/Web/API/DragEvent).\nHowever, the event handlers are passed an object with the following properties:\n\n```js\ne = {\n  type: \"dnd.EVENTNAME\",\n  node: // the source or target node, depending on the event type\n  event: // <the original HTML DragEvent>\n}\n```\n\nThese are events are sent in a typical drag and drop operation:\n\n- `dragStart(e)`: Fired when a drag operation is started.<br>\n  This event handler MUST be implemented by the application in order to enable\n  dragging in general. <br>\n  The handler can return `false` to prevent dragging the source node.<br>\n  The handler can set the `e.event.dataTransfer.effectAllowed` property in order\n  to adjust copy/move/link behavior. <br>\n  The handler can set the `e.event.dataTransfer.dropEffect` property in order to\n  adjust copy/move/link behavior.\n\n- `drag(e)`: Fired repeadedly during a drag operation.<br>\n  We will hardly ever have to implement this handler.\n\n- `dragEnter(e)`: Fired when a dragged item enters a drop target.<br>\n  This event handler MUST be implemented by the application in order to enable\n  dropping in general. <br>\n  The handler can return `false` to prevent the drop operation or return a set\n  of drop regions to indicate which drop regions are allowed. <br>\n  The handler can set the `e.event.dataTransfer.dropEffect` property in order to\n  adjust copy/move/link behavior.\n\n- `dragOver(e)`: Fired continuously when a dragged item is moved over a drop target. <br>\n  We will hardly ever have to implement this handler. <br>\n  The handler can set the `e.event.dataTransfer.dropEffect` property in order to\n  adjust copy/move/link behavior.\n\n- `dragLeave(e)`: Fired when a dragged node leaves a drop target. <br>\n  We will hardly ever have to implement this handler.\n\n- `drop(e)`: Fired when a dragged node is dropped on a drop target. <br>\n  This is the most important event handler. It is responsible for modifying the\n  tree according to the drop operation. <br>\n\n  ```js\n  e = {\n    type: \"dnd.drop\",\n    node: // the target node\n    event: // <the original HTML DragEvent>\n    region: // 'before', 'after', 'over'\n    suggestedDropMode: // 'before', 'after', 'appendChild'\n                       // (compatible with node.moveTo() and .appendChild())\n    suggestedDropEffect: // 'copy', 'move', 'link'\n    sourceNode: // the source node if available\n    sourceNodeData: // the serialized data of the source node if any\n  }\n  ```\n\n  Foreign source data can be retreived from the `e.event.dataTransfer` object.\n\n- `dragEnd(e)`: Fired when a drag operation is ended.<br>\n  We will hardly ever have to implement this handler.\n\n## Related Tree Options\n\n!!! info \"See also\"\n\n    See also the [API Documentation for DnD options](https://mar10.github.io/wunderbaum/api/types/types.DndOptionsType.html)\n    and the [live demo](https://mar10.github.io/wunderbaum/demo/#demo-plain).\n\n## Examples\n\n### Basic Drag and Drop\n\nAllow sorting of plain nodes:\n\n```js\nconst tree = new Wunderbaum({\n  // --- Common Options ---\n  ...\n  dnd: {\n    dragStart: (e) => {\n      if (e.node.type === \"folder\") {\n        return false; // do not allow dragging folders\n      }\n      return true;\n    },\n    dragEnter: (e) => {\n      if (e.node.type === \"folder\") {\n        return \"over\";\n      }\n      return [\"before\", \"after\"];\n    },\n    drop: (e) => {\n      console.log(\n        `Drop ${e.sourceNode} => ${e.suggestedDropEffect} ${e.suggestedDropMode} ${e.node}`, e\n      );\n      e.sourceNode.moveTo(e.node, e.suggestedDropMode)\n    },\n  },\n});\n```\n\n### Basic Drag and Drop (move)\n\n```js\nconst tree = new Wunderbaum({\n  // --- Common Options ---\n  ...\n  dnd: {\n    effectAllowed: \"all\",\n    dropEffectDefault: \"move\",\n    guessDropEffect: true,\n    dragStart: (e) => {\n      // if (e.node.type === \"folder\") {\n      //   return false;\n      // }\n      return true;\n    },\n    dragEnter: (e) => {\n      // console.log(`DragEnter ${e.event.dataTransfer.dropEffect} ${e.node}`, e);\n      // We can only drop 'over' a folder, so the source node becomes a child.\n      // We can drop 'before' or 'after' a non-folder, so the source node becomes a sibling.\n      if (e.node.type === \"folder\") {\n        // e.event.dataTransfer.dropEffect = \"link\";\n        return \"over\";\n      }\n      return [\"before\", \"after\"];\n    },\n    drag: (e) => {\n      // e.tree.log(e.type, e);\n    },\n    drop: (e) => {\n      console.log(\n        `Drop ${e.sourceNode} => ${e.suggestedDropEffect} ${e.suggestedDropMode} ${e.node}`,\n        e\n      );\n      switch (e.suggestedDropEffect) {\n        case \"copy\":\n          e.node.addNode(\n            { title: `Copy of ${e.sourceNodeData.title}` },\n            e.suggestedDropMode\n          );\n          break;\n        case \"link\":\n          e.node.addNode(\n            { title: `Link to ${e.sourceNodeData.title}` },\n            e.suggestedDropMode\n          );\n          break;\n        default:\n          e.sourceNode.moveTo(e.node, e.suggestedDropMode);\n      }\n    },\n  },\n```\n\n### Related Methods\n\n- `util.foo()`\n\n### Related CSS Rules\n\n```css\ndiv.wb-row.wb-drag-source {\n  /* The dragged node */\n}\ndiv.wb-row.wb-drop-target {\n  /* The current target node while dragging */\n}\ndiv.wb-row.wb-drop-target.wb-drop-before .wb-node .wb-icon::after {\n  /* Drop marker */\n}\n```\n\n### Code Hacks\n\n```js\n\n```\n"
  },
  {
    "path": "docs/tutorial/tutorial_edit.md",
    "content": "# Edit Nodes and Columns\n\n!!! abstract \"TL;DR\"\n\n    Wunderbaum implements renaming of nodes and editing grid cells.\n\nEditing is supported in two different ways:\n\n1. There is direct support for renaming nodes, i.e. editing the node title.\n   Use the `edit.trigger` option and implement the `edit.apply()` callback\n   to enable this.\n\n2. In a treegrid, there is also general support for embedded input elements\n   in column cells, like checkboxes, text fields, etc.<br>\n   Note that _Wunderbaum_ does **not** implement fancy input controls though.\n   Rather think of it as a framework that makes it easy to use standard or\n   custom HTML controls: <br>\n   Create HTML controls in the `tree.render()` callback and implement the\n   `tree.change()` event to enable this.\n\n## 1. Rename Nodes\n\nHere is an example implementation of the edit title feature (i.e. rename):\n\n```js\nconst tree = new Wunderbaum({\n  // --- Common Options ---\n  ...\n  // --- Common Events ---\n  ...\n  // --- Special Options and Events ---\n  edit: {\n    // --- Options ---\n    trigger: [\"clickActive\", \"F2\", \"macEnter\", ...],\n    select: true,  // Select all text on start\n    slowClickDelay: 1000,\n    trim: true,  // Trim input before applying\n    validity: true,  // Check validation rules while typing\n    ...\n    // --- Events ---\n    /**\n     * Called when an editing request was detected, e.g. `F2` key, etc.\n     *\n     * Return `false` to prevent editing. Optionally an HTML string may be\n     * returned that defines the temporary input element.\n     * Any other return value - including undefined - defaults to\n     * `'<input type=\"text\" class=\"wb-input-edit\" value=\"TITLE\" required autocorrect=\"off\">'`\n     */\n    beforeEdit: (e) => {\n    },\n    /**\n     * Called after the temporary input control was created, initialized\n     * with the current node title, focused, and selected.\n     */\n    edit: (e) => {\n      const inputElem = e.inputElem;\n    },\n    /**\n     * Called when the edit operation is ending, either because the user\n     * canceled, confirmed, or moved focus.\n     *\n     * Return `false` to keep the input control open (not always possible).\n     *\n     * We can also return a `Promise` (e.g. from an Ajax request).\n     * In this case, the cell is marked 'busy' while the request is pending.\n     *\n     * Implementing this event is optional. By default, `node.setTitle()` is\n     * called with the new text.\n     */\n    apply: (e) => {\n      const node = e.node;\n      const oldValue = e.oldValue;\n      const newValue = e.newValue;\n      const inputElem = e.inputElem;\n      // For example:\n      // call an async storage function and  handle validation.\n      //\n      return storeMyStuff(node.refKey, newValue).then(() => {\n        if( ...) {\n          inputElem.setCustomValidity(`Invalid for *reasons*: ${newValue`})\n          return false;\n        }\n      };\n    },\n  },\n});\n```\n\nInput validation can be implemented by using the `inputElem.setCustomValidity()`\nmethod as in the example above, or by raising a\n[util.ValidationError](https://mar10.github.io/wunderbaum/api/classes/ValidationError.html):\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  edit: {\n    ...\n    apply: (e) => {\n      const util = e.util;\n      const node = e.node;\n      const newValue = e.newValue;\n\n      return storeMyStuff(node.refKey, newValue).then(() => {\n        if( ...) {\n          throw new util.ValidationError(`Invalid for *reasons*: ${newValue`});\n        }\n      };\n    },\n  },\n});\n```\n\n!!! info \"See also\"\n\n    See also a [live demo](https://mar10.github.io/wunderbaum/demo/#demo-plain),\n    activate a node, and hit <code>F2</code>.\n\n    See also [EditOptionsType](https://mar10.github.io/wunderbaum/api/types/types.EditOptionsType.html).\n\n### Related Methods\n\n- `node.setActive(true, {colIdx: 0, edit: true})`\n- `node.startEditTitle()`\n- `tree.isEditingTitle()`\n- `tree.startEditTitle(node)`\n- `tree.stopEditTitle(apply: boolean)`\n- `util.setValueToElem()`\n\n### Style Hacks\n\n```css\ninput.wb-input-edit {}\nspan.wb-col.wb-busy {}\nspan.wb-col.wb-error {}\nspan.wb-col.wb-invalid {}\nspan.wb-col input:invalid {}\nwb-tristate\n```\n\n### Code Hacks\n\n```js\nTodo;\n```\n\n## 2. Edit Cell Content\n\n!!! info \"See also\"\n\n    See the [Grid Tutorial](tutorial_grid.md?id=editing) for general\n    information about rendering grid cell content.\n\n    See also a [live demo](https://mar10.github.io/wunderbaum/demo/#demo-editable),\n    expand some nodes and enter values into the input controls.\n\nEditing cells &mdash; other than the node title column &mdash; is not supported\nby default. Instead we have to\n\n1. Implement the `render(e)` callback to render the cell's content as an HTML\n   element that can be edited, like a text field, checkbox, etc.\n2. Implement the `change(e)` callback to update the node data when the user\n   has finished editing a cell.\n\n### 2.1. Render Input Elements\n\nFollowing an example implementation of the `render(e)` callback that renders\nembedded input controls for all data columns.\n\nThe [util.setValueToElem()](https://mar10.github.io/wunderbaum/api/functions/util.setValueToElem.html)\nhelper function can be used to update the embedded input element with the\ncurrent node value.\n\nThe `e.isNew` property is `true` if the node is new and has not been\nrendered before. This is useful to avoid overwriting user input when the\nuser is editing a cell.\n\nWe follow the convention to name the column id after the node data property\nthat should be rendered in that column for simplicity.\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  columns: [\n    { title: \"Title\", id: \"*\", width: \"250px\" },\n    { title: \"Age\", id: \"age\", width: \"50px\", classes: \"wb-helper-end\" },\n    { title: \"Date\", id: \"date\", width: \"100px\", classes: \"wb-helper-end\" },\n    { title: \"Status\", id: \"state\", width: \"70px\", classes: \"wb-helper-center\" },\n    { title: \"Avail.\", id: \"avail\", width: \"70px\", classes: \"wb-helper-center\" },\n    { title: \"Remarks\", id: \"remarks\", width: \"*\" },\n  ],\n\n  render: function (e) {\n    const node = e.node;\n    const util = e.util;\n\n    // Render embedded input controls for all data columns\n    for (const col of Object.values(e.renderColInfosById)) {\n\n      const val = node.data[col.id];\n\n      switch (col.id) {\n        case \"author\":\n          if (e.isNew) {\n            col.elem.innerHTML = '<input type=\"text\" tabindex=\"-1\">';\n          }\n          util.setValueToElem(col.elem, val);\n          break;\n        case \"remarks\":\n          if (e.isNew) {\n            col.elem.innerHTML = '<input type=\"text\" tabindex=\"-1\">';\n          }\n          util.setValueToElem(col.elem, val);\n          break;\n        case \"age\": // numeric input (positive integers only)\n          if (e.isNew) {\n            col.elem.innerHTML = '<input type=\"number\" min=\"0\" tabindex=\"-1\">';\n          }\n          util.setValueToElem(col.elem, val);\n          break;\n        case \"state\": // select box\n          if (e.isNew) {\n            col.elem.innerHTML = `<select tabindex=\"-1\">\n                <option value=\"h\">Happy</option>\n                <option value=\"s\">Sad</option>\n                </select>`;\n          }\n          util.setValueToElem(col.elem, val);\n          break;\n        case \"avail\": // checkbox\n          if (e.isNew) {\n            col.elem.innerHTML = '<input type=\"checkbox\" tabindex=\"-1\">';\n          }\n          util.setValueToElem(col.elem, val);\n          break;\n        case \"date\": // date picker\n          if (e.isNew) {\n            col.elem.innerHTML = '<input type=\"date\" tabindex=\"-1\">';\n          }\n          util.setValueToElem(col.elem, val);\n          break;\n        default:\n          // Render all other node data cells as text (read-only)\n          // Assumption: we named column.id === node.data.NAME\n          col.elem.textContent = node.data[col.id];\n          break;\n      }\n    },\n});\n```\n\n#### Simplify the Pattern\n\nThe pattern above can be simplified by defining the `html` property in the\ncolumn definition, so the column cells are rendered by default and we can\nskip the `if (e.isNew) {...}` handling. <br>\nNote that we still have to update the embedded input elements with the current\nnode value.\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  columns: [\n    { title: \"Title\", id: \"*\", width: \"250px\" },\n    { title: \"Age\", id: \"age\", width: \"50px\", classes: \"wb-helper-end\",\n      \"html\": \"<input type=number min=0 tabindex='-1'>\",\n    },\n    { title: \"Date\", id: \"date\", width: \"100px\", classes: \"wb-helper-end\",\n      \"html\": '<input type=date tabindex=\"-1\">',\n    },\n    { title: \"Status\", id: \"state\", width: \"70px\", classes: \"wb-helper-center\",\n      \"html\": `<select tabindex=\"-1\">\n          <option value=\"h\">Happy</option>\n          <option value=\"s\">Sad</option>\n          </select>`\n    },\n    { title: \"Avail.\", id: \"avail\", width: \"70px\", classes: \"wb-helper-center\",\n      \"html\": '<input type=checkbox tabindex=\"-1\">',\n    },\n    { title: \"Remarks\", id: \"remarks\", width: \"*\",\n      \"html\": \"<input type=text tabindex='-1'>\",\n    },\n  ],\n\n  render: function (e) {\n    const node = e.node;\n    const util = e.util;\n\n    // Render embedded input controls for all data columns\n    for (const col of Object.values(e.renderColInfosById)) {\n\n      const val = node.data[col.id];\n\n      switch (col.id) {\n        default:\n          util.setValueToElem(col.elem, val);\n          break;\n      }\n    }\n  },\n});\n```\n\n### 2.2. Validate and Apply Modified Cell Data\n\nThe `change(e)` callback is called when the user has finished editing a cell.\nMore precisely, it is called when the embedded _input_, _select_, or _textarea_\nelement fired a _change_ event. <br>\nIt receives a [WbChangeEventType](https://mar10.github.io/wunderbaum/api/interfaces/types.WbChangeEventType.html)\nobject that contains useful properties for this purpose.\n\nThe [util.getValueFromElem()](https://mar10.github.io/wunderbaum/api/functions/util.getValueFromElem.html)\nhelper function can be used to read the current value from the embedded input\nelement. This value is also avalable as `e.inputValue`, however without coercing\ndate inputs to _Date_ instances.\n\n> Again, we follow the convention to name the column id after the node data\n> property that appears in that column.\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  change: function (e) {\n    const util = e.util;\n    const node = e.node;\n    const colId = e.info.colId;\n\n    this.logDebug(`change(${colId})`, util.getValueFromElem(e.inputElem, true));\n\n    // Assumption: we named column.id === node.data.NAME\n    node.data[colId] = util.getValueFromElem(e.inputElem, true);\n  },\n});\n```\n\nIf we want to customize the `change(e)` callback, we can do so like this:\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  change: function (e) {\n    const util = e.util;\n    const node = e.node;\n    const colId = e.info.colId;\n    let val;\n\n    switch (colId) {\n      case \"year\":\n        val = util.getValueFromElem(e.inputElem, true);\n\n        if(val && new Date(val) > new Date()) {\n          throw new util.ValidationError(\"Invalid year (must not be in the past)\");\n        }\n        if (val && !/^\\d{4}$/.test(val)) {\n          throw new util.ValidationError(\"Invalid year (yyyy)\");\n        }\n        e.node.data[colId] = val;\n        break;\n      default:\n        e.node.data[colId] = util.getValueFromElem(e.inputElem, true);\n        break;\n    }\n  },\n});\n```\n\n### Related Methods\n\n- `node.setActive(true, {colIdx: 2, edit: true})`\n- `util.getValueFromElem()`\n- `util.setValueToElem()`\n- `util.toggleCheckbox()`\n\n### Related CSS Rules\n\n```css\nspan.wb-col.wb-busy {\n}\nspan.wb-col.wb-error {\n}\nspan.wb-col input:invalid {\n}\n```\n"
  },
  {
    "path": "docs/tutorial/tutorial_events.md",
    "content": "# Event Handling\n\n!!! abstract \"TL;DR\"\n\n    The interactive behavior of Wunderbaum is controlled by a set of event handlers.\n\nEvent handlers are callback functions that are passes as options of the tree object,\nand are called whenever a certain event occurs:\n\n```js\nconst tree = new mar10.Wunderbaum({\n  id: \"demo\",\n  element: document.getElementById(\"demo-tree\"),\n  source: \"get/root/nodes\",\n  ...\n  init: (e) => {\n    e.tree.setFocus();\n  },\n  lazyLoad: function (e) {\n    return { url: 'get/child/nodes', params: { parentKey: e.node.key } };\n  },\n  activate: function (e) {\n    alert(`Thank you for activating ${e.node}.`);\n  },\n  ...\n});\n```\n\n## The Event Object\n\nDepending on the event type, the event handler functions can return a value,\nthat is used by the tree to control the default behavior. For example, the\n`beforeActivate` event handler can return `false` to prevent activation of a node.\n\nSome events are sent by the tree, others by a distinct node.\nA <i>node event</i> always passes a reference to the node object.\nA <i>tree event</i> does not always pass a node reference.\n\nThe event handler functions are called with a single argument, of type\n[WbTreeEventType](https://mar10.github.io/wunderbaum/api/interfaces/types.WbTreeEventType.html).\n\nThe event object contains the following properties:\n\n```js\ne = {\n  type: string,         // the event type\n  tree: Wunderbaum,     // the tree object\n  util: object,         // some useful utility functions\n  node: WunderbaumNode, // the node object (if applicable)\n  event: Event,         // the original DOM event (if applicable)\n  flag: boolean,        // a flag (if applicable)\n  error: string,        // an error (if applicable)\n  ...                   // additional properties (if applicable)\n}\n```\n\n!!! info \"See also\"\n\n    See also the overview of available functions of the\n    [utility module](https://mar10.github.io/wunderbaum/api/modules/util.html).\n\n## Event Handlers\n\n!!! info\n\n    A list of all available events can also be found in the\n    [API Reference](https://mar10.github.io/wunderbaum/api/interfaces/wb_options.WunderbaumOptions.html).\n\nCommon event handlers include:\n\n<dl>\n\n<dt>\n  <code>activate(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbActivateEventType.html\">WbActivateEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  `e.node` was activated.\n</dd>\n\n<dt>\n  <code>beforeActivate(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbActivateEventType.html\">WbActivateEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  Return `false` to prevent activation of `e.node`.\n</dd>\n\n<dt>\n  <code>beforeExpand(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbExpandEventType.html\">WbExpandEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  Return `false` to prevent expansion of `e.node`.\n</dd>\n\n<dt>\n  <code>beforeSelect(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbSelectEventType.html\">WbSelectEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  Return `false` to prevent (de)selection.\n</dd>\n\n<dt>\n  <code>buttonClick(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbButtonClickEventType.html\">WbButtonClickEventType</a>)</code>\n  <small>- <i>tree event</i></small>\n</dt> <dd>\n  A column header button was clicked, e.g. sort, filter, or menu.\n  Check `e.command` and `e.info.colId`, ... for details. <br>\n  Note that the actual implementation of the command must be explicitly provided.<br>\n  See also <a href=\"https://mar10.github.io/wunderbaum/index.html#tutorial_filter\">Search and Filter</a> for examples.\n\n</dd>\n\n<dt>\n  <code>change(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbChangeEventType.html\">WbChangeEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  The `change(e)` callback is called when the user has finished editing a cell.\n  More precisely, it is called when the embedded <i>input</i>, <i>select</i>,\n  or <i>textarea</i> element fired a <i>change</i> event.\n</dd>\n\n<dt>\n  <code>click(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbClickEventType.html\">WbClickEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  `e.node` was clicked. <br>\n  Return `false` to prevent default behavior, e.g. expand/collapse,\n  (de)selection, or activation.\n</dd>\n\n<dt>\n  <code>dblclick(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbClickEventType.html\">WbClickEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  `e.node` was double-clicked. <br>\n  Return `false` to prevent default behavior, e.g. expand/collapse.\n</dd>\n\n<dt>\n  <code>deactivate(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbDeactivateEventType.html\">WbDeactivateEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  `e.node` was deactivated.\n</dd>\n\n<dt>\n  <code>discard(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbNodeEventType.html\">WbNodeEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  `e.node` was discarded from the viewport and its HTML markup removed.\n</dd>\n\n<dt>\n  <code>edit.apply(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbEditApplyEventType.html\">WbEditApplyEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  `e.node` title was changed.\n</dd>\n\n<dt>\n  <code>edit.beforeEdit(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbNodeEventType.html\">WbNodeEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  `e.node` title is about to renamend. Return `false` to prevent renaming.\n</dd>\n\n<dt>\n  <code>edit.edit(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbEditEditEventType.html\">WbEditEditEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  `e.node` just switched to edit mode, an input element was created and populated with the current title.\n</dd>\n\n<dt>\n  <code>error(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbErrorEventType.html\">WbErrorEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  An error occurred, e.g. during initialization or lazy loading.\n</dd>\n\n<dt>\n  <code>expand(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbExpandEventType.html\">WbExpandEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  `e.node` was expanded (`e.flag === true`) or collapsed (`e.flag === false`)\n</dd>\n\n<dt>\n  <code>focus(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbFocusEventType.html\">WbFocusEventType</a>)</code>\n  <small>- <i>tree event</i></small>\n</dt> <dd>\n  The tree received or lost focus. Check `e.flag`.\n</dd>\n\n<dt>\n  <code>iconBadge(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbIconBadgeEventType.html) an\">WbIconBadgeEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  `e.node` is about to be rendered. We can add a badge to the icon cell here. <br>\n  Returns <a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbIconBadgeEventResultType.html\">WbIconBadgeEventResultType</a>.\n</dd>\n\n<dt>\n  <code>init(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbInitEventType.html\">WbInitEventType</a>)</code>\n  <small>- <i>tree event</i></small>\n</dt> <dd>\n  Fires when the tree markup was created and the initial source data was loaded.\n  Typical use cases would be activating a node, setting focus, enabling other\n  controls on the page, etc.\n  Also sent if an error occured during initialization (check for `e.error` property).\n</dd>\n\n<dt>\n  <code>keydown(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbKeydownEventType.html\">WbKeydownEventType</a>)</code>\n  <small>- <i>tree event</i></small>\n</dt> <dd>\n  Fires when a key was pressed while the tree has focus. <br>\n  `e.node` is set if a node is currently active. <br>\n  Return `false` to prevent default navigation.\n</dd>\n\n<dt>\n  <code>lazyLoad(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbNodeEventType.html\">WbNodeEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  Fires when a node that was marked 'lazy', is expanded for the first time.\n  Typically we return an endpoint URL or the Promise of a fetch request that\n  provides a (potentially nested) list of child nodes.\n</dd>\n\n<dt>\n  <code>load(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbNodeEventType.html\">WbNodeEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  Fires when data was loaded (initial request, reload, or lazy loading),\n  after the data is applied and rendered.\n</dd>\n\n<dt>\n  <code>modifyChild(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbModifyChildEventType.html\">WbModifyChildEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  TODO\n</dd>\n\n<dt>\n  <code>receive(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbReceiveEventType.html\">WbReceiveEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  Fires when data was fetched (initial request, reload, or lazy loading),\n  but before the data is uncompressed, applied, and rendered.\n  Here we can modify and adjust the received data, for example to convert an\n  external response to native Wunderbaum syntax.\n</dd>\n\n<dt>\n  <code>render(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbRenderEventType.html\">WbRenderEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  Fires when a node is about to be displayed.\n  The default HTML markup is already created, but not yet added to the DOM.\n  Now we can tweak the markup, create HTML elements in this node's column\n  cells, etc. <br>\n  See also `Custom Rendering` for details.\n</dd>\n\n<dt>\n  <code>renderStatusNode(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbRenderEventType.html\">WbRenderEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  Same as `render(e)`, but for the status nodes, i.e. `e.node.statusNodeType`.\n</dd>\n\n<dt>\n  <code>select(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbSelectEventType.html\">WbSelectEventType</a>)</code>\n  <small>- <i>node event</i></small>\n</dt> <dd>\n  `e.node` was selected (`e.flag === true`) or deselected (`e.flag === false`)\n</dd>\n\n<dt>\n  <code>update(<a href=\"https://mar10.github.io/wunderbaum/api/interfaces/types.WbRenderEventType.html\">WbRenderEventType</a>)</code>\n  <small>- <i>tree event</i></small>\n</dt> <dd>\n  Fires when the viewport was updated, after scroling, expanding etc.\n</dd>\n\n</dl>\n\n## Register Custom events\n\nTo register a custom event, we can use event delegation.\nFor example, to handle a `contextmenu` event on a row, we can add an event listener to the `body` element. This would allow to prevent the default context menu, or to show a custom context menu. <br>\nThe `getNode()` utility method can be used to retrieve the node object that\ncorresponds to the clicked row:\n\n```html\n<script>\n  document.addEventListener(\"DOMContentLoaded\", function () {\n    document.body.addEventListener(\"contextmenu\", function (event) {\n      if (event.target.closest(\"div.wb-row\")) {\n        const node = mar10.Wunderbaum.getNode(event);\n        node.logInfo(\"received contextmenu event\");\n\n        // Optionally prevent the default context menu:\n        event.preventDefault();\n      }\n    });\n  });\n</script>\n```\n"
  },
  {
    "path": "docs/tutorial/tutorial_filter.md",
    "content": "# Search and Filter Nodes\n\n!!! abstract \"TL;DR\"\n\n    Wunderbaum supports different ways to search and filter nodes.\n\nThis page describes how searching and filtering can be enabled:\n\n1. **Search** allows to find nodes by title patterns or arbitrary conditions.\n\n2. **Filter** is a more powerful feature that can hide or dim nodes that do not\n   match a given search pattern or condition. It can also highlight matching\n   title parts.\n\n## Searching\n\n### Quicksearch\n\nQuicksearch is triggered by typing a character and jumps to the next node that\nstarts with that character. <br>\nIt can be disabled by setting `quicksearch: false` in the tree options.\n\n### Using the API\n\nMany methods are available to search for nodes. For example, to find a node by\nits title, use `tree.findFirst()`, `tree.findAll()` and others:\n\n```js\n// Match all node titles that match exactly 'Joe':\nnodeList = node.findAll(\"Joe\");\n// Match all node titles that start with 'Joe' case sensitive:\nnodeList = node.findAll(/^Joe/);\n// Match all node titles that contain 'oe', case insensitive:\nnodeList = node.findAll(/oe/i);\n// Match all nodes with `data.price` >= 99:\nnodeList = node.findAll((n) => {\n  return n.data.price >= 99;\n});\n```\n\n!!! info \"See also\"\n\n    See also the [API tutorial](tutorial_api.md) for more details.\n\n## Filtering\n\nA filter can be used to hide or dim nodes that do not match a given search pattern.\n\nFirst, define the filter options in the tree options:\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  filter: {\n    autoApply: true, // Re-apply last filter if lazy data is loaded\n    mode: \"hide\",\n    ...\n  },\n  ...\n});\n```\n\nFollowing options are available (see also\n[FilterOptionsType](https://mar10.github.io/wunderbaum/api/types/types.FilterOptionsType.html)):\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  filter: {\n    autoApply: true, // Re-apply last filter if lazy data is loaded\n    autoExpand: false, // Expand all branches that contain matches while filtered\n    matchBranch: false, // Whether to implicitly match all children of matched nodes\n    connect: null, // Element or selector of an input control for filter query strings\n    fuzzy: false, // Match single characters in order, e.g. 'fb' will match 'FooBar'\n    hideExpanders: false, // Hide expanders if all child nodes are hidden by filter\n    highlight: true, // Highlight matches by wrapping inside <mark> tags\n    leavesOnly: false, // Match end nodes only\n    mode: \"dim\", // Grayout unmatched nodes (pass \"hide\" to remove unmatched node instead)\n    noData: true, // Display a 'no data' status node if result is empty\n  },\n  ...\n});\n```\n\n### Filter Nodes\n\nThe `filterNodes()` method can be used to apply a filter to the tree. It accepts\na string, a regular expression, or a function as a filter pattern:\n\n```js\n// Strings are matched against the node titles (contains, case insensitive)\ntree.filterNodes(\"Joe\");\n// Regular expressions are matched against the node titles\n// E.g. fin titles that start with 'joe' or 'joh' (case insensitive)\ntree.filterNodes(/^jo[eh]/i);\n// Functions are called with the node as an argument and can test for any\n// condition\ntree.filterNodes((node) => {\n  return node.data.price >= 99;\n});\n```\n\nAdditional options can be passed as a second argument to override the default\n`tree.filter` settings:\n\n```js\ntree.filterNodes(\"Joe\", { mode: \"hide\" });\n```\n\nSee\n[FilterNodesOptions](https://mar10.github.io/wunderbaum/api/types/types.FilterNodesOptions.html)):\n\nExamples\n\n```js\n// Match all nodes with a title that does contain 'Joe' (case insensitive) and\n// dim the rest:\ntree.filterNodes(\"Joe\");\n// Match all nodes with a title that does contain 'Joe' (case insensitive) and\n// hide the rest:\ntree.filterNodes(\"Joe\", { mode: \"hide\" });\n// Match all nodes with a custom property 'age' > 30:\ntree.filterNodes((node) => {\n  return node.data.age <= 30;\n});\n// Match  all nodes with a a title that contains 'foo' or 'fox':\nconst re = /.*fo[ox].*/i;\ntree.filterNodes((node) => {\n  return re.test(node.title);\n});\n```\n\n!!! info\n\n    A filter callback may return a boolean value, or the string values 'skip' or\n    'branch'. The latter will skip or match the node and all its descendants. <br>\n    Note that highlighting matches is not supported for function filters.\n\n### Display Count of Matches as Badges\n\nShow a badge with number of matching child nodes near parent icons.\nIf no matchin children exist or the node is expanded, the badge is hidden.\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  iconBadge: (e) => {\n    const node = e.node;\n    if (node.children?.length > 0 && !node.expanded && node.subMatchCount > 0) {\n      return {\n        badge: node.subMatchCount,\n        badgeTooltip: `${node.subMatchCount} matches`,\n        badgeClass: \"match-count\",\n      };\n    }\n  },\n  ...\n});\n```\n\n### Connect to Search Input\n\nDefine some html elements as filter controls:\n\n```html\n<label for=\"filter-query\">Filter:</label>\n<input\n  id=\"filter-query\"\n  type=\"search\"\n  placeholder=\"Enter search pattern\"\n  autofocus\n/>\n<button type=\"button\" title=\"Hide unmatched nodes\">\n  <i class=\"bi bi-funnel\"></i>\n</button>\n```\n\nand connect them to the `tree.filterNodes()` method:\n\n```js\nconst queryInput = document.querySelector(\"input#filter-query\");\n\nqueryInput.addEventListener(\n  \"input\",\n  Wunderbaum.util.debounce((e) => {\n    tree.filterNodes(queryInput.value.trim(), {});\n  }, 700)\n);\n...\n// For example: dynamically toggle hide/dim mode\ntree.setOption(\"filter.mode\", hideMode ? \"hide\" : \"dim\");\n```\n\nAn even simpler way is to use the `options.filter.connect` option, like\n[in the demo](https://mar10.github.io/wunderbaum/demo/#demo-plain).\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  filter: {\n      mode: \"hide\",\n      autoExpand: true,\n      connect: {\n          inputElem: \"#filter-query\",\n          modeButton: \"#filter-hide\",\n          nextButton: \"#filter-next\",\n          prevButton: \"#filter-prev\",\n          matchInfoElem: \"#filter-match-info\",\n      }\n  },\n});\n```\n\n!!! info \"See also\"\n\n    See also a [live demo](https://mar10.github.io/wunderbaum/demo/#demo-plain)\n    and enter some text in the _Filter_ control at the top.\n\n### Add a Filter Button to the Column Header\n\nAdd a filter button to the column header to toggle the filter mode:\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  columns: [\n    {\n      title: \"Title\",\n      filterable: true,\n    },\n    ...\n  ],\n  buttonClick: (e) => {\n    tree.log(e.type, e);\n\n    if (e.command === \"filter\") {\n\n      // ... <open a filter dialog or toggle the filter mode> ...\n\n      // Update the button state\n      e.info.colDef.filterActive = !e.info.colDef.filterActive;\n      tree.update(\"colStructure\");\n    }\n  },\n  ...\n});\n```\n\n### Related Methods\n\n- `tree.clearFilter()`\n- `tree.countMatches()`\n- `tree.filterNodes()`\n- `tree.findAll()`\n- `tree.findFirst()`\n- `tree.iconBadge()`\n- `tree.isFilterActive()`\n- `tree.updateFilter()`\n\n### Related CSS Rules\n\n```scss\n&.wb-ext-filter-dim,\n&.wb-ext-filter-hide {\n  div.wb-node-list div.wb-row {\n    color: $filter-dim-color;\n\n    &.wb-submatch {\n      color: $filter-submatch-color;\n    }\n\n    &.wb-match {\n      color: $node-text-color;\n    }\n  }\n}\n```\n"
  },
  {
    "path": "docs/tutorial/tutorial_grid.md",
    "content": "# Grid\n\n!!! abstract \"TL;DR\"\n\n    Wunderbaum implements native support for treegrids (in fact, a plain tree\n    is only a special case). <br>\n    Rendering and editing of grid cells requires custom event handlers.\n\n!!! info \"See also\"\n\n    See also a [live demo](https://mar10.github.io/wunderbaum/demo/#demo-editable).\n\nWunderbaum works as a treegrid out of the box if we specify column definitions. <br>\nIn a treegrid, there is also general support for embedded input elements\nin column cells, like checkboxes, text fields, etc.\n\nNote that the treegrid is not editable by default however.\nIt does not even render cell content for columns other than the main (first)\nnode column. This has to be implemented in the `render(e)` callback instead. <br>\nWunderbaum does _not_ implement fancy input controls.\nRather think of it as a framework that makes it easy to use standard or custom\nHTML controls: <br>\nCreate HTML controls in the `render(e)` callback and implement the\n`change(e)` event to enable editing.\n\n## Column Definitions\n\n!!! info\n\n    Column definitions are required to turn a plain Wunderbaum tree into a treegrid.\n\nA list of column definitions is specified in the `columns` option.\n`title` and `id` are required. `width` is optional, but recommended.\n\nThe `id` is used to identify the column in the `render` event. <br>\nThe special id `\"*\"` is used for the main node column with checkbox, connectors, icon, and title).\nIt is required and must be the first column in the list.\n\nThe `width` is either specified in absolute pixels (`\"100px\"`) or relative\nweights (`\"2.5\"`). Column widths default to `\"*\"`, which is equivalent to `\"1.0\"` <br>\nAbsolute widths are applied first, then the remaining space is distributed\namong the relative weights.\n\nThe `classes` property can be used to add CSS classes to the column header\nand cells.\n\nThe `html` property can be used to define cell markup that is rendered by default.\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  columns: [\n    { id: \"*\", title: \"Product\", width: \"250px\" },\n    { id: \"author\", title: \"Author\", width: \"200px\" },\n    { id: \"year\", title: \"Year\", width: \"50px\", classes: \"wb-helper-end\" },\n    { id: \"qty\", title: \"Qty\", width: \"50px\", classes: \"wb-helper-end\" },\n    {\n      id: \"price\",\n      title: \"Price ($)\",\n      width: \"80px\",\n      classes: \"wb-helper-end\",  // (1)\n    },\n    { id: \"details\", title: \"Details\", width: \"*\" },\n  ],\n  ...\n});\n```\n\n1.  This classes are added to all header and row cells of that column.\n    In this case: right align the content of the column.\n\n!!! info\n\n    See also\n    [ColumnDefinition](https://mar10.github.io/wunderbaum/api/interfaces/types.ColumnDefinition.html)\n    for details.\n\n## Rendering\n\nWunderbaum renders the first column (the main node column) by default.\nTo render additional columns, implement the `render(e)` callback.\n\nThe render event receives a\n[WbRenderEventType](https://mar10.github.io/wunderbaum/api/interfaces/types.WbRenderEventType.html)\nobject that contains useful properties for this purpose.\n\nWe can use the `e.renderColInfosById` property to iterate over all columns\nand render the content of each column. <br>\nThis can be simplified by following the convention to name the column id\nafter the node data property that should be rendered in that column.\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  types: {},\n  columns: [\n    { id: \"*\", title: \"Product\", width: \"250px\" },\n    { id: \"author\", title: \"Author\", width: \"200px\" },\n    { id: \"year\", title: \"Year\", width: \"50px\", classes: \"wb-helper-end\" },\n    { id: \"qty\", title: \"Qty\", width: \"50px\", classes: \"wb-helper-end\" },\n    {\n      id: \"price\",\n      title: \"Price ($)\",\n      width: \"80px\",\n      classes: \"wb-helper-end\",\n    },\n    { id: \"details\", title: \"Details\", width: \"*\" },\n  ],\n  ...\n  render: function (e) {\n    const node = e.node;\n\n    for (const col of Object.values(e.renderColInfosById)) {\n      switch (col.id) {\n        default:\n          // Assumption: we named column.id === node.data.NAME\n          col.elem.textContent = node.data[col.id];\n          break;\n      }\n    }\n  },\n});\n```\n\nIf we want to render formatted values, we can do this explicitly for each column:\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  render: function (e) {\n    const node = e.node;\n\n    for (const col of Object.values(e.renderColInfosById)) {\n      const val = node.data[col.id];\n\n      switch (col.id) {\n        case \"date\":\n          if (val) {\n            const dt = new Date(val);\n            col.elem.textContent = dt.toISOString().slice(0, 10);\n          } else {\n            col.elem.textContent = \"n.a.\";\n          }\n          break;\n        case \"state\":\n          {\n            const map = { h: \"Happy\", s: \"Sad\" };\n            col.elem.textContent = map[val] || \"n.a.\";\n          }\n          break;\n        case \"avail\":\n          col.elem.textContent = val ? \"Yes\" : \"No\";\n          break;\n        default:\n          // Assumption: we named column.id === node.data.NAME\n          col.elem.textContent = val;\n          break;\n      }\n    }\n  },\n});\n```\n\n!!! info\n\n    See the [Edit Tutorial](tutorial_edit.md) for examples how to render\n    embedded controls.\n\n## Editing\n\nEditing cells &mdash; other than the node title column &mdash; is not supported\nby default. Instead we have to\n\n1. Implement the `render(e)` callback to render the cell's content as an HTML\n   element that can be edited, like a text field, checkbox, etc.\n2. Implement the `change(e)` callback to update the node data when the user\n   has finished editing a cell.\n\n!!! info\n\n    See the [Edit Tutorial](tutorial_edit.md) for details.\n\n## Navigation\n\nA treegrid can have one of two navigation modes. We can toggle using the keyboard:\n\nRow Mode ↔ Cell-Nav Mode\n\n!!! info\n\n    See the [Keyboard Tutorial](tutorial_keyboard.md) for details.\n\n## Configuration and Customization\n\n!!! note\n\n    Todo.\n\n### Related Tree Options\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  navigationModeOption: \"startRow\",  // | \"cell\" | \"startCell\" | \"row\"\n  columns: [],\n  ...\n  // --- Events ---\n  render: (e) => {\n    // Return false to prevent default behavior\n  }\n  ...\n  edit: {\n    trigger: [\"F2\", \"macEnter\", ...],\n    ...\n  },\n});\n```\n\n### Related Methods\n\n- `tree.setNavigationOption(mode: NavModeEnum)`\n- `tree.setColumn(colIdx: number|string,  options?: SetColumnOptions)`\n\n### Related CSS Rules\n\n```css\n\n```\n\n### Code Hacks\n\n#### Redefine Columns\n\nFor example to append a new column:\n\n```js\ntree.columns.push({\n  title: \"New Col\",\n  id: \"col_\" + sequence++,\n  width: \"100px\",\n});\ntree.update(\"colStructure\");\n```\n\n#### Add a Menu Button to the Column Header\n\nAdd a filter button to the column header to toggle the filter mode:\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  columns: [\n    {\n      title: \"Title\",\n      menu: true,\n      ...\n    },\n    ...\n  ],\n  buttonClick: (e) => {\n    if (e.command === \"menu\") {\n      alert(\"Open menu...\");\n    }\n  },\n  ...\n});\n```\n\n#### Add a Sort Button to the Column Header\n\nAdd a sort button to the column header and handle click events to toggle\nthe order:\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  columns: [\n    {\n      title: \"Title\",\n      sortable: true, // or set in column definition\n      ...\n    },\n    ...\n  ],\n  columnsSortable: true, // or set in column definition\n  buttonClick: (e) => {\n    if (e.command === \"sort\") {\n      e.tree.sortByProperty({ colId: e.info.colId, updateColInfo: true });\n    }\n  },\n  ...\n});\n```\n"
  },
  {
    "path": "docs/tutorial/tutorial_initialize.md",
    "content": "# Loading and Initialization\n\n!!! abstract \"TL;DR\"\n\n    Wunderbaum is included on a page and initialized by instantiating a\n    Wunderbaum object with custom options.\n\n## Preparation\n\nWe need to include the library, stylesheets, and fonts as a precondition. <br>\nSee [Quick Start](quick_start.md) for details.\n\n## Passing Options\n\nThere are many more options and callbacks available. Here are some of the\nfrequently used ones:\n\n```js\ndocument.addEventListener(\"DOMContentLoaded\", (event) => {\n  const tree = new mar10.Wunderbaum({\n    element: document.getElementById(\"demo-tree\"),\n    id: \"demo\",\n    types: {},\n    columns: [{ id: \"*\", title: \"Product\", width: \"250px\" }],\n    source: \"get/root/nodes\",\n    // Event handlers:\n    init: (e) => {\n      // e.tree.setFocus();\n      e.tree.findFirst(\"Foo\")?.setActive(true, {\n        colIdx: \"*\",\n        edit: true,\n        focusTree: true,\n      });\n    },\n    receive: function (e) {},\n    load: function (e) {},\n    lazyLoad: function (e) {\n      return { url: 'get/child/nodes', params: { parentKey: e.node.key } };\n    },\n    activate: function (e) {},\n    render: function (e) {},\n    ...\n  });\n});\n```\n\nCommon options include:\n\n<dl>\n<dt>element</dt>\n<dd>\n    Selector or HTML Element of the target div tag.\n</dd>\n<dt>id</dt>\n<dd>\n    The identifier of this tree. Used to reference the instance, especially when\n    multiple trees are present (e.g. `tree = mar10.Wunderbaum.getTree(\"demo\")`).\n</dd>\n<dt>source</dt>\n<dd>\n    Define the initial tree data. Typically a URL of an endpoint that serves a JSON formatted structure, but also a callback, Promise, or static data is allowed.\n</dd>\n<dt>types</dt>\n<dd>\n    Define shared attributes for multiple nodes of the same `node.type`.\n    This allows for more compact data models.\n    Type definitions can be passed as tree option, or be part of a\n    `source` response.\n</dd>\n<dt>columns</dt>\n<dd>\n    A list of maps that define column headers.\n    If this option is set, Wunderbaum becomes a treegrid control instead\n    of a plain tree.\n    Column definitions can be passed as tree option, or be part of a\n    `source` response.\n</dd>\n</dl>\n\n!!! info\n\n    See [WunderbaumOptions](https://mar10.github.io/wunderbaum/api/interfaces/wb_options.WunderbaumOptions.html)\n    for a complete list of options.\n\n### Dynamic Options\n\nSome node options can be defined in a flexible way, using a dynamic pattern.\n\nConsider for example the `checkbox` option, which may be true, false, or\n\"radio\". If omitted, it will default to false.\nGlobally enabling checkboxes for all nodes can be configured like so:\n\n```js\nconst tree = new mar10.Wunderbaum({\n  ...\n  checkbox: true,\n  ...\n```\n\nThis global setting may be overridden per node by the concrete source data,\nif a property of the same name is present:\n\n```js\n[\n  { title: \"Node 1\" },\n  { title: \"Node 2\", checkbox: false },\n  { title: \"Node 3\", checkbox: \"radio\" },\n];\n```\n\nIf the global setting is a callback, it will be called for every node, thus\nallowing to dynamically define option values:\n\n```js\nconst tree = new mar10.Wunderbaum({\n  checkbox: (e) => {\n    // Hide checkboxes for folders\n    return e.node.type === \"folder\" ? false : true;\n  },\n  tooltip: (e) => {\n    // Create dynamic tooltips\n    return `${e.node.title} (${e.node.key})`;\n  },\n  icon: (e) => {\n    // Create custom icons\n    if( e.node.data.critical ) {\n      return \"foo-icon-class\";\n    }\n    // Exit without returning a value: continue with default processing.\n  },\n  ...\n```\n\nCurrently the following options are evaluated as dynamic options:\n`checkbox`, `icon`, `iconTooltip`, `tooltip`, `unselectable`.\n\nSee method `node.getOption()` for details.\n\n## Event Handlers\n\nEvent handlers can be used to control tree behavior and react on status changes.\nCommon event handlers include: `init(e)`, `lazyLoad(e)`, `receive(e)`, `render(e)`,\nand more.\n\n!!! info\n\n    Event Handlers are described in detail in the [Events chapter](tutorial_events.md).\n\n## Data Source\n\n!!! info\n\n    See examples of JSON data and learn more in the next section,\n    [Data Formats](tutorial_source.md)\n\nTypically we load the tree nodes in a separate Ajax request like so:\n\n```js\nconst tree = new mar10.Wunderbaum({\n  ...\n  source: \"path/to/request\",\n  ...\n});\n```\n\nThe example above issues a simple GET request.\nFor more controle, we can use the extended syntax:\n\n```js\nconst tree = new mar10.Wunderbaum({\n  ...\n  source: {\n    url: \"path/to/request\",\n    params: {},  // key/value pairs converted to URL parameters\n    body: {},    // key/value pairs converted to JSON body (defaults to method POST)\n    options: {}, // passed to `fetch(url, OPTIONS)`\n  }\n  ...\n});\n```\n\nThe endpoint must return a node structure in JSON format.\n\nNote that\n\n- The structure may be nested, e.g. a child node may in turn contain a `children` list.\n- Some reserved attributes names are part of the node data model:<br>\n  `checkbox`, `classes`, `expanded`, `icon`, `iconTooltip`, `key`, `lazy`,\n  `radiogroup`, `refKey`, `selected`, `statusNodeType`, `title`, `tooltip`,\n  `type`, `unselectable`.<br>\n  They can be accessed as `node.title`, for example,\n\n- All other properties are stored under the _data_ namespace and are accessed\n  like `node.data.author`, for example.\n- Only `title` is mandatory\n- Node titles are escaped in order to prevent [XSS](https://owasp.org/www-community/attacks/xss/).\n  For example if JSON source contains `\"title\": \"<script>...\"`, it will be\n  converted to `&lt;script&gt;...`, which is rendered by the browser as\n  `<script>...`, but not interpreted as HTML element.\n\n### Handling External Data Formats\n\n!!! info \"See also\"\n\n    See also [Example with source](https://mar10.github.io/wunderbaum/demo/#demo-custom)\n    that queries the [Fake Store API](https://fakestoreapi.com).\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  source: { url: \"https://fakestoreapi.com/products/categories\" },\n  lazyLoad: (e) => {\n    return { url: `https://fakestoreapi.com/products/category/${e.node.refKey}` }\n  },\n  receive: (e) => {\n    return e.response.map((elem) => {\n      return {\n        title: elem.name,\n        refKey: elem.id,\n      }\n    });\n  },\n});\n```\n"
  },
  {
    "path": "docs/tutorial/tutorial_keyboard.md",
    "content": "# Keyboard Navigation\n\n!!! abstract \"TL;DR\"\n\n    Wunderbaum tree and treegrid is navigable using keyboard shortcuts.\n    Different navigation modes are available.\n\nThe option `keyboard: true` enables standard keyboard navigation.\n\n!!! info \"See also\"\n\n    See also a [live demo](https://mar10.github.io/wunderbaum/demo/#demo-editable)\n    and use the keyboard to navigate, expand, and edit grid cells.\n\n## General Keyboard Navigation\n\nWe distinguish node states 'focused', 'active', and 'selected'.<br>\n`setFocus()` only sets a dotted border around the node. When `autoActivate`\nis enabled (which is on by default), the node also gets activated.<br>\nA node becomes 'selected', when the checkbox is checked.\n\nA tree can have one of two navigation modes. We can toggle using the keyboard:\n\n_Row Mode_ &harr; _Cell-Nav Mode_\n\nThe initial mode, and if modes can be switched, is controlled by the\n`navigationModeOption` option:<br>\nIf the tree has only one column, or if _navigationModeOption_ is `\"row\"`,\nRow Mode is obligatory.\nIf the value is `\"cell\"`, Cell-Nav Mode is obligatory.<br>\nA value of `\"startCell\"` or `\"startRow\"` allows switching.\n\n### Navigation in **Row Mode**\n\nIn _row mode_, Wunderbaum behaves like a simple tree. Even if multiple columns\nare present, always the whole row is highlighted.\n\n<table>\n<thead>\n  <tr>\n    <th>Windows</th>\n    <th>macOS</th>\n    <th>Function</th>\n  </tr>\n</thead>\n<tbody>\n  <tr>\n    <td colspan=2 align=center><kbd>AlphaNum</kbd></td>\n    <td>Jump to next matching node, i.e. title starts with this character (if `quicksearch` is true).</td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>Tab</kbd>, <kbd>Shift</kbd> + <kbd>Tab</kbd></td>\n    <td>Leave the Wunderbaum tree control and focus next/previous control on the page.</td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>+</kbd> / <kbd>-</kbd></td>\n    <td>Expand/collapse node</td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>Space</kbd></td>\n    <td>Toggle <i>selected</i> status if <i>checkbox</i> option is on.</td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>F2</kbd></td>\n    <td>Edit node title.</td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>Enter</kbd></td>\n    <td>\n      If node is active and expandable: toggle expansion.<br>\n      <b>Note:</b>\n      Behaves as alias for <kbd>F2</kbd> on macOS if <i>edit.trigger</i> option list\n      contains \"macEnter\".<br>\n    </td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>Escape</kbd></td>\n    <td>Discard edit title operation if any.</td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>Backspace</kbd></td>\n    <td>Set focus to parent node.</td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>ArrowLeft</kbd></td>\n    <td>\n      If expanded: collapse. Otherwise set focus to parent node.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>ArrowRight</kbd></td>\n    <td>\n      If collapsed: expand. <br>\n      Otherwise switch to &rarr;<b>Cell-Nav Mode</b>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>ArrowUp</kbd></td>\n    <td>Set focus to previous sibling (or parent if already on first sibling).</td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>ArrowDown</kbd></td>\n    <td>Set focus to next visible node.</td>\n  </tr>\n  <tr>\n    <td><kbd>Ctrl</kbd> + <kbd>Arrow&hellip;</kbd></td>\n    <td><kbd>⌘</kbd> + <kbd>Arrow&hellip;</kbd></td>\n    <td>\n      Same as plain <kbd>Arrow&hellip;</kbd>, but only sets the focus, even if\n      <i>autoActivate</i> option is on.\n    </td>\n  </tr>\n  <tr>\n    <td><kbd>Home</kbd></td>\n    <td><kbd>Fn</kbd> + <kbd>ArrowLeft</kbd></td>\n    <td>\n      &mdash;\n    </td>\n  </tr>\n  <tr>\n    <td><kbd>End</kbd></td>\n    <td><kbd>Fn</kbd> + <kbd>ArrowRight</kbd></td>\n    <td>\n      &mdash;\n    </td>\n  </tr>\n  <tr>\n    <td><kbd>PageUp</kbd></td>\n    <td><kbd>Fn</kbd> + <kbd>ArrowUp</kbd></td>\n    <td>\n      Select top row in viewport or scroll one page upwards if we are already\n      at the top.\n    </td>\n  </tr>\n  <tr>\n    <td><kbd>PageDown</kbd></td>\n    <td><kbd>Fn</kbd> + <kbd>ArrowDown</kbd></td>\n    <td>\n      Select bottom row in viewport or scroll one page down if we are already\n      at the bottom.\n    </td>\n  </tr>\n  <tr>\n    <td>\n      <kbd>Ctrl</kbd> + <kbd>Home</kbd>,<br>\n      <kbd>Ctrl</kbd> + <kbd>End</kbd>\n    </td>\n    <td>\n      <kbd>⌘</kbd> + <kbd>ArrowUp</kbd>,<br>\n      <kbd>⌘</kbd> + <kbd>ArrowDown</kbd>\n    </td>\n    <td>Select first / last row.</td>\n  </tr>\n\n</tbody>\n</table>\n\n### Navigation in **Cell-Nav Mode**\n\n_Cell-Nav mode_ is only available, when multiple columns are defined.\nIn this mode we navigate the single grid cells in read-only mode mostly. <br>\nHowever, if the cell contains an embedded <code>&lt;input&gt;</code> element,\nwe can focus that control and edit its content.\n\n<table>\n<thead>\n  <tr>\n    <th>Windows</th>\n    <th>macOS</th>\n    <th>Function</th>\n  </tr>\n</thead>\n<tbody>\n  <tr>\n    <td colspan=2 align=center><kbd>+</kbd> / <kbd>-</kbd></td>\n    <td>Expand/collapse node if the title column is highlighted.</td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center>\n      <kbd>ArrowUp</kbd>, <kbd>ArrowDown</kbd>, <kbd>ArrowLeft</kbd>, <kbd>ArrowRight</kbd>\n    </td>\n    <td>\n      Navigate to adjacent cell.<br>\n      <kbd>ArrowLeft</kbd> on the leftmost column switches to &rarr;<b>Row Mode</b>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center>\n      <kbd>Tab</kbd>,\n      <kbd>Shift</kbd> + <kbd>Tab</kbd>\n    </td>\n    <td>\n      Move to adjacent cell.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>Escape</kbd></td>\n    <td>\n      If the focus is inside an embedded <code>&lt;input&gt;</code> element:\n      discard changes and set focus to the outer cell.<br>\n      Otherwise switch to &rarr;<b>Row Mode</b>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>F2</kbd></td>\n    <td>\n      Edit the current grid cell.\n      If the title column is highlighted, edit the node title.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>Enter</kbd></td>\n    <td>\n      If on the first column and node is expandable: toggle expansion.<br>\n      If the cell contains an embedded <code>&lt;input&gt;</code> element:\n      set focus into that input control.<br>\n      If the input control already had the focus, accept the entered data.<br>\n      <b>Note:</b>\n      <kbd>Enter</kbd> behaves as alias for <kbd>F2</kbd> on macOS if the\n      <i>edit.trigger</i> option list contains \"macEnter\".\n    </td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>AlphaNum</kbd></td>\n    <td>\n      If the cell contains an embedded <code>&lt;input&gt;</code> element:\n      start editing its value.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=2 align=center><kbd>Space</kbd></td>\n    <td>\n      Toggle value if current cell contains a checkbox.\n      Toggle node selection if current cell is in the title column.\n    </td>\n  </tr>\n  <tr>\n    <td><kbd>Home</kbd></td>\n    <td><kbd>Fn</kbd> + <kbd>ArrowLeft</kbd></td>\n    <td> Select leftmost cell. </td>\n  </tr>\n  <tr>\n    <td><kbd>End</kbd></td>\n    <td><kbd>Fn</kbd> + <kbd>ArrowRight</kbd></td>\n    <td> Select rightmost cell. </td>\n  </tr>\n  <tr>\n    <td><kbd>PageUp</kbd></td>\n    <td><kbd>Fn</kbd> + <kbd>ArrowUp</kbd></td>\n    <td>\n      Select top cell in viewport or scroll one page upwards if we are already\n      at the top.\n    </td>\n  </tr>\n  <tr>\n    <td><kbd>PageDown</kbd></td>\n    <td><kbd>Fn</kbd> + <kbd>ArrowDown</kbd></td>\n    <td>\n      Select bottom cell in viewport or scroll one page down if we are already\n      at the bottom.\n    </td>\n  </tr>\n  <tr>\n    <td>\n      <kbd>Ctrl</kbd> + <kbd>Home</kbd>,<br>\n      <kbd>Ctrl</kbd> + <kbd>End</kbd>\n    </td>\n    <td>\n      <kbd>⌘</kbd> + <kbd>ArrowUp</kbd>,<br>\n      <kbd>⌘</kbd> + <kbd>ArrowDown</kbd>\n    </td>\n    <td>Select top / bottom tree cell.</td>\n  </tr>\n\n</tbody>\n</table>\n\n## Configuration and Customization\n\n### Related Tree Options\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  enable: true,\n  autoActivate: true,\n  checkbox: true,\n  navigationModeOption: \"startRow\",  // | \"cell\" | \"startCell\" | \"row\"\n  quicksearch: true,\n  ...\n  // --- Events ---\n  keydown: (e) => {\n    // Return false to prevent default behavior\n  }\n  ...\n  edit: {\n    trigger: [\"F2\", \"macEnter\", ...],\n    ...\n  },\n});\n```\n\n### Related Methods\n\n- `tree.setNavigationOption(mode: NavModeEnum)`\n- `tree.setColumn(colIdx: number|string,  options?: SetColumnOptions)`\n- `tree.setEnabled(flag: boolean)`\n\n### Related CSS Rules\n\n```css\ndiv.wunderbaum.wb-grid.wb-cell-mode div.wb-row.wb-active span.wb-col.wb-active {\n  /* Highlighted cell in cell-nav mode */\n}\n```\n\n### Code Hacks\n\n```js\n\n```\n"
  },
  {
    "path": "docs/tutorial/tutorial_render.md",
    "content": "# Custom Rendering\n\n!!! abstract \"TL;DR\"\n\n    Wunderbaum is rendered as nested `<div>`/`<span>` element structure.\n    It can be customized by applying CSS styles. <br>\n    Node icons are created from customizable icon fonts.\n\nThis chapter describes different ways to customize the appearance of the tree.\n\n!!! info \"See also\"\n\n    See also the [Grid Tutorial](tutorial_grid.md) for rendering of\n    grid cell content and [Edit Tutorial](tutorial_grid.md) for rendering\n    embedded input controls in grid cells.\n\n## Custom Style Sheets\n\nIt is possible to customize the appearance of the tree by adding specific CSS rules.\n\nFor example, to change the background color of the active grid cell:\n\n```css\ndiv.wunderbaum.wb-grid.wb-cell-mode div.wb-row.wb-active span.wb-col.wb-active {\n  /* Highlighted cell in cell-nav mode */\n}\n```\n\n!!! info \"See also\"\n\n    See the [Styling Tutorial](tutorial_styling.md) for details.\n\n## Custom Icons\n\nThis example uses [Font Awesome Icons](https://fontawesome.com/icons) instead\nof the default [Bootstrap Icons](https://icons.getbootstrap.com/) icon font:\n\n```html\n<html>\n  <head>\n    <link\n      rel=\"stylesheet\"\n      href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css\"\n    />\n    ...\n  </head>\n</html>\n```\n\n```js\nconst tree = new mar10.Wunderbaum({\n  element: document.getElementById(\"demo-tree\"),\n  source: \"get/root/nodes\",\n  iconMap: \"fontawesome6\",  // <-- use Font Awesome Icons\n  ...\n});\n```\n\n`iconMap` can also be a custom map of icon names, for example:\n\n```js\nconst tree = new mar10.Wunderbaum({\n  ...\n  iconMap: {\n    error: \"bi bi-exclamation-triangle\",\n    loading: \"bi bi-chevron-right wb-busy\",\n    noData: \"bi bi-question-circle\",\n    expanderExpanded: \"bi bi-chevron-down\",\n    expanderCollapsed: \"bi bi-chevron-right\",\n    expanderLazy: \"bi bi-chevron-right wb-helper-lazy-expander\",\n    checkChecked: \"bi bi-check-square\",\n    checkUnchecked: \"bi bi-square\",\n    checkUnknown: \"bi bi-dash-square-dotted\",\n    radioChecked: \"bi bi-circle-fill\",\n    radioUnchecked: \"bi bi-circle\",\n    radioUnknown: \"bi bi-record-circle\",\n    folder: \"bi bi-folder2\",\n    folderOpen: \"bi bi-folder2-open\",\n    folderLazy: \"bi bi-folder-symlink\",\n    doc: \"bi bi-file-earmark\",\n    colSortable: \"bi bi-arrow-down-up\",\n    colSortAsc: \"bi bi-arrow-down\",\n    colSortDesc: \"bi bi-arrow-up\",\n    colFilter: \"bi bi-filter\",\n    colFilterActive: \"bi bi-filter-square-fill\",\n    colMenu: \"bi bi-three-dots-vertical\",\n   },\n  ...\n});\n```\n\nIf we want to only override some default icons, this pattern can be used:\n\n```js\nconst tree = new mar10.Wunderbaum({\n  ...\n  iconMap: Object.assign(Wunderbaum.iconMaps.bootstrap, {\n      folder: \"bi bi-archive\",\n    },\n  ),\n});\n```\n\nIf the icon definition contains html markup (i.e. contains a `<` character),\nthe icon is rendered as HTML, otherwise it is rendered as a CSS class.\n\n```js\nconst tree = new mar10.Wunderbaum({\n  ...\n  iconMap: {\n    doc: \"<i class='wb-icon'>😍</i>\",\n    expanderCollapsed: \"<i class='wb-expander'>🤔</i>\",\n    expanderExpanded: \"<i class='wb-expander'>🤗</i>\",\n    ...\n  },\n});\n```\n\n## Custom Markup\n\n### Using the `render` Event\n\nThe `render(e)` event is called for each node that needs to be rendered, i.e. that\nis materialized in the viewport.\nIt is called after the node's row markup has been created, for example:\n\n```html\n<div class=\"wb-row\" style=\"top: 22px;\">\n  <span class=\"wb-node wb-col wb-active\" style=\"left: 0px; width: 1368px;\">\n    <i class=\"wb-indent\"></i>\n    <i class=\"wb-expander wb-indent\"></i>\n    <i class=\"wb-icon bi bi-file-earmark\"></i>\n    <span class=\"wb-title\" style=\"width: 1301px;\">Node 1.1</span>\n  </span>\n</div>\n```\n\nFor treegrids with multiple columns, the row markup looks like this:\n\n```html\n<div class=\"wb-row wb-active wb-focus\" style=\"top: 66px;\">\n  <span\n    class=\"wb-node wb-col wb-active\"\n    draggable=\"true\"\n    style=\"left: 0px; width: 250px;\"\n  >\n    <i class=\"wb-checkbox bi bi-square\"></i>\n    <i class=\"wb-indent\"></i>\n    <i class=\"wb-expander wb-indent\"></i>\n    <i class=\"wb-icon bi bi-file-earmark\"></i>\n    <span class=\"wb-title\" style=\"width: 163px;\">The Little Prince</span>\n  </span>\n  <span class=\"wb-col\" style=\"left: 250px; width: 234.75px;\">\n    Antoine de Saint-Exupery\n  </span>\n  <span class=\"wb-col\" style=\"left: 484.75px; width: 50px;\">1943</span>\n  <span class=\"wb-col\" style=\"left: 534.75px; width: 50px;\">2946</span>\n  <span class=\"wb-col\" style=\"left: 584.75px; width: 80px;\">6.82</span>\n  <span class=\"wb-col\" style=\"left: 664.75px; width: 703.25px;\"></span>\n</div>\n```\n\nThe `e.nodeElem` property contains the HTML span element that represents the\nnode title, and prefix icons:\n`<span class=\"wb-node wb-col\"> ... </span>`\n\n!!! info\n\n    See [WbRenderEventType](https://mar10.github.io/wunderbaum/api/interfaces/types.WbRenderEventType.html)\n    for an overview of all event properties.\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  render: function (e) {\n    const node = e.node;\n    const nodeElement = e.nodeElement; // HTMLSpanElement\n\n    console.log(e.type, e.isNew, e);\n    nodeElement.innerText = `${node.title}!`;\n  },\n});\n```\n\n!!! info\n\n    The render event is especially useful to render the content of grid cells\n    in treegrids. See also the [Grid Tutorial](tutorial_grid.md)\n    and the [Edit Tutorial](tutorial_edit.md) for rendering of embedded\n    input controls in grids.\n\n### Badges\n\nBadges are small icons that can be displayed near the node title. <br>\nExample: Display the number of selected subnodes in the badge of collapsed parent:\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  iconBadge: (e) => {\n    const node = e.node;\n    if (node.expanded || !node.children) {\n      return;\n    }\n    const count = node.children && node.getSelectedNodes().length;\n    return {\n      badge: count,\n      badgeTooltip: `${count} selected`,\n      badgeClass: \"selection-count\",\n    };\n  },\n  ...\n});\n```\n\n```css\ndiv.wunderbaum span.wb-badge.selection-count {\n  color: white;\n  background-color: green;\n}\n```\n\nYou can also use e.g. \"data\" to control the badge and display an image instead of text.\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  iconBadge: (e) => {\n    if (e.node.data.badgeIcon) {\n      return {\n        badge: \"\",\n        badgeClass: \"wb-my-special-icon-\" + e.node.data.badgeIcon\n      };\n    }\n  },\n  ...\n});\n```\n\n```css\nspan.wb-my-special-icon-alert {\n  background-color: white !important;\n  background-image: url(\"img/alert.svg\");\n  width: 12px;\n  height: 12px;\n}\n```\n\n!!! info \"See also\"\n\n    See also [WbIconBadgeEventType](https://mar10.github.io/wunderbaum/api/interfaces/types.WbIconBadgeEventType.html)\n    and [WbIconBadgeEventResultType](https://mar10.github.io/wunderbaum/api/interfaces/types.WbIconBadgeEventResultType.html).\n\n<!-- ### Related Tree Options\n\n### Related Methods\n\n- `util.toggleCheckbox()`\n\n### Related CSS Rules\n\n### Code Hacks\n\n#### Custom badge content\n\nIf needed, you can use completely custom elements like this:\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  iconBadge: (e) => {\n    if (e.node.data.badgeIconPath) {\n      const badgeSpan = document.createElement(\"span\");\n      badgeSpan.className = \"tree-badge-icon\";\n      const badgeImg = document.createElement(\"img\");\n      badgeImg.src = e.node.data.badgeIconPath;\n      badgeSpan.appendChild(badgeImg);\n      return badgeSpan;\n    }\n  },\n  ...\n});\n```\n\n```css\ndiv.wunderbaum span.tree-badge-icon {\n  position: absolute;\n  display: inline-block;\n  top: 0;\n  left: -0.6rem;\n  padding: 0.2em 0.3rem 0.1em 0.3rem;\n  font-size: 60%;\n  font-weight: 200;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  border-radius: 0.5rem;\n  pointer-events: none;\n}\n\ndiv.wunderbaum span.tree-badge-icon img {\n  width: 12px;\n  height: 12px;\n}\n```\n"
  },
  {
    "path": "docs/tutorial/tutorial_select.md",
    "content": "# Selection\n\n!!! abstract \"TL;DR\"\n\n    Wunderbaum supports hierarchical selection, and radio-groups.\n\n### Related Tree Options\n\n```js\nconst tree = new Wunderbaum({\n  // --- Common Options ---\n  selectMode: \"multi\",  // 'single', 'multi', 'hier'\n  checkbox: true, // boolean, \"radio\", or a callback\n  ...\n  // --- Common Events ---\n  beforeSelect: function (e) {\n    // return false to prevent selection\n  },\n  select: function (e) {\n    console.log(`Selected ${e.node}: ${e.flag}`);\n    console.log(\"Selected nodes:\", e.tree.getSelectedNodes());\n  },\n  ...\n});\n```\n\n!!! info \"See also\"\n\n    See also the [Selection Example](https://mar10.github.io/wunderbaum/demo/#demo-select).\n\n### Related Node Properties\n\n```js\n[\n  { title: \"Node 1\", selected: true },\n  { title: \"Node 2\", checkbox: true },\n  { title: \"Node 3\", unselectable: true, radiogroup: true\n    children: [\n      { title: \"Option 1\", selected: true },\n      { title: \"Option 2\" },\n    ]\n  },\n]\n```\n\n### Related Methods\n\n- `node.fixSelection3AfterClick()`\n- `node.fixSelection3FromEndNodes()`\n- `node.getSelectedNodes()`\n- `node.isSelected()`\n- `node.setSelected(flag, options)`\n- `node.toggleSelected()`\n- `tree.getSelectedNodes()`\n- `tree.selectAll(flag)`\n- `tree.toggleSelect()`\n\n### Related CSS Rules\n\n```css\n\n```\n\n### Code Hacks\n\nDisplay the number of selected subnodes in the badge of collapsed parent:\n\n```js\nconst tree = new Wunderbaum({\n  ...\n  iconBadge: (e) => {\n    const node = e.node;\n    if (node.expanded || !node.children) {\n      return;\n    }\n    const count = node.children && node.getSelectedNodes()?.length;\n    return {\n      badge: count,\n      badgeTooltip: `${count} selected`,\n      badgeClass: \"selection-count\",\n    };\n  },\n  ...\n});\n```\n\n```css\ndiv.wunderbaum span.wb-badge.selection-count {\n  color: white;\n  background-color: green;\n}\n```\n"
  },
  {
    "path": "docs/tutorial/tutorial_source.md",
    "content": "# Data Formats\n\n!!! abstract \"TL;DR\"\n\n    The node structure is defined as nested object structure.\n    It is typically loaded via Ajax in JSON format. <br>\n    Type- and attibute-maps allow for compact transfer.\n\nSome examples of how the data should be formatted in JSON.\n\n## Nested List Format\n\nAll node are transferred as a list of top-level nodes, with optional nested\nlists of child nodes.\n\n```js\n[\n  {\n    title: \"Books\",\n    expanded: true,\n    children: [\n      {\n        title: \"Art of War\",\n        author: \"Sun Tzu\",\n      },\n      {\n        title: \"The Hobbit\",\n        author: \"J.R.R. Tolkien\",\n      },\n    ],\n  },\n  {\n    title: \"Music\",\n    children: [\n      {\n        title: \"Nevermind\",\n        author: \"Nirvana\",\n      },\n    ],\n  },\n];\n```\n\n## Object Format\n\nThis is the most commonly used format. Here we pass an object that contains\none `children` element, but also additional information.\n\n```js\n{\n  \"types\": {...},\n  \"columns\": [...],\n  \"_keyMap\": {...},\n  \"children\": [\n    {\n      \"title\": \"Books\",\n      \"expanded\": true,\n      \"children\": [\n        {\n          \"title\": \"Art of War\",\n          \"author\": \"Sun Tzu\"\n        },\n      ]\n    },\n    ...\n  ]\n}\n```\n\n## Type Information\n\nA tree often contains multiple nodes that share attributes.\nWe can extract type information to a separate block, in order to make the\ndata model more concise:\n\n```js\n{\n  \"types\": {\n    \"folder\": { \"icon\": \"bi bi-folder\", \"classes\": \"bold-style\" },\n    \"book\": { \"icon\": \"bi bi-book\" },\n    \"music\": { \"icon\": \"bi bi-disk\" }\n  },\n  \"children\": [\n    {\n      \"title\": \"Books\",\n      \"type\": \"folder\",\n      \"expanded\": true,\n      \"children\": [\n        {\n          \"title\": \"Art of War\",\n          \"type\": \"book\",\n          \"author\": \"Sun Tzu\"\n        },\n        ...\n      ]\n    },\n    {\n      \"title\": \"Music\",\n      \"type\": \"folder\",\n      \"children\": [\n        {\n          \"title\": \"Nevermind\",\n          \"type\": \"music\",\n          \"author\": \"Nirvana\"\n        }\n      ]\n    }\n  ]\n}\n```\n\nType definitions can also be passed directly to the tree constructor:\n\n```js\nconst tree = new mar10.Wunderbaum({\n  id: \"demo\",\n  element: document.getElementById(\"demo-tree\"),\n  source: \"get/root/nodes\",\n  types: {\n    folder: { icon: \"bi bi-folder\", classes: \"bold-style\" },\n    book: { icon: \"bi bi-book\" },\n    music: { icon: \"bi bi-disk\" }\n  },\n  ...\n```\n\n## Compact Formats\n\nLoad time of data is an important aspect of the user experience. <br>\nWe can reduce the size of the JSON data by eliminating redundancy:\n\n- Remove whitespace from the JSON (the listings in this chapter are formatted\n  for readability).\n- Don't pass default values, e.g. `expanded: false` is not required.\n- Use `node.type` declarations, to extract shared properties (see above).\n\n```js\n{\n  \"_format\": \"nested\",\n  \"types\": {\"person\": {...}, ...},\n  \"children\": [\n    {\"title\": \"Node 1\", \"key\": \"id123\", \"type\": \"folder\", \"expanded\": true, \"children\": [\n      {\"title\": \"Node 1.1\", \"key\": \"id234\", \"type\": \"person\"},\n      {\"title\": \"Node 1.2\", \"key\": \"id345\", \"type\": \"person\", \"age\": 32}\n    ]}\n  ]\n}\n```\n\nThe example above can still be optimized:\n\n- Pass `1` instead of `true` and `0` instead of `false`\n  (or don't pass it at all if it is the default).\n- Use `_keyMap` and shorten the key names, e.g. send `{\"t\": \"foo\"}` instead of\n  `{\"title\": \"foo\"}` (see below).\n- Use a `_valueMap` to define a global list of potential string values for a distinct property type. Nodes can then pass a numeric index instead of the string, which will save space.\n\n!!! note\n\n    The syntax of `_keyMap` and `_valueMap` has changed with v0.7.0.\n\n```js\n{\n  \"_format\": \"nested\",  // Optional\n  \"types\": {\"person\": {...}, ...},\n  \"columns\": [...],\n  // Map from short key to final key (if a key is not found here it will\n  // be used literally):\n  \"_keyMap\": {\"title\": \"t\", \"key\": \"k\", \"type\": \"y\", \"children\": \"c\", \"expanded\": \"e\"},\n  // Optional: if a 'type' entry has a numeric value, use it as index into this\n  // list (string values are still used literally):\n  \"_valueMap\": {\n    \"type\": [\"folder\", \"person\"]\n  },\n  \"children\": [\n    {\"t\": \"Node 1\", \"k\": \"id123\", \"y\": 0, \"e\": 1, \"c\": [\n      {\"t\": \"Node 1.1\", \"k\": \"id234\", \"y\": 1},\n      {\"t\": \"Node 1.2\", \"k\": \"id345\", \"y\": 1, \"age\": 32}\n    ]}\n  ]\n}\n```\n\n## Flat, Parent-Referencing List\n\nThe flat format is even a few percent smaller than the nested format.\nIt may also be more apropropriate for sending patches for existing trees, since\nparent keys can be passed.\n\nHere all nodes are passed as a flat list, without nesting. <br>\nA node entry has the following structure:\n\n`[PARENT_ID, [POSITIONAL_ARGS]]`<br>\nor <br>\n`[PARENT_ID, [POSITIONAL_ARGS], {KEY_VALUE_ARGS}]`\n\n`PARENT_ID` is either a string that references an existing `node.key`\nor the numeric 0-based index of a node that appeared before in the list.\n\n`POSITIONAL_ARGS` define property values in the order defined by `_positional`.\n\n`KEY_VALUE_ARGS` define other properties as key/value pairs (optional).\n\n```js\nsource: {\n    // Define format as flat, parent-referencong list:\n    \"_format\": \"flat\",\n    // types are optional, but likely if `_valueMap` is used:\n    \"types\": { \"person\": { \"icon\": \"bi-person\" }, \"folder\": { \"icon\": \"bi-folder\" } },\n    // Map from short key to final key (if a key is not found here\n    // it will be used literally):\n    \"_keyMap\": { \"expanded\": \"e\" },\n    // Optional: Values for these keys are appended as list items (after the index).\n    // Other items - if any - are collected into one dict that is\n    // also appended:\n    \"_positional\": [\"title\", \"key\", \"type\"],\n    // Optional: if a 'type' entry has a numeric value, use it as\n    // index into this list (string values are still used literally):\n    \"_valueMap\": {\n        \"type\": [\"folder\", \"person\"]\n    },\n    // List index is 0-based, parent index null means 'top-node'.\n    // If parent index is a string, parent is searched by `node.key`\n    // (slower)\n    \"children\": [\n        [null, \"Node 1\", \"id123\", 0, { \"e\": true }],  // index=0, type=folder\n        [0, \"Node 1.1\", \"id234\", 1],                  // index=1, type=person\n        [0, \"Node 1.2\", \"id345\", 1, { \"age\": 32 }]    // index=2, type=person\n    ]\n},\n```\n\n!!! info \"See also\"\n\n    This [forum comment](https://github.com/mar10/wunderbaum/discussions/137#discussioncomment-13737321)\n    for an example of how to use the flat format.\n"
  },
  {
    "path": "docs/tutorial/tutorial_styling.md",
    "content": "# Styling\n\n!!! abstract \"TL;DR\"\n\n    Common CSS classes allow custom styling and effects.\n\n## Feature Classes\n\nWe can add special classes to the tree's `<div>` container in order to enable\ncustom behavior:\n\n- `wb-alternate` <br>\n  Render even and odd rows in alternating background shades.\n- `wb-checkbox-auto-hide` <br>\n  Apply CSS rules that hide unselected checkbox icons unless the mouse hovers\n  over a row.\n- `wb-fade-expander` <br>\n  Apply CSS rules that show expander icons only while the mouse hovers over\n  the tree.\n- `wb-initializing` <br>\n  This class is automatically _removed_ when the tree is fully initialized.\n  Combining this class with other selectors allows to define CSS rules that only\n  apply during initial loading. See also `wb-skeleton`.\n- `wb-no-select` <br>\n  Prevent text selection with the mouse (applies `user-select` CSS rule).\n- `wb-rainbow` <br>\n  Colorize distinct indentation levels.\n- `wb-rtl` <br>\n  Render the tree in right-to-left mode by flipping the behavior of `wb-helper-end`\n  and `wb-helper-start` classes.\n\nFor example\n\n```html\n<div id=\"demo-tree\" class=\"... wb-no-select wb-checkbox-auto-hide\">...</div>\n```\n\n## Automatic Styles\n\nThese classes are automatically set on the tree's `<div>` container, depending\non the current mode, allowing for custom CSS rules:\n\n- `wb-grid`\n- `wb-fixed-col`\n- `wb-cell-mode`\n\nThese classes are automatically set for distinct rows, allowing custom CSS rules:\n\n- `wb-active`\n- `wb-busy`\n- `wb-error`\n- `wb-invalid`\n- `wb-loading`\n- `wb-match`\n- `wb-selected`\n- `wb-skeleton` <br>\n  Added to rows, when the _skeleton_ tree option is true.\n  Applies CSS styles that render titles as glowing placeholders.\n  (Typically combined with `wb-initializing`.)\n- `wb-status-STATUS`, e.g. `wb-status-error`\n- `wb-submatch`\n\nThese classes are automatically set for distinct column spans,\nallowing custom CSS rules:\n\n- `wb-active`\n- `wb-busy`\n- `wb-error`\n- `wb-invalid`\n\n```css\ntodo: example;\n```\n\n## Helper Classes\n\nThis classes can be added to column definitions in order to enable custom\nformatting:\n\n- `wb-helper-center` <br>\n  Align cell content to the center.\n- `wb-helper-disabled` <br>\n  Apply disabled style to cell content, i.e. render in a dimmed color.\n- `wb-helper-end` <br>\n  Align cell content to the right (unless `wb-rtl` is set on the container).\n- `wb-helper-hidden` <br>\n  Hide element content.\n- `wb-helper-invalid` <br>\n  Apply _invalid_ style to cell content, i.e. render in red.\n- `wb-helper-lazy-expander` <br>\n  Can be used in iconMaps to make a font icon appear colored.\n- `wb-helper-link` <br>\n  Apply link style to cell content.\n- `wb-helper-start` <br>\n  Align cell content to the left (unless `wb-rtl` is set on the container).\n\n## CSS Variables\n\nMany CSS styles can be accessed and modified using JavaScript like so:\n\n```js\ndocument.body.style.setProperty(\"--wb-node-text-color\", \"#ff00ff\");\ndocument\n  .querySelector(\"#tree\")\n  .style.setProperty(\"--wb-font-stack\", \"monospace\");\n```\n\nSee [`wunderbaum.scss`](https://github.com/mar10/wunderbaum/blob/main/src/wunderbaum.scss)\nfor a complete list of all availabe CSS variables.\n\n## CSS Hacks\n\n!!! info \"See also\"\n\n    See also the [Render Tutorial](tutorial_render.md?id=custom-markup)\n    for details on the markup structure and used class names.\n\n```css\ndiv.wunderbaum {\n  scroll-behavior: smooth;\n}\n```\n\n```css\n/* Show tree skeleton while initializing. */\ndiv.wunderbaum.wb-skeleton.wb-initializing {\n  background-position-y: 20px;\n  background-image: url(\"skeleton-transp.png\");\n  background-repeat: no-repeat;\n}\n```\n\n```css\n* {\n  padding: 0;\n  margin: 0;\n  /* prevent scrollbars, which would break `100vh` */\n  overflow: hidden;\n}\n```\n\n```css\ndiv.wunderbaum:focus-visible {\n  /* Suppress system focus outline. */\n  outline-style: none;\n}\n```\n"
  },
  {
    "path": "docs/unittest/ajax-simple-sub.json",
    "content": "[{ \"title\": \"SubNode 1\" }, { \"title\": \"SubNode 2\" }]\n"
  },
  {
    "path": "docs/unittest/ajax-simple.json",
    "content": "[\n  {\n    \"title\": \"Node 1\",\n    \"expanded\": true,\n    \"children\": [{ \"title\": \"Node 1.1\" }, { \"title\": \"Node 1.2\" }]\n  },\n  { \"title\": \"Node 2\", \"lazy\": true }\n]\n"
  },
  {
    "path": "docs/unittest/test-core-fixture1.js",
    "content": "/*!\n * Wunderbaum - Unit Test\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n\nconst { test } = QUnit;\nconst Wunderbaum = mar10.Wunderbaum;\n\nconst FIXTURE_1 = [\n  {\n    title: \"Node 1\",\n    expanded: true,\n    children: [{ title: \"Node 1.1\" }, { title: \"Node 1.2\" }],\n  },\n  { title: \"Node 2\", lazy: true },\n];\n\nQUnit.module(\"Fixture-1 tests\", (hooks) => {\n  let tree;\n\n  hooks.beforeEach(() => {\n    tree = new Wunderbaum({\n      element: \"#tree\",\n      source: FIXTURE_1,\n    });\n  });\n  hooks.afterEach(() => {\n    tree.destroy();\n    tree = null;\n  });\n\n  test(\"fixture ok\", (assert) => {\n    assert.expect(1);\n    assert.equal(tree.count(), 4);\n  });\n});\n"
  },
  {
    "path": "docs/unittest/test-core.js",
    "content": "/*!\n * Wunderbaum - Unit Test\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n/* global mar10, QUnit */\n/* eslint-disable no-console */\n\nconst { test } = QUnit;\nconst Wunderbaum = mar10.Wunderbaum;\nconst util = Wunderbaum.util;\nconst FIXTURE_1 = [\n  {\n    title: \"Node 1\",\n    expanded: true,\n    children: [{ title: \"Node 1.1\" }, { title: \"Node 1.2\" }],\n  },\n  { title: \"Node 2\", lazy: true },\n];\n\n/* Setup */\nQUnit.testStart(function () {\n  window.sessionStorage.clear();\n  window.localStorage.clear();\n});\n\n/* Tear Down */\nQUnit.testDone(function () {});\n\nQUnit.module(\"Utility tests\", (hooks) => {\n  test(\"Static utility functions\", (assert) => {\n    assert.expect(2);\n\n    assert.equal(util.type([]), \"array\", \"type([])\");\n    assert.equal(util.type({}), \"object\", \"type({})\");\n  });\n});\n\nQUnit.module(\"Static tests\", (hooks) => {\n  test(\"Access static properties\", (assert) => {\n    assert.expect(4);\n\n    assert.true(Wunderbaum.version != null, \"Statics defined\");\n\n    assert.throws(\n      function () {\n        const _dummy = Wunderbaum();\n      },\n      /TypeError/,\n      \"Fail if 'new' keyword is missing\"\n    );\n    assert.throws(\n      function () {\n        const _dummy = new Wunderbaum();\n      },\n      /Error: Invalid 'element' option: null/,\n      \"Fail if option is missing\"\n    );\n    assert.throws(\n      function () {\n        const _dummy = new Wunderbaum({});\n      },\n      /Error: Invalid 'element' option: null/,\n      \"Fail if 'element' option is missing\"\n    );\n  });\n});\n\nQUnit.module(\"Instance tests\", (hooks) => {\n  let tree = null;\n\n  hooks.beforeEach(() => {});\n  hooks.afterEach(() => {\n    tree.destroy();\n    tree = null;\n  });\n\n  test(\"Initial event sequence (fetch)\", (assert) => {\n    assert.expect(5);\n    assert.timeout(1000); // Timeout after 1 second\n    const done = assert.async();\n\n    tree = new Wunderbaum({\n      element: \"#tree\",\n      source: \"ajax-simple.json\",\n      // source: FIXTURE_1,\n      receive: (e) => {\n        assert.step(\"receive\");\n        assert.equal(\n          e.response[0].title,\n          \"Node 1\",\n          \"receive(e) passes e.response\"\n        );\n      },\n      load: (e) => {\n        assert.step(\"load\");\n      },\n      // render: (e) => {\n      //   assert.step(\"render\");\n      // },\n      init: (e) => {\n        assert.step(\"init\");\n        assert.verifySteps([\"receive\", \"load\", \"init\"], \"Event sequence\");\n        done();\n      },\n    });\n  });\n\n  test(\"Lazy load (fetch)\", (assert) => {\n    assert.expect(8);\n    assert.timeout(1000); // Timeout after 1 second\n    const done = assert.async();\n    let initComplete = false;\n\n    tree = new Wunderbaum({\n      element: \"#tree\",\n      source: \"ajax-simple.json\",\n      lazyLoad: (e) => {\n        if (initComplete) {\n          assert.step(\"lazyLoad\");\n          assert.equal(\n            e.node.title,\n            \"Node 2\",\n            \"lazyLoad(e) passes parent node\"\n          );\n          return { url: \"ajax-simple-sub.json\" };\n        }\n      },\n      receive: (e) => {\n        if (initComplete) {\n          assert.step(\"receive\");\n          assert.equal(\n            e.response[0].title,\n            \"SubNode 1\",\n            \"receive(e) passes e.response\"\n          );\n        }\n      },\n      load: (e) => {\n        if (initComplete) {\n          assert.step(\"load\");\n          assert.verifySteps(\n            [\"init\", \"lazyLoad\", \"receive\", \"load\"],\n            \"Event sequence\"\n          );\n          done();\n        }\n      },\n      // render: (e) => {\n      //   assert.step(\"render\");\n      // },\n      init: (e) => {\n        initComplete = true;\n        assert.step(\"init\");\n        const lazyNode = tree.findFirst(\"Node 2\");\n        assert.equal(lazyNode.title, \"Node 2\", \"Find node by name\");\n\n        // We need the markup, to issue a click event\n        // tree.updateViewport(true);\n        // assert.true(lazyNode.isRendered(), \"Node is rendered\");\n        // lazyNode.colspan.click();\n        lazyNode.setExpanded();\n      },\n    });\n  });\n\n  test(\"applyCommand\", (assert) => {\n    assert.expect(2);\n    assert.timeout(1000); // Timeout after 1 second\n    const done = assert.async();\n\n    tree = new Wunderbaum({\n      element: \"#tree\",\n      source: FIXTURE_1,\n      init: (e) => {\n        const node1 = tree.findFirst(\"Node 1\");\n        const node2 = tree.findFirst(\"Node 2\");\n        assert.equal(node1.getPrevSibling(), null);\n\n        node1.applyCommand(\"moveDown\");\n        assert.equal(node1.getPrevSibling(), node2);\n        // Avoid errors reported by ResizeObserver\n        done();\n      },\n    });\n  });\n  test(\"clones\", (assert) => {\n    assert.expect(11);\n    assert.timeout(1000); // Timeout after 1 second\n    const done = assert.async();\n\n    tree = new Wunderbaum({\n      element: \"#tree\",\n      source: [\n        { title: \"Node 1\", key: \"1\", refKey: \"n1\" },\n        { title: \"Node 2\", key: \"2\", refKey: \"nX\" },\n        { title: \"Node 3\", key: \"3\", refKey: \"nX\" },\n      ],\n      init: (e) => {\n        const n1 = tree.findKey(\"1\");\n        const n2 = tree.findKey(\"2\");\n        const n3 = tree.findKey(\"3\");\n\n        // console.warn(`tree.findByRefKey('nX'): >${tree.findByRefKey(\"nX\")}<`);\n\n        assert.deepEqual(tree.findByRefKey(\"x\"), []);\n        assert.deepEqual(tree.findByRefKey(\"n1\"), [n1]);\n        assert.equal(tree.findByRefKey(\"nX\").length, 2);\n\n        assert.false(n1.isClone());\n        assert.true(n2.isClone());\n        assert.true(n3.isClone());\n\n        assert.deepEqual(n1.getCloneList(), []);\n        assert.deepEqual(n1.getCloneList(true), [n1]);\n        assert.equal(n2.getCloneList().length, 1);\n        assert.equal(n2.getCloneList(false).length, 1);\n        assert.equal(n2.getCloneList(true).length, 2);\n\n        done();\n      },\n    });\n  });\n});\n"
  },
  {
    "path": "docs/unittest/test-dev.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <title>Test Suite (DEV) | Wunderbaum</title>\n\n  <!-- <link rel=\"stylesheet\" href=\"https://code.jquery.com/qunit/qunit-2.15.0.css\"> -->\n  <!-- <link rel=\"stylesheet\" href=\"qunit.css\"> -->\n  <link rel=\"stylesheet\" href=\"../../node_modules/qunit/qunit/qunit.css\">\n  <link rel=\"stylesheet\" href=\"../../build/wunderbaum.css\">\n\n  <!-- <script defer src=\"https://code.jquery.com/qunit/qunit-2.15.0.js\"></script> -->\n  <!-- <script defer src=\"qunit.js\"> </script> -->\n\t<script src=\"../../node_modules/qunit/qunit/qunit.js\"></script>\n\n  <script defer src=\"../../build/wunderbaum.umd.js\"> </script>\n\n  <script defer type=\"module\" src=\"test-core.js\"> </script>\n  <script defer type=\"module\" src=\"test-core-fixture1.js\"> </script>\n</head>\n<body>\n  <div id=\"qunit\"></div>\n  <div id=\"qunit-fixture\"></div>\n\n  <div id=\"tree\">\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/unittest/test-dist.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <title>Test Suite (DIST) | Wunderbaum</title>\n\n  <link rel=\"stylesheet\" href=\"https://code.jquery.com/qunit/qunit-2.18.1.css\">\n  <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/gh/mar10/wunderbaum/dist/wunderbaum.css\">\n\n  <script defer src=\"https://code.jquery.com/qunit/qunit-2.18.1.js\"></script>\n  <script defer src=\"https://cdn.jsdelivr.net/gh/mar10/wunderbaum/dist/wunderbaum.umd.min.js\"> </script>\n\n  <script defer type=\"module\" src=\"test-core.js\"> </script>\n  <script defer type=\"module\" src=\"test-core-fixture1.js\"> </script>\n</head>\n<body>\n  <div id=\"qunit\"></div>\n  <div id=\"qunit-fixture\"></div>\n\n  <div id=\"tree\">\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "eslint.config.mjs",
    "content": "import typescriptEslint from \"@typescript-eslint/eslint-plugin\";\nimport tsParser from \"@typescript-eslint/parser\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport js from \"@eslint/js\";\nimport { FlatCompat } from \"@eslint/eslintrc\";\nimport globals from \"globals\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\nconst compat = new FlatCompat({\n  baseDirectory: __dirname,\n  recommendedConfig: js.configs.recommended,\n  allConfig: js.configs.all,\n});\n\nexport default [\n  ...compat.extends(\n    \"eslint:recommended\",\n    \"plugin:@typescript-eslint/recommended\"\n  ),\n  {\n    plugins: {\n      \"@typescript-eslint\": typescriptEslint,\n    },\n\n    languageOptions: {\n      parser: tsParser,\n      globals: {\n        ...globals.browser,\n        ...globals.nodeBuiltin,\n      },\n    },\n    rules: {\n      curly: [\"error\", \"all\"],\n      \"no-alert\": \"error\",\n      \"no-console\": \"error\",\n\n      \"prefer-const\": [\n        \"error\",\n        {\n          destructuring: \"all\",\n        },\n      ],\n\n      \"no-constant-condition\": [\n        \"error\",\n        {\n          checkLoops: false,\n        },\n      ],\n\n      \"@typescript-eslint/no-explicit-any\": \"off\",\n      \"@typescript-eslint/no-unused-vars\": \"off\",\n      \"@typescript-eslint/no-unused-expressions\": \"off\",\n      // \"@typescript-eslint/no-unnecessary-type-assertion\": \"error\",\n\n      \"one-var\": [\n        \"error\",\n        {\n          const: \"never\",\n        },\n      ],\n    },\n  },\n];\n"
  },
  {
    "path": "mkdocs.yml",
    "content": "site_name: Wunderbaum\nsite_url: https://mar10.github.io/wunderbaum/\nrepo_url: https://github.com/mar10/wunderbaum\n\n# site_description: Set the site description. This will add a meta tag to the generated HTML header.\n\nsite_author: Martin Wendt\ncopyright: |\n  Copyright © 2021-2025 Martin Wendt,\n  Documentation generated with <a href=\"https://squidfunk.github.io/mkdocs-material/\">MkDocs</a>.\n\n# remote_branch: gh-pages\n# remote_name: origin\n\ntheme:\n  name: material\n  locale: en\n  include_sidebar: true\n  logo: assets/tree_logo_32.png\n  favicon: assets/favicon/favicon.ico\n  features:\n    - content.code.annotate\n    - content.code.copy\n\n    - header.autohide\n\n    # - navigation.anchors\n    - navigation.bottom\n    - navigation.breadcrumbs\n    # - navigation.edit_url\n    - navigation.expand\n    - navigation.footer\n    - navigation.indexes\n    # - navigation.meta\n    - navigation.path\n    - navigation.prev_next\n    # - navigation.scrollspy\n    # - navigation.search\n    - navigation.sections\n    - navigation.tabs\n    - navigation.tabs.sticky\n    # - navigation.toc\n    - navigation.top\n    - navigation.tracking\n\n    - toc.follow\n    # - toc.integrate\n\n  palette:\n    # Palette toggle for automatic mode\n    - media: \"(prefers-color-scheme)\"\n      toggle:\n        icon: material/brightness-auto\n        name: Switch to light mode\n\n    # Palette toggle for light mode\n    - media: \"(prefers-color-scheme: light)\"\n      scheme: default\n      toggle:\n        icon: material/brightness-7\n        name: Switch to dark mode\n\n    # Palette toggle for dark mode\n    - media: \"(prefers-color-scheme: dark)\"\n      scheme: slate\n      toggle:\n        icon: material/brightness-4\n        name: Switch to system preference\n\nexclude_docs: |\n  .*\n  /templates/\n  /unittest/\n\nnav:\n  - \"User Guide\":\n      - index.md\n      - \"Quick start\": \"tutorial/quick_start.md\"\n      - \"Initialization\": \"tutorial/tutorial_initialize.md\"\n      - \"Data Formats\": \"tutorial/tutorial_source.md\"\n      - Features:\n          - \"Render\": \"tutorial/tutorial_render.md\"\n          - \"Styling\": \"tutorial/tutorial_styling.md\"\n          - \"Grid\": \"tutorial/tutorial_grid.md\"\n          - \"Edit\": \"tutorial/tutorial_edit.md\"\n          - \"Drag'n'Drop\": \"tutorial/tutorial_dnd.md\"\n          - \"Select\": \"tutorial/tutorial_select.md\"\n          - \"Events\": \"tutorial/tutorial_events.md\"\n          - \"Filter\": \"tutorial/tutorial_filter.md\"\n          - \"Keyboard\": \"tutorial/tutorial_keyboard.md\"\n          - \"API\": \"tutorial/tutorial_api.md\"\n      - \"Concepts\": \"tutorial/concepts.md\"\n      - \"Migration\": \"tutorial/migrate.md\"\n      - \"Contribute\": \"tutorial/contribute.md\"\n\n  - \"API Reference\": \"https://mar10.github.io/wunderbaum/api/index.html\"\n  - \"Online Demos\": \"https://mar10.github.io/wunderbaum/demo/\"\n  - \"Changelog\": \"https://github.com/mar10/wunderbaum/blob/main/CHANGELOG.md\"\n\n# not_in_nav: |\n#   /private.md\n\nvalidation:\n  omitted_files: warn\n  absolute_links: warn # Or 'relative_to_docs'\n  unrecognized_links: warn\n  anchors: warn\n\nmarkdown_extensions:\n  - admonition\n  - attr_list\n  - pymdownx.details\n  - pymdownx.superfences\n  - pymdownx.highlight:\n      use_pygments: true\n      # auto_title: true\n      # linenums: true\n      pygments_lang_class: true\n  - pymdownx.magiclink\n\n  - toc:\n      permalink: \"#\"\n      # baselevel: 2\n      # separator: \"_\"\n\nplugins:\n  - search\n  # - sitemap\n\nextra:\n  generator: false # Added to Copyright instead\n  analytics:\n    provider: google\n    property: G-W8EGCZFQ00\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"wunderbaum\",\n  \"version\": \"0.14.2-0\",\n  \"title\": \"A treegrid control.\",\n  \"description\": \"JavaScript tree/grid/treegrid control.\",\n  \"homepage\": \"https://github.com/mar10/wunderbaum\",\n  \"author\": {\n    \"name\": \"Martin Wendt\",\n    \"url\": \"https://github.com/mar10\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/mar10/wunderbaum\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/mar10/wunderbaum/issues\"\n  },\n  \"license\": \"MIT\",\n  \"licenses\": [\n    {\n      \"type\": \"MIT\",\n      \"url\": \"https://raw.githubusercontent.com/mar10/wunderbaum/main/LICENSE.txt\"\n    }\n  ],\n  \"main\": \"./dist/wunderbaum.umd.js\",\n  \"module\": \"./dist/wunderbaum.esm.js\",\n  \"types\": \"./dist/wunderbaum.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"types\": \"./dist/wunderbaum.d.ts\",\n      \"require\": \"./dist/wunderbaum.umd.js\",\n      \"import\": \"./dist/wunderbaum.esm.js\"\n    },\n    \"./dist/\": \"./dist/\",\n    \"./src/\": \"./src/\"\n  },\n  \"files\": [\n    \"src\",\n    \"dist\"\n  ],\n  \"keywords\": [\n    \"grid\",\n    \"tree\",\n    \"treegrid\",\n    \"typescript\",\n    \"plugin\",\n    \"control\"\n  ],\n  \"devDependencies\": {\n    \"@eslint/eslintrc\": \"^3.2.0\",\n    \"@eslint/js\": \"^9.20.0\",\n    \"@rollup/plugin-replace\": \"^6.0.2\",\n    \"@rollup/plugin-terser\": \"^0.4.4\",\n    \"@rollup/plugin-typescript\": \"^12.1.2\",\n    \"@types/firebase\": \"^2.4.32\",\n    \"@types/jest\": \"^29.5.14\",\n    \"@typescript-eslint/eslint-plugin\": \"^8.24.0\",\n    \"@typescript-eslint/parser\": \"^8.24.0\",\n    \"concurrently\": \"^9.1.2\",\n    \"eslint\": \"^9.20.1\",\n    \"eslint-config-jquery\": \"^3.0.2\",\n    \"eslint-config-prettier\": \"^10.0.1\",\n    \"eslint-plugin-prettier\": \"^5.2.3\",\n    \"grunt\": \"^1.6.1\",\n    \"grunt-contrib-connect\": \"^5.0.1\",\n    \"grunt-contrib-qunit\": \"^10.1.1\",\n    \"grunt-contrib-watch\": \"^1.1.0\",\n    \"grunt-exec\": \"^3.0.0\",\n    \"grunt-yabs\": \"^1.3.0\",\n    \"http-server\": \"^14.1.1\",\n    \"nodemon\": \"^3.1.9\",\n    \"postcss\": \"^8.5.2\",\n    \"postcss-url\": \"^10.1.3\",\n    \"prettier\": \"^3.5.1\",\n    \"pretty-quick\": \"^4.0.0\",\n    \"puppeteer\": \"^24.2.0\",\n    \"qunit\": \"^2.24.1\",\n    \"rollup\": \"^4.34.6\",\n    \"rollup-plugin-scss\": \"^4.0.1\",\n    \"sass\": \"^1.84.0\",\n    \"terser\": \"^5.39.0\",\n    \"ts-jest\": \"^29.2.5\",\n    \"ts-node\": \"^10.9.2\",\n    \"tslib\": \"^2.8.1\",\n    \"typedoc\": \"^0.27.7\",\n    \"typescript\": \"^5.7\",\n    \"yarn-audit-fix\": \"^10.1.1\"\n  },\n  \"nodemonConfig\": {\n    \"watch\": [\n      \"src/\"\n    ],\n    \"ext\": \"ts,scss\",\n    \"exec\": \"npm run build:js -s && npm run build:scss\",\n    \"ignore\": [\n      \"node_modules/\",\n      \".git\",\n      \"build/*\",\n      \"dist/*\",\n      \"test/*\",\n      \"docs/*\"\n    ],\n    \"delay\": \"2500\"\n  },\n  \"scripts\": {\n    \"test\": \"npm run lint && npm run build:js && grunt ci --verbose\",\n    \"api_docs\": \"typedoc && touch docs/api/.nojekyll && rm docs/unittest/*.*; cp test/unit/*.* docs/unittest\",\n    \"format\": \"eslint src docs/demo --fix && prettier src docs/demo -w && npm run lint\",\n    \"lint\": \"prettier src docs/demo --check && eslint src docs/demo && tsc -t esnext --moduleResolution node --noEmit src/wunderbaum.ts\",\n    \"build:minjs:umd\": \"terser build/wunderbaum.umd.js --compress --mangle --source-map \\\"base='build',url='wunderbaum.umd.min.js.map',filename='wunderbaum.umd.js'\\\" --output build/wunderbaum.umd.min.js\",\n    \"build:minjs:esm\": \"terser build/wunderbaum.esm.js --compress --mangle --source-map \\\"base='build',url='wunderbaum.esm.min.js.map',filename='wunderbaum.esm.js'\\\" --output build/wunderbaum.esm.min.js\",\n    \"build:minjs\": \"npm run build:minjs:esm -s && npm run build:minjs:umd -s\",\n    \"build:scss\": \"sass src/wunderbaum.scss build/wunderbaum.css\",\n    \"build:js\": \"rollup -c rollup.config.mjs && npm run build:minjs\",\n    \"build:types\": \"tsc -t esnext --moduleResolution node -d --emitDeclarationOnly --outFile build/wunderbaum.d.ts src/wunderbaum.ts\",\n    \"build\": \"npm run format && mkdir build; rm build/*.*; ls build && npm run build:js -s  && npm run build:scss && npm run build:types -s && npm run api_docs\",\n    \"make_dist\": \"npm run build && rm dist/*.* ; cp build/*.* dist\",\n    \"watch:umd\": \"nodemon --watch src --ext 'ts' -x \\\"npm run build:minjs\\\"\",\n    \"watch\": \"nodemon\",\n    \"serve\": \"http-server test -p 8080 -o /\",\n    \"dev\": \"concurrently \\\"http-server . -p 8080 -o /docs/demo \\\" \\\"nodemon\\\"\",\n    \"dev_mkdocs\": \"pipenv run mkdocs serve\"\n  },\n  \"npmName\": \"wunderbaum\",\n  \"npmFileMap\": [\n    {\n      \"basePath\": \"dist\",\n      \"files\": [\n        \"wunderbaum.css\",\n        \"wunderbaum.esm.js\",\n        \"wunderbaum.esm.min.js\",\n        \"wunderbaum.esm.min.js.map\",\n        \"wunderbaum.umd.js\",\n        \"wunderbaum.umd.min.js\",\n        \"wunderbaum.umd.min.js.map\"\n      ]\n    }\n  ],\n  \"packageManager\": \"yarn@4.4.1+sha512.f825273d0689cc9ead3259c14998037662f1dcd06912637b21a450e8da7cfeb4b1965bbee73d16927baa1201054126bc385c6f43ff4aa705c8631d26e12460f1\"\n}"
  },
  {
    "path": "rollup.config.mjs",
    "content": "import fs from \"fs\";\n// import postcss from \"postcss\";\n// import postcss_url from \"postcss-url\";\nimport rup_replace from \"@rollup/plugin-replace\";\n// import rup_scss from \"rollup-plugin-scss\";\n// import rup_terser from \"@rollup/plugin-terser\";\nimport rup_typescript from \"@rollup/plugin-typescript\";\n\nconst package_json = JSON.parse(fs.readFileSync(\"package.json\", \"utf8\"));\n\nexport default {\n  input: \"src/wunderbaum.ts\",\n  output: [\n    {\n      file: \"build/wunderbaum.esm.js\",\n      format: \"es\",\n    },\n    {\n      file: \"build/wunderbaum.umd.js\",\n      format: \"umd\",\n      name: \"mar10\",\n    },\n    // TODO: Minify with terser did produce invalid files (only first extension)?\n    // running `terser` as npm script from package.json instead\n    // {\n    //   file: \"build/wunderbaum.esm.min.js\",\n    //   format: \"es\",\n    //   plugins: [rup_terser()], // minify\n    //   sourcemap: true,\n    // },\n    // {\n    //   file: \"build/wunderbaum.umd.min.js\",\n    //   format: \"umd\",\n    //   name: \"mar10\",\n    //   plugins: [rup_terser()], // minify\n    //   sourcemap: true,\n    // },\n  ],\n  plugins: [\n    rup_typescript(),\n\n    // TODO: Minify with terser did produce invalid files (only first extension)?\n    // rup_terser(),\n\n    // TODO: Could not get this to work. It seems to be ignored.\n    //       Using a package.json script instead (build:scss).\n    //       However, now we cannot auto-inline images. :-(\n    // rup_scss({\n    //   fileName: \"wunderbaum.css\",\n    //   // Convert image URLs to inline data-uris\n    //   processor: () =>\n    //     postcss().use(\n    //       postcss_url({ url: \"inline\", maxSize: 10, fallback: \"copy\" })\n    //     ),\n    // }),\n\n    // Replace @VERSION and @DATE in build files\n    rup_replace({\n      preventAssignment: true,\n      delimiters: [\"\", \"\"],\n      values: {\n        \"@VERSION\": \"v\" + package_json.version,\n        \"@DATE\": \"\" + new Date().toUTCString(),\n        \"const DEFAULT_DEBUGLEVEL = 4;\": \"const DEFAULT_DEBUGLEVEL = 3;\",\n      },\n    }),\n\n    // TODO: additional minfied version?\n    // rup_scss({\n    //   fileName: \"wunderbaum.min.css\",\n    //   outputStyle: \"compressed\",\n    //   sourceMap: true,\n    //   // Convert image URLs to inline data-uris\n    //   processor: () =>\n    //     postcss().use(\n    //       postcss_url({ url: \"inline\", maxSize: 10, fallback: \"copy\" })\n    //     ),\n    // }),\n  ],\n};\n"
  },
  {
    "path": "src/common.ts",
    "content": "/*!\n * Wunderbaum - common\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n\nimport {\n  ApplyCommandType,\n  NavigationType,\n  SourceListType,\n  SourceObjectType,\n  IconMapType,\n  MatcherCallback,\n} from \"./types\";\nimport * as util from \"./util\";\nimport { WunderbaumNode } from \"./wb_node\";\n\nexport const DEFAULT_DEBUGLEVEL = 4; // Replaced by rollup script\n/**\n * Fixed height of a row in pixel. Must match the SCSS variable `$row-outer-height`.\n */\nexport const DEFAULT_ROW_HEIGHT = 22;\n/**\n * Fixed width of node icons in pixel. Must match the SCSS variable `$icon-outer-width`.\n */\nexport const ICON_WIDTH = 20;\n/**\n * Adjust the width of the title span, so overflow ellipsis work.\n * (2 x `$col-padding-x` + 3px rounding errors).\n */\nexport const TITLE_SPAN_PAD_Y = 7;\n/** Render row markup for N nodes above and below the visible viewport. */\nexport const RENDER_MAX_PREFETCH = 5;\n/** Skip rendering new rows when we have at least N nodes rendeed above and below the viewport. */\nexport const RENDER_MIN_PREFETCH = 5;\n/** Minimum column width if not set otherwise. */\nexport const DEFAULT_MIN_COL_WIDTH = 4;\n/**\n * A value for `node.type` that by convention may be used to mark a node as directory.\n * It may be used to sort 'directories' to the top.\n */\nexport const NODE_TYPE_FOLDER = \"folder\";\n/** Regular expression to detect if a string describes an image URL (in contrast\n * to a class name). Strings are considered image urls if they contain '.' or '/'.\n * `<` is ignored, because it is probably an html tag.\n */\nexport const TEST_FILE_PATH = /^(?!.*<).*[/.]/;\n/** Regular expression to detect if a string describes an HTML element. */\nexport const TEST_HTML = /</;\n// export const RECURSIVE_REQUEST_ERROR = \"$recursive_request\";\n// export const INVALID_REQUEST_TARGET_ERROR = \"$request_target_invalid\";\n\n/** Currently supported default icon maps. */\ntype IconLibrary = \"bootstrap\" | \"fontawesome6\";\n/**\n * Default node icons for icon libraries\n *\n *  - 'bootstrap': {@link https://icons.getbootstrap.com}\n *  - 'fontawesome6' {@link https://fontawesome.com/icons}\n *\n */\nexport const defaultIconMaps: { [key in IconLibrary]: IconMapType } = {\n  bootstrap: {\n    error: \"bi bi-exclamation-triangle\",\n    // loading: \"bi bi-hourglass-split wb-busy\",\n    loading: \"bi bi-chevron-right wb-busy\",\n    // loading: \"bi bi-arrow-repeat wb-spin\",\n    // loading: '<div class=\"spinner-border spinner-border-sm\" role=\"status\"> <span class=\"visually-hidden\">Loading...</span> </div>',\n    // noData: \"bi bi-search\",\n    noData: \"bi bi-question-circle\",\n    expanderExpanded: \"bi bi-chevron-down\",\n    // expanderExpanded: \"bi bi-dash-square\",\n    expanderCollapsed: \"bi bi-chevron-right\",\n    // expanderCollapsed: \"bi bi-plus-square\",\n    expanderLazy: \"bi bi-chevron-right wb-helper-lazy-expander\",\n    // expanderLazy: \"bi bi-chevron-bar-right\",\n    checkChecked: \"bi bi-check-square\",\n    checkUnchecked: \"bi bi-square\",\n    checkUnknown: \"bi bi-dash-square-dotted\",\n    radioChecked: \"bi bi-circle-fill\",\n    radioUnchecked: \"bi bi-circle\",\n    radioUnknown: \"bi bi-record-circle\",\n    folder: \"bi bi-folder2\",\n    folderOpen: \"bi bi-folder2-open\",\n    folderLazy: \"bi bi-folder-symlink\",\n    doc: \"bi bi-file-earmark\",\n    colSortable: \"bi bi-chevron-expand\",\n    // colSortable: \"bi bi-arrow-down-up\",\n    // colSortAsc: \"bi bi-chevron-down\",\n    // colSortDesc: \"bi bi-chevron-up\",\n    colSortAsc: \"bi bi-arrow-down\",\n    colSortDesc: \"bi bi-arrow-up\",\n    colFilter: \"bi bi-filter-circle\",\n    colFilterActive: \"bi bi-filter-circle-fill wb-helper-invalid\",\n    colMenu: \"bi bi-three-dots-vertical\",\n  },\n  fontawesome6: {\n    error: \"fa-solid fa-triangle-exclamation\",\n    loading: \"fa-solid fa-chevron-right fa-beat\",\n    noData: \"fa-solid fa-circle-question\",\n    expanderExpanded: \"fa-solid fa-chevron-down\",\n    expanderCollapsed: \"fa-solid fa-chevron-right\",\n    expanderLazy: \"fa-solid fa-chevron-right wb-helper-lazy-expander\",\n    checkChecked: \"fa-regular fa-square-check\",\n    checkUnchecked: \"fa-regular fa-square\",\n    checkUnknown: \"fa-regular fa-square-minus\",\n    radioChecked: \"fa-solid fa-circle\",\n    radioUnchecked: \"fa-regular fa-circle\",\n    radioUnknown: \"fa-regular fa-circle-question\",\n    folder: \"fa-regular fa-folder-closed\",\n    folderOpen: \"fa-regular fa-folder-open\",\n    folderLazy: \"fa-solid fa-folder-plus\",\n    doc: \"fa-regular fa-file\",\n    colSortable: \"fa-solid fa-fw fa-sort\",\n    colSortAsc: \"fa-solid fa-fw fa-sort-up\",\n    colSortDesc: \"fa-solid fa-fw fa-sort-down\",\n    colFilter: \"fa-solid fa-fw fa-filter\",\n    colFilterActive: \"fa-solid fa-fw fa-filter wb-helper-invalid\",\n    colMenu: \"fa-solid fa-fw fa-ellipsis-v\",\n  },\n};\n\nexport const KEY_NODATA = \"__not_found__\";\n\n/** Define which keys are handled by embedded <input> control, and should\n * *not* be passed to tree navigation handler in cell-edit mode.\n */\nexport const INPUT_KEYS: { [key: string]: Array<string> } = {\n  text: [\"left\", \"right\", \"home\", \"end\", \"backspace\"],\n  number: [\"up\", \"down\", \"left\", \"right\", \"home\", \"end\", \"backspace\"],\n  checkbox: [],\n  link: [],\n  radiobutton: [\"up\", \"down\"],\n  \"select-one\": [\"up\", \"down\"],\n  \"select-multiple\": [\"up\", \"down\"],\n};\n\n/** Dict keys that are evaluated by source loader (others are added to `tree.data` instead). */\nexport const RESERVED_TREE_SOURCE_KEYS: Set<string> = new Set([\n  \"_format\", // reserved for future use\n  \"_keyMap\", // Used for compressed data format\n  \"_positional\", // Used for compressed data format\n  \"_typeList\", // Used for compressed data format @deprecated\n  \"_valueMap\", // Used for compressed data format\n  \"_version\", // reserved for future use\n  \"children\",\n  \"columns\",\n  \"types\",\n]);\n\n// /** Key codes that trigger grid navigation, even when inside an input element. */\n// export const INPUT_BREAKOUT_KEYS: Set<string> = new Set([\n//   // \"ArrowDown\",\n//   // \"ArrowUp\",\n//   \"Enter\",\n//   \"Escape\",\n// ]);\n\n/** Map `KeyEvent.key` to navigation action. */\nexport const KEY_TO_NAVIGATION_MAP: { [key: string]: NavigationType } = {\n  ArrowDown: \"down\",\n  ArrowLeft: \"left\",\n  ArrowRight: \"right\",\n  ArrowUp: \"up\",\n  Backspace: \"parent\",\n  End: \"lastCol\",\n  Home: \"firstCol\",\n  \"Control+End\": \"last\",\n  \"Control+Home\": \"first\",\n  \"Meta+ArrowDown\": \"last\", // macOs\n  \"Meta+ArrowUp\": \"first\", // macOs\n  PageDown: \"pageDown\",\n  PageUp: \"pageUp\",\n};\n\n/** Map `KeyEvent.key` to navigation action. */\nexport const KEY_TO_COMMAND_MAP: { [key: string]: ApplyCommandType } = {\n  \" \": \"toggleSelect\",\n  \"+\": \"expand\",\n  Add: \"expand\",\n  ArrowDown: \"down\",\n  ArrowLeft: \"left\",\n  ArrowRight: \"right\",\n  ArrowUp: \"up\",\n  Backspace: \"parent\",\n  \"/\": \"collapseAll\",\n  Divide: \"collapseAll\",\n  End: \"lastCol\",\n  Home: \"firstCol\",\n  \"Control+End\": \"last\",\n  \"Control+Home\": \"first\",\n  \"Meta+ArrowDown\": \"last\", // macOs\n  \"Meta+ArrowUp\": \"first\", // macOs\n  \"*\": \"expandAll\",\n  Multiply: \"expandAll\",\n  PageDown: \"pageDown\",\n  PageUp: \"pageUp\",\n  \"-\": \"collapse\",\n  Subtract: \"collapse\",\n};\n\n/** Return a callback that returns true if the node title matches the string\n * or regular expression.\n * @see {@link WunderbaumNode.findAll}\n */\nexport function makeNodeTitleMatcher(match: string | RegExp): MatcherCallback {\n  if (match instanceof RegExp) {\n    return function (node: WunderbaumNode) {\n      return (<RegExp>match).test(node.title);\n    };\n  }\n  util.assert(\n    typeof match === \"string\",\n    `Expected a string or RegExp: ${match}`\n  );\n\n  // s = escapeRegex(s.toLowerCase());\n  return function (node: WunderbaumNode) {\n    return node.title === match;\n    // console.log(\"match \" + node, node.title.toLowerCase().indexOf(match))\n    // return node.title.toLowerCase().indexOf(match) >= 0;\n  };\n}\n\n/** Return a callback that returns true if the node title starts with a string (case-insensitive). */\nexport function makeNodeTitleStartMatcher(s: string): MatcherCallback {\n  s = util.escapeRegex(s);\n  const reMatch = new RegExp(\"^\" + s, \"i\");\n  return function (node: WunderbaumNode) {\n    return reMatch.test(node.title);\n  };\n}\n\n/** Compare two nodes by title (case-insensitive).\n * @deprecated Use `key` option instead of `cmp` in sort methods.\n */\nexport function nodeTitleSorter(a: WunderbaumNode, b: WunderbaumNode): number {\n  const x = a.title.toLowerCase();\n  const y = b.title.toLowerCase();\n\n  return x === y ? 0 : x > y ? 1 : -1;\n}\n\n// /** Compare nodes by title (case-insensitive). */\n// export function nodeTitleKeyGetter(\n//   node: WunderbaumNode\n// ): string | number | Array<any> {\n//   return node.title.toLowerCase();\n// }\n\n/**\n * Convert 'flat' to 'nested' format.\n *\n * Flat node entry format:\n *    [PARENT_IDX, {KEY_VALUE_ARGS}]\n * or, if N _positional re defined:\n *    [PARENT_IDX, POSITIONAL_ARG_1, POSITIONAL_ARG_2, ..., POSITIONAL_ARG_N]\n * Even if _positional additional are defined, KEY_VALUE_ARGS can be appended:\n *    [PARENT_IDX, POSITIONAL_ARG_1, ..., {KEY_VALUE_ARGS}]\n *\n * 1. Parent-referencing list is converted to a list of nested dicts with\n *    optional `children` properties.\n * 2. `[POSITIONAL_ARGS]` are added as dict attributes.\n */\nfunction unflattenSource(source: SourceObjectType): void {\n  const { _format, _keyMap = {}, _positional = [], children } = source;\n  const _positionalCount = _positional.length;\n\n  if (_format !== \"flat\") {\n    throw new Error(`Expected source._format: \"flat\", but got ${_format}`);\n  }\n  if (_positionalCount && _positional.includes(\"children\")) {\n    throw new Error(\n      `source._positional must not include \"children\": ${_positional}`\n    );\n  }\n  let longToShort = _keyMap;\n  if (_keyMap.t) {\n    // Inverse keyMap was used (pre 0.7.0)\n    // TODO: raise Error on final 1.x release\n    const msg = `source._keyMap maps from long to short since v0.7.0. Flip key/value!`;\n    console.warn(msg); // eslint-disable-line no-console\n    longToShort = {};\n    for (const [key, value] of Object.entries(_keyMap)) {\n      longToShort[value] = key;\n    }\n  }\n  const positionalShort = _positional.map((e: string) => longToShort[e] ?? e);\n  const newChildren: SourceListType = [];\n  const keyToNodeMap: { [key: string]: number } = {};\n  const indexToNodeMap: { [key: number]: any } = {};\n  const keyAttrName = longToShort[\"key\"] ?? \"key\";\n  const childrenAttrName = longToShort[\"children\"] ?? \"children\";\n\n  for (const [index, nodeTuple] of children.entries()) {\n    // Node entry format:\n    //   [PARENT_ID, [POSITIONAL_ARGS]]\n    // or\n    //   [PARENT_ID, POSITIONAL_ARG_1, POSITIONAL_ARG_2, ..., {KEY_VALUE_ARGS}]\n    let kwargs;\n    const [parentId, ...args] = <any>nodeTuple;\n    if (args.length === _positionalCount) {\n      kwargs = {};\n    } else if (args.length === _positionalCount + 1) {\n      kwargs = args.pop();\n      if (typeof kwargs !== \"object\") {\n        throw new Error(\n          `unflattenSource: Expected dict as last tuple element: ${nodeTuple}`\n        );\n      }\n    } else {\n      throw new Error(`unflattenSource: unexpected tuple length: ${nodeTuple}`);\n    }\n\n    // Free up some memory as we go\n    nodeTuple[1] = null;\n    if (nodeTuple[2] != null) {\n      nodeTuple[2] = null;\n    }\n    // We keep `kwargs` as our new node definition. Then we add all positional\n    // values to this object:\n    args.forEach((val: string, positionalIdx: number) => {\n      kwargs[positionalShort[positionalIdx]] = val;\n    });\n    args.length = 0;\n\n    // Find the parent node. `null` means 'toplevel'. PARENT_ID may be the numeric\n    // index of the source.children list. If PARENT_ID is a string, we search\n    // a parent with node.key of this value.\n    indexToNodeMap[index] = kwargs;\n    const key = kwargs[keyAttrName];\n    if (key != null) {\n      keyToNodeMap[key] = kwargs;\n    }\n    let parentNode = null;\n    if (parentId === null) {\n      // top-level node\n    } else if (typeof parentId === \"number\") {\n      parentNode = indexToNodeMap[parentId];\n      if (parentNode === undefined) {\n        throw new Error(\n          `unflattenSource: Could not find parent node by index: ${parentId}.`\n        );\n      }\n    } else {\n      parentNode = keyToNodeMap[parentId];\n      if (parentNode === undefined) {\n        throw new Error(\n          `unflattenSource: Could not find parent node by key: ${parentId}`\n        );\n      }\n    }\n    if (parentNode) {\n      parentNode[childrenAttrName] ??= [];\n      parentNode[childrenAttrName].push(kwargs);\n    } else {\n      newChildren.push(kwargs);\n    }\n  }\n  source.children = newChildren;\n}\n\n/**\n * Decompresses the source data by\n * - converting from 'flat' to 'nested' format\n * - expanding short alias names to long names (if defined in _keyMap)\n * - resolving value indexes to value strings (if defined in _valueMap)\n *\n * @param source - The source object to be decompressed.\n * @returns void\n */\nexport function decompressSourceData(source: SourceObjectType): void {\n  let { _format, _version = 1, _keyMap, _valueMap } = source;\n\n  util.assert(_version === 1, `Expected file version 1 instead of ${_version}`);\n\n  let longToShort = _keyMap;\n  let shortToLong: { [key: string]: string } = {};\n\n  if (longToShort) {\n    for (const [key, value] of Object.entries(longToShort)) {\n      shortToLong[value] = key;\n    }\n  }\n\n  // Fallback for old format (pre 0.7.0, using _keyMap in reverse direction)\n  // TODO: raise Error on final 1.x release\n  if (longToShort && longToShort.t) {\n    const msg = `source._keyMap maps from long to short since v0.7.0. Flip key/value!`;\n    console.warn(msg); // eslint-disable-line no-console\n    [longToShort, shortToLong] = [shortToLong, longToShort];\n  }\n\n  // Fallback for old format (pre 0.7.0, using _typeList instead of _valueMap)\n  // TODO: raise Error on final 1.x release\n  if ((<any>source)._typeList != null) {\n    const msg = `source._typeList is deprecated since v0.7.0: use source._valueMap: {\"type\": [...]} instead.`;\n    if (_valueMap != null) {\n      throw new Error(msg);\n    } else {\n      console.warn(msg); // eslint-disable-line no-console\n      _valueMap = { type: (<any>source)._typeList };\n      delete (<any>source)._typeList;\n    }\n  }\n\n  if (_format === \"flat\") {\n    unflattenSource(source);\n  }\n  delete source._format;\n  delete source._version;\n  delete source._keyMap;\n  delete source._valueMap;\n  delete source._positional;\n\n  function _iter(childList: SourceListType) {\n    for (const node of childList) {\n      // Iterate over a list of names, because we modify inside the loop\n      // (for ... of ... does not allow this)\n      Object.getOwnPropertyNames(node).forEach((propName) => {\n        const value: any = node[propName];\n\n        // Replace short names with long names if defined in _keyMap\n        let longName = propName;\n        if (_keyMap && shortToLong[propName] != null) {\n          longName = shortToLong[propName];\n          if (longName !== propName) {\n            node[longName] = value;\n            delete node[propName];\n          }\n        }\n        // Replace type index with type name if defined in _valueMap\n        if (\n          _valueMap &&\n          typeof value === \"number\" &&\n          _valueMap[longName] != null\n        ) {\n          const newValue = _valueMap[longName][value];\n          if (newValue == null) {\n            throw new Error(\n              `Expected valueMap[${longName}][${value}] entry in [${_valueMap[longName]}]`\n            );\n          }\n          node[longName] = newValue;\n        }\n      });\n\n      // Recursion\n      if (node.children) {\n        _iter(node.children);\n      }\n    }\n  }\n  if (_keyMap || _valueMap) {\n    _iter(source.children);\n  }\n}\n"
  },
  {
    "path": "src/debounce.ts",
    "content": "/*!\n * Wunderbaum - debounce.ts\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n/*\n * debounce & throttle, taken from https://github.com/lodash/lodash v4.17.21\n * MIT License: https://raw.githubusercontent.com/lodash/lodash/4.17.21-npm/LICENSE\n * Modified for TypeScript type annotations.\n */\n\n/* --- Custom defiitions for TypeScript --- */\ntype Procedure = (...args: any[]) => any;\n\ntype DebounceOptions = {\n  /** Specify invoking on the leading edge of the timeout. @default false */\n  leading?: boolean;\n  /** The maximum time `func` is allowed to be delayed before it's invoked.*/\n  maxWait?: number;\n  /**  Specify invoking on the trailing edge of the timeout. @default true */\n  trailing?: boolean;\n};\n\ntype ThrottleOptions = {\n  /** Specify invoking on the leading edge of the timeout. @default true */\n  leading?: boolean;\n  /**  Specify invoking on the trailing edge of the timeout. @default true */\n  trailing?: boolean;\n};\n\nexport interface DebouncedFunction<F extends Procedure> {\n  (this: ThisParameterType<F>, ...args: Parameters<F>): ReturnType<F>;\n  cancel: () => void;\n  flush: () => any;\n  pending: () => boolean;\n}\n\n/* --- */\n/** Detect free variable `global` from Node.js. */\nconst freeGlobal =\n  typeof global === \"object\" &&\n  global !== null &&\n  global.Object === Object &&\n  global;\n\n/** Detect free variable `globalThis` */\nconst freeGlobalThis =\n  typeof globalThis === \"object\" &&\n  globalThis !== null &&\n  globalThis.Object == Object &&\n  globalThis;\n\n/** Detect free variable `self`. */\nconst freeSelf =\n  typeof self === \"object\" && self !== null && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nconst root =\n  freeGlobalThis || freeGlobal || freeSelf || Function(\"return this\")();\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * isObject({})\n * // => true\n *\n * isObject([1, 2, 3])\n * // => true\n *\n * isObject(Function)\n * // => true\n *\n * isObject(null)\n * // => false\n */\nfunction isObject(value: any) {\n  const type = typeof value;\n  return value != null && (type === \"object\" || type === \"function\");\n}\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked, or until the next browser frame is drawn. The debounced function\n * comes with a `cancel` method to cancel delayed `func` invocations and a\n * `flush` method to immediately invoke them. Provide `options` to indicate\n * whether `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. The `func` is invoked with the last arguments provided to the\n * debounced function. Subsequent calls to the debounced function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * If `wait` is omitted in an environment with `requestAnimationFrame`, `func`\n * invocation will be deferred until the next frame is drawn (typically about\n * 16ms).\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `debounce` and `throttle`.\n *\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0]\n *  The number of milliseconds to delay; if omitted, `requestAnimationFrame` is\n *  used (if available).\n * @param [options={}] The options object.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', debounce(calculateLayout, 150))\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }))\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * const debounced = debounce(batchLog, 250, { 'maxWait': 1000 })\n * const source = new EventSource('/stream')\n * jQuery(source).on('message', debounced)\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel)\n *\n * // Check for pending invocations.\n * const status = debounced.pending() ? \"Pending...\" : \"Ready\"\n */\nexport function debounce<F extends Procedure>(\n  func: F,\n  wait = 0,\n  options: DebounceOptions = {}\n): DebouncedFunction<F> {\n  let lastArgs: any,\n    lastThis: any,\n    maxWait: number | undefined,\n    result: any,\n    timerId: number | undefined,\n    lastCallTime: number | undefined;\n\n  let lastInvokeTime = 0;\n  let leading = false;\n  let maxing = false;\n  let trailing = true;\n\n  // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n  const useRAF =\n    !wait && wait !== 0 && typeof root.requestAnimationFrame === \"function\";\n\n  if (typeof func !== \"function\") {\n    throw new TypeError(\"Expected a function\");\n  }\n  wait = +wait || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = \"maxWait\" in options;\n    maxWait = maxing ? Math.max(+options.maxWait! || 0, wait) : maxWait;\n    trailing = \"trailing\" in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time: number) {\n    const args = lastArgs;\n    const thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function startTimer(pendingFunc: any, wait: number) {\n    if (useRAF) {\n      root.cancelAnimationFrame(timerId);\n      return root.requestAnimationFrame(pendingFunc);\n    }\n    return setTimeout(pendingFunc, wait);\n  }\n\n  function cancelTimer(id: number) {\n    if (useRAF) {\n      return root.cancelAnimationFrame(id);\n    }\n    clearTimeout(id);\n  }\n\n  function leadingEdge(time: number) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = startTimer(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time: number) {\n    const timeSinceLastCall = time - lastCallTime!;\n    const timeSinceLastInvoke = time - lastInvokeTime;\n    const timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? Math.min(timeWaiting, maxWait! - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time: number) {\n    const timeSinceLastCall = time - lastCallTime!;\n    const timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (\n      lastCallTime === undefined ||\n      timeSinceLastCall >= wait ||\n      timeSinceLastCall < 0 ||\n      (maxing && timeSinceLastInvoke >= maxWait!)\n    );\n  }\n\n  function timerExpired() {\n    const time = Date.now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = startTimer(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time: number) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      cancelTimer(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(Date.now());\n  }\n\n  function pending() {\n    return timerId !== undefined;\n  }\n\n  function debounced(this: any, ...args: any[]) {\n    const time = Date.now();\n    const isInvoking = shouldInvoke(time);\n\n    lastArgs = args;\n    // eslint-disable-next-line  @typescript-eslint/no-this-alias\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        timerId = startTimer(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = startTimer(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  debounced.pending = pending;\n  return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds (or once per browser frame). The throttled function\n * comes with a `cancel` method to cancel delayed `func` invocations and a\n * `flush` method to immediately invoke them. Provide `options` to indicate\n * whether `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * If `wait` is omitted in an environment with `requestAnimationFrame`, `func`\n * invocation will be deferred until the next frame is drawn (typically about\n * 16ms).\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `throttle` and `debounce`.\n *\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0]\n *  The number of milliseconds to throttle invocations to; if omitted,\n *  `requestAnimationFrame` is used (if available).\n * @param [options={}] The options object.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', throttle(updatePosition, 100))\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * const throttled = throttle(renewToken, 300000, { 'trailing': false })\n * jQuery(element).on('click', throttled)\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel)\n */\nexport function throttle<F extends Procedure>(\n  func: F,\n  wait = 0,\n  options: ThrottleOptions = {}\n) {\n  let leading = true;\n  let trailing = true;\n\n  if (typeof func !== \"function\") {\n    throw new TypeError(\"Expected a function\");\n  }\n  if (isObject(options)) {\n    leading = \"leading\" in options ? !!options.leading : leading;\n    trailing = \"trailing\" in options ? !!options.trailing : trailing;\n  }\n  return debounce(func, wait, {\n    leading,\n    trailing,\n    maxWait: wait,\n  });\n}\n"
  },
  {
    "path": "src/deferred.ts",
    "content": "/*!\n * Wunderbaum - deferred\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n\ntype PromiseCallbackType = (val: any) => void;\ntype finallyCallbackType = () => void;\n\n/**\n * Implement a ES6 Promise, that exposes a resolve() and reject() method.\n *\n * Loosely mimics {@link https://api.jquery.com/category/deferred-object/ | jQuery.Deferred}.\n * Example:\n * ```js\n * function foo() {\n *   let dfd = new Deferred(),\n *   ...\n *   dfd.resolve('foo')\n *   ...\n *   return dfd.promise();\n * }\n * ```\n */\nexport class Deferred<T> {\n  private _promise: Promise<T>;\n  protected _resolve: any;\n  protected _reject: any;\n\n  constructor() {\n    this._promise = new Promise<T>((resolve, reject) => {\n      this._resolve = resolve;\n      this._reject = reject;\n    });\n  }\n  /** Resolve the Promise. */\n  resolve(value?: any) {\n    this._resolve(value);\n  }\n  /** Reject the Promise. */\n  reject(reason?: any) {\n    this._reject(reason);\n  }\n  /** Return the native Promise instance.*/\n  promise() {\n    return this._promise;\n  }\n  /** Call Promise.then on the embedded promise instance.*/\n  then(cb: PromiseCallbackType) {\n    return this._promise.then(cb);\n  }\n  /** Call Promise.catch on the embedded promise instance.*/\n  catch(cb: PromiseCallbackType) {\n    return this._promise.catch(cb);\n  }\n  /** Call Promise.finally on the embedded promise instance.*/\n  finally(cb: finallyCallbackType) {\n    return this._promise.finally(cb);\n  }\n}\n"
  },
  {
    "path": "src/drag_observer.ts",
    "content": "/*!\n * Wunderbaum - drag_observer\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n\nexport type DragCallbackArgType = {\n  /** \"dragstart\", \"drag\", or \"dragstop\". */\n  type: string;\n  /** Original mousedown or touch event that triggered the dragstart event. */\n  startEvent: MouseEvent | TouchEvent;\n  /** Original mouse or touch event that triggered the current drag event.\n   * Note that this is not the same as `startEvent`, but a mousemove in case of\n   * a dragstart threshold.\n   */\n  event: MouseEvent | TouchEvent;\n  /** Custom data that was passed to the DragObserver, typically on dragstart. */\n  customData: any;\n  /** Element which is currently dragged. */\n  dragElem: HTMLElement | null;\n  /** Relative horizontal drag distance since start. */\n  dx: number;\n  /** Relative vertical drag distance since start. */\n  dy: number;\n  /** False if drag was canceled. */\n  apply?: boolean;\n};\nexport type DragCallbackType = (e: DragCallbackArgType) => boolean | void;\ntype DragObserverOptionsType = {\n  /**Event target (typically `window.document`). */\n  root: EventTarget;\n  /**Event delegation selector.*/\n  selector?: string;\n  /**Minimum drag distance in px. */\n  thresh?: number;\n  /**Return `false` to cancel drag. */\n  dragstart: DragCallbackType;\n  drag?: DragCallbackType;\n  dragstop?: DragCallbackType;\n};\n\n/**\n * Convert mouse- and touch events to 'dragstart', 'drag', and 'dragstop'.\n */\nexport class DragObserver {\n  protected _handler;\n  protected root: EventTarget;\n  protected start: {\n    event: MouseEvent | TouchEvent | null;\n    x: number;\n    y: number;\n    altKey: boolean;\n    ctrlKey: boolean;\n    metaKey: boolean;\n    shiftKey: boolean;\n  } = {\n    event: null,\n    x: 0,\n    y: 0,\n    altKey: false,\n    ctrlKey: false,\n    metaKey: false,\n    shiftKey: false,\n  };\n  protected dragElem: HTMLElement | null = null;\n  protected dragging: boolean = false;\n  protected customData: object = {};\n  // TODO: touch events\n  protected events = [\"mousedown\", \"mouseup\", \"mousemove\", \"keydown\"];\n  protected opts: DragObserverOptionsType;\n\n  constructor(opts: DragObserverOptionsType) {\n    if (!opts.root) {\n      throw new Error(\"Missing `root` option.\");\n    }\n    this.opts = Object.assign({ thresh: 5 }, opts);\n    this.root = opts.root;\n    this._handler = this.handleEvent.bind(this) as EventListener;\n    this.events.forEach((type) => {\n      this.root.addEventListener(type, this._handler);\n    });\n  }\n  /** Unregister all event listeners. */\n  disconnect() {\n    this.events.forEach((type) => {\n      this.root.removeEventListener(type, this._handler);\n    });\n  }\n\n  public getDragElem(): HTMLElement | null {\n    return this.dragElem;\n  }\n\n  public isDragging(): boolean {\n    return this.dragging;\n  }\n\n  public stopDrag(cb_event?: DragCallbackArgType): void {\n    if (this.dragging && this.opts.dragstop && cb_event) {\n      cb_event.type = \"dragstop\";\n      try {\n        this.opts.dragstop(cb_event);\n      } catch (err) {\n        console.error(\"dragstop error\", err); // eslint-disable-line no-console\n      }\n    }\n    this.dragElem = null;\n    this.dragging = false;\n    this.start.event = null;\n    this.customData = {};\n  }\n\n  protected handleEvent(e: MouseEvent): boolean | void {\n    const type = e.type;\n    const opts = this.opts;\n    const cb_event: DragCallbackArgType = {\n      type: e.type,\n      startEvent: type === \"mousedown\" ? e : this.start.event!,\n      event: e,\n      customData: this.customData,\n      dragElem: this.dragElem,\n      dx: e.pageX - this.start.x,\n      dy: e.pageY - this.start.y,\n      apply: undefined,\n    };\n\n    // console.log(\"handleEvent\", type, cb_event);\n\n    switch (type) {\n      case \"keydown\":\n        this.stopDrag(cb_event);\n        break;\n      case \"mousedown\":\n        if (this.dragElem) {\n          this.stopDrag(cb_event);\n          break;\n        }\n        if (opts.selector) {\n          let elem = e.target as HTMLElement;\n          if (elem.matches(opts.selector)) {\n            this.dragElem = elem;\n          } else {\n            elem = elem.closest(opts.selector) as HTMLElement;\n            if (elem) {\n              this.dragElem = elem;\n            } else {\n              break; // no event delegation selector matched\n            }\n          }\n        }\n        this.start.event = e;\n        this.start.x = e.pageX;\n        this.start.y = e.pageY;\n        this.start.altKey = e.altKey;\n        this.start.ctrlKey = e.ctrlKey;\n        this.start.metaKey = e.metaKey;\n        this.start.shiftKey = e.shiftKey;\n        break;\n\n      case \"mousemove\":\n        // TODO: debounce/throttle?\n        // TODO: horizontal mode: ignore if dx unchanged\n        if (!this.dragElem) {\n          break;\n        }\n        if (!this.dragging) {\n          if (opts.thresh) {\n            const dist2 = cb_event.dx * cb_event.dx + cb_event.dy * cb_event.dy;\n            if (dist2 < opts.thresh * opts.thresh) {\n              break;\n            }\n          }\n          cb_event.type = \"dragstart\";\n          if (opts.dragstart(cb_event) === false) {\n            this.stopDrag(cb_event);\n            break;\n          }\n          this.dragging = true;\n        }\n        if (this.dragging && this.opts.drag) {\n          cb_event.type = \"drag\";\n          this.opts.drag(cb_event);\n        }\n        break;\n      case \"mouseup\":\n        if (!this.dragging) {\n          this.stopDrag(cb_event);\n          break;\n        }\n        if (e.button === 0) {\n          cb_event.apply = true;\n        } else {\n          cb_event.apply = false;\n        }\n        this.stopDrag(cb_event);\n        break;\n    }\n  }\n}\n"
  },
  {
    "path": "src/types.ts",
    "content": "/*!\n * Wunderbaum - types\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n\nimport { WunderbaumNode } from \"./wb_node\";\nimport { Wunderbaum } from \"./wunderbaum\";\nimport { WunderbaumOptions } from \"./wb_options\";\n\n/** A value that can either be true, false, or undefined. */\nexport type TristateType = boolean | undefined;\n/** Show/hide checkbox or display a radiobutton icon instead. */\nexport type CheckboxOption = boolean | \"radio\";\n/** A value that can either be true, false, or undefined. */\nexport type SortOrderType = \"asc\" | \"desc\" | undefined;\n/** An icon may either be\n * a string-tag that references an entry in the `iconMap` (e.g. `\"folderOpen\"`)),\n * an HTML string that contains a `<` and is used as-is,\n * an image URL string that contains a `.` or `/` and is rendered as `<img src='...'>`,\n * a class string such as `\"bi bi-folder\"`,\n * or a boolean value that indicates if the default icon should be used or hidden.\n */\nexport type IconOption = boolean | string;\n/** Show/hide default tooltip or display a string. */\nexport type TooltipOption = boolean | string;\n\n/*\n * `source` can be a url, an array of nodes, or an object with `url`, ...\n */\nexport interface SourceAjaxType {\n  url: string;\n  params?: any;\n  body?: any;\n  options?: RequestInit;\n}\nexport type SourceListType = Array<WbNodeData>;\nexport interface SourceObjectType {\n  _format?: \"nested\" | \"flat\";\n  _version?: number;\n  types?: NodeTypeDefinitionMap;\n  columns?: ColumnDefinitionList;\n  children: SourceListType;\n  _keyMap?: { [key: string]: string };\n  _positional?: Array<string>;\n  // _typeList?: Array<string>;\n  _valueMap?: { [key: string]: Array<string> };\n}\n\n/** Possible initilization for tree nodes. */\nexport type SourceType =\n  | string\n  | SourceListType\n  | SourceAjaxType\n  | SourceObjectType;\n\n/** Passed to `find...()` methods. Should return true if node matches. */\nexport type MatcherCallback = (node: WunderbaumNode) => boolean;\n/** Used for `tree.iconBadge` event. */\nexport type WbIconBadgeCallback = (\n  e: WbIconBadgeEventType\n) => WbIconBadgeEventResultType;\n/**\n * Passed to `sort()` methods. Should return -1, 0, or 1.\n * @deprecated Use SortKeyCallback instead\n */\nexport type SortCallback = (a: WunderbaumNode, b: WunderbaumNode) => number;\n/** Passed to `sort()` methods. Should return a representation that can be compared using `<`. */\nexport type SortKeyCallback = (node: WunderbaumNode) => string | number | any[];\n/** When set as option, called when the value is needed (e.g. `colspan` type definition). */\nexport type BoolOptionResolver = (node: WunderbaumNode) => boolean;\n/** When set as option, called when the value is needed (e.g. `icon` type definition). */\nexport type BoolOrStringOptionResolver = (\n  node: WunderbaumNode\n) => boolean | string;\n/** A callback that receives a node instance and returns an arbitrary value type. */\nexport type NodeAnyCallback = (node: WunderbaumNode) => any;\n/** A callback that receives a node instance and returns a string value. */\nexport type NodeStringCallback = (node: WunderbaumNode) => string;\n/** A callback that receives a node instance and property name returns a value. */\nexport type NodePropertyGetterCallback = (\n  node: WunderbaumNode,\n  propName: string\n) => any;\n/** A callback that receives a node instance and returns an iteration modifier. */\nexport type NodeVisitCallback = (node: WunderbaumNode) => NodeVisitResponse;\n/**\n * Returned by `NodeVisitCallback` to control iteration.\n * `false` stops iteration, `skip` skips descendants but continues.\n * All other values continue iteration.\n */\nexport type NodeVisitResponse = \"skip\" | boolean | void;\n/**\n * A callback that receives a node-data dictionary and a node instance and\n * returns an iteration modifier.\n */\nexport type NodeToDictCallback = (\n  dict: WbNodeData,\n  node: WunderbaumNode\n) => NodeVisitResponse;\n/**\n * A callback that receives a node instance and may returnsa `false` to prevent\n * (de)selection.\n */\nexport type NodeSelectCallback = (node: WunderbaumNode) => boolean | void;\n\n/** @internal */\nexport type DeprecationOptions = {\n  since?: string;\n  hint?: string;\n};\n\n/**\n * See also {@link WunderbaumNode.getOption|WunderbaumNode.getOption()}\n * to evaluate `node.NAME` setting and `tree.types[node.type].NAME`.\n */\nexport type DynamicBoolOption = boolean | BoolOptionResolver;\nexport type DynamicStringOption = string | BoolOptionResolver;\nexport type DynamicBoolOrStringOption =\n  | boolean\n  | string\n  | BoolOrStringOptionResolver;\nexport type DynamicCheckboxOption = CheckboxOption | BoolOrStringOptionResolver;\nexport type DynamicIconOption = IconOption | BoolOrStringOptionResolver;\nexport type DynamicTooltipOption = TooltipOption | BoolOrStringOptionResolver;\n\n// type WithWildcards<T> = T & { [key: string]: unknown };\n/** A plain object (dictionary) that represents a node instance. */\nexport interface WbNodeData {\n  /** Defines if the `selected` state is displayed as checkbox, radio button,\n   * or hidden.\n   * Defaults to {@link WunderbaumOptions.checkbox}.\n   */\n  checkbox?: CheckboxOption;\n  /** Optional list of child nodes.\n   * If `children` is an empty array, the node is considered a leaf.\n   * If `lazy` is true and `children is undefined or null, the node, is\n   * considered unloaded. Otherwise, the node is considered a leaf.\n   */\n  children?: Array<WbNodeData>;\n  /** Additional classes that are added to `<div class='wb-row'>`. */\n  classes?: string;\n  /** Only show title in a single, merged column. */\n  colspan?: boolean;\n  /** Expand this node. */\n  expanded?: boolean;\n  /** Defaults to standard icons (doc, folder, folderOpen, ...)\n   * from {@link WunderbaumOptions.iconMap}.\n   * Can be overridden by {@link WunderbaumOptions.icon}.\n   */\n  icon?: IconOption;\n  /** Tooltip for the node icon only. Defaults to {@link WunderbaumOptions.iconTooltip}. */\n  iconTooltip?: TooltipOption;\n  /** The node's key. Must be unique for the whole tree. Defaults to a sequence number. */\n  key?: string;\n  /** If true (and children are undefined or null), the node is considered lazy\n   * and {@link WunderbaumOptions.lazyLoad} is called when expanded.\n   */\n  lazy?: boolean;\n  /** Make child nodes single-select radio buttons. */\n  radiogroup?: boolean;\n  /** Node's reference key. Unlike {@link WunderbaumNode.key}, this value\n   * may be non-unique. Nodes within the tree that share the same refKey are considered\n   * clones.\n   */\n  refKey?: string;\n  /** The node's selection status, typically displayed as a checkbox. */\n  selected?: boolean;\n  /** The node's status, typically displayed as merged single row.\n   * @see {@link Wunderbaum.setStatus}\n   */\n  statusNodeType?: NodeStatusType;\n  /** The node's title. Will be html escaped to prevent XSS. */\n  title: string;\n  /** Pass true to set node tooltip to the node's title. Defaults to {@link WunderbaumOptions.tooltip}. */\n  tooltip?: TooltipOption;\n  /** Inherit shared settings from the matching entry in `InitWunderbaumOptions.types`. */\n  type?: string;\n  /** Set to `true` to prevent selection. Defaults to {@link WunderbaumOptions.unselectable}. */\n  unselectable?: boolean;\n  /** @internal */\n  _treeId?: string;\n  /** Other data is passed to `node.data` and can be accessed via `node.data.NAME` */\n  [key: string]: unknown;\n}\n\n/** A plain object (dictionary) that defines node icons. */\nexport interface IconMapType {\n  error: string;\n  loading: string;\n  noData: string;\n  expanderExpanded: string;\n  expanderCollapsed: string;\n  expanderLazy: string;\n  checkChecked: string;\n  checkUnchecked: string;\n  checkUnknown: string;\n  radioChecked: string;\n  radioUnchecked: string;\n  radioUnknown: string;\n  folder: string;\n  folderOpen: string;\n  folderLazy: string;\n  doc: string;\n  colSortable: string;\n  colSortAsc: string;\n  colSortDesc: string;\n  colFilter: string;\n  colFilterActive: string;\n  colMenu: string;\n  [key: string]: string;\n}\n/* -----------------------------------------------------------------------------\n * EVENT CALLBACK TYPES\n * ---------------------------------------------------------------------------*/\n\n/** Retuen value of an event handler that can return `false` to prevent the default action. */\nexport type WbCancelableEventResultType = false | void;\n\nexport interface WbTreeEventType {\n  /** Name of the event. */\n  type: string;\n  /** The affected tree instance. */\n  tree: Wunderbaum;\n  /** Exposed utility module methods\n   * (see [API docs](https://mar10.github.io/wunderbaum/api/modules/util.html)).\n   */\n  util: any;\n  /** Originating HTML event if any (e.g. `click`). */\n  event?: Event;\n  // [key: string]: unknown;\n}\n\nexport interface WbNodeEventType extends WbTreeEventType {\n  /** The affected target node. */\n  node: WunderbaumNode;\n  /**\n   * Contains the node's type information, i.e. `tree.types[node.type]` if\n   * defined. Set to `{}` otherwise. @see {@link Wunderbaum.types}\n   */\n  typeInfo: NodeTypeDefinition;\n}\n\nexport interface WbActivateEventType extends WbNodeEventType {\n  prevNode: WunderbaumNode;\n  /** The original event. */\n  event: Event;\n}\n\nexport interface WbChangeEventType extends WbNodeEventType {\n  /** Additional information derived from the original change event. */\n  info: WbEventInfo;\n  /** The embedded element that fired the change event. */\n  inputElem: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n  /** The new value of the embedded element, depending on the input element type. */\n  inputValue: any;\n  /** Result of `inputElem.checkValidity()`. */\n  inputValid: boolean;\n}\n\nexport interface WbClickEventType extends WbTreeEventType {\n  /** The original event. */\n  event: MouseEvent;\n  /** The clicked node if any. */\n  node: WunderbaumNode;\n  /** Additional information derived from the original mouse event. */\n  info: WbEventInfo;\n}\n\nexport interface WbDeactivateEventType extends WbNodeEventType {\n  nextNode: WunderbaumNode;\n  /** The original event. */\n  event: Event;\n}\n\nexport interface WbEditApplyEventType extends WbNodeEventType {\n  /** Additional information derived from the original change event. */\n  info: WbEventInfo;\n  /** The input element of the node title that fired the change event. */\n  inputElem: HTMLInputElement;\n  /** The previous node title. */\n  oldValue: string;\n  /** The new node title. */\n  newValue: string;\n  /** Result of `inputElem.checkValidity()`. */\n  inputValid: boolean;\n}\n\nexport interface WbEditEditEventType extends WbNodeEventType {\n  /** The input element of the node title that was just created. */\n  inputElem: HTMLInputElement;\n}\n\n// export interface WbEnhanceTitleEventType extends WbNodeEventType {\n//   titleSpan: HTMLSpanElement;\n// }\n\nexport interface WbErrorEventType extends WbNodeEventType {\n  error: any;\n}\n\nexport interface WbExpandEventType extends WbNodeEventType {\n  flag: boolean;\n}\n\nexport interface WbFocusEventType extends WbTreeEventType {\n  /** The original event. */\n  event: FocusEvent;\n  /** True if `focusin`, false if `focusout`. */\n  flag: boolean;\n}\n\nexport interface WbIconBadgeEventType extends WbNodeEventType {\n  iconSpan: HTMLElement;\n}\n\nexport interface WbIconBadgeEventResultType {\n  /** Content of the badge `<span class='wb-badge'>` if any. */\n  badge: string | number | HTMLSpanElement | null | false;\n  /** Additional class name(s), separate with space. */\n  badgeClass?: string;\n  /** Tooltip for the badge. */\n  badgeTooltip?: string;\n}\n\nexport interface WbInitEventType extends WbTreeEventType {\n  error?: any;\n}\n\nexport interface WbKeydownEventType extends WbTreeEventType {\n  /** The original event. */\n  event: KeyboardEvent;\n  node: WunderbaumNode;\n  /** Additional information derived from the original keyboard event. */\n  info: WbEventInfo;\n}\n\nexport interface WbModifyChildEventType extends WbNodeEventType {\n  /** Type of change: 'add', 'remove', 'rename', 'move', 'data', ... */\n  operation: string;\n  child: WunderbaumNode;\n}\n\nexport interface WbReceiveEventType extends WbNodeEventType {\n  response: any;\n}\n\nexport interface WbSelectEventType extends WbNodeEventType {\n  flag: boolean;\n}\n\nexport interface WbButtonClickEventType extends WbTreeEventType {\n  info: WbEventInfo;\n  /** The associated command, e.g. 'menu', 'sort', 'filter', ... */\n  command: string;\n}\n\nexport interface WbRenderEventType extends WbNodeEventType {\n  /**\n   * True if the node's markup was not yet created. In this case the render\n   * event should create embedded input controls (in addition to update the\n   * values according to to current node data). <br>\n   * False if the node's markup was already created. In this case the render\n   * event should only update the values according to to current node data.\n   */\n  isNew: boolean;\n  /** The node's `<span class='wb-node'>` element. */\n  nodeElem: HTMLSpanElement;\n  /** True if the node only displays the title and is stretched over all remaining columns. */\n  isColspan: boolean;\n  /**\n   * Array of node's `<span class='wb-col'>` elements.\n   * The first element is `<span class='wb-node wb-col'>`, which contains the\n   * node title and icon (`idx: 0`, id: '*'`).\n   */\n  allColInfosById: ColumnEventInfoMap;\n  /**\n   * Array of node's `<span class='wb-node'>` elements,\n   * *that should be rendered by the event handler*.\n   * In contrast to `allColInfosById`, the node title is not part of this array.\n   * If node.isColspan() is true, this array is empty (`[]`).\n   * This allows to iterate over all relevant in a simple loop:\n   * ```\n   * for (const col of Object.values(e.renderColInfosById)) {\n   *   switch (col.id) {\n   *     default:\n   *       // Assumption: we named column.id === node.data.NAME\n   *       col.elem.textContent = node.data[col.id];\n   *       break;\n   *   }\n   * }\n   */\n  renderColInfosById: ColumnEventInfoMap;\n}\n\n/**\n * Contains the node's type information, i.e. `tree.types[node.type]` if\n * defined.\n * @see {@link Wunderbaum.types} and {@link WunderbaumNode.getOption|WunderbaumNode.getOption()}\n * to evaluate `node.NAME` setting and `tree.types[node.type].NAME`.\n */\nexport interface NodeTypeDefinition {\n  /** En/disable checkbox for matching nodes. */\n  checkbox?: CheckboxOption;\n  /** Optional class names that are added to all `div.wb-row` elements of matching nodes. */\n  classes?: string;\n  /** Only show title and hide other columns if any. */\n  colspan?: boolean;\n  /** Default icon for matching nodes. */\n  icon?: IconOption;\n  /** Default icon tooltip for matching nodes. */\n  iconTooltip?: TooltipOption;\n  // and more\n  [key: string]: unknown;\n}\n\n/* -----------------------------------------------------------------------------\n * DATA TYPES\n * ---------------------------------------------------------------------------*/\n\nexport type NodeTypeDefinitionMap = { [type: string]: NodeTypeDefinition };\n\n/**\n * Column type definitions.\n * @see {@link Wunderbaum.columns}\n */\nexport interface ColumnDefinition {\n  /** Column ID as defined in `tree.columns` definition (\"*\" for title column). */\n  id: string;\n  /** Column header (defaults to id) */\n  title: string;\n  /** Column header tooltip (optional) */\n  tooltip?: string;\n  /** Column width or weight.\n   * Either an absolute pixel value (e.g. `\"50px\"`) or a relative weight (e.g. `1`)\n   * that is used to calculate the width  inside the remaining available space.\n   * Default: `\"*\"`, which is interpreted as `1`.\n   */\n  width?: string | number;\n  /** Only used for columns with a relative weight.\n   * Default: `4px`.\n   */\n  minWidth?: string | number;\n  /** Allow user to resize the column.\n   * @default false (or global tree option `columnsSortable`)\n   * @see {@link WunderbaumOptions.columnsResizable}.\n   * @since 0.10.0\n   */\n  resizable?: boolean;\n  /** Optional custom column width when user resized by mouse drag.\n   * Default: unset.\n   */\n  customWidthPx?: number;\n  /** Display a 'filter' button in the column header. Default: false. <br>\n   * Note: The actual filtering must be implemented in the `buttonClick()` event.\n   * @default false (or global tree option `columnsFilterable`)\n   * @since 0.11.0\n   */\n  filterable?: boolean;\n  /** .\n   * Default: inactive. <br>\n   * Note: The actual filtering must be implemented in the `buttonClick()` event.\n   */\n  filterActive?: boolean;\n  /** Display a 'sort' button in the column header. Default: false. <br>\n   * Note: The actual sorting must be implemented in the `buttonClick()` event.\n   * @default false (or global tree option `columnsSortable`)\n   * @see {@link WunderbaumOptions.columnsSortable}.\n   * @since 0.11.0\n   */\n  sortable?: boolean;\n  /** Optional custom column sort orde when user clicked the sort icon.\n   * Default: unset, e.g. not sorted. <br>\n   * Note: The actual sorting must be implemented in the `buttonClick()` event.\n   * @since 0.11.0\n   */\n  sortOrder?: SortOrderType;\n  /** Display a menu icon that may open a context menu for this column.\n   * Note: The actual functionality must be implemented in the `buttonClick()` event.\n   * @default false (or global tree option `columnsMenu`)\n   * @see {@link WunderbaumOptions.columnsMenu}.\n   * @since 0.11.0\n   */\n  menu?: boolean;\n  /** Optional class names that are added to all `span.wb-col` header AND data\n   * elements of that column. Separate multiple classes with space.\n   */\n  classes?: string;\n  /** If `headerClasses` is a set, it will be used for the header element only\n   * (unlike `classes`, which is used for body and header cells).\n   * Separate multiple classes with space.\n   */\n  headerClasses?: string;\n  // /** A list of icon definitions added to the column header.\n  //  */\n  // headerIcons?: string;\n  /** Optional HTML content that is rendered into all `span.wb-col` elements of that column.*/\n  html?: string;\n  /** @internal */\n  _weight?: number;\n  /** @internal */\n  _widthPx?: number;\n  /** @internal */\n  _ofsPx?: number;\n  // ... and more\n  [key: string]: unknown;\n}\n\nexport type ColumnDefinitionList = Array<ColumnDefinition>;\n\n/**\n * Column information (passed to the `render` event).\n */\nexport interface ColumnEventInfo {\n  /** Column ID as defined in `tree.columns` definition (\"*\" for title column). */\n  id: string;\n  /** Column index (0: leftmost title column). */\n  idx: number;\n  /** The cell's `<span class='wb-col'>` element (null for plain trees). */\n  elem: HTMLSpanElement | null;\n  /** The value of `tree.columns[]` for the current index. */\n  info: ColumnDefinition;\n}\n\nexport type ColumnEventInfoMap = { [colId: string]: ColumnEventInfo };\n\n/**\n * Additional information derived from mouse or keyboard events.\n * @see {@link Wunderbaum.getEventInfo}\n */\nexport interface WbEventInfo {\n  /** The original HTTP Event.*/\n  event: MouseEvent | KeyboardEvent;\n  /** Canonical descriptive string of the event type including modifiers,\n   * e.g. `Ctrl+Down`. @see {@link util.eventToString}\n   */\n  canonicalName: string;\n  /** The tree instance. */\n  tree: Wunderbaum;\n  /** The affected node instance instance if any. */\n  node: WunderbaumNode | null;\n  /** The affected part of the node span (e.g. title, expander, ...). */\n  region: NodeRegion;\n  /** The definition of the affected column if any. */\n  colDef?: ColumnDefinition;\n  /** The index of affected column or -1. */\n  colIdx: number;\n  /** The column definition ID of affected column if any. */\n  colId?: string;\n  /** The affected column's span tag if any. */\n  colElem?: HTMLSpanElement;\n}\n\n// export type WbTreeCallbackType = (e: WbTreeEventType) => any;\n// export type WbNodeCallbackType = (e: WbNodeEventType) => any;\n// export type WbRenderCallbackType = (e: WbRenderEventType) => void;\n\nexport type FilterModeType = null | \"mark\" | \"dim\" | \"hide\";\nexport type SelectModeType = \"single\" | \"multi\" | \"hier\";\n\nexport type NavigationType =\n  | \"down\"\n  | \"first\"\n  | \"firstCol\"\n  | \"last\"\n  | \"lastCol\"\n  | \"left\"\n  | \"nextMatch\"\n  | \"pageDown\"\n  | \"pageUp\"\n  | \"parent\"\n  | \"prevMatch\"\n  | \"right\"\n  | \"up\";\n\nexport type ApplyCommandType =\n  | NavigationType\n  | \"addChild\"\n  | \"addSibling\"\n  | \"collapse\"\n  | \"collapseAll\"\n  | \"copy\"\n  | \"cut\"\n  | \"edit\"\n  | \"expand\"\n  | \"expandAll\"\n  | \"indent\"\n  | \"moveDown\"\n  | \"moveUp\"\n  | \"outdent\"\n  | \"paste\"\n  | \"remove\"\n  | \"rename\"\n  | \"toggleSelect\";\n\nexport type NodeFilterResponse = \"skip\" | \"branch\" | boolean | void;\nexport type NodeFilterCallback = (node: WunderbaumNode) => NodeFilterResponse;\n\n/**\n * Possible values for {@link WunderbaumNode.update} and {@link Wunderbaum.update}.\n */\nexport enum ChangeType {\n  /** Re-render the whole viewport, headers, and all rows. */\n  any = \"any\",\n  /** A node's title, icon, columns, or status have changed. Update the existing row markup. */\n  data = \"data\",\n  /** The `tree.columns` definition has changed beyond simple width adjustments. */\n  colStructure = \"colStructure\",\n  /** The viewport/window was resized. Adjust layout attributes for all elements. */\n  resize = \"resize\",\n  /** A node's definition has changed beyond status and data. Re-render the whole row's markup. */\n  row = \"row\",\n  /** Nodes have been added, removed, etc. Update markup. */\n  structure = \"structure\",\n  /** A node's status has changed. Update current row's classes, to reflect active, selected, ... */\n  status = \"status\",\n  /** Vertical scroll event. Update the 'top' property of all rows. */\n  scroll = \"scroll\",\n}\n\n/** @internal */\nexport enum RenderFlag {\n  clearMarkup = \"clearMarkup\",\n  header = \"header\",\n  redraw = \"redraw\",\n  scroll = \"scroll\",\n}\n\n/** Possible values for {@link WunderbaumNode.setStatus}. */\nexport enum NodeStatusType {\n  ok = \"ok\",\n  loading = \"loading\",\n  error = \"error\",\n  noData = \"noData\",\n  paging = \"paging\",\n}\n\n/** Define the subregion of a node, where an event occurred. */\nexport enum NodeRegion {\n  unknown = \"\",\n  checkbox = \"checkbox\",\n  column = \"column\",\n  expander = \"expander\",\n  icon = \"icon\",\n  prefix = \"prefix\",\n  title = \"title\",\n}\n\n/** Initial navigation mode and possible transition. */\nexport enum NavModeEnum {\n  /** Start with row mode, but allow cell-nav mode */\n  startRow = \"startRow\",\n  /** Cell-nav mode only */\n  cell = \"cell\",\n  /** Start in cell-nav mode, but allow row mode */\n  startCell = \"startCell\",\n  /** Row mode only */\n  row = \"row\",\n}\n\n/** Translatable strings. */\nexport type TranslationsType = {\n  /** @default \"Loading...\" */\n  loading: string;\n  /** @default \"Error\" */\n  loadError: string;\n  /** @default \"No data\" */\n  noData: string;\n  /** @default \" » \" */\n  breadcrumbDelimiter: string;\n  /** @default \"Found ${matches} of ${count}\" */\n  queryResult: string;\n  /** @default \"No result\" */\n  noMatch: string;\n  /** @default \"${match} of ${matches}\" */\n  matchIndex: string;\n};\n/* -----------------------------------------------------------------------------\n * METHOD OPTIONS TYPES\n * ---------------------------------------------------------------------------*/\n\n/** Possible values for {@link WunderbaumNode.addChildren}. */\nexport interface AddChildrenOptions {\n  /** Insert children before this node (or index)\n   * @default undefined or null:  append as last child\n   */\n  before?: WunderbaumNode | number | null;\n  /**\n   * Set `node.expanded = true` according to tree.options.minExpandLevel.\n   * This does *not* load lazy nodes.\n   * @default true\n   */\n  applyMinExpanLevel?: boolean;\n  /** (@internal Internal use, do not set! ) */\n  _level?: number;\n}\n\n/** Possible values for {@link Wunderbaum.applyCommand} and {@link WunderbaumNode.applyCommand}. */\nexport interface ApplyCommandOptions {\n  [key: string]: unknown;\n}\n\n/** Possible values for {@link Wunderbaum.expandAll} and {@link WunderbaumNode.expandAll}. */\nexport interface ExpandAllOptions {\n  /** Expand and load lazy nodes @default false  */\n  loadLazy?: boolean;\n  /** Unload lazily loaded children if any (if collapsing). @default false */\n  resetLazy?: boolean;\n  /** Ignore tree's `minExpandLevel` option @default false */\n  force?: boolean;\n  /** Restrict expand level.\n   * Pass 0 to make only toplevel nodes visible, 1 to expand one level deeper, etc.\n   * @default unset (unlimited)\n   */\n  depth?: number;\n  /**\n   * Also collapse child nodes beyond the `depth` level.\n   * Otherwise only the `depth` level is collapsed and the expand state of the\n   * descendants is retained.\n   * Only in combination with collapse and `depth`.\n   * Expanding with `deep` option is not supported as recursion depth implied by\n   * the `depth` option. However a `deep` option will be considered if\n   * `collapseOthers` is set.\n   * @default false\n   */\n  deep?: boolean;\n  /**\n   * Expand up to level=depth and collapse all other branches.\n   * Only in combination with `flag == true`, `depth > 0`.\n   * @default false\n   */\n  collapseOthers?: boolean;\n  /** Keep active node visible @default true */\n  keepActiveNodeVisible?: boolean;\n}\n\n/**\n * Possible option values for {@link Wunderbaum.filterNodes}.\n * The defaults are inherited from the tree instances ´tree.options.filter`\n * settings (see also {@link FilterOptionsType}).\n */\nexport interface FilterNodesOptions {\n  /** Expand all branches that contain matches while filtered @default false */\n  autoExpand?: boolean;\n  /** Whether to implicitly match all children of matched nodes @default false */\n  matchBranch?: boolean;\n  /** Match single characters in order, e.g. 'fb' will match 'FooBar' @default false */\n  fuzzy?: boolean;\n  /**Hide expanders if all child nodes are hidden by filter @default false */\n  hideExpanders?: boolean;\n  /** Highlight matches by wrapping inside `<mark>` tags.\n   * Does not work for filter callbacks.  @default true\n   */\n  highlight?: boolean;\n  /** Match end nodes only @default false */\n  leavesOnly?: boolean;\n  /** Grayout unmatched nodes (pass 'hide' to remove instead) @default 'dim' */\n  mode?: FilterModeType;\n  /** Display a 'no data' status node if result is empty @default true */\n  noData?: boolean | string;\n}\n\n/** Possible values for {@link Wunderbaum.getState}. */\nexport interface GetStateOptions {\n  /** Include the active node's key (and expand its parents). @default true */\n  activeKey?: boolean;\n  /** Include the expanded keys. @default false */\n  expandedKeys?: boolean;\n  /** Include the selected keys. @default false */\n  selectedKeys?: boolean;\n}\n\n/** Possible values for {@link Wunderbaum.setState}. */\nexport interface SetStateOptions {\n  /** Recursively load lazy nodes as needed. @default false */\n  expandLazy?: boolean;\n}\n\n/** Used by {@link Wunderbaum.getState} and {@link Wunderbaum.setState}. */\nexport interface TreeStateDefinition {\n  /** List of expanded node's keys. */\n  expandedKeys: Array<string> | undefined;\n  /** The active node's key if any. */\n  activeKey: string | null;\n  /** The active column index if any. */\n  activeColIdx: number | null;\n  /** List of selected node's keys. */\n  selectedKeys: Array<string> | undefined;\n}\n\n/** Possible values for {@link Wunderbaum.loadLazyNodes} `options` argument. */\nexport interface LoadLazyNodesOptions {\n  /** Expand node (otherwise load, but keep collapsed). @default true */\n  expand?: boolean;\n  /** Force reloading even if already loaded. @default false */\n  force?: boolean;\n  /** Do not send events. @default false */\n  noEvents?: boolean;\n}\n\n/** Possible values for {@link WunderbaumNode.makeVisible}. */\nexport interface MakeVisibleOptions {\n  /** Do not animate expand (currently not implemented). @default false */\n  noAnimation?: boolean;\n  /** Scroll node into visible viewport area if required. @default true */\n  scrollIntoView?: boolean;\n  /** Do not send events. @default false */\n  noEvents?: boolean;\n}\n\n/** Possible values for {@link WunderbaumNode.navigate}. */\nexport interface NavigateOptions {\n  /** Activate the new node (otherwise focus only). @default true */\n  activate?: boolean;\n  /** Originating event (e.g. KeyboardEvent) if any. */\n  event?: Event;\n}\n\n/** Possible values for {@link WunderbaumNode._render}. */\nexport interface RenderOptions {\n  /** Which parts need update? @default ChangeType.data */\n  change?: ChangeType;\n  /** Where to append a new node. @default 'last' */\n  after?: any;\n  /** @internal. @default false */\n  isNew?: boolean;\n  /** @internal. @default false */\n  preventScroll?: boolean;\n  /** @internal. @default false */\n  isDataChange?: boolean;\n  /** @internal. @default false */\n  top?: number;\n  /** @internal. @default true */\n  resizeCols?: boolean;\n}\n\n/** Possible values for {@link WunderbaumNode.scrollIntoView} `options` argument. */\nexport interface ScrollIntoViewOptions {\n  /** Do not animate (currently not implemented). @default false */\n  noAnimation?: boolean;\n  /** Do not send events. @default false */\n  noEvents?: boolean;\n  /** Keep this node visible at the top in any case. */\n  topNode?: WunderbaumNode;\n  /** Add N pixel offset at top. */\n  ofsY?: number;\n}\n\n/** Possible values for {@link Wunderbaum.scrollTo} `options` argument. */\nexport interface ScrollToOptions extends ScrollIntoViewOptions {\n  /** Which node to scroll into the viewport.*/\n  node: WunderbaumNode;\n}\n\n/** Possible values for {@link WunderbaumNode.setActive} `options` argument. */\nexport interface SetActiveOptions {\n  /** Generate (de)activate event, even if node already has this status (@default: false). */\n  retrigger?: boolean;\n  /** Do not generate (de)activate event  (@default: false). */\n  noEvents?: boolean;\n  // /** Mark node as focused node (default: true).\n  //  * Combine with `focusTree: true` to set keyboard focus to tree container.\n  //  */\n  // focusNode?: boolean;\n  /** Call `tree.setFocus()` to acquire keyboard focus (@default: false). */\n  focusTree?: boolean;\n  /** Optional original event that will be passed to the (de)activate handler. */\n  event?: Event;\n  /** Also call {@link Wunderbaum.setColumn}. */\n  colIdx?: number | string;\n  /**\n   * Focus embedded input control of the grid cell if any (requires colIdx >= 0).\n   * If colIdx is 0 or '*', the node title is put into edit mode.\n   * Implies `focusTree: true`, requires `colIdx`.\n   */\n  edit?: boolean;\n}\n\n/** Possible values for {@link Wunderbaum.setColumn} `options` argument. */\nexport interface SetColumnOptions {\n  /**\n   * Focus embedded input control of the grid cell if any .\n   * If colIdx is 0 or '*', the node title is put into edit mode.\n   * @default false\n   */\n  edit?: boolean;\n  /** Horizontically scroll into view. @default: true */\n  scrollIntoView?: boolean;\n}\n\n/** Possible values for {@link WunderbaumNode.setExpanded} `options` argument. */\nexport interface SetExpandedOptions {\n  /** Ignore {@link WunderbaumOptions}.minExpandLevel. @default false */\n  force?: boolean;\n  /** Immediately update viewport (async otherwise). @default false */\n  immediate?: boolean;\n  /** Do not animate expand (currently not implemented). @default false */\n  noAnimation?: boolean;\n  /** Do not send events. @default false */\n  noEvents?: boolean;\n  /** Unload lazily loaded children if any (if collapsing). @default false */\n  resetLazy?: boolean;\n  /** Scroll up to bring expanded nodes into viewport. @default false */\n  scrollIntoView?: boolean;\n}\n\n/** Possible values for {@link WunderbaumNode.update} `options` argument. */\nexport interface UpdateOptions {\n  /** Force immediate redraw instead of throttled/async mode. @default false */\n  immediate?: boolean;\n  // /** Remove HTML markup of all rendered nodes before redraw. @default false */\n  // removeMarkup?: boolean;\n}\n\n/** Possible values for {@link WunderbaumNode.setSelected} `options` argument. */\nexport interface SetSelectedOptions {\n  /** Ignore restrictions, e.g. (`unselectable`). @default false */\n  force?: boolean;\n  /** Do not send `beforeSelect` or `select` events. @default false */\n  noEvents?: boolean;\n  /** Apply to all descendant nodes (only for `selectMode: 'multi'`). @default false */\n  propagateDown?: boolean;\n  // /** Apply to all ancestor nodes. @default false */\n  // propagateUp?: boolean;\n  /** Called for every node. May return false to prevent action. @default null */\n  callback?: NodeSelectCallback;\n}\n\n/** Possible values for {@link WunderbaumNode.setStatus} `options` argument. */\nexport interface SetStatusOptions {\n  /** Displayed as status node title. */\n  message?: string;\n  /** Used as tooltip. */\n  details?: string;\n}\n\n/**\n * Possible values for {@link Wunderbaum.reload} `options` argument.\n */\nexport interface ReloadOptions {\n  /** Load this source instead. @default initial source (if loaded via ajax) */\n  source?: SourceType;\n  /** Reactivate currently active node if any. @default true */\n  reactivate?: boolean;\n}\n\n/**\n * Possible values for {@link WunderbaumNode.resetNativeChildOrder} `options` argument.\n */\nexport interface ResetOrderOptions {\n  /** Sort descendants recursively. @default true */\n  recursive?: boolean;\n  /** The name of the node property that will be renumbered.\n   * @default `_nativeIndex`.\n   */\n  propName?: string;\n}\n\n/**\n * Possible values for {@link Wunderbaum.sort} and {@link WunderbaumNode.sort}\n * `options` argument.\n */\nexport interface SortOptions {\n  /** The name of the node property that will be used for sorting.\n   * Mandatory, unless  {@link key} or  {@link colId} are given.\n   */\n  propName?: string;\n  /** Callback that determines a node representation for comparison.\n   * @default {@link common.nodeTitleKeyGetter} */\n  key?: SortKeyCallback;\n  /** Callback that determines the order. @default {@link common.nodeTitleSorter}\n   * @deprecated use {@link key} instead\n   */\n  cmp?: SortCallback;\n  /** Sort order 'asc' or 'desc'.\n   * @default 'asc' (or if `updateColInfo` is true, the rotated status of the\n   * column definition.\n   * See also {@link WunderbaumOptions.sortFoldersFirst}.\n   */\n  order?: SortOrderType;\n  /** Sort descendants recursively. @default true */\n  deep?: boolean;\n  /** Sort string values case insensitive. @default false */\n  caseInsensitive?: boolean;\n  /**\n   * Sort by this property if order is `undefined`.\n   * See also {@link WunderbaumNode.resetNativeChildOrder}.\n   * @default `_nativeIndex`.\n   */\n  nativeOrderPropName?: string;\n  /**\n   * Rotate sort order (asc -> desc -> none) before sorting.\n   * Update the sort icons in the column header\n   * Note:\n   * Sorting is done in-place. There is no 'unsorted' state, but we can\n   * call `setCurrentSortOrder()` to renumber the `node._sortIdx` property,\n   * which will be used as sort key, when `order` is `undefined`.\n   * @default false\n   */\n  updateColInfo?: boolean;\n  /** Column ID as defined in `tree.columns` definition. Required if updateColInfo is true.*/\n  colId?: string;\n}\n\n/**\n * Possible values for {@link WunderbaumNode.sortByProperty} `options` argument.\n * @deprecated\n */\nexport type SortByPropertyOptions = SortOptions;\n\n/** Options passed to {@link Wunderbaum.visitRows}. */\nexport interface VisitRowsOptions {\n  /** Skip filtered nodes and children of collapsed nodes. @default false */\n  includeHidden?: boolean;\n  /** Return the start node as first result. @default true */\n  includeSelf?: boolean;\n  /** Traverse in opposite direction, i.e. bottom up. @default false */\n  reverse?: boolean;\n  /** Start traversal at this node @default first (topmost) tree node */\n  start?: WunderbaumNode | null;\n  /** Wrap around at last node and continue at the top,\n   * until the start node is reached again @default false */\n  wrap?: boolean;\n}\n\n/* -----------------------------------------------------------------------------\n * wb_ext_filter\n * ---------------------------------------------------------------------------*/\n\n/**\n * Passed as tree option.filer.connect to configure automatic integration of\n * filter UI controls. @experimental\n */\nexport interface FilterConnectType {\n  inputElem: string | HTMLInputElement | null;\n  modeButton?: string | HTMLButtonElement | null;\n  nextButton?: string | HTMLButtonElement | HTMLAnchorElement | null;\n  prevButton?: string | HTMLButtonElement | HTMLAnchorElement | null;\n  matchInfoElem?: string | HTMLElement | null;\n}\n\n/**\n * Passed as tree options to configure default filtering behavior.\n *\n * @see {@link Wunderbaum.filterNodes}\n * @see {@link FilterNodesOptions}\n */\nexport type FilterOptionsType = {\n  /**\n   * Element or selector of input controls and buttons for filter query strings.\n   * @experimental\n   * @since 0.13\n   * @default null\n   */\n  connect?: null | FilterConnectType;\n  /**\n   * Re-apply last filter if lazy data is loaded\n   * @default true\n   */\n  autoApply?: boolean;\n} & FilterNodesOptions;\n\n/* -----------------------------------------------------------------------------\n * wb_ext_edit\n * ---------------------------------------------------------------------------*/\n/**\n * Note: <br>\n * This options are used for renaming node titles. <br>\n * There is also the `tree.change` event to handle modifying node data from\n * input controls that are embedded in grid cells.\n */\nexport type EditOptionsType = {\n  /**\n   * Used to debounce the `change` event handler for grid cells [ms].\n   * @default 100\n   */\n  debounce?: number;\n  /**\n   * Minimum number of characters required for node title input field.\n   * @default 1\n   */\n  minlength?: number;\n  /**\n   * Maximum number of characters allowed for node title input field.\n   * @default null;\n   */\n  maxlength?: null | number;\n  /**\n   * Array of strings to determine which user input should trigger edit mode.\n   * E.g. `[\"clickActive\", \"F2\", \"macEnter\"]`: <br>\n   * 'clickActive': single click on active node title <br>\n   * 'F2': press F2 key <br>\n   * 'macEnter': press Enter (on macOS only) <br>\n   * Pass an empty array to disable edit mode.\n   * @default []\n   */\n  trigger?: string[];\n  /**\n   * Trim whitespace before saving a node title.\n   * @default true\n   */\n  trim?: boolean;\n  /**\n   * Select all text of a node title, so it can be overwritten by typing.\n   * @default true\n   */\n  select?: boolean;\n  /**\n   * Handle 'clickActive' only if last click is less than this ms old (0: always)\n   * @default 1000\n   */\n  slowClickDelay?: number;\n  /**\n   * Permanently apply node title input validations (CSS and tooltip) on keydown.\n   * @default true\n   */\n  validity?: boolean;\n\n  // --- Events ---\n\n  /**\n   * `beforeEdit(e)` may return an input HTML string. Otherwise use a default.\n   * @category Callback\n   */\n  beforeEdit?: null | ((e: WbNodeEventType) => boolean) | string;\n  /**\n   *\n   * @category Callback\n   */\n  edit?:\n    | null\n    | ((e: WbNodeEventType & { inputElem: HTMLInputElement }) => void);\n  /**\n   *\n   * @category Callback\n   */\n  apply?:\n    | null\n    | ((e: WbNodeEventType & { inputElem: HTMLInputElement }) => any)\n    | Promise<any>;\n};\n\n/* -----------------------------------------------------------------------------\n * wb_ext_dnd\n * ---------------------------------------------------------------------------*/\n\nexport type InsertNodeType =\n  | \"before\"\n  | \"after\"\n  | \"prependChild\"\n  | \"appendChild\";\n\nexport type DropEffectType = \"none\" | \"copy\" | \"link\" | \"move\";\nexport type DropEffectAllowedType =\n  | \"none\"\n  | \"copy\"\n  | \"copyLink\"\n  | \"copyMove\"\n  | \"link\"\n  | \"linkMove\"\n  | \"move\"\n  | \"all\";\n\nexport type DropRegionType = \"over\" | \"before\" | \"after\";\nexport type DropRegionTypeSet = Set<DropRegionType>;\nexport type DropRegionTypeList = Array<DropRegionType>;\n// type AllowedDropRegionType =\n//   | \"after\"\n//   | \"afterBefore\"\n//   // | \"afterBeforeOver\" // == all == true\n//   | \"afterOver\"\n//   | \"all\" // == true\n//   | \"before\"\n//   | \"beforeOver\"\n//   | \"none\" // == false == \"\" == null\n//   | \"over\"; // == \"child\"\n\nexport interface DragEventType extends WbNodeEventType {\n  /** The original event. */\n  event: DragEvent;\n  /** The source node. */\n  node: WunderbaumNode;\n}\n\nexport interface DropEventType extends WbNodeEventType {\n  /** The original event. */\n  event: DragEvent;\n  /** The target node. */\n  node: WunderbaumNode;\n  /** The source node if any. */\n  sourceNode: WunderbaumNode;\n  /** The DataTransfer object. */\n  dataTransfer: DataTransfer;\n}\n\nexport type DndOptionsType = {\n  /**\n   * Expand nodes after n milliseconds of hovering\n   * @default 1500\n   */\n  autoExpandMS?: 1500;\n  // /**\n  //  * Additional offset for drop-marker with hitMode = \"before\"/\"after\"\n  //  * @default\n  //  */\n  // dropMarkerInsertOffsetX: -16;\n  // /**\n  //  * Absolute position offset for .fancytree-drop-marker relatively to ..fancytree-title (icon/img near a node accepting drop)\n  //  * @default\n  //  */\n  // dropMarkerOffsetX: -24;\n  // /**\n  //  * Root Container used for drop marker (could be a shadow root)\n  //  * (#1021 `document.body` is not available yet)\n  //  * @default\n  //  */\n  // dropMarkerParent: \"body\";\n  /**\n   * true: Drag multiple (i.e. selected) nodes. Also a callback() is allowed\n   * @default false\n   */\n  multiSource?: false;\n  /**\n   * Restrict the possible cursor shapes and modifier operations\n   * (can also be set in the dragStart event)\n   * @default \"all\"\n   */\n  effectAllowed?: DropEffectAllowedType;\n  /**\n   * Default dropEffect ('copy', 'link', or 'move') when no modifier is pressed.\n   * Overidable in the dragEnter or dragOver event.\n   * @default \"move\"\n   */\n  dropEffectDefault?: DropEffectType;\n  /**\n   * Use opinionated heuristics to determine the dropEffect ('copy', 'link', or 'move')\n   * based on `effectAllowed`, `dropEffectDefault`, and modifier keys.\n   * This is recalculated before each dragEnter and dragOver event and can be\n   * overridden there.\n   *\n   * @default true\n   */\n  guessDropEffect: boolean;\n  /**\n   * Prevent dropping nodes from different Wunderbaum trees\n   * @default false\n   */\n  preventForeignNodes?: boolean;\n  /**\n   * Prevent dropping items on unloaded lazy Wunderbaum tree nodes\n   * @default true\n   */\n  preventLazyParents?: boolean;\n  /**\n   * Prevent dropping items other than Wunderbaum tree nodes\n   * @default false\n   */\n  preventNonNodes?: boolean;\n  /**\n   * Prevent dropping nodes on own descendants\n   * @default true\n   */\n  preventRecursion?: boolean;\n  /**\n   * Prevent dropping nodes under same direct parent\n   * @default false\n   */\n  preventSameParent?: boolean;\n  /**\n   * Prevent dropping nodes 'before self', etc. (move only)\n   * @default true\n   */\n  preventVoidMoves?: boolean;\n  /**\n   * Serialize Node Data to datatransfer object\n   * @default true\n   */\n  serializeClipboardData?:\n    | boolean\n    | ((nodeData: WbNodeData, node: WunderbaumNode) => string);\n  /**\n   * Enable auto-scrolling while dragging\n   * @default true\n   */\n  scroll?: boolean;\n  /**\n   * Active top/bottom margin in pixel\n   * @default 20\n   */\n  scrollSensitivity?: 20;\n  // /**\n  //  * Scroll events every N microseconds\n  //  * @default 50\n  //  */\n  // scrollnterval: 50;\n  /**\n   * Pixel per event\n   * @default 5\n   */\n  scrollSpeed?: 5;\n  // /**\n  //  * Allow dragging of nodes to different IE windows\n  //  * @default false\n  //  */\n  // setTextTypeJson: boolean;\n  /**\n   * Optional callback passed to `toDict` on dragStart\n   * @default null\n   * @category Callback\n   */\n  sourceCopyHook?: null;\n  // Events (drag support)\n  /**\n   * Callback(sourceNode, data), return true, to enable dnd drag\n   * @default null\n   * @category Callback\n   */\n  dragStart?: null | ((e: DragEventType) => boolean);\n  /**\n   * Callback(sourceNode, data)\n   * @default null\n   * @category Callback\n   */\n  drag?: null | ((e: DragEventType) => void);\n  /**\n   * Callback(sourceNode, data)\n   * @default null\n   * @category Callback\n   */\n  dragEnd?: null | ((e: DragEventType) => void);\n  // Events (drop support)\n  /**\n   * Callback(targetNode, data), return true, to enable dnd drop\n   * @default null\n   * @category Callback\n   */\n  dragEnter?:\n    | null\n    | ((\n        e: DropEventType\n      ) => DropRegionType | DropRegionTypeSet | DropRegionTypeList | boolean);\n  /**\n   * Callback(targetNode, data)\n   * @default null\n   * @category Callback\n   */\n  dragOver?: null | ((e: DropEventType) => void);\n  /**\n   * Callback(targetNode, data), return false to prevent autoExpand\n   * @default null\n   * @category Callback\n   */\n  dragExpand?: null | ((e: DropEventType) => boolean);\n  /**\n   * Callback(targetNode, data)\n   * @default null\n   * @category Callback\n   */\n  drop?:\n    | null\n    | ((\n        e: WbNodeEventType & {\n          event: DragEvent;\n          region: DropRegionType;\n          suggestedDropMode: InsertNodeType;\n          suggestedDropEffect: DropEffectType;\n          sourceNode: WunderbaumNode;\n          sourceNodeData: WbNodeData | null;\n        }\n      ) => void);\n  /**\n   * Callback(targetNode, data)\n   * @default null\n   * @category Callback\n   */\n  dragLeave?: null | ((e: DropEventType) => void);\n};\n\n/* -----------------------------------------------------------------------------\n * wb_ext_grid\n * ---------------------------------------------------------------------------*/\nexport type GridOptionsType = object;\n\n/* -----------------------------------------------------------------------------\n * wb_ext_keynav\n * ---------------------------------------------------------------------------*/\nexport type KeynavOptionsType = object;\n\n/* -----------------------------------------------------------------------------\n * wb_ext_loger\n * ---------------------------------------------------------------------------*/\nexport type LoggerOptionsType = object;\n"
  },
  {
    "path": "src/util.ts",
    "content": "/*!\n * Wunderbaum - util\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n\n/** @module util */\n\nimport { DebouncedFunction, debounce, throttle } from \"./debounce\";\n\nexport { debounce, throttle };\n\n/** Readable names for `MouseEvent.button` */\nexport const MOUSE_BUTTONS: { [key: number]: string } = {\n  0: \"\",\n  1: \"left\",\n  2: \"middle\",\n  3: \"right\",\n  4: \"back\",\n  5: \"forward\",\n};\n\nexport const MAX_INT = 9007199254740991;\nconst userInfo = _getUserInfo();\n/**True if the client is using a macOS platform. */\nexport const isMac = userInfo.isMac;\n\nconst REX_HTML = /[&<>\"'/]/g; // Escape those characters\nconst REX_TOOLTIP = /[<>\"'/]/g; // Don't escape `&` in tooltips\nconst ENTITY_MAP: { [key: string]: string } = {\n  \"&\": \"&amp;\",\n  \"<\": \"&lt;\",\n  \">\": \"&gt;\",\n  '\"': \"&quot;\",\n  \"'\": \"&#39;\",\n  \"/\": \"&#x2F;\",\n};\n\nexport type NotPromise<T> = T extends Promise<any> ? never : T;\n\nexport type FunctionType = (...args: any[]) => any;\nexport type EventCallbackType = (e: Event) => boolean | void;\ntype PromiseCallbackType = (val: any) => void;\n\n/** A generic error that can be thrown to indicate a validation error when\n * handling the `apply` event for a node title or the `change` event for a\n * grid cell.\n */\nexport class ValidationError extends Error {\n  constructor(message: string) {\n    super(message);\n    this.name = \"ValidationError\";\n  }\n}\n\n/**\n * A ES6 Promise, that exposes the resolve()/reject() methods.\n *\n * TODO: See [Promise.withResolvers()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers#description)\n * , a proposed standard, but not yet implemented in any browser.\n */\nexport class Deferred {\n  private thens: PromiseCallbackType[] = [];\n  private catches: PromiseCallbackType[] = [];\n\n  private status = \"\";\n  private resolvedValue: any;\n  private rejectedError: any;\n\n  constructor() {}\n\n  resolve(value?: any) {\n    if (this.status) {\n      throw new Error(\"already settled\");\n    }\n    this.status = \"resolved\";\n    this.resolvedValue = value;\n    this.thens.forEach((t) => t(value));\n    this.thens = []; // Avoid memleaks.\n  }\n  reject(error?: any) {\n    if (this.status) {\n      throw new Error(\"already settled\");\n    }\n    this.status = \"rejected\";\n    this.rejectedError = error;\n    this.catches.forEach((c) => c(error));\n    this.catches = []; // Avoid memleaks.\n  }\n  then(cb: any) {\n    if (status === \"resolved\") {\n      cb(this.resolvedValue);\n    } else {\n      this.thens.unshift(cb);\n    }\n  }\n  catch(cb: any) {\n    if (this.status === \"rejected\") {\n      cb(this.rejectedError);\n    } else {\n      this.catches.unshift(cb);\n    }\n  }\n  promise() {\n    return {\n      then: this.then,\n      catch: this.catch,\n    };\n  }\n}\n\n/**Throw an `Error` if `cond` is falsey. */\nexport function assert(cond: any, msg: string) {\n  if (!cond) {\n    msg = msg || \"Assertion failed.\";\n    throw new Error(msg);\n  }\n}\n\nfunction _getUserInfo() {\n  const nav = navigator;\n  // const ua = nav.userAgentData;\n  const res = {\n    isMac: /Mac/.test(nav.platform),\n  };\n  return res;\n}\n\n/** Run `callback` when document was loaded. */\nexport function documentReady(callback: () => void): void {\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", callback);\n  } else {\n    callback();\n  }\n}\n\n/** Resolve when document was loaded. */\nexport function documentReadyPromise(): Promise<void> {\n  return new Promise((resolve) => {\n    documentReady(resolve);\n  });\n}\n\n/**\n * Iterate over Object properties or array elements.\n *\n * @param obj `Object`, `Array` or null\n * @param callback called for every item.\n *  `this` also contains the item.\n *  Return `false` to stop the iteration.\n */\nexport function each(\n  obj: any,\n  callback: (index: number | string, item: any) => void | boolean\n): any {\n  if (obj == null) {\n    // accept `null` or `undefined`\n    return obj;\n  }\n  const length = obj.length;\n  let i = 0;\n\n  if (typeof length === \"number\") {\n    for (; i < length; i++) {\n      if (callback.call(obj[i], i, obj[i]) === false) {\n        break;\n      }\n    }\n  } else {\n    for (const k in obj) {\n      if (callback.call(obj[i], k, obj[k]) === false) {\n        break;\n      }\n    }\n  }\n  return obj;\n}\n\n/** Shortcut for `throw new Error(msg)`. */\nexport function error(msg: string) {\n  throw new Error(msg);\n}\n\n/** Convert `<`, `>`, `&`, `\"`, `'`, and `/` to the equivalent entities. */\nexport function escapeHtml(s: string): string {\n  return (\"\" + s).replace(REX_HTML, function (s) {\n    return ENTITY_MAP[s];\n  });\n}\n\n// export function escapeRegExp(s: string) {\n//   return s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\n// }\n\n/**Convert a regular expression string by escaping special characters (e.g. `\"$\"` -> `\"\\$\"`) */\nexport function escapeRegex(s: string) {\n  return (\"\" + s).replace(/([.?*+^$[\\]\\\\(){}|-])/g, \"\\\\$1\");\n}\n\n/** Convert `<`, `>`, `\"`, `'`, and `/` (but not `&`) to the equivalent entities. */\nexport function escapeTooltip(s: string): string {\n  return (\"\" + s).replace(REX_TOOLTIP, function (s) {\n    return ENTITY_MAP[s];\n  });\n}\n\n/** TODO */\nexport function extractHtmlText(s: string) {\n  if (s.indexOf(\">\") >= 0) {\n    error(\"Not implemented\");\n    // return $(\"<div/>\").html(s).text();\n  }\n  return s;\n}\n\n/**\n * Read the value from an HTML input element.\n *\n * If a `<span class=\"wb-col\">` is passed, the first child input is used.\n * Depending on the target element type, `value` is interpreted accordingly.\n * For example for a checkbox, a value of true, false, or null is returned if\n * the element is checked, unchecked, or indeterminate.\n * For datetime input control a numerical value is assumed, etc.\n *\n * Common use case: store the new user input in a `change` event handler:\n *\n * ```ts\n *   change: (e) => {\n *     const tree = e.tree;\n *     const node = e.node;\n *     // Read the value from the input control that triggered the change event:\n *     let value = tree.getValueFromElem(e.element);\n *     // and store it to the node model (assuming the column id matches the property name)\n *     node.data[e.info.colId] = value;\n *   },\n * ```\n * @param elem `<input>` or `<select>` element. Also a parent `span.wb-col` is accepted.\n * @param coerce pass true to convert date/time inputs to `Date`.\n * @returns the value\n */\nexport function getValueFromElem(elem: HTMLElement, coerce = false): any {\n  const tag = elem.tagName;\n  let value = null;\n\n  if (tag === \"SPAN\" && elem.classList.contains(\"wb-col\")) {\n    const span = <HTMLSpanElement>elem;\n    const embeddedInput = span.querySelector<HTMLElement>(\"input,select\");\n\n    if (embeddedInput) {\n      return getValueFromElem(embeddedInput, coerce);\n    }\n    span.innerText = \"\" + value;\n  } else if (tag === \"INPUT\") {\n    const input = <HTMLInputElement>elem;\n    const type = input.type;\n\n    switch (type) {\n      case \"button\":\n      case \"reset\":\n      case \"submit\":\n      case \"image\":\n        break;\n      case \"checkbox\":\n        value = input.indeterminate ? null : input.checked;\n        break;\n      case \"date\":\n      case \"datetime\":\n      case \"datetime-local\":\n      case \"month\":\n      case \"time\":\n      case \"week\":\n        value = coerce ? input.valueAsDate : input.value;\n        break;\n      case \"number\":\n      case \"range\":\n        value = input.valueAsNumber;\n        break;\n      case \"radio\":\n        {\n          const name = input.name;\n          const checked = input.parentElement!.querySelector<HTMLInputElement>(\n            `input[name=\"${name}\"]:checked`\n          );\n          value = checked ? checked.value : undefined;\n        }\n        break;\n      case \"text\":\n      default:\n        value = input.value;\n    }\n  } else if (tag === \"SELECT\") {\n    const select = <HTMLSelectElement>elem;\n    value = select.value;\n  }\n  return value;\n}\n\n/**\n * Set the value of an HTML input element.\n *\n * If a `<span class=\"wb-col\">` is passed, the first child input is used.\n * Depending on the target element type, `value` is interpreted accordingly.\n * For example a checkbox is set to checked, unchecked, or indeterminate if the\n * value is truethy, falsy, or `null`.\n * For datetime input control a numerical value is assumed, etc.\n *\n * Common use case: update embedded input controls in a `render` event handler:\n *\n * ```ts\n *   render: (e) => {\n *     // e.node.log(e.type, e, e.node.data);\n *\n *     for (const col of Object.values(e.renderColInfosById)) {\n *       switch (col.id) {\n *         default:\n *           // Assumption: we named column.id === node.data.NAME\n *           util.setValueToElem(col.elem, e.node.data[col.id]);\n *           break;\n *       }\n *     }\n *   },\n * ```\n *\n * @param elem `<input>` or `<select>` element Also a parent `span.wb-col` is accepted.\n * @param value a value that matches the target element.\n */\nexport function setValueToElem(elem: HTMLElement, value: any): void {\n  const tag = elem.tagName;\n\n  if (tag === \"SPAN\" && elem.classList.contains(\"wb-col\")) {\n    const span = <HTMLSpanElement>elem;\n    const embeddedInput = span.querySelector(\"input,select\");\n\n    if (embeddedInput) {\n      return setValueToElem(<HTMLElement>embeddedInput, value);\n    }\n    // No embedded input: simply write as escaped html\n    span.innerText = \"\" + value;\n  } else if (tag === \"INPUT\") {\n    const input = <HTMLInputElement>elem;\n    const type = input.type;\n\n    switch (type) {\n      case \"checkbox\":\n        // An explicit `null` value is interpreted as 'indeterminate'.\n        // `undefined` is interpreted as 'unchecked'\n        input.indeterminate = value === null;\n        input.checked = !!value;\n        break;\n      case \"date\":\n      case \"month\":\n      case \"time\":\n      case \"week\":\n      case \"datetime\":\n      case \"datetime-local\":\n        input.valueAsDate = new Date(value);\n        break;\n      case \"number\":\n      case \"range\":\n        if (value == null) {\n          input.value = value;\n        } else {\n          input.valueAsNumber = value;\n        }\n        break;\n      case \"radio\":\n        error(`Not yet implemented: ${type}`);\n        // const name = input.name;\n        // const checked = input.parentElement!.querySelector(\n        //   `input[name=\"${name}\"]:checked`\n        // );\n        // value = checked ? (<HTMLInputElement>checked).value : undefined;\n        break;\n      case \"button\":\n      case \"reset\":\n      case \"submit\":\n      case \"image\":\n        break;\n      case \"text\":\n      default:\n        input.value = value ?? \"\";\n    }\n  } else if (tag === \"SELECT\") {\n    const select = <HTMLSelectElement>elem;\n    if (value == null) {\n      select.selectedIndex = -1;\n    } else {\n      select.value = value;\n    }\n  }\n}\n\n/** Show/hide element by setting the `display` style to 'none'. */\nexport function setElemDisplay(\n  elem: string | HTMLElement,\n  flag: boolean\n): void {\n  const style = (<HTMLElement>elemFromSelector(elem)).style;\n  if (flag) {\n    if (style.display === \"none\") {\n      style.display = \"\";\n    }\n  } else if (style.display === \"\") {\n    style.display = \"none\";\n  }\n}\n\n/** Create and return an unconnected `HTMLElement` from a HTML string. */\nexport function elemFromHtml<T = HTMLElement>(html: string): T {\n  const t = document.createElement(\"template\");\n  t.innerHTML = html.trim();\n  return t.content.firstElementChild as T;\n}\n\nconst _IGNORE_KEYS = new Set([\"Alt\", \"Control\", \"Meta\", \"Shift\"]);\n\n/** Return a HtmlElement from selector or cast an existing element. */\nexport function elemFromSelector<T = HTMLElement>(obj: string | T): T | null {\n  if (!obj) {\n    return null; //(null as unknown) as HTMLElement;\n  }\n  if (typeof obj === \"string\") {\n    return document.querySelector(obj) as T;\n  }\n  return obj as T;\n}\n\n/**\n * Return a canonical descriptive string for a keyboard or mouse event.\n *\n * The result also contains a prefix for modifiers if any, for example\n * `\"x\"`, `\"F2\"`, `\"Control+Home\"`, or `\"Shift+clickright\"`.\n * This is especially useful in `switch` statements, to make sure that modifier\n * keys are considered and handled correctly:\n * ```ts\n *   const eventName = util.eventToString(e);\n *   switch (eventName) {\n *     case \"+\":\n *     case \"Add\":\n *       ...\n *       break;\n *     case \"Enter\":\n *     case \"End\":\n *     case \"Control+End\":\n *     case \"Meta+ArrowDown\":\n *     case \"PageDown\":\n *       ...\n *       break;\n *   }\n * ```\n */\nexport function eventToString(event: Event): string {\n  const key = (<KeyboardEvent>event).key;\n  const et = event.type;\n  const s = [];\n\n  if ((<KeyboardEvent>event).altKey) {\n    s.push(\"Alt\");\n  }\n  if ((<KeyboardEvent>event).ctrlKey) {\n    s.push(\"Control\");\n  }\n  if ((<KeyboardEvent>event).metaKey) {\n    s.push(\"Meta\");\n  }\n  if ((<KeyboardEvent>event).shiftKey) {\n    s.push(\"Shift\");\n  }\n\n  if (et === \"click\" || et === \"dblclick\") {\n    s.push(MOUSE_BUTTONS[(<MouseEvent>event).button] + et);\n  } else if (et === \"wheel\") {\n    s.push(et);\n    // } else if (!IGNORE_KEYCODES[key]) {\n    //   s.push(\n    //     SPECIAL_KEYCODES[key] ||\n    //     String.fromCharCode(key).toLowerCase()\n    //   );\n  } else if (!_IGNORE_KEYS.has(key)) {\n    s.push(key);\n  }\n  return s.join(\"+\");\n}\n\n/**\n * Copy allproperties from one or more source objects to a target object.\n *\n * @returns the modified target object.\n */\n// TODO: use Object.assign()? --> https://stackoverflow.com/a/42740894\n// TODO: support deep merge --> https://stackoverflow.com/a/42740894\nexport function extend(...args: any[]) {\n  for (let i = 1; i < args.length; i++) {\n    const arg = args[i];\n    if (arg == null) {\n      continue;\n    }\n    for (const key in arg) {\n      if (Object.prototype.hasOwnProperty.call(arg, key)) {\n        args[0][key] = arg[key];\n      }\n    }\n  }\n  return args[0];\n}\n\n/** Return true if `obj` is of type `array`. */\nexport function isArray(obj: any) {\n  return Array.isArray(obj);\n}\n\n/** Return true if `obj` is of type `Object` and has no properties. */\nexport function isEmptyObject(obj: any) {\n  return Object.keys(obj).length === 0 && obj.constructor === Object;\n}\n\n/** Return true if `obj` is of type `function`. */\nexport function isFunction(obj: any) {\n  return typeof obj === \"function\";\n}\n\n/** Return true if `obj` is of type `Object`. */\nexport function isPlainObject(obj: any) {\n  return Object.prototype.toString.call(obj) === \"[object Object]\";\n}\n\n/** A dummy function that does nothing ('no operation'). */\nexport function noop(...args: any[]): any {}\n\n/**\n * Bind one or more event handlers directly to an [EventTarget](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget).\n *\n * @param rootTarget EventTarget or selector\n * @param eventNames\n * @param handler\n */\nexport function onEvent(\n  rootTarget: EventTarget | string,\n  eventNames: string,\n  handler: EventCallbackType\n): void;\n\n/**\n * Bind one or more event handlers using event delegation.\n *\n * E.g. handle all 'input' events for input and textarea elements of a given\n * form:\n * ```ts\n * onEvent(\"#form_1\", \"input\", \"input,textarea\", function (e: Event) {\n *   console.log(e.type, e.target);\n * });\n * ```\n *\n * @param rootTarget EventTarget or selector\n * @param eventNames\n * @param selector\n * @param handler\n */\nexport function onEvent(\n  rootTarget: EventTarget | string,\n  eventNames: string,\n  selector: string,\n  handler: EventCallbackType\n): void;\n\nexport function onEvent(\n  rootTarget: EventTarget | string,\n  eventNames: string,\n  selectorOrHandler: string | EventCallbackType,\n  handlerOrNone?: EventCallbackType\n): void {\n  let selector: string | null, handler: EventCallbackType;\n  rootTarget = elemFromSelector<EventTarget>(rootTarget)!;\n  // rootTarget = eventTargetFromSelector<EventTarget>(rootTarget)!;\n\n  if (handlerOrNone) {\n    selector = selectorOrHandler as string;\n    handler = handlerOrNone!;\n  } else {\n    selector = \"\";\n    handler = selectorOrHandler as EventCallbackType;\n  }\n\n  eventNames.split(\" \").forEach((evn) => {\n    (<EventTarget>rootTarget).addEventListener(evn, function (e) {\n      if (!selector) {\n        return handler!(e); // no event delegation\n      } else if (e.target) {\n        let elem = e.target as HTMLElement;\n        if (elem.matches(selector as string)) {\n          return handler!(e);\n        }\n        elem = elem.closest(selector) as HTMLElement;\n        if (elem) {\n          return handler(e);\n        }\n      }\n    });\n  });\n}\n\n/** Return a wrapped handler method, that provides `this._super` and `this._superApply`.\n *\n * ```ts\n  // Implement `opts.createNode` event to add the 'draggable' attribute\n  overrideMethod(ctx.options, \"createNode\", (event, data) => {\n    // Default processing if any\n    this._super.apply(this, event, data);\n    // Add 'draggable' attribute\n    data.node.span.draggable = true;\n  });\n  ```\n  */\nexport function overrideMethod(\n  instance: any,\n  methodName: string,\n  handler: FunctionType,\n  ctx?: any\n) {\n  let prevSuper: FunctionType, prevSuperApply: FunctionType;\n  const self = ctx || instance;\n  const prevFunc = instance[methodName];\n  const _super = (...args: any[]) => {\n    return prevFunc.apply(self, args);\n  };\n  const _superApply = (argsArray: any[]) => {\n    return prevFunc.apply(self, argsArray);\n  };\n\n  const wrapper = (...args: any[]) => {\n    try {\n      prevSuper = self._super;\n      prevSuperApply = self._superApply;\n      self._super = _super;\n      self._superApply = _superApply;\n      return handler.apply(self, args);\n    } finally {\n      self._super = prevSuper;\n      self._superApply = prevSuperApply;\n    }\n  };\n  instance[methodName] = wrapper;\n}\n\n/** Run function after ms milliseconds and return a promise that resolves when done. */\nexport function setTimeoutPromise<T = unknown>(\n  this: unknown,\n  callback: (...args: any[]) => T,\n  ms: number\n) {\n  return new Promise<T>((resolve, reject) => {\n    setTimeout(() => {\n      try {\n        resolve(callback.apply(this));\n      } catch (err) {\n        reject(err);\n      }\n    }, ms);\n  });\n}\n\n/**\n * Wait `ms` microseconds.\n *\n * Example:\n * ```js\n * await sleep(1000);\n * ```\n * @param ms duration\n * @returns\n */\nexport async function sleep(ms: number) {\n  return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n/**\n * Set or rotate checkbox status with support for tri-state.\n *\n * An initial 'indeterminate' state becomes 'checked' on the first call.\n *\n * If the input element has the class 'wb-tristate' assigned, the sequence is:<br>\n * 'indeterminate' -> 'checked' -> 'unchecked' -> 'indeterminate' -> ...<br>\n * Otherwise we toggle like <br>\n * 'checked' -> 'unchecked' -> 'checked' -> ...\n */\nexport function toggleCheckbox(\n  element: HTMLElement | string,\n  value?: boolean | null,\n  tristate?: boolean\n): void {\n  const input = elemFromSelector(element) as HTMLInputElement;\n  assert(input.type === \"checkbox\", `Expected a checkbox: ${input.type}`);\n  tristate ??= input.classList.contains(\"wb-tristate\") || input.indeterminate;\n\n  if (value === undefined) {\n    const curValue = input.indeterminate ? null : input.checked;\n    switch (curValue) {\n      case true:\n        value = false;\n        break;\n      case false:\n        value = tristate ? null : true;\n        break;\n      case null:\n        value = true;\n        break;\n    }\n  }\n  input.indeterminate = value == null;\n  input.checked = !!value;\n}\n\n/**\n * Return `opts.NAME` if opts is valid and\n *\n * @param opts dict, object, or null\n * @param name option name (use dot notation to access extension option, e.g. `filter.mode`)\n * @param defaultValue returned when `opts` is not an object, or does not have a NAME property\n */\nexport function getOption(\n  opts: any,\n  name: string,\n  defaultValue: any = undefined\n): any {\n  let ext;\n\n  // Lookup `name` in options dict\n  if (opts && name.indexOf(\".\") >= 0) {\n    [ext, name] = name.split(\".\");\n    opts = opts[ext];\n  }\n  const value = opts ? opts[name] : null;\n  // Use value from value options dict, fallback do default\n  return value ?? defaultValue;\n}\n\n/** Return the next value from a list of values (rotating). @since 0.11 */\nexport function rotate(value: any, values: any[]): any {\n  const idx = values.indexOf(value);\n  return values[(idx + 1) % values.length];\n}\n\n/** Convert an Array or space-separated string to a Set. */\nexport function toSet(val: any): Set<string> {\n  if (val instanceof Set) {\n    return val;\n  }\n  if (typeof val === \"string\") {\n    const set = new Set<string>();\n    for (const c of val.split(\" \")) {\n      set.add(c.trim());\n    }\n    return set;\n  }\n  if (Array.isArray(val)) {\n    return new Set<string>(val);\n  }\n  throw new Error(\"Cannot convert to Set<string>: \" + val);\n}\n\n/** Convert a pixel string to number.\n * We accept a number or a string like '123px'. If undefined, the first default\n * value that is a number or a string ending with 'px' is returned.\n *\n * Example:\n * ```js\n * let x = undefined;\n * let y = \"123px\";\n * const width = util.toPixel(x, y, 100);  // returns 123\n * ```\n */\nexport function toPixel(\n  ...defaults: (string | number | undefined | null)[]\n): number {\n  for (const d of defaults) {\n    if (typeof d === \"number\") {\n      return d;\n    }\n    if (typeof d === \"string\" && d.endsWith(\"px\")) {\n      return parseInt(d, 10);\n    }\n    assert(d == null, `Expected a number or string like '123px': ${d}`);\n  }\n  throw new Error(`Expected a string like '123px': ${defaults}`);\n}\n\n/** Cast any value to <T>. */\nexport function unsafeCast<T>(value: any): T {\n  return value as T;\n}\n\n/** Return the the boolean value of the first non-null element.\n * Example:\n * ```js\n * const opts = { flag: true };\n * const value = util.toBool(opts.foo, opts.flag, false);  // returns true\n * ```\n */\nexport function toBool(\n  ...boolDefaults: (boolean | undefined | null)[]\n): boolean {\n  for (const d of boolDefaults) {\n    if (d != null) {\n      return !!d;\n    }\n  }\n  throw new Error(\"No default boolean value provided\");\n}\n\n/**\n * Return `val` unless `val` is a number in which case we convert to boolean.\n * This is useful when a boolean value is stored as a 0/1 (e.g. in JSON) and\n * we still want to maintain string values. null and undefined are returned as\n * is. E.g. `checkbox` may be boolean or 'radio'.\n */\nexport function intToBool(\n  val: boolean | number | string | undefined\n): boolean | string | undefined {\n  return typeof val === \"number\" ? !!val : val;\n}\n\n// /** Check if a string is contained in an Array or Set. */\n// export function isAnyOf(s: string, items: Array<string>|Set<string>): boolean {\n//   return Array.prototype.includes.call(items, s)\n// }\n\n// /** Check if an Array or Set has at least one matching entry. */\n// export function hasAnyOf(container: Array<string>|Set<string>, items: Array<string>): boolean {\n//   if (Array.isArray(container)) {\n//     return container.some(v => )\n//   }\n//   return container.some(v => {})\n//   // const container = toSet(items);\n//   // const itemSet = toSet(items);\n//   // Array.prototype.includes\n//   // throw new Error(\"Cannot convert to Set<string>: \" + val);\n// }\n\n/** Return a canonical string representation for an object's type (e.g. 'array', 'number', ...). */\nexport function type(obj: any): string {\n  return Object.prototype.toString\n    .call(obj)\n    .replace(/^\\[object (.+)\\]$/, \"$1\")\n    .toLowerCase();\n}\n\n/**\n * Return a function that can be called instead of `callback`, but guarantees\n * a limited execution rate.\n * The execution rate is calculated based on the runtime duration of the\n * previous call.\n * Example:\n * ```js\n * throttledFoo = util.adaptiveThrottle(foo.bind(this), {});\n * throttledFoo();\n * throttledFoo();\n * ```\n */\nexport function adaptiveThrottle(\n  this: unknown,\n  callback: (...args: any[]) => void,\n  options: object\n): DebouncedFunction<(...args: any[]) => void> {\n  const opts = Object.assign(\n    {\n      minDelay: 16,\n      defaultDelay: 200,\n      maxDelay: 5000,\n      delayFactor: 2.0,\n    },\n    options\n  );\n  const minDelay = Math.max(16, +opts.minDelay);\n  const maxDelay = +opts.maxDelay;\n\n  let waiting = 0; // Initially, we're not waiting\n  let pendingArgs: any[] | null = null;\n  let pendingTimer: number | null = null;\n\n  const throttledFn = (...args: any[]) => {\n    if (waiting) {\n      pendingArgs = args;\n      // console.log(`adaptiveThrottle() queueing request #${waiting}...`, args);\n      waiting += 1;\n    } else {\n      // Prevent invocations while running or blocking\n      waiting = 1;\n      const useArgs = args; // pendingArgs || args;\n      pendingArgs = null;\n\n      // console.log(`adaptiveThrottle() execute...`, useArgs);\n      const start = Date.now();\n      try {\n        callback.apply(this, useArgs);\n      } catch (error) {\n        console.error(error); // eslint-disable-line no-console\n      }\n      const elap = Date.now() - start;\n\n      const curDelay = Math.min(\n        Math.max(minDelay, elap * opts.delayFactor),\n        maxDelay\n      );\n      const useDelay = Math.max(minDelay, curDelay - elap);\n      // console.log(\n      //   `adaptiveThrottle() calling worker took ${elap}ms. delay = ${curDelay}ms, using ${useDelay}ms`,\n      //   pendingArgs\n      // );\n      pendingTimer = <number>(<unknown>setTimeout(() => {\n        // Unblock, and trigger pending requests if any\n        // const skipped = waiting - 1;\n        pendingTimer = null;\n        waiting = 0; // And allow future invocations\n        if (pendingArgs != null) {\n          // There was another request while running or waiting\n          // console.log(\n          //   `adaptiveThrottle() re-trigger (missed ${skipped})...`,\n          //   pendingArgs\n          // );\n          throttledFn.apply(this, pendingArgs);\n        }\n      }, useDelay));\n    }\n  };\n  throttledFn.cancel = () => {\n    if (pendingTimer) {\n      clearTimeout(pendingTimer);\n      pendingTimer = null;\n    }\n    pendingArgs = null;\n    waiting = 0;\n  };\n  throttledFn.pending = () => {\n    return !!pendingTimer;\n  };\n  throttledFn.flush = () => {\n    throw new Error(\"Not implemented\");\n  };\n  return throttledFn;\n}\n\n/**\n * MurmurHash3 implementation for strings.\n * @param key The input string to hash.\n * @param asString Optional convert result to zero-padded string of 8 characters.\n * @param seed Optional seed value.\n * @returns A 32-bit hash as a number or string.\n */\nexport function murmurHash3(\n  key: string,\n  asString = true,\n  seed: number = 0\n): number | string {\n  let h1 = seed;\n  const remainder = key.length & 3; // key.length % 4\n  const bytes = key.length - remainder;\n  const c1 = 0xcc9e2d51;\n  const c2 = 0x1b873593;\n\n  let i = 0;\n  while (i < bytes) {\n    let k1 =\n      (key.charCodeAt(i) & 0xff) |\n      ((key.charCodeAt(++i) & 0xff) << 8) |\n      ((key.charCodeAt(++i) & 0xff) << 16) |\n      ((key.charCodeAt(++i) & 0xff) << 24);\n    ++i;\n\n    k1 = Math.imul(k1, c1);\n    k1 = (k1 << 15) | (k1 >>> 17);\n    k1 = Math.imul(k1, c2);\n\n    h1 ^= k1;\n    h1 = (h1 << 13) | (h1 >>> 19);\n    h1 = Math.imul(h1, 5) + 0xe6546b64;\n  }\n\n  let k1 = 0;\n  switch (remainder) {\n    case 3:\n      k1 ^= (key.charCodeAt(i + 2) & 0xff) << 16;\n    // fall through\n    case 2:\n      k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8;\n    // fall through\n    case 1:\n      k1 ^= key.charCodeAt(i) & 0xff;\n      k1 = Math.imul(k1, c1);\n      k1 = (k1 << 15) | (k1 >>> 17);\n      k1 = Math.imul(k1, c2);\n      h1 ^= k1;\n  }\n\n  h1 ^= key.length;\n  h1 ^= h1 >>> 16;\n  h1 = Math.imul(h1, 0x85ebca6b);\n  h1 ^= h1 >>> 13;\n  h1 = Math.imul(h1, 0xc2b2ae35);\n  h1 ^= h1 >>> 16;\n\n  if (asString) {\n    // Convert to 8 digit hex string\n    return (h1 >>> 0).toString(16).padStart(8, \"0\");\n  }\n  return h1 >>> 0; // Convert to unsigned 32-bit integer\n}\n"
  },
  {
    "path": "src/wb_ext_dnd.ts",
    "content": "/*!\n * Wunderbaum - ext-dnd\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\nimport * as util from \"./util\";\nimport { EventCallbackType, onEvent } from \"./util\";\nimport { Wunderbaum } from \"./wunderbaum\";\nimport { WunderbaumExtension } from \"./wb_extension_base\";\nimport { WunderbaumNode } from \"./wb_node\";\nimport {\n  DndOptionsType,\n  DropEffectType,\n  DropRegionType,\n  DropRegionTypeSet,\n} from \"./types\";\nimport { DebouncedFunction, throttle } from \"./debounce\";\n\nconst nodeMimeType = \"application/x-wunderbaum-node\";\n\nexport class DndExtension extends WunderbaumExtension<DndOptionsType> {\n  // public dropMarkerElem?: HTMLElement;\n  protected srcNode: WunderbaumNode | null = null;\n  protected lastTargetNode: WunderbaumNode | null = null;\n  protected lastEnterStamp = 0;\n  protected lastAllowedDropRegions: DropRegionTypeSet | null = null;\n  protected lastDropEffect: DropEffectType | null = null;\n  protected lastDropRegion: DropRegionType | false = false;\n  protected currentScrollDir: number = 0;\n  // protected autoScrollThrottled: DebouncedFunction<(pageY: number) => number>;\n  protected applyScrollDirThrottled: DebouncedFunction<() => void>;\n\n  constructor(tree: Wunderbaum) {\n    super(tree, \"dnd\", {\n      autoExpandMS: 1500, // Expand nodes after n milliseconds of hovering\n      // dropMarkerInsertOffsetX: -16, // Additional offset for drop-marker with hitMode = \"before\"/\"after\"\n      // dropMarkerOffsetX: -24, // Absolute position offset for .fancytree-drop-marker relatively to ..fancytree-title (icon/img near a node accepting drop)\n      // #1021 `document.body` is not available yet\n      // dropMarkerParent: \"body\", // Root Container used for drop marker (could be a shadow root)\n      multiSource: false, // true: Drag multiple (i.e. selected) nodes. Also a callback() is allowed\n      effectAllowed: \"all\", // Restrict the possible cursor shapes and modifier operations (can also be set in the dragStart event)\n      dropEffectDefault: \"move\", // Default dropEffect ('copy', 'link', or 'move') when no modifier is pressed (override in drag, dragOver).\n      guessDropEffect: true, // Calculate from `effectAllowed` and modifier keys)\n      preventForeignNodes: false, // Prevent dropping nodes from different Wunderbaum trees\n      preventLazyParents: true, // Prevent dropping items on unloaded lazy Wunderbaum tree nodes\n      preventNonNodes: false, // Prevent dropping items other than Wunderbaum tree nodes\n      preventRecursion: true, // Prevent dropping nodes on own descendants\n      preventSameParent: false, // Prevent dropping nodes under same direct parent\n      preventVoidMoves: true, // Prevent dropping nodes 'before self', etc. (move only)\n      serializeClipboardData: true, // Serialize node data to dataTransfer object\n      scroll: true, // Enable auto-scrolling while dragging\n      scrollSensitivity: 20, // Active top/bottom margin in pixel\n      // scrollnterval: 50, // Generate event every 50 ms\n      scrollSpeed: 5, // Scroll pixel per 50 ms\n      // setTextTypeJson: false, // Allow dragging of nodes to different IE windows\n      sourceCopyHook: null, // Optional callback passed to `toDict` on dragStart @since 2.38\n      // Events (drag support)\n      dragStart: null, // Callback(sourceNode, data), return true, to enable dnd drag\n      drag: null, // Callback(sourceNode, data)\n      dragEnd: null, // Callback(sourceNode, data)\n      // Events (drop support)\n      dragEnter: null, // Callback(targetNode, data), return true, to enable dnd drop\n      dragOver: null, // Callback(targetNode, data)\n      dragExpand: null, // Callback(targetNode, data), return false to prevent autoExpand\n      drop: null, // Callback(targetNode, data)\n      dragLeave: null, // Callback(targetNode, data)\n    });\n    this.applyScrollDirThrottled = throttle(this._applyScrollDir, 50);\n  }\n\n  init() {\n    super.init();\n\n    // Store the current scroll parent, which may be the tree\n    // container, any enclosing div, or the document.\n    // #761: scrollParent() always needs a container child\n    // $temp = $(\"<span>\").appendTo(this.$container);\n    // this.$scrollParent = $temp.scrollParent();\n    // $temp.remove();\n    const tree = this.tree;\n    const dndOpts = tree.options.dnd;\n\n    // Enable drag support if dragStart() is specified:\n    if (dndOpts.dragStart) {\n      onEvent(\n        tree.element,\n        \"dragstart drag dragend\",\n        (<EventCallbackType>this.onDragEvent).bind(this)\n      );\n    }\n    // Enable drop support if dragEnter() is specified:\n    if (dndOpts.dragEnter) {\n      onEvent(\n        tree.element,\n        \"dragenter dragover dragleave drop\",\n        (<EventCallbackType>this.onDropEvent).bind(this)\n      );\n    }\n  }\n\n  /** Cleanup classes after target node is no longer hovered. */\n  protected _leaveNode(): void {\n    // We remove the marker on dragenter from the previous target:\n    const ltn = this.lastTargetNode;\n    this.lastEnterStamp = 0;\n    if (ltn) {\n      ltn.setClass(\n        \"wb-drop-target wb-drop-over wb-drop-after wb-drop-before\",\n        false\n      );\n      this.lastTargetNode = null;\n    }\n  }\n\n  /** */\n  protected unifyDragover(res: any): DropRegionTypeSet | false {\n    if (res === false) {\n      return false;\n    } else if (res instanceof Set) {\n      return res.size > 0 ? res : false;\n    } else if (res === true) {\n      return new Set<DropRegionType>([\"over\", \"before\", \"after\"]);\n    } else if (typeof res === \"string\" || util.isArray(res)) {\n      res = <DropRegionTypeSet>util.toSet(res);\n      return res.size > 0 ? res : false;\n    }\n    throw new Error(\"Unsupported drop region definition: \" + res);\n  }\n\n  /**\n   * Calculates the drop region based on the drag event and the allowed drop regions.\n   */\n  protected _calcDropRegion(\n    e: DragEvent,\n    allowed: DropRegionTypeSet | null\n  ): DropRegionType | false {\n    const rowHeight = this.tree.options.rowHeightPx;\n    const dy = e.offsetY;\n\n    if (!allowed) {\n      return false;\n    } else if (allowed.size === 3) {\n      return dy < 0.25 * rowHeight\n        ? \"before\"\n        : dy > 0.75 * rowHeight\n          ? \"after\"\n          : \"over\";\n    } else if (allowed.size === 1 && allowed.has(\"over\")) {\n      return \"over\";\n    } else {\n      // Only 'before' and 'after':\n      return dy > rowHeight / 2 ? \"after\" : \"before\";\n    }\n    // return \"over\";\n  }\n  /**\n   * Guess drop effect (copy/link/move) using opinionated conventions.\n   *\n   * Default: dnd.dropEffectDefault\n   */\n  protected _guessDropEffect(e: DragEvent): DropEffectType {\n    // const nativeDropEffect = e.dataTransfer?.dropEffect;\n\n    // if (nativeDropEffect && nativeDropEffect !== \"none\") {\n    //   return nativeDropEffect;\n    // }\n    const dndOpts: DndOptionsType = this.treeOpts.dnd;\n    const ea = dndOpts.effectAllowed ?? \"all\";\n    const canCopy = [\"all\", \"copy\", \"copyLink\", \"copyMove\"].includes(ea);\n    const canLink = [\"all\", \"link\", \"copyLink\", \"linkMove\"].includes(ea);\n    const canMove = [\"all\", \"move\", \"copyMove\", \"linkMove\"].includes(ea);\n\n    let res = dndOpts.dropEffectDefault!;\n\n    if (dndOpts.guessDropEffect) {\n      if (util.isMac) {\n        if (e.altKey && canCopy) {\n          res = \"copy\";\n        }\n        if (e.metaKey && canMove) {\n          res = \"move\"; // command key\n        }\n        if (e.altKey && e.metaKey && canLink) {\n          res = \"link\";\n        }\n      } else {\n        if (e.ctrlKey && canCopy) {\n          res = \"copy\";\n        }\n        if (e.shiftKey && canMove) {\n          res = \"move\";\n        }\n        if (e.altKey && canLink) {\n          res = \"link\";\n        }\n      }\n    }\n    return res;\n  }\n\n  /** Don't allow void operation ('drop on self').*/\n  protected _isVoidDrop(\n    targetNode: WunderbaumNode,\n    srcNode: WunderbaumNode | null,\n    dropRegion: DropRegionType | false\n  ): boolean {\n    // this.tree.logDebug(\n    //   `_isVoidDrop: ${srcNode} -> ${dropRegion} ${targetNode}`\n    // );\n    // TODO: should be checked on  move only\n    if (!this.treeOpts.dnd!.preventVoidMoves || !srcNode) {\n      return false;\n    }\n    if (\n      (dropRegion === \"before\" && targetNode === srcNode.getNextSibling()) ||\n      (dropRegion === \"after\" && targetNode === srcNode.getPrevSibling())\n    ) {\n      // this.tree.logDebug(\"Prevented before/after self\");\n      return true;\n    }\n    // Don't allow dropping nodes on own parent (or self)\n    return srcNode === targetNode || srcNode.parent === targetNode;\n  }\n\n  /* Implement auto scrolling when drag cursor is in top/bottom area of scroll parent. */\n  protected _applyScrollDir(): void {\n    if (this.isDragging() && this.currentScrollDir) {\n      const dndOpts = this.tree.options.dnd;\n      const sp = this.tree.element; // scroll parent\n      const scrollTop = sp.scrollTop;\n      if (this.currentScrollDir < 0) {\n        sp.scrollTop = Math.max(0, scrollTop - dndOpts.scrollSpeed!);\n      } else if (this.currentScrollDir > 0) {\n        sp.scrollTop = scrollTop + dndOpts.scrollSpeed!;\n      }\n    }\n  }\n  /* Implement auto scrolling when drag cursor is in top/bottom area of scroll parent. */\n  protected _autoScroll(viewportY: number): number {\n    const tree = this.tree;\n    const dndOpts = tree.options.dnd;\n    const sensitivity = dndOpts.scrollSensitivity;\n    const sp = tree.element; // scroll parent\n    const headerHeight = tree.headerElement.clientHeight; // May be 0\n    // const height = sp.clientHeight - headerHeight;\n    // const height = sp.offsetHeight + headerHeight;\n    const height = sp.offsetHeight;\n    const scrollTop = sp.scrollTop;\n\n    // tree.logDebug(\n    //   `autoScroll: height=${height}, scrollTop=${scrollTop}, viewportY=${viewportY}`\n    // );\n\n    this.currentScrollDir = 0;\n\n    if (\n      scrollTop > 0 &&\n      viewportY > 0 &&\n      viewportY <= sensitivity! + headerHeight\n    ) {\n      // Mouse in top 20px area: scroll up\n      // sp.scrollTop = Math.max(0, scrollTop - dndOpts.scrollSpeed);\n      this.currentScrollDir = -1;\n    } else if (\n      scrollTop < sp.scrollHeight - height &&\n      viewportY >= height - sensitivity!\n    ) {\n      // Mouse in bottom 20px area: scroll down\n      // sp.scrollTop = scrollTop + dndOpts.scrollSpeed;\n      this.currentScrollDir = +1;\n    }\n    if (this.currentScrollDir) {\n      this.applyScrollDirThrottled();\n    }\n    return sp.scrollTop - scrollTop;\n  }\n\n  /** Return true if a drag operation currently in progress. */\n  isDragging(): boolean {\n    return !!this.srcNode;\n  }\n\n  /**\n   * Handle dragstart, drag and dragend events for the source node.\n   */\n  protected onDragEvent(e: DragEvent) {\n    const dndOpts: DndOptionsType = this.treeOpts.dnd;\n    const srcNode = Wunderbaum.getNode(e);\n\n    if (!srcNode) {\n      this.tree.logWarn(`onDragEvent.${e.type}: no node`);\n      return;\n    }\n    if ([\"dragstart\", \"dragend\"].includes(e.type)) {\n      this.tree.logDebug(`onDragEvent.${e.type} srcNode: ${srcNode}`, e);\n    }\n\n    // --- dragstart ---\n    if (e.type === \"dragstart\") {\n      // Set a default definition of allowed effects\n      e.dataTransfer!.effectAllowed = dndOpts.effectAllowed!; //\"copyMove\"; // \"all\";\n      if (srcNode.isEditingTitle()) {\n        srcNode.logDebug(\"Prevented dragging node in edit mode.\");\n        e.preventDefault();\n        return false;\n      }\n      // Let user cancel the drag operation, override effectAllowed, etc.:\n      const res = srcNode._callEvent(\"dnd.dragStart\", { event: e });\n      if (!res) {\n        e.preventDefault();\n        return false;\n      }\n      const nodeData = srcNode.toDict(true, (n: any) => {\n        // We don't want to reuse the key on drop:\n        n._orgKey = n.key;\n        delete n.key;\n      });\n      nodeData._treeId = srcNode.tree.id;\n\n      if (dndOpts.serializeClipboardData) {\n        if (typeof dndOpts.serializeClipboardData === \"function\") {\n          e.dataTransfer!.setData(\n            nodeMimeType,\n            dndOpts.serializeClipboardData(nodeData, srcNode)\n          );\n        } else {\n          e.dataTransfer!.setData(nodeMimeType, JSON.stringify(nodeData));\n        }\n      }\n      // e.dataTransfer!.setData(\"text/html\", $(node.span).html());\n      if (!e.dataTransfer?.types.includes(\"text/plain\")) {\n        e.dataTransfer!.setData(\"text/plain\", srcNode.title);\n      }\n      this.srcNode = srcNode;\n      setTimeout(() => {\n        // Decouple this call, so the CSS is applied to the node, but not to\n        // the system generated drag image\n        srcNode.setClass(\"wb-drag-source\");\n      }, 0);\n\n      // --- drag ---\n    } else if (e.type === \"drag\") {\n      if (dndOpts.drag) {\n        srcNode._callEvent(\"dnd.drag\", { event: e });\n      }\n      // --- dragend ---\n    } else if (e.type === \"dragend\") {\n      srcNode.setClass(\"wb-drag-source\", false);\n      this.srcNode = null;\n      if (this.lastTargetNode) {\n        this._leaveNode();\n      }\n      srcNode._callEvent(\"dnd.dragEnd\", { event: e });\n    }\n    return true;\n  }\n\n  /**\n   * Handle dragenter, dragover, dragleave, drop events.\n   */\n  protected onDropEvent(e: DragEvent) {\n    // const isLink = event.dataTransfer.types.includes(\"text/uri-list\");\n    const srcNode = this.srcNode;\n    const srcTree = srcNode ? srcNode.tree : null;\n    const targetNode = Wunderbaum.getNode(e)!;\n    const dndOpts: DndOptionsType = this.treeOpts.dnd;\n    const dt = e.dataTransfer!;\n    const dropRegion = this._calcDropRegion(e, this.lastAllowedDropRegions);\n\n    /** Helper to log a message if predicate is false. */\n    const _t = (pred: any, msg: string) => {\n      if (pred) {\n        this.tree.log(`Prevented drop operation (${msg}).`);\n      }\n      return pred;\n    };\n    if (!targetNode) {\n      this._leaveNode();\n      e.preventDefault(); // Don't open file in browser when dropped in empty area\n      return;\n    }\n    if ([\"drop\"].includes(e.type)) {\n      this.tree.logDebug(\n        `onDropEvent.${e.type} targetNode: ${targetNode}, ea: ${dt?.effectAllowed}, ` +\n          `de: ${dt?.dropEffect}, cy: ${e.offsetY}, r: ${dropRegion}, srcNode: ${srcNode}`,\n        e\n      );\n    }\n\n    // --- dragenter ---\n    if (e.type === \"dragenter\") {\n      // this.tree.logWarn(` onDropEvent.${e.type} targetNode: ${targetNode}`, e);\n      this.lastAllowedDropRegions = null;\n      // `dragleave` is not reliable with event delegation, so we generate it\n      // from dragenter:\n      if (this.lastTargetNode && this.lastTargetNode !== targetNode) {\n        this._leaveNode();\n      }\n      this.lastTargetNode = targetNode;\n      this.lastEnterStamp = Date.now();\n\n      if (\n        // Don't drop on status node:\n        _t(targetNode.isStatusNode(), \"is status node\") ||\n        // Prevent dropping nodes from different Wunderbaum trees:\n        _t(\n          dndOpts.preventForeignNodes && targetNode.tree !== srcTree,\n          \"preventForeignNodes\"\n        ) ||\n        // Prevent dropping items on unloaded lazy Wunderbaum tree nodes:\n        _t(\n          dndOpts.preventLazyParents && !targetNode.isLoaded(),\n          \"preventLazyParents\"\n        ) ||\n        // Prevent dropping items other than Wunderbaum tree nodes:\n        _t(dndOpts.preventNonNodes && !srcNode, \"preventNonNodes\") ||\n        // Prevent dropping nodes on own descendants:\n        _t(\n          dndOpts.preventRecursion && srcNode?.isAncestorOf(targetNode),\n          \"preventRecursion\"\n        ) ||\n        // Prevent dropping nodes under same direct parent:\n        _t(\n          dndOpts.preventSameParent &&\n            srcNode &&\n            targetNode.parent === srcNode.parent,\n          \"preventSameParent\"\n        ) ||\n        // Don't allow void operation ('drop on self'): TODO: should be checked on  move only\n        _t(\n          dndOpts.preventVoidMoves && targetNode === srcNode,\n          \"preventVoidMoves\"\n        )\n      ) {\n        dt.dropEffect = \"none\";\n        // this.tree.log(\"Prevented drop operation\");\n        return true; // Prevent drop operation\n      }\n\n      // User may return a set of regions (or `false` to prevent drop)\n      // Figure out a drop effect (copy/link/move) using opinated conventions.\n      dt.dropEffect = this._guessDropEffect(e) || \"none\";\n      let regionSet = targetNode._callEvent(\"dnd.dragEnter\", {\n        event: e,\n        sourceNode: srcNode,\n      });\n      //\n      regionSet = this.unifyDragover(regionSet);\n      if (!regionSet) {\n        dt.dropEffect = \"none\";\n        return true; // Prevent drop operation\n      }\n      this.lastAllowedDropRegions = regionSet;\n      this.lastDropEffect = dt.dropEffect;\n\n      const region = this._calcDropRegion(e, this.lastAllowedDropRegions);\n      targetNode.setClass(\"wb-drop-target\");\n      targetNode.setClass(\"wb-drop-over\", region === \"over\");\n      targetNode.setClass(\"wb-drop-before\", region === \"before\");\n      targetNode.setClass(\"wb-drop-after\", region === \"after\");\n\n      e.preventDefault(); // Allow drop (Drop operation is denied by default)\n      return false;\n\n      // --- dragover ---\n    } else if (e.type === \"dragover\") {\n      const viewportY = e.clientY - this.tree.element.offsetTop;\n      this._autoScroll(viewportY);\n\n      dt.dropEffect = this._guessDropEffect(e) || \"none\";\n\n      targetNode._callEvent(\"dnd.dragOver\", { event: e, sourceNode: srcNode });\n\n      const region = this._calcDropRegion(e, this.lastAllowedDropRegions);\n\n      this.lastDropRegion = region;\n      this.lastDropEffect = dt.dropEffect;\n\n      if (\n        dndOpts.autoExpandMS! > 0 &&\n        targetNode.isExpandable(true) &&\n        !targetNode._isLoading &&\n        Date.now() - this.lastEnterStamp > dndOpts.autoExpandMS! &&\n        targetNode._callEvent(\"dnd.dragExpand\", {\n          event: e,\n          sourceNode: srcNode,\n        }) !== false\n      ) {\n        targetNode.setExpanded();\n      }\n\n      if (!region || this._isVoidDrop(targetNode, srcNode, region)) {\n        return; // We already rejected in dragenter\n      }\n      targetNode.setClass(\"wb-drop-over\", region === \"over\");\n      targetNode.setClass(\"wb-drop-before\", region === \"before\");\n      targetNode.setClass(\"wb-drop-after\", region === \"after\");\n\n      e.preventDefault(); // Allow drop (Drop operation is denied by default)\n      return false;\n\n      // --- dragleave ---\n    } else if (e.type === \"dragleave\") {\n      // NOTE: we cannot trust this event, since it is always fired,\n      // Instead we remove the marker on dragenter\n      targetNode._callEvent(\"dnd.dragLeave\", { event: e, sourceNode: srcNode });\n\n      // --- drop ---\n    } else if (e.type === \"drop\") {\n      e.stopPropagation(); // prevent browser from opening links?\n      e.preventDefault(); // #69 prevent iOS browser from opening links\n\n      this._leaveNode();\n\n      const region = this.lastDropRegion;\n      let nodeData = e.dataTransfer?.getData(nodeMimeType);\n      nodeData = nodeData ? JSON.parse(nodeData) : null;\n      const srcNode = this.srcNode;\n      const lastDropEffect = this.lastDropEffect;\n\n      /* Before v0.14.0, we decoupled `_callEvent` like so:\n           Decouple this call, because drop actions may prevent the dragend\n           event from being fired on some browsers.\n           setTimeout(() => {...}, 10);\n        however this made e.dataTransfer.items inaccessible */\n      targetNode._callEvent(\"dnd.drop\", {\n        event: e,\n        region: region,\n        suggestedDropMode: region === \"over\" ? \"appendChild\" : region,\n        suggestedDropEffect: lastDropEffect,\n        sourceNode: srcNode,\n        sourceNodeData: nodeData,\n        dataTransfer: e.dataTransfer,\n      });\n    }\n    return false;\n  }\n}\n"
  },
  {
    "path": "src/wb_ext_edit.ts",
    "content": "/*!\n * Wunderbaum - ext-edit\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n\nimport { Wunderbaum } from \"./wunderbaum\";\nimport { WunderbaumExtension } from \"./wb_extension_base\";\nimport {\n  assert,\n  escapeHtml,\n  eventToString,\n  getValueFromElem,\n  isMac,\n  isPlainObject,\n  onEvent,\n  ValidationError,\n} from \"./util\";\nimport { debounce } from \"./debounce\";\nimport { WunderbaumNode } from \"./wb_node\";\nimport { EditOptionsType, InsertNodeType, WbNodeData } from \"./types\";\n\n// const START_MARKER = \"\\uFFF7\";\n\nexport class EditExtension extends WunderbaumExtension<EditOptionsType> {\n  protected debouncedOnChange: (e: Event) => void;\n  protected curEditNode: WunderbaumNode | null = null;\n  protected relatedNode: WunderbaumNode | null = null;\n\n  constructor(tree: Wunderbaum) {\n    super(tree, \"edit\", {\n      debounce: 100,\n      minlength: 1,\n      maxlength: null,\n      trigger: [], //[\"clickActive\", \"F2\", \"macEnter\"],\n      trim: true,\n      select: true,\n      slowClickDelay: 1000, // Handle 'clickActive' only if last click is less than this old (0: always)\n      validity: true, //\"Please enter a title\",\n      // --- Events ---\n      // (note: there is also the `tree.change` event.)\n      beforeEdit: null,\n      edit: null,\n      apply: null,\n    });\n\n    this.debouncedOnChange = debounce(\n      this._onChange.bind(this),\n      this.getPluginOption(\"debounce\")\n    );\n  }\n\n  /*\n   * Call an event handler, while marking the current node cell 'busy'.\n   * Deal with returned promises and ValidationError.\n   * Convert a ValidationError into a input.setCustomValidity() call and vice versa.\n   */\n  protected async _applyChange(\n    eventName: string,\n    node: WunderbaumNode,\n    colElem: HTMLElement,\n    inputElem: HTMLInputElement,\n    extra: any\n  ): Promise<any> {\n    node.log(`_applyChange(${eventName})`, extra);\n\n    colElem.classList.add(\"wb-busy\");\n    colElem.classList.remove(\"wb-error\", \"wb-invalid\");\n\n    inputElem.setCustomValidity(\"\");\n\n    // Call event handler either ('change' or 'edit.appy'), which may return a\n    // promise or a scalar value or throw a ValidationError.\n    return new Promise((resolve, reject) => {\n      const res = node._callEvent(eventName, extra);\n      // normalize to promise, even if a scalar value was returned and await it\n      Promise.resolve(res)\n        .then((res) => {\n          resolve(res);\n        })\n        .catch((err) => {\n          reject(err);\n        });\n    })\n      .then((res) => {\n        if (!inputElem.checkValidity()) {\n          // Native validation failed or handler called 'inputElem.setCustomValidity()'\n          node.logWarn(\"inputElem.checkValidity() failed: throwing....\");\n          throw new ValidationError(inputElem.validationMessage);\n        }\n        return res;\n      })\n      .catch((err) => {\n        if (err instanceof ValidationError) {\n          node.logWarn(\"catched \", err);\n          colElem.classList.add(\"wb-invalid\");\n          if (inputElem.setCustomValidity && !inputElem.validationMessage) {\n            inputElem.setCustomValidity(err.message);\n          }\n          if (inputElem.validationMessage) {\n            inputElem.reportValidity();\n          }\n          // throw err;\n        } else {\n          node.logError(\n            `Error in ${eventName} event handler (throw e.util.ValidationError instead if this was intended)`,\n            err\n          );\n          colElem.classList.add(\"wb-error\");\n          throw err;\n        }\n      })\n      .finally(() => {\n        colElem.classList.remove(\"wb-busy\");\n      });\n  }\n\n  /*\n   * Called for when a control that is embedded in a cell fires a `change` event.\n   */\n  protected _onChange(e: Event) {\n    const info = Wunderbaum.getEventInfo(e);\n    const node = info.node!;\n    const colElem = <HTMLElement>info.colElem!;\n    if (!node || info.colIdx === 0) {\n      this.tree.log(\"Ignored change event for removed element or node title\");\n      return;\n    }\n    // See also WbChangeEventType\n    this._applyChange(\"change\", node, colElem, e.target as HTMLInputElement, {\n      info: info,\n      event: e,\n      inputElem: e.target,\n      inputValue: Wunderbaum.util.getValueFromElem(e.target as HTMLElement),\n      inputValid: (e.target as HTMLInputElement).checkValidity(),\n    });\n  }\n\n  init() {\n    super.init();\n\n    onEvent(\n      this.tree.element,\n      \"change\", //\"change input\",\n      \".contenteditable,input,textarea,select\",\n      // #61: we must not debounce the `change`, event.target may be reset to null\n      // when the debounced handler is called.\n      // (e) => {\n      //   this.debouncedOnChange(e);\n      // }\n      (e) => this._onChange(e)\n    );\n  }\n\n  /* Called by ext_keynav to pre-process input. */\n  _preprocessKeyEvent(data: any): boolean | undefined {\n    const event = data.event;\n    const eventName = eventToString(event);\n    const tree = this.tree;\n    const trigger = this.getPluginOption(\"trigger\");\n    // const inputElem =\n    //   event.target && event.target.closest(\"input,[contenteditable]\");\n\n    // tree.logDebug(`_preprocessKeyEvent: ${eventName}, editing:${this.isEditingTitle()}`);\n\n    // --- Title editing: apply/discard ---\n    // if (inputElem) {\n    if (this.isEditingTitle()) {\n      switch (eventName) {\n        case \"Enter\":\n          this._stopEditTitle(true, { event: event });\n          return false;\n        case \"Escape\":\n          this._stopEditTitle(false, { event: event });\n          return false;\n      }\n      // If the event target is an input element or `contenteditable=\"true\"`,\n      // we ignore it as navigation command\n      return false;\n    }\n    // --- Trigger title editing\n    if (tree.isRowNav() || tree.activeColIdx === 0) {\n      switch (eventName) {\n        case \"Enter\":\n          if (trigger.indexOf(\"macEnter\") >= 0 && isMac) {\n            this.startEditTitle();\n            return false;\n          }\n          break;\n        case \"F2\":\n          if (trigger.indexOf(\"F2\") >= 0) {\n            this.startEditTitle();\n            return false;\n          }\n          break;\n      }\n      return true;\n    }\n    return true;\n  }\n\n  /** Return true if a title is currently being edited. */\n  isEditingTitle(node?: WunderbaumNode): boolean {\n    return node ? this.curEditNode === node : !!this.curEditNode;\n  }\n\n  /** Start renaming, i.e. replace the title with an embedded `<input>`. */\n  startEditTitle(node?: WunderbaumNode | null) {\n    node = node ?? this.tree.getActiveNode();\n    const validity = this.getPluginOption(\"validity\");\n    const select = this.getPluginOption(\"select\");\n\n    if (!node) {\n      return;\n    }\n    if (node.isStatusNode()) {\n      node.logWarn(\"Cannot edit status node.\");\n      return;\n    }\n    this.tree.logDebug(`startEditTitle(node=${node})`);\n    let inputHtml = node._callEvent(\"edit.beforeEdit\");\n    if (inputHtml === false) {\n      node.logDebug(\"beforeEdit canceled operation.\");\n      return;\n    }\n    // `beforeEdit(e)` may return an input HTML string. Otherwise use a default\n    // (we also treat a `true` return value as 'use default'):\n    if (inputHtml === true || !inputHtml) {\n      const title = escapeHtml(node.title);\n      let opt = this.getPluginOption(\"maxlength\");\n      const maxlength = opt ? ` maxlength=\"${opt}\"` : \"\";\n      opt = this.getPluginOption(\"minlength\");\n      const minlength = opt ? ` minlength=\"${opt}\"` : \"\";\n      const required = opt > 0 ? \" required\" : \"\";\n      inputHtml =\n        `<input type=text class=\"wb-input-edit\" tabindex=-1 value=\"${title}\" ` +\n        `autocorrect=\"off\"${required}${minlength}${maxlength} >`;\n    }\n    const titleSpan = node\n      .getColElem(0)!\n      .querySelector(\".wb-title\") as HTMLSpanElement;\n\n    titleSpan.innerHTML = inputHtml;\n    const inputElem = titleSpan.firstElementChild as HTMLInputElement;\n    if (validity) {\n      // Permanently apply input validations (CSS and tooltip)\n      inputElem.addEventListener(\"keydown\", (e) => {\n        inputElem.setCustomValidity(\"\");\n        if (!inputElem.reportValidity()) {\n          node!.logWarn(`Invalid input: '${inputElem.value}'`);\n        }\n      });\n    }\n    inputElem.focus();\n    if (select) {\n      inputElem.select();\n    }\n\n    this.curEditNode = node;\n    node._callEvent(\"edit.edit\", {\n      inputElem: inputElem,\n    });\n  }\n  /**\n   *\n   * @param apply\n   * @returns\n   */\n  stopEditTitle(apply: boolean) {\n    return this._stopEditTitle(apply, {});\n  }\n  /*\n   *\n   * @param apply\n   * @param opts.canKeepOpen\n   */\n  _stopEditTitle(apply: boolean, options: any) {\n    options ??= {};\n    const focusElem = document.activeElement as HTMLInputElement;\n    let newValue = focusElem ? getValueFromElem(focusElem) : null;\n    const node = this.curEditNode;\n    const forceClose = !!options.forceClose;\n    const validity = this.getPluginOption(\"validity\");\n\n    if (newValue && this.getPluginOption(\"trim\")) {\n      newValue = newValue.trim();\n    }\n    if (!node) {\n      // this.tree.logDebug(\"stopEditTitle: not in edit mode.\");\n      return;\n    }\n    node.logDebug(`stopEditTitle(${apply})`, options, focusElem, newValue);\n\n    if (apply && newValue !== null && newValue !== node.title) {\n      const errMsg = focusElem.validationMessage;\n      if (errMsg) {\n        // input element's native validation failed\n        throw new Error(\n          `Input validation failed for \"${newValue}\": ${errMsg}.`\n        );\n      }\n\n      const colElem = node.getColElem(0)!;\n\n      this._applyChange(\"edit.apply\", node, colElem, focusElem, {\n        oldValue: node.title,\n        newValue: newValue,\n        inputElem: focusElem,\n        inputValid: focusElem.checkValidity(),\n      }).then((value) => {\n        const errMsg = focusElem.validationMessage;\n        if (validity && errMsg && value !== false) {\n          // Handler called 'inputElem.setCustomValidity()' to signal error\n          throw new Error(\n            `Edit apply validation failed for \"${newValue}\": ${errMsg}.`\n          );\n        }\n        // Discard the embedded `<input>`\n        // node.logDebug(\"applyChange:\", value, forceClose)\n        if (!forceClose && value === false) {\n          // Keep open\n          return;\n        }\n        node?.setTitle(newValue);\n        // NOTE: At least on Safari, this render call triggers a scroll event\n        // probably because the focused input is replaced.\n        this.curEditNode?._render({ preventScroll: true });\n        this.curEditNode = null;\n        this.relatedNode = null;\n        this.tree.setFocus(); // restore focus that was in the input element\n      });\n      // .catch((err) => {\n      //   node.logError(err);\n      // });\n      // Trigger 'change' event for embedded `<input>`\n      // focusElem.blur();\n    } else {\n      // Discard the embedded `<input>`\n      // NOTE: At least on Safari, this render call triggers a scroll event\n      // probably because the focused input is replaced.\n      this.curEditNode?._render({ preventScroll: true });\n      this.curEditNode = null;\n      this.relatedNode = null;\n      // We discarded the <input>, so we have to acquire keyboard focus again\n      this.tree.setFocus();\n    }\n  }\n  /**\n   * Create a new child or sibling node and start edit mode.\n   */\n  createNode(\n    mode: InsertNodeType = \"after\",\n    node?: WunderbaumNode | null,\n    init?: string | WbNodeData\n  ) {\n    const tree = this.tree;\n    node = node ?? (tree.getActiveNode() as WunderbaumNode);\n    assert(node, \"No node was passed, or no node is currently active.\");\n    // const validity = this.getPluginOption(\"validity\");\n\n    mode = mode || \"prependChild\";\n    if (init == null) {\n      init = { title: \"\" };\n    } else if (typeof init === \"string\") {\n      init = { title: init };\n    } else {\n      assert(isPlainObject(init), `Expected a plain object: ${init}`);\n    }\n    // Make sure node is expanded (and loaded) in 'child' mode\n    if (\n      (mode === \"prependChild\" || mode === \"appendChild\") &&\n      node?.isExpandable(true)\n    ) {\n      node.setExpanded().then(() => {\n        this.createNode(mode, node, init);\n      });\n      return;\n    }\n    const newNode = node.addNode(init, mode);\n    newNode.setClass(\"wb-edit-new\");\n    this.relatedNode = node;\n\n    // Don't filter new nodes:\n    newNode.match = -1;\n\n    newNode.makeVisible({ noAnimation: true }).then(() => {\n      this.startEditTitle(newNode);\n    });\n  }\n}\n"
  },
  {
    "path": "src/wb_ext_filter.ts",
    "content": "/*!\n * Wunderbaum - ext-filter\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n\nimport {\n  assert,\n  elemFromSelector,\n  escapeHtml,\n  escapeRegex,\n  extend,\n  onEvent,\n} from \"./util\";\nimport {\n  FilterConnectType,\n  FilterNodesOptions,\n  FilterOptionsType,\n  NodeFilterCallback,\n  NodeStatusType,\n} from \"./types\";\nimport { Wunderbaum } from \"./wunderbaum\";\nimport { WunderbaumNode } from \"./wb_node\";\nimport { WunderbaumExtension } from \"./wb_extension_base\";\nimport { debounce } from \"./debounce\";\n\nconst START_MARKER = \"\\uFFF7\";\nconst END_MARKER = \"\\uFFF8\";\nconst RE_START_MARKER = new RegExp(escapeRegex(START_MARKER), \"g\");\nconst RE_END_MARTKER = new RegExp(escapeRegex(END_MARKER), \"g\");\n\nexport class FilterExtension extends WunderbaumExtension<FilterOptionsType> {\n  public queryInput: HTMLInputElement | null = null;\n  public prevButton: HTMLElement | HTMLAnchorElement | null = null;\n  public nextButton: HTMLElement | HTMLAnchorElement | null = null;\n  public modeButton: HTMLButtonElement | null = null;\n  public matchInfoElem: HTMLElement | null = null;\n  public lastFilterArgs: IArguments | null = null;\n\n  constructor(tree: Wunderbaum) {\n    super(tree, \"filter\", {\n      autoApply: true, // Re-apply last filter if lazy data is loaded\n      autoExpand: false, // Expand all branches that contain matches while filtered\n      matchBranch: false, // Whether to implicitly match all children of matched nodes\n      connect: null, // Element or selector of an input control for filter query strings\n      fuzzy: false, // Match single characters in order, e.g. 'fb' will match 'FooBar'\n      hideExpanders: false, // Hide expanders if all child nodes are hidden by filter\n      highlight: true, // Highlight matches by wrapping inside <mark> tags\n      leavesOnly: false, // Match end nodes only\n      mode: \"dim\", // Grayout unmatched nodes (pass \"hide\" to remove unmatched node instead)\n      noData: true, // Display a 'no data' status node if result is empty\n    });\n  }\n\n  init() {\n    super.init();\n    const connect: FilterConnectType = this.getPluginOption(\"connect\");\n    if (connect) {\n      this._connectControls();\n    }\n  }\n\n  setPluginOption(name: string, value: any): void {\n    super.setPluginOption(name, value);\n    switch (name) {\n      case \"mode\":\n        this.tree.filterMode =\n          value === \"hide\" ? \"hide\" : value === \"mark\" ? \"mark\" : \"dim\";\n        this.tree.updateFilter();\n        break;\n    }\n  }\n\n  _updatedConnectedControls() {\n    const filterActive = this.tree.filterMode !== null;\n    const activeNode = this.tree.getActiveNode();\n    const matchCount = filterActive ? this.countMatches() : 0;\n    const strings = this.treeOpts.strings;\n    let matchIdx: string | number = \"?\";\n\n    if (this.matchInfoElem) {\n      if (filterActive) {\n        let info;\n        if (matchCount === 0) {\n          info = strings.noMatch;\n        } else if (activeNode && activeNode.match! >= 1) {\n          matchIdx = activeNode.match ?? \"?\";\n          info = strings.matchIndex;\n        } else {\n          info = strings.queryResult;\n        }\n        info = info\n          .replace(\"${count}\", this.tree.count().toLocaleString())\n          .replace(\"${match}\", \"\" + matchIdx)\n          .replace(\"${matches}\", matchCount.toLocaleString());\n        this.matchInfoElem.textContent = info;\n      } else {\n        this.matchInfoElem.textContent = \"\";\n      }\n    }\n\n    if (this.nextButton instanceof HTMLButtonElement) {\n      this.nextButton.disabled = !matchCount;\n    }\n    if (this.prevButton instanceof HTMLButtonElement) {\n      this.prevButton.disabled = !matchCount;\n    }\n    if (this.modeButton) {\n      this.modeButton.disabled = !filterActive;\n      this.modeButton.classList.toggle(\n        \"wb-filter-hide\",\n        this.tree.filterMode === \"hide\"\n      );\n    }\n  }\n  _connectControls() {\n    const tree = this.tree;\n    const connect: FilterConnectType = this.getPluginOption(\"connect\");\n    if (!connect) {\n      return;\n    }\n    this.queryInput = elemFromSelector(connect.inputElem);\n    if (!this.queryInput) {\n      throw new Error(`Invalid 'filter.connect' option: ${connect.inputElem}.`);\n    }\n    this.prevButton = elemFromSelector(connect.prevButton!);\n    this.nextButton = elemFromSelector(connect.nextButton!);\n    this.modeButton = elemFromSelector(connect.modeButton!);\n    this.matchInfoElem = elemFromSelector(connect.matchInfoElem!);\n    if (this.prevButton) {\n      onEvent(this.prevButton, \"click\", () => {\n        tree.findRelatedNode(\n          tree.getActiveNode() || tree.getFirstChild()!,\n          \"prevMatch\"\n        );\n        this._updatedConnectedControls();\n      });\n    }\n    if (this.nextButton) {\n      onEvent(this.nextButton, \"click\", () => {\n        tree.findRelatedNode(\n          tree.getActiveNode() || tree.getFirstChild()!,\n          \"nextMatch\"\n        );\n        this._updatedConnectedControls();\n      });\n    }\n    if (this.modeButton) {\n      onEvent(this.modeButton, \"click\", (e) => {\n        if (!this.tree.filterMode) {\n          return;\n        }\n        this.setPluginOption(\n          \"mode\",\n          tree.filterMode === \"dim\" ? \"hide\" : \"dim\"\n        );\n      });\n    }\n    onEvent(\n      this.queryInput,\n      \"input\",\n      debounce((e) => {\n        this.filterNodes(this.queryInput!.value.trim(), {});\n      }, 700)\n    );\n    this._updatedConnectedControls();\n  }\n\n  _applyFilterNoUpdate(\n    filter: string | RegExp | NodeFilterCallback,\n    _opts: FilterNodesOptions\n  ): number {\n    return this.tree.runWithDeferredUpdate(() => {\n      return this._applyFilterImpl(filter, _opts);\n    });\n  }\n\n  _applyFilterImpl(\n    filter: string | RegExp | NodeFilterCallback,\n    _opts: FilterNodesOptions\n  ): number {\n    let //temp,\n      count = 0;\n    const start = Date.now();\n    const tree = this.tree;\n    const treeOpts = tree.options;\n    const prevAutoCollapse = treeOpts.autoCollapse;\n    // Use default options from `tree.options.filter`, but allow to override them\n    const opts: FilterOptionsType = extend({}, treeOpts.filter, _opts);\n    const hideMode = opts.mode === \"hide\";\n    const matchBranch = !!opts.matchBranch;\n    const leavesOnly = !!opts.leavesOnly && !matchBranch;\n\n    let filterRegExp: RegExp;\n    let highlightRegExp: RegExp;\n\n    // Default to 'match title substring (case insensitive)'\n    if (typeof filter === \"string\" || filter instanceof RegExp) {\n      if (filter === \"\") {\n        tree.logInfo(\n          \"Passing an empty string as a filter is handled as clearFilter().\"\n        );\n        this.clearFilter();\n        return 0;\n      }\n      if (opts.fuzzy) {\n        assert(typeof filter === \"string\", \"fuzzy filter must be a string\");\n        // See https://codereview.stackexchange.com/questions/23899/faster-javascript-fuzzy-string-matching-function/23905#23905\n        // and http://www.quora.com/How-is-the-fuzzy-search-algorithm-in-Sublime-Text-designed\n        // and http://www.dustindiaz.com/autocomplete-fuzzy-matching\n        const matchReString = (<string>filter)\n          .split(\"\")\n          // Escaping the `filter` will not work because,\n          // it gets further split into individual characters. So,\n          // escape each character after splitting\n          .map(escapeRegex)\n          .reduce(function (a, b) {\n            // create capture groups for parts that comes before\n            // the character\n            return a + \"([^\" + b + \"]*)\" + b;\n          }, \"\");\n        filterRegExp = new RegExp(matchReString, \"i\");\n        // highlightRegExp = new RegExp(escapeRegex(filter), \"gi\");\n      } else if (filter instanceof RegExp) {\n        filterRegExp = filter;\n        highlightRegExp = filter;\n      } else {\n        const matchReString = escapeRegex(filter); // make sure a '.' is treated literally\n        filterRegExp = new RegExp(matchReString, \"i\");\n        highlightRegExp = new RegExp(matchReString, \"gi\");\n      }\n      tree.logDebug(`Filtering nodes by '${filterRegExp}'`);\n      // const re = new RegExp(match, \"i\");\n      // const reHighlight = new RegExp(escapeRegex(filter), \"gi\");\n      filter = (node: WunderbaumNode) => {\n        if (!node.title) {\n          return false;\n        }\n        // let text = escapeTitles ? node.title : extractHtmlText(node.title);\n        const text = node.title;\n        // `.match` instead of `.test` to get the capture groups\n        // const res = text.match(filterRegExp);\n        const res = filterRegExp.exec(text);\n\n        if (res && opts.highlight) {\n          let highlightString: string;\n\n          if (opts.fuzzy) {\n            highlightString = _markFuzzyMatchedChars(text, res, true);\n          } else {\n            // #740: we must not apply the marks to escaped entity names, e.g. `&quot;`\n            // Use some exotic characters to mark matches:\n            highlightString = text.replace(highlightRegExp, function (s) {\n              return START_MARKER + s + END_MARKER;\n            });\n          }\n          // now we can escape the title...\n          node.titleWithHighlight = escapeHtml(highlightString)\n            // ... and finally insert the desired `<mark>` tags\n            .replace(RE_START_MARKER, \"<mark>\")\n            .replace(RE_END_MARTKER, \"</mark>\");\n        }\n        return !!res;\n      };\n    }\n\n    tree.filterMode = opts.mode ?? \"dim\";\n    // eslint-disable-next-line prefer-rest-params\n    this.lastFilterArgs = arguments;\n\n    tree.element.classList.toggle(\"wb-ext-filter-hide\", !!hideMode);\n    tree.element.classList.toggle(\"wb-ext-filter-dim\", opts.mode === \"dim\");\n    tree.element.classList.toggle(\n      \"wb-ext-filter-hide-expanders\",\n      !!opts.hideExpanders\n    );\n    // Reset current filter\n    tree.root.subMatchCount = 0;\n    tree.visit((node) => {\n      delete node.match;\n      delete node.titleWithHighlight;\n      node.subMatchCount = 0;\n    });\n    tree.setStatus(NodeStatusType.ok);\n\n    // Adjust node.hide, .match, and .subMatchCount properties\n    treeOpts.autoCollapse = false; // #528\n\n    tree.visit((node) => {\n      if (leavesOnly && node.children != null) {\n        return;\n      }\n      let res = (<NodeFilterCallback>filter)(node);\n\n      if (res === \"skip\") {\n        node.visit(function (c) {\n          c.match = undefined;\n        }, true);\n        return \"skip\";\n      }\n\n      let matchedByBranch = false;\n      if ((matchBranch || res === \"branch\") && node.parent.match) {\n        res = true;\n        matchedByBranch = true;\n      }\n\n      if (res) {\n        count++;\n        node.match = count;\n        node.visitParents((p) => {\n          if (p !== node) {\n            p.subMatchCount! += 1;\n          }\n          // Expand match (unless this is no real match, but only a node in a matched branch)\n          if (opts.autoExpand && !matchedByBranch && !p.expanded) {\n            p.setExpanded(true, {\n              noAnimation: true,\n              noEvents: true,\n            });\n            p._filterAutoExpanded = true;\n          }\n        }, true);\n      }\n    });\n    treeOpts.autoCollapse = prevAutoCollapse;\n\n    if (count === 0 && opts.noData && hideMode) {\n      if (typeof opts.noData === \"string\") {\n        tree.root.setStatus(NodeStatusType.noData, { message: opts.noData });\n      } else {\n        tree.root.setStatus(NodeStatusType.noData);\n      }\n    }\n    // Redraw whole tree\n    tree.logDebug(\n      `Filter '${filter}' found ${count} nodes in ${Date.now() - start} ms.`\n    );\n    this._updatedConnectedControls();\n\n    return count;\n  }\n\n  /**\n   * [ext-filter] Dim or hide nodes.\n   */\n  filterNodes(\n    filter: string | RegExp | NodeFilterCallback,\n    options: FilterNodesOptions\n  ): number {\n    return this._applyFilterNoUpdate(filter, options);\n  }\n\n  /**\n   * [ext-filter] Dim or hide whole branches.\n   * @deprecated Use {@link filterNodes} instead and set `options.matchBranch: true`.\n   */\n  filterBranches(\n    filter: string | NodeFilterCallback,\n    options: FilterNodesOptions\n  ) {\n    assert(\n      options.matchBranch === undefined,\n      \"filterBranches() is deprecated.\"\n    );\n    this.tree.logDeprecate(\"filterBranches()\", {\n      since: \"0.9.0\",\n      hint: \"Use `filterNodes` instead and set `options.matchBranch: true`\",\n    });\n    options.matchBranch = true;\n    return this._applyFilterNoUpdate(filter, options);\n  }\n\n  /**\n   * [ext-filter] Return the number of matched nodes.\n   */\n  countMatches(): number {\n    let n = 0;\n    this.tree.visit((node) => {\n      if (node.match && !node.statusNodeType) {\n        n++;\n      }\n    });\n    return n;\n  }\n\n  /**\n   * [ext-filter] Re-apply current filter.\n   */\n  updateFilter() {\n    const tree = this.tree;\n    if (\n      tree.filterMode &&\n      this.lastFilterArgs &&\n      tree.options.filter?.autoApply\n    ) {\n      // eslint-disable-next-line prefer-spread\n      this._applyFilterNoUpdate.apply(this, <any>this.lastFilterArgs);\n    } else {\n      tree.logWarn(\"updateFilter(): no filter active.\");\n    }\n    this._updatedConnectedControls();\n  }\n\n  /**\n   * [ext-filter] Reset the filter.\n   */\n  clearFilter() {\n    const tree = this.tree;\n    tree.enableUpdate(false);\n\n    tree.setStatus(NodeStatusType.ok);\n    // we also counted root node's subMatchCount\n    delete tree.root.match;\n    delete tree.root.subMatchCount;\n\n    tree.visit((node) => {\n      delete node.match;\n      delete node.subMatchCount;\n      delete node.titleWithHighlight;\n      if (node._filterAutoExpanded && node.expanded) {\n        node.setExpanded(false, {\n          noAnimation: true,\n          noEvents: true,\n        });\n      }\n      delete node._filterAutoExpanded;\n    });\n    tree.filterMode = null;\n    this.lastFilterArgs = null;\n    tree.element.classList.remove(\n      // \"wb-ext-filter\",\n      \"wb-ext-filter-dim\",\n      \"wb-ext-filter-hide\"\n    );\n    this._updatedConnectedControls();\n\n    tree.enableUpdate(true);\n  }\n}\n\n/**\n * @description Marks the matching characters of `text` either by `mark` or\n * by exotic*Chars (if `escapeTitles` is `true`) based on `matches`\n * which is an array of matching groups.\n * @param {string} text\n * @param {RegExpMatchArray} matches\n */\nfunction _markFuzzyMatchedChars(\n  text: string,\n  matches: RegExpMatchArray,\n  escapeTitles = true\n) {\n  const matchingIndices = [];\n  // get the indices of matched characters (Iterate through `RegExpMatchArray`)\n  for (\n    let _matchingArrIdx = 1;\n    _matchingArrIdx < matches.length;\n    _matchingArrIdx++\n  ) {\n    const _mIdx: number =\n      // get matching char index by cumulatively adding\n      // the matched group length\n      matches[_matchingArrIdx].length +\n      (_matchingArrIdx === 1 ? 0 : 1) +\n      (matchingIndices[matchingIndices.length - 1] || 0);\n    matchingIndices.push(_mIdx);\n  }\n  // Map each `text` char to its position and store in `textPoses`.\n  const textPoses = text.split(\"\");\n  if (escapeTitles) {\n    // If escaping the title, then wrap the matching char within exotic chars\n    matchingIndices.forEach(function (v) {\n      textPoses[v] = START_MARKER + textPoses[v] + END_MARKER;\n    });\n  } else {\n    // Otherwise, Wrap the matching chars within `mark`.\n    matchingIndices.forEach(function (v) {\n      textPoses[v] = \"<mark>\" + textPoses[v] + \"</mark>\";\n    });\n  }\n  // Join back the modified `textPoses` to create final highlight markup.\n  return textPoses.join(\"\");\n}\n"
  },
  {
    "path": "src/wb_ext_grid.ts",
    "content": "/*!\n * Wunderbaum - ext-grid\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\nimport { Wunderbaum } from \"./wunderbaum\";\nimport { WunderbaumExtension } from \"./wb_extension_base\";\nimport { DragCallbackArgType, DragObserver } from \"./drag_observer\";\nimport { ChangeType, ColumnDefinition, GridOptionsType } from \"./types\";\nimport { DEFAULT_MIN_COL_WIDTH } from \"./common\";\nimport { toBool, toPixel } from \"./util\";\n\nexport class GridExtension extends WunderbaumExtension<GridOptionsType> {\n  protected observer: DragObserver;\n\n  constructor(tree: Wunderbaum) {\n    super(tree, \"grid\", {\n      // throttle: 200,\n    });\n\n    this.observer = new DragObserver({\n      root: window.document,\n      selector: \"span.wb-col-resizer-active\",\n      thresh: 4,\n      // throttle: 400,\n      dragstart: (e) => {\n        const info = Wunderbaum.getEventInfo(e.startEvent);\n        const colDef = info.colDef!;\n        const allow =\n          colDef &&\n          this.tree.element.contains(e.dragElem) &&\n          toBool(colDef.resizable, tree.options.columnsResizable, false);\n\n        // this.tree.log(\"dragstart\", colDef, e, info);\n\n        this.tree.element.classList.toggle(\"wb-col-resizing\", !!allow);\n        info.colElem!.classList.toggle(\"wb-col-resizing\", !!allow);\n\n        // We start dagging, so we remember the actual width in *pixels*\n        // (which may be 'auto' or '100%').\n        // Since we we re-create the markup on each update, we also cannot store\n        // the original event or DOM element, but only the colDef object.\n        if (allow) {\n          // Store initial target column infos in customData\n          e.customData.colDef = colDef;\n          e.customData.orgCustomWidthPx = colDef.customWidthPx;\n          const curWidthPx = Number.parseInt(info.colElem!.style.width, 10);\n          e.customData.orgWidthPx = curWidthPx;\n          // Set custom width to current width, so that we can modify it\n          colDef.customWidthPx = curWidthPx;\n          // this.tree.log(\n          //   `dragstart customWidthPx=${colDef.customWidthPx}`,\n          //   e,\n          //   info\n          // );\n          this.tree.update(ChangeType.colStructure);\n          // this.tree.log(\n          //   `dragstart 2 customWidthPx=${colDef.customWidthPx}`,\n          //   e,\n          //   info\n          // );\n        }\n        return allow;\n      },\n      drag: (e) => {\n        // TODO: throttle\n        return this.handleDrag(e);\n      },\n      dragstop: (e) => {\n        return this.handleDrag(e);\n      },\n    });\n  }\n\n  init() {\n    super.init();\n  }\n\n  /**\n   * Handles drag and sragstop events for column resizing.\n   */\n  protected handleDrag(e: DragCallbackArgType): void {\n    const custom = e.customData;\n    const colDef = <ColumnDefinition>custom.colDef!;\n    // this.tree.log(`${e.type} (dx=${e.dx})`, e, info);\n\n    if (e.type === \"dragstop\" || e.type === \"drag\") {\n      this.tree.element.classList.remove(\"wb-col-resizing\");\n      // info.colElem!.classList.remove(\"wb-col-resizing\");\n      if (e.apply || e.type === \"drag\") {\n        const minWidth = toPixel(colDef.minWidth, DEFAULT_MIN_COL_WIDTH);\n        const newWidth = Math.max(minWidth, custom.orgWidthPx + e.dx);\n        colDef.customWidthPx = newWidth;\n        // this.tree.log(\n        //   `${e.type} minWidth=${minWidth}, newWidth=${newWidth}`,\n        //   colDef\n        // );\n      } else {\n        // Drag was cancelled\n        this.tree.log(\"Column resize cancelled\", e);\n        colDef.customWidthPx = custom.orgCustomWidthPx; // Restore original width or undefined\n      }\n      this.tree.update(ChangeType.colStructure);\n    }\n  }\n}\n"
  },
  {
    "path": "src/wb_ext_keynav.ts",
    "content": "/*!\n * Wunderbaum - ext-keynav\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n\nimport { KeynavOptionsType, NavModeEnum } from \"./types\";\nimport { eventToString } from \"./util\";\nimport { Wunderbaum } from \"./wunderbaum\";\nimport { WunderbaumNode } from \"./wb_node\";\nimport { WunderbaumExtension } from \"./wb_extension_base\";\n\nconst QUICKSEARCH_DELAY = 500;\n\nexport class KeynavExtension extends WunderbaumExtension<KeynavOptionsType> {\n  constructor(tree: Wunderbaum) {\n    super(tree, \"keynav\", {});\n  }\n\n  protected _getEmbeddedInputElem(elem: any): HTMLInputElement | null {\n    let input = null;\n\n    if (elem && elem.type != null) {\n      input = elem;\n    } else {\n      // ,[contenteditable]\n      const ace = this.tree.getActiveColElem()?.querySelector(\"input,select\");\n      if (ace) {\n        input = ace as HTMLInputElement;\n      }\n    }\n    return input;\n  }\n\n  // /* Return the current cell's embedded input that has keyboard focus. */\n  // protected _getFocusedInputElem(): HTMLInputElement | null {\n  //   const ace = this.tree\n  //     .getActiveColElem()\n  //     ?.querySelector<HTMLInputElement>(\"input:focus,select:focus\");\n  //   return ace || null;\n  // }\n\n  /* Return true if the current cell's embedded input has keyboard focus. */\n  protected _isCurInputFocused(): boolean {\n    const ace = this.tree\n      .getActiveColElem()\n      ?.querySelector(\"input:focus,select:focus\");\n    return !!ace;\n  }\n\n  onKeyEvent(data: any): boolean | undefined {\n    const event = data.event;\n    const tree = this.tree;\n    const opts = data.options;\n    const activate = !event.ctrlKey || opts.autoActivate;\n    const curInput = this._getEmbeddedInputElem(event.target);\n    const inputHasFocus = curInput && this._isCurInputFocused();\n    const navModeOption = opts.navigationModeOption as NavModeEnum;\n\n    let focusNode,\n      eventName = eventToString(event),\n      node = data.node as WunderbaumNode,\n      handled = true;\n\n    // tree.log(`onKeyEvent: ${eventName}, curInput`, curInput);\n    if (!tree.isEnabled()) {\n      // tree.logDebug(`onKeyEvent ignored for disabled tree: ${eventName}`);\n      return false;\n    }\n\n    // Let callback prevent default processing\n    if (tree._callEvent(\"keydown\", data) === false) {\n      return false;\n    }\n\n    // Let ext-edit trigger editing\n    if (tree._callMethod(\"edit._preprocessKeyEvent\", data) === false) {\n      return false;\n    }\n\n    // Set focus to active (or first node) if no other node has the focus yet\n    if (!node) {\n      const currentNode = tree.getFocusNode() || tree.getActiveNode();\n      const firstNode = tree.getFirstChild();\n\n      if (!currentNode && firstNode && eventName === \"ArrowDown\") {\n        firstNode.logInfo(\"Keydown: activate first node.\");\n        firstNode.setActive();\n        return;\n      }\n\n      focusNode = currentNode || firstNode;\n      if (focusNode) {\n        focusNode.setFocus();\n        node = tree.getFocusNode()!;\n        node.logInfo(\"Keydown: force focus on active node.\");\n      }\n    }\n    const isColspan = node.isColspan();\n\n    if (tree.isRowNav()) {\n      // -----------------------------------------------------------------------\n      // --- Row Mode ---\n      // -----------------------------------------------------------------------\n      if (inputHasFocus) {\n        // If editing an embedded input control, let the control handle all\n        // keys. Only Enter and Escape should apply / discard, but keep the\n        // keyboard focus.\n        switch (eventName) {\n          case \"Enter\":\n            curInput.blur();\n            tree.setFocus();\n            break;\n          case \"Escape\":\n            node._render();\n            tree.setFocus();\n            break;\n        }\n        return;\n      }\n      // --- Quick-Search\n      if (\n        opts.quicksearch &&\n        eventName.length === 1 &&\n        /^\\w$/.test(eventName) &&\n        !curInput\n      ) {\n        // Allow to search for longer streaks if typed in quickly\n        const stamp = Date.now();\n        if (stamp - tree.lastQuicksearchTime > QUICKSEARCH_DELAY) {\n          tree.lastQuicksearchTerm = \"\";\n        }\n        tree.lastQuicksearchTime = stamp;\n        tree.lastQuicksearchTerm += eventName;\n        const matchNode = tree.findNextNode(\n          tree.lastQuicksearchTerm,\n          tree.getActiveNode()\n        );\n        if (matchNode) {\n          matchNode.setActive(true, { event: event });\n        }\n        event.preventDefault();\n        return;\n      }\n\n      // Pre-Evaluate expand/collapse action for LEFT/RIGHT\n      switch (eventName) {\n        case \"Enter\":\n          if (node.isActive()) {\n            if (node.isExpanded()) {\n              eventName = \"Subtract\"; // callapse\n            } else if (node.isExpandable(true)) {\n              eventName = \"Add\"; // expand\n            }\n          }\n          break;\n        case \"ArrowLeft\":\n          if (node.expanded) {\n            eventName = \"Subtract\"; // collapse\n          }\n          break;\n        case \"ArrowRight\":\n          if (!node.expanded && node.isExpandable(true)) {\n            eventName = \"Add\"; // expand\n          } else if (\n            navModeOption === NavModeEnum.startCell ||\n            navModeOption === NavModeEnum.startRow\n          ) {\n            event.preventDefault();\n            tree.setCellNav();\n            return false;\n          }\n          break;\n      }\n\n      // Standard navigation (row mode)\n      switch (eventName) {\n        case \"+\":\n        case \"Add\":\n          // case \"=\": // 187: '+' @ Chrome, Safari\n          node.setExpanded(true);\n          break;\n        case \"-\":\n        case \"Subtract\":\n          node.setExpanded(false);\n          break;\n        case \" \": // Space\n          // if (node.isPagingNode()) {\n          //   tree._triggerNodeEvent(\"clickPaging\", ctx, event);\n          // } else\n          if (node.getOption(\"checkbox\")) {\n            node.toggleSelected();\n          } else {\n            node.setActive(true, { event: event });\n          }\n          break;\n        case \"Enter\":\n          node.setActive(true, { event: event });\n          break;\n        case \"ArrowDown\":\n        case \"ArrowLeft\":\n        case \"ArrowRight\":\n        case \"ArrowUp\":\n        case \"Backspace\":\n        case \"End\":\n        case \"Home\":\n        case \"Control+End\":\n        case \"Control+Home\":\n        case \"Meta+ArrowDown\":\n        case \"Meta+ArrowUp\":\n        case \"PageDown\":\n        case \"PageUp\":\n          node.navigate(eventName, { activate: activate, event: event });\n          break;\n        default:\n          handled = false;\n      }\n    } else {\n      // -----------------------------------------------------------------------\n      // --- Cell Mode ---\n      // -----------------------------------------------------------------------\n      // // Standard navigation (cell mode)\n      // if (isCellEditMode && INPUT_BREAKOUT_KEYS.has(eventName)) {\n      // }\n      // const curInput = this._getEmbeddedInputElem(null);\n      const curInputType = curInput ? curInput.type || curInput.tagName : \"\";\n      // const inputHasFocus = curInput && this._isCurInputFocused();\n      const inputCanFocus = curInput && curInputType !== \"checkbox\";\n\n      if (inputHasFocus) {\n        if (eventName === \"Escape\") {\n          node.logDebug(`Reset focused input on Escape`);\n          // Discard changes and reset input validation state\n          curInput.setCustomValidity(\"\");\n          node._render();\n          // Keep cell-nav mode\n          tree.setFocus();\n          tree.setColumn(tree.activeColIdx);\n          return;\n          // } else if (!INPUT_BREAKOUT_KEYS.has(eventName)) {\n        } else if (eventName !== \"Enter\") {\n          if (curInput && curInput.checkValidity && !curInput.checkValidity()) {\n            // Invalid input: ignore all keys except Enter and Escape\n            node.logDebug(`Ignored ${eventName} inside invalid input`);\n            return false;\n          }\n          // Let current `<input>` handle it\n          node.logDebug(`Ignored ${eventName} inside focused input`);\n          return;\n        }\n        // const curInputType = curInput.type || curInput.tagName;\n        // const breakoutKeys = INPUT_KEYS[curInputType];\n        // if (!breakoutKeys.includes(eventName)) {\n        //   node.logDebug(`Ignored ${eventName} inside ${curInputType} input`);\n        //   return;\n        // }\n      } else if (curInput) {\n        // On a cell that has an embedded, unfocused <input>\n        if (eventName.length === 1 && inputCanFocus) {\n          // Typing a single char\n          curInput.focus();\n          curInput.value = \"\";\n          node.logDebug(`Focus input: ${eventName}`);\n          return false;\n        }\n      }\n      if (eventName === \"Tab\") {\n        eventName = \"ArrowRight\";\n        handled = true;\n      } else if (eventName === \"Shift+Tab\") {\n        eventName = tree.activeColIdx > 0 ? \"ArrowLeft\" : \"\";\n        handled = true;\n      }\n\n      switch (eventName) {\n        case \"+\":\n        case \"Add\":\n          // case \"=\": // 187: '+' @ Chrome, Safari\n          node.setExpanded(true);\n          break;\n        case \"-\":\n        case \"Subtract\":\n          node.setExpanded(false);\n          break;\n        case \" \": // Space\n          if (tree.activeColIdx === 0 && node.getOption(\"checkbox\")) {\n            node.toggleSelected();\n            handled = true;\n          } else if (curInput && curInputType === \"checkbox\") {\n            curInput.click();\n            // toggleCheckbox(curInput)\n            // new Event(\"change\")\n            // curInput.change\n            handled = true;\n          }\n          break;\n        case \"F2\":\n          if (curInput && !inputHasFocus && inputCanFocus) {\n            curInput.focus();\n            handled = true;\n          }\n          break;\n        case \"Enter\":\n          tree.setFocus(); // Blur prev. input if any\n          if ((tree.activeColIdx === 0 || isColspan) && node.isExpandable()) {\n            node.setExpanded(!node.isExpanded());\n            handled = true;\n          } else if (curInput && !inputHasFocus && inputCanFocus) {\n            curInput.focus();\n            handled = true;\n          }\n          break;\n        case \"Escape\":\n          tree.setFocus(); // Blur prev. input if any\n          node.log(`keynav: focus tree...`);\n          if (tree.isCellNav() && navModeOption !== NavModeEnum.cell) {\n            node.log(`keynav: setCellNav(false)`);\n            tree.setCellNav(false); // row-nav mode\n            tree.setFocus(); //\n            handled = true;\n          }\n          break;\n        case \"ArrowLeft\":\n          tree.setFocus(); // Blur prev. input if any\n          if (isColspan && node.isExpanded()) {\n            node.setExpanded(false);\n          } else if (!isColspan && tree.activeColIdx > 0) {\n            tree.setColumn(tree.activeColIdx - 1);\n          } else if (navModeOption !== NavModeEnum.cell) {\n            tree.setCellNav(false); // row-nav mode\n          }\n          handled = true;\n          break;\n        case \"ArrowRight\":\n          tree.setFocus(); // Blur prev. input if any\n          if (isColspan && !node.isExpanded()) {\n            node.setExpanded();\n          } else if (\n            !isColspan &&\n            tree.activeColIdx < tree.columns.length - 1\n          ) {\n            tree.setColumn(tree.activeColIdx + 1);\n          }\n          handled = true;\n          break;\n        case \"Home\": // Generated by [Fn] + ArrowLeft on Mac\n          // case \"Meta+ArrowLeft\":\n          tree.setFocus(); // Blur prev. input if any\n          if (!isColspan && tree.activeColIdx > 0) {\n            tree.setColumn(0);\n          }\n          handled = true;\n          break;\n        case \"End\": // Generated by [Fn] + ArrowRight on Mac\n          // case \"Meta+ArrowRight\":\n          tree.setFocus(); // Blur prev. input if any\n          if (!isColspan && tree.activeColIdx < tree.columns.length - 1) {\n            tree.setColumn(tree.columns.length - 1);\n          }\n          handled = true;\n          break;\n        case \"ArrowDown\":\n        case \"ArrowUp\":\n        case \"Backspace\":\n        case \"Control+End\": // Generated by Control + [Fn] + ArrowRight on Mac\n        case \"Control+Home\": // Generated by Control + [Fn] + Arrowleft on Mac\n        case \"Meta+ArrowDown\": // [⌘] + ArrowDown on Mac\n        case \"Meta+ArrowUp\": // [⌘] + ArrowUp on Mac\n        case \"PageDown\": // Generated by [Fn] + ArrowDown on Mac\n        case \"PageUp\": // Generated by [Fn] + ArrowUp on Mac\n          node.navigate(eventName, { activate: activate, event: event });\n          // if (isCellEditMode) {\n          //   this._getEmbeddedInputElem(null, true); // set focus to input\n          // }\n          handled = true;\n          break;\n        default:\n          handled = false;\n      }\n    }\n\n    if (handled) {\n      event.preventDefault();\n    }\n    return;\n  }\n}\n"
  },
  {
    "path": "src/wb_ext_logger.ts",
    "content": "/*!\n * Wunderbaum - ext-logger\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n\nimport { LoggerOptionsType } from \"./types\";\nimport { overrideMethod } from \"./util\";\nimport { WunderbaumExtension } from \"./wb_extension_base\";\nimport { Wunderbaum } from \"./wunderbaum\";\n\nexport class LoggerExtension extends WunderbaumExtension<LoggerOptionsType> {\n  readonly prefix: string;\n  protected ignoreEvents = new Set<string>([\n    \"iconBadge\",\n    // \"enhanceTitle\",\n    \"render\",\n    \"discard\",\n  ]);\n\n  constructor(tree: Wunderbaum) {\n    super(tree, \"logger\", {});\n    this.prefix = tree + \".ext-logger\";\n  }\n\n  init() {\n    const tree = this.tree;\n\n    // this.ignoreEvents.add();\n\n    if (tree.getOption(\"debugLevel\") >= 4) {\n      // const self = this;\n      const ignoreEvents = this.ignoreEvents;\n      const prefix = this.prefix;\n\n      overrideMethod(tree, \"callEvent\", function (name, extra) {\n        /* eslint-disable prefer-rest-params */\n        if (ignoreEvents.has(name)) {\n          return (<any>tree)._superApply(arguments);\n        }\n        const start = Date.now();\n        const res = (<any>tree)._superApply(arguments);\n        tree.logDebug(\n          `${prefix}: callEvent('${name}') took ${Date.now() - start} ms.`,\n          arguments[1]\n        );\n        return res;\n      });\n    }\n  }\n\n  onKeyEvent(data: any): boolean | undefined {\n    // this.tree.logInfo(\"onKeyEvent\", eventToString(data.event), data);\n    this.tree.logDebug(`${this.prefix}: onKeyEvent()`, data);\n    return;\n  }\n}\n"
  },
  {
    "path": "src/wb_extension_base.ts",
    "content": "/*!\n * Wunderbaum - wb_extension_base\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n\nimport * as util from \"./util\";\nimport { DndExtension } from \"./wb_ext_dnd\";\nimport { EditExtension } from \"./wb_ext_edit\";\nimport { FilterExtension } from \"./wb_ext_filter\";\nimport { GridExtension } from \"./wb_ext_grid\";\nimport { KeynavExtension } from \"./wb_ext_keynav\";\nimport { LoggerExtension } from \"./wb_ext_logger\";\nimport { WunderbaumOptions } from \"./wb_options\";\nimport { Wunderbaum } from \"./wunderbaum\";\n\nexport type ExtensionsDict = {\n  dnd: DndExtension;\n  edit: EditExtension;\n  filter: FilterExtension;\n  grid: GridExtension;\n  keynav: KeynavExtension;\n  logger: LoggerExtension;\n\n  [key: string]: WunderbaumExtension<any>;\n};\n\nexport abstract class WunderbaumExtension<TOptions> {\n  public enabled = true;\n  readonly id: string;\n  readonly tree: Wunderbaum;\n  readonly treeOpts: WunderbaumOptions;\n  readonly extensionOpts: any;\n\n  constructor(tree: Wunderbaum, id: string, defaults: TOptions) {\n    this.tree = tree;\n    this.id = id;\n    this.treeOpts = tree.options;\n\n    const opts = tree.options as any;\n\n    if ((<any>this.treeOpts)[id] === undefined) {\n      opts[id] = this.extensionOpts = util.extend({}, defaults);\n    } else {\n      // TODO: do we break existing object instance references here?\n      this.extensionOpts = util.extend({}, defaults, opts[id]);\n      opts[id] = this.extensionOpts;\n    }\n    this.enabled = this.getPluginOption(\"enabled\", true);\n  }\n\n  /** Called on tree (re)init after all extensions are added, but before loading.*/\n  init() {\n    this.tree.element.classList.add(\"wb-ext-\" + this.id);\n  }\n\n  // protected callEvent(type: string, extra?: any): any {\n  //   let func = this.extensionOpts[type];\n  //   if (func) {\n  //     return func.call(\n  //       this.tree,\n  //       util.extend(\n  //         {\n  //           event: this.id + \".\" + type,\n  //         },\n  //         extra\n  //       )\n  //     );\n  //   }\n  // }\n\n  getPluginOption(name: string, defaultValue?: any): any {\n    return this.extensionOpts[name] ?? defaultValue;\n  }\n\n  setPluginOption(name: string, value: any): void {\n    this.extensionOpts[name] = value;\n  }\n\n  setEnabled(flag = true) {\n    return this.setPluginOption(\"enabled\", !!flag);\n    // this.enabled = !!flag;\n  }\n\n  onKeyEvent(data: any): boolean | undefined {\n    return;\n  }\n\n  onRender(data: any): boolean | undefined {\n    return;\n  }\n}\n"
  },
  {
    "path": "src/wb_node.ts",
    "content": "/*!\n * Wunderbaum - wunderbaum_node\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n\nimport * as util from \"./util\";\n\nimport { Wunderbaum } from \"./wunderbaum\";\nimport {\n  AddChildrenOptions,\n  ApplyCommandOptions,\n  ApplyCommandType,\n  ChangeType,\n  CheckboxOption,\n  ColumnEventInfoMap,\n  ExpandAllOptions,\n  IconOption,\n  InsertNodeType,\n  MakeVisibleOptions,\n  MatcherCallback,\n  NavigateOptions,\n  NavigationType,\n  NodeAnyCallback,\n  NodeStatusType,\n  NodeStringCallback,\n  NodeToDictCallback,\n  NodeVisitCallback,\n  NodeVisitResponse,\n  RenderOptions,\n  ResetOrderOptions,\n  ScrollIntoViewOptions,\n  SetActiveOptions,\n  SetExpandedOptions,\n  SetSelectedOptions,\n  SetStatusOptions,\n  SortByPropertyOptions,\n  SortCallback,\n  SortOptions,\n  SourceType,\n  TooltipOption,\n  TristateType,\n  WbNodeData,\n} from \"./types\";\n\nimport {\n  decompressSourceData,\n  ICON_WIDTH,\n  KEY_TO_NAVIGATION_MAP,\n  makeNodeTitleMatcher,\n  NODE_TYPE_FOLDER,\n  nodeTitleSorter,\n  RESERVED_TREE_SOURCE_KEYS,\n  TEST_FILE_PATH,\n  TEST_HTML,\n  TITLE_SPAN_PAD_Y,\n} from \"./common\";\nimport { Deferred } from \"./deferred\";\n\n/** WunderbaumNode properties that can be passed with source data.\n * (Any other source properties will be stored as `node.data.PROP`.)\n */\nconst NODE_PROPS = new Set<string>([\n  \"checkbox\",\n  \"classes\",\n  \"expanded\",\n  \"icon\",\n  \"iconTooltip\",\n  \"key\",\n  \"lazy\",\n  \"_partsel\",\n  \"radiogroup\",\n  \"refKey\",\n  \"selected\",\n  \"statusNodeType\",\n  \"title\",\n  \"tooltip\",\n  \"type\",\n  \"unselectable\",\n]);\n/** WunderbaumNode properties that will be returned by `node.toDict()`.)\n */\nconst NODE_DICT_PROPS = new Set<string>(NODE_PROPS);\nNODE_DICT_PROPS.delete(\"_partsel\");\nNODE_DICT_PROPS.delete(\"unselectable\");\n\n// /** Node properties that are of type bool (or boolean & string).\n//  *  When parsing, we accept 0 for false and 1 for true for better JSON compression.\n//  */\n// export const NODE_BOOL_PROPS: Set<string> = new Set([\n//   \"checkbox\",\n//   \"colspan\",\n//   \"expanded\",\n//   \"icon\",\n//   \"iconTooltip\",\n//   \"radiogroup\",\n//   \"selected\",\n//   \"tooltip\",\n//   \"unselectable\",\n// ]);\n\n/**\n * A single tree node.\n *\n * **NOTE:** <br>\n * Generally you should not modify properties directly, since this may break\n * the internal bookkeeping.\n */\nexport class WunderbaumNode {\n  static sequence = 0;\n\n  /** Reference to owning tree. */\n  public tree: Wunderbaum;\n  /** Parent node (null for the invisible root node `tree.root`). */\n  public parent: WunderbaumNode;\n  /** Name of the node.\n   * @see Use {@link setTitle} to modify. */\n  public title: string;\n  /** Unique key. Passed with constructor or defaults to `SEQUENCE`.\n   * @see Use {@link setKey} to modify. */\n  public readonly key: string;\n  /** Reference key. Unlike {@link key}, a `refKey` may occur multiple\n   * times within a tree (in this case we have 'clone nodes').\n   * @see Use {@link setKey} to modify.\n   */\n  public readonly refKey: string | undefined = undefined;\n  /**\n   * Array of child nodes (null for leaf nodes).\n   * For lazy nodes, this is `null` or ùndefined` until the children are loaded\n   * and leaf nodes may be `[]` (empty array).\n   * @see {@link hasChildren}, {@link addChildren}, {@link lazy}.\n   */\n  public children: WunderbaumNode[] | null = null;\n  /** Render a checkbox or radio button @see {@link selected}. */\n  public checkbox?: CheckboxOption;\n  /** If true, this node's children are considerd radio buttons.\n   * @see {@link isRadio}.\n   */\n  public radiogroup?: boolean;\n  /** If true, (in grid mode) no cells are rendered, except for the node title.*/\n  public colspan?: boolean;\n  /** Icon definition. */\n  public icon?: IconOption;\n  /** Lazy loading flag.\n   * @see {@link isLazy}, {@link isLoaded}, {@link isUnloaded}.\n   */\n  public lazy?: boolean;\n  /** Expansion state.\n   * @see {@link isExpandable}, {@link isExpanded}, {@link setExpanded}. */\n  public expanded?: boolean;\n  /** Selection state.\n   * @see {@link isSelected}, {@link setSelected}, {@link toggleSelected}. */\n  public selected?: boolean;\n  public unselectable?: boolean;\n  /** Node type (used for styling).\n   * @see {@link Wunderbaum.types}.\n   */\n  public type?: string;\n  /** Tooltip definition (`true`: use node's title). */\n  public tooltip?: TooltipOption;\n  /** Icon tooltip definition (`true`: use node's title). */\n  public iconTooltip?: TooltipOption;\n  /** Additional classes added to `div.wb-row`.\n   * @see {@link hasClass}, {@link setClass}. */\n  public classes: Set<string> | null = null; //new Set<string>();\n  /** Custom data that was passed to the constructor */\n  public data: any = {};\n  // --- Node Status ---\n  public statusNodeType?: NodeStatusType;\n  _isLoading = false;\n  _requestId = 0;\n  _errorInfo: any | null = null;\n  _partsel = false;\n  _partload = false;\n  // --- FILTER ---\n  /**\n   * > 0 if matched (-1 to keep system nodes visible);\n   * Added and removed by filter code.\n   */\n  public match?: number;\n  public subMatchCount?: number = 0;\n  // public subMatchBadge?: HTMLElement;\n  /** @internal */\n  public titleWithHighlight?: string;\n  public _filterAutoExpanded?: boolean;\n\n  _rowIdx: number | undefined = 0;\n  _rowElem: HTMLDivElement | undefined = undefined;\n\n  constructor(tree: Wunderbaum, parent: WunderbaumNode, data: WbNodeData) {\n    util.assert(!parent || parent.tree === tree, `Invalid parent: ${parent}`);\n    util.assert(!data.children, \"'children' not allowed here\");\n\n    this.tree = tree;\n    this.parent = parent;\n    this.key = tree._calculateKey(data, parent);\n    this.title = \"\" + (data.title ?? \"<\" + this.key + \">\");\n    this.expanded = !!data.expanded;\n    this.lazy = !!data.lazy;\n\n    // We set the following node properties only if a matching data value is\n    // passed\n    data.refKey != null ? (this.refKey = \"\" + data.refKey) : 0;\n    data.type != null ? (this.type = \"\" + data.type) : 0;\n    data.icon != null ? (this.icon = util.intToBool(data.icon)) : 0;\n    data.tooltip != null ? (this.tooltip = util.intToBool(data.tooltip)) : 0;\n    data.iconTooltip != null\n      ? (this.iconTooltip = util.intToBool(data.iconTooltip))\n      : 0;\n    data.statusNodeType != null\n      ? (this.statusNodeType = (\"\" + data.statusNodeType) as NodeStatusType)\n      : 0;\n    data.colspan != null ? (this.colspan = !!data.colspan) : 0;\n\n    // Selection\n    data.checkbox != null\n      ? (this.checkbox = util.intToBool(data.checkbox) as CheckboxOption)\n      : 0;\n    data.radiogroup != null ? (this.radiogroup = !!data.radiogroup) : 0;\n    data.selected != null ? (this.selected = !!data.selected) : 0;\n    data.unselectable != null ? (this.unselectable = !!data.unselectable) : 0;\n\n    if (data.classes) {\n      this.setClass(data.classes);\n    }\n    // Store custom fields as `node.data`\n    for (const [key, value] of Object.entries(data)) {\n      if (!NODE_PROPS.has(key)) {\n        this.data[key] = value;\n      }\n    }\n\n    if (parent && !this.statusNodeType) {\n      // Don't register root node or status nodes\n      tree._registerNode(this);\n    }\n  }\n\n  /**\n   * Return readable string representation for this instance.\n   * @internal\n   */\n  toString() {\n    return `WunderbaumNode@${this.key}<'${this.title}'>`;\n  }\n\n  /**\n   * Iterate all descendant nodes depth-first, pre-order using `for ... of ...` syntax.\n   * More concise, but slightly slower than {@link WunderbaumNode.visit}.\n   *\n   * Example:\n   * ```js\n   * for(const n of node) {\n   *   ...\n   * }\n   * ```\n   */\n\n  *[Symbol.iterator](): IterableIterator<WunderbaumNode> {\n    // let node: WunderbaumNode | null = this;\n    const cl = this.children;\n    if (cl) {\n      for (let i = 0, l = cl.length; i < l; i++) {\n        const n = cl[i];\n        yield n;\n        if (n.children) {\n          yield* n;\n        }\n      }\n      // Slower:\n      // for (let node of this.children) {\n      //   yield node;\n      //   yield* node : 0;\n      // }\n    }\n  }\n\n  // /** Return an option value. */\n  // protected _getOpt(\n  //   name: string,\n  //   nodeObject: any = null,\n  //   treeOptions: any = null,\n  //   defaultValue: any = null\n  // ): any {\n  //   return evalOption(\n  //     name,\n  //     this,\n  //     nodeObject || this,\n  //     treeOptions || this.tree.options,\n  //     defaultValue\n  //   );\n  // }\n\n  /** Call event handler if defined in tree.options.\n   * Example:\n   * ```js\n   * node._callEvent(\"edit.beforeEdit\", {foo: 42})\n   * ```\n   */\n  _callEvent(type: string, extra?: any): any {\n    return this.tree?._callEvent(\n      type,\n      util.extend(\n        {\n          node: this,\n          typeInfo: this.type ? this.tree.types[this.type] : {},\n        },\n        extra\n      )\n    );\n  }\n\n  /**\n   * Append (or insert) a list of child nodes.\n   *\n   * Tip: pass `{ before: 0 }` to prepend new nodes as first children.\n   *\n   * @returns first child added\n   */\n  addChildren(\n    nodeData: WbNodeData | WbNodeData[],\n    options?: AddChildrenOptions\n  ): WunderbaumNode {\n    const tree = this.tree;\n    let { before = null, applyMinExpanLevel = true, _level } = options ?? {};\n    // let { before, loadLazy=true, _level } = options ?? {};\n    // const isTopCall = _level == null;\n    _level ??= this.getLevel();\n    const nodeList = [];\n\n    try {\n      tree.enableUpdate(false);\n\n      if (util.isPlainObject(nodeData)) {\n        nodeData = [<WbNodeData>nodeData];\n      }\n      const forceExpand =\n        applyMinExpanLevel && _level < tree.options.minExpandLevel;\n      for (const child of <WbNodeData[]>nodeData) {\n        const subChildren = child.children;\n        // Remove children property from source data because it should not be\n        // passed to the constructor of WunderbaumNode:\n        delete child.children;\n\n        const n = new WunderbaumNode(tree, this, child);\n\n        // Set `children` property again, so it can be used in `reload()`\n        if (subChildren != null) {\n          child.children = subChildren;\n        }\n        if (forceExpand && !n.isUnloaded()) {\n          n.expanded = true;\n        }\n        nodeList.push(n);\n        if (subChildren) {\n          n.addChildren(subChildren, { _level: _level + 1 });\n        }\n      }\n\n      if (!this.children) {\n        this.children = nodeList;\n      } else if (before == null || this.children.length === 0) {\n        this.children = this.children.concat(nodeList);\n      } else {\n        // Returns null if before is not a direct child:\n        before = this.findDirectChild(before)!;\n        const pos = this.children.indexOf(before);\n        util.assert(\n          pos >= 0,\n          `options.before must be a direct child of ${this}`\n        );\n        // insert nodeList after children[pos]\n        this.children.splice(pos, 0, ...nodeList);\n      }\n      // this.triggerModifyChild(\"add\", nodeList.length === 1 ? nodeList[0] : null);\n      tree.update(ChangeType.structure);\n    } finally {\n      // if (tree.options.selectMode === \"hier\") {\n      //   if (this.parent && this.parent.children) {\n      //     this.fixSelection3FromEndNodes();\n      //   } else {\n      //     // may happen when loading __root__;\n      //   }\n      // }\n      tree.enableUpdate(true);\n    }\n    // if(isTopCall && loadLazy){\n    //   this.logWarn(\"addChildren(): loadLazy is not yet implemented.\")\n    // }\n    return nodeList[0];\n  }\n\n  /**\n   * Append or prepend a node, or append a child node.\n   *\n   * This a convenience function that calls addChildren()\n   *\n   * @param nodeData node definition\n   * @param [mode=child] 'before', 'after', 'firstChild', or 'child' ('over' is a synonym for 'child')\n   * @returns new node\n   */\n  addNode(\n    nodeData: WbNodeData,\n    mode: InsertNodeType = \"appendChild\"\n  ): WunderbaumNode {\n    if (<string>mode === \"over\") {\n      mode = \"appendChild\"; // compatible with drop region\n    }\n    switch (mode) {\n      case \"after\":\n        return this.parent.addChildren(nodeData, {\n          before: this.getNextSibling(),\n        });\n      case \"before\":\n        return this.parent.addChildren(nodeData, { before: this });\n      case \"prependChild\":\n        // Insert before the first child if any\n        // let insertBefore = this.children ? this.children[0] : undefined;\n        return this.addChildren(nodeData, { before: 0 });\n      case \"appendChild\":\n        return this.addChildren(nodeData);\n    }\n    util.assert(false, `Invalid mode: ${mode}`);\n    return (<unknown>undefined) as WunderbaumNode;\n  }\n\n  /**\n   * Apply a modification (or navigation) operation.\n   *\n   * @see {@link Wunderbaum.applyCommand}\n   */\n  applyCommand(cmd: ApplyCommandType, options: ApplyCommandOptions): any {\n    return this.tree.applyCommand(cmd, this, options);\n  }\n\n  /**\n   * Collapse all expanded sibling nodes if any.\n   * (Automatically called when `autoCollapse` is true.)\n   */\n  collapseSiblings(options?: SetExpandedOptions): any {\n    for (const node of this.parent.children!) {\n      if (node !== this && node.expanded) {\n        node.setExpanded(false, options);\n      }\n    }\n  }\n\n  /**\n   * Add/remove one or more classes to `<div class='wb-row'>`.\n   *\n   * This also maintains `node.classes`, so the class will survive a re-render.\n   *\n   * @param className one or more class names. Multiple classes can be passed\n   *     as space-separated string, array of strings, or set of strings.\n   */\n  setClass(\n    className: string | string[] | Set<string>,\n    flag: boolean = true\n  ): void {\n    const cnSet = util.toSet(className);\n    if (flag) {\n      if (this.classes === null) {\n        this.classes = new Set<string>();\n      }\n      cnSet.forEach((cn) => {\n        this.classes!.add(cn);\n        this._rowElem?.classList.toggle(cn, flag);\n      });\n    } else {\n      if (this.classes === null) {\n        return;\n      }\n      cnSet.forEach((cn) => {\n        this.classes!.delete(cn);\n        this._rowElem?.classList.toggle(cn, flag);\n      });\n      if (this.classes.size === 0) {\n        this.classes = null;\n      }\n    }\n  }\n\n  /** Start editing this node's title. */\n  startEditTitle(): void {\n    this.tree._callMethod(\"edit.startEditTitle\", this);\n  }\n\n  /**\n   * Call `setExpanded()` on all descendant nodes.\n   *\n   * @param flag true to expand, false to collapse.\n   * @param options Additional options.\n   * @see {@link Wunderbaum.expandAll}\n   * @see {@link WunderbaumNode.setExpanded}\n   */\n  async expandAll(flag: boolean = true, options?: ExpandAllOptions) {\n    const tree = this.tree;\n    const {\n      collapseOthers,\n      deep,\n      depth,\n      force,\n      keepActiveNodeVisible = true,\n      loadLazy,\n      resetLazy,\n    } = options ?? {};\n    // limit expansion level to `depth` (or tree.minExpandLevel). Default: unlimited\n    const treeLevel = this.tree.options.minExpandLevel || null; // 0 -> null\n    const minLevel = depth ?? (force ? null : treeLevel);\n    const expandOpts = {\n      deep: deep,\n      force: force,\n      loadLazy: loadLazy,\n      resetLazy: resetLazy,\n      scrollIntoView: false, // don't scroll every node while iterating\n    };\n\n    this.logInfo(`expandAll(${flag}, depth=${depth}, minLevel=${minLevel})`);\n\n    util.assert(\n      !(flag && deep != null && !collapseOthers),\n      \"Expanding with `deep` option is not supported (implied by the `depth` option).\"\n    );\n\n    // Expand all direct children in parallel:\n    async function _iter(n: WunderbaumNode, level: number) {\n      // n.logInfo(`  _iter(level=${level})`);\n      const promises: Promise<unknown>[] = [];\n      n.children?.forEach((cn) => {\n        if (flag) {\n          if (\n            !cn.expanded &&\n            (minLevel == null || level < minLevel) &&\n            (cn.children || (loadLazy && cn.lazy))\n          ) {\n            // Node is collapsed and may be expanded (i.e. has children or is lazy)\n            // Expanding may be async, so we store the promise.\n            // Also the recursion is delayed until expansion finished.\n            const p = cn.setExpanded(true, expandOpts);\n            promises.push(p);\n            if (depth == null) {\n              p.then(async () => {\n                await _iter(cn, level + 1);\n              });\n            }\n          } else {\n            // We don't expand the node, but still visit descendants.\n            // There we may find lazy nodes, so we\n            promises.push(_iter(cn, level + 1));\n          }\n        } else {\n          // Collapsing is always synchronous, so no promises required\n          // Do not collapse until minExpandLevel\n          if (minLevel == null || level >= minLevel) {\n            cn.setExpanded(false, expandOpts);\n          }\n          if ((minLevel != null && level < minLevel) || deep) {\n            _iter(cn, level + 1); // recursion, even if cn was already collapsed\n          }\n        }\n      });\n      return new Promise((resolve) => {\n        Promise.all(promises).then(() => {\n          resolve(true);\n        });\n      });\n    }\n\n    const tag = tree.logTime(`${this}.expandAll(${flag}, depth=${depth})`);\n    try {\n      tree.enableUpdate(false);\n\n      await _iter(this, 0);\n\n      if (collapseOthers) {\n        util.assert(flag, \"Option `collapseOthers` requires flag=true\");\n        util.assert(\n          minLevel != null,\n          \"Option `collapseOthers` requires `depth` or `minExpandLevel`\"\n        );\n        this.expandAll(false, { depth: minLevel! });\n      }\n    } finally {\n      tree.enableUpdate(true);\n      tree.logTimeEnd(tag);\n    }\n    if (tree.activeNode && keepActiveNodeVisible) {\n      tree.activeNode.scrollIntoView();\n    }\n  }\n\n  /**\n   * Find all descendant nodes that match condition (excluding self).\n   *\n   * If `match` is a string, search for exact node title.\n   * If `match` is a RegExp expression, apply it to node.title, using\n   * [RegExp.test()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test).\n   * If `match` is a callback, match all nodes for that the callback(node) returns true.\n   *\n   * Returns an empty array if no nodes were found.\n   *\n   * Examples:\n   * ```js\n   * // Match all node titles that match exactly 'Joe':\n   * nodeList = node.findAll(\"Joe\")\n   * // Match all node titles that start with 'Joe' case sensitive:\n   * nodeList = node.findAll(/^Joe/)\n   * // Match all node titles that contain 'oe', case insensitive:\n   * nodeList = node.findAll(/oe/i)\n   * // Match all nodes with `data.price` >= 99:\n   * nodeList = node.findAll((n) => {\n   *   return n.data.price >= 99;\n   * })\n   * ```\n   */\n  findAll(match: string | RegExp | MatcherCallback): WunderbaumNode[] {\n    const matcher =\n      typeof match === \"function\" ? match : makeNodeTitleMatcher(match);\n    const res: WunderbaumNode[] = [];\n    this.visit((n) => {\n      if (matcher(n)) {\n        res.push(n);\n      }\n    });\n    return res;\n  }\n\n  /** Return the direct child with a given key, index or null. */\n  findDirectChild(\n    ptr: number | string | WunderbaumNode\n  ): WunderbaumNode | null {\n    const cl = this.children;\n\n    if (!cl) {\n      return null;\n    }\n    if (typeof ptr === \"string\") {\n      for (let i = 0, l = cl.length; i < l; i++) {\n        if (cl[i].key === ptr) {\n          return cl[i];\n        }\n      }\n    } else if (typeof ptr === \"number\") {\n      return cl[ptr];\n    } else if (ptr.parent === this) {\n      // Return null if `ptr` is not a direct child\n      return ptr;\n    }\n    return null;\n  }\n\n  /**\n   * Find first descendant node that matches condition (excluding self) or null.\n   *\n   * @see {@link WunderbaumNode.findAll} for examples.\n   */\n  findFirst(match: string | RegExp | MatcherCallback): WunderbaumNode | null {\n    const matcher =\n      typeof match === \"function\" ? match : makeNodeTitleMatcher(match);\n    let res = null;\n    this.visit((n) => {\n      if (matcher(n)) {\n        res = n;\n        return false;\n      }\n    });\n    return res;\n  }\n\n  /** Find a node relative to self.\n   *\n   * @see {@link Wunderbaum.findRelatedNode|tree.findRelatedNode()}\n   */\n  findRelatedNode(where: NavigationType, includeHidden = false) {\n    return this.tree.findRelatedNode(this, where, includeHidden);\n  }\n\n  /**\n   * Iterator version of {@link WunderbaumNode.format}.\n   */\n  *format_iter(\n    name_cb?: NodeStringCallback,\n    connectors?: string[]\n  ): IterableIterator<string> {\n    connectors ??= [\"    \", \" |  \", \" ╰─ \", \" ├─ \"];\n    name_cb ??= (node: WunderbaumNode) => \"\" + node;\n\n    function _is_last(node: WunderbaumNode): boolean {\n      const ca = node.parent.children!;\n      return node === ca[ca.length - 1];\n    }\n\n    const _format_line = (node: WunderbaumNode) => {\n      // https://www.measurethat.net/Benchmarks/Show/12196/0/arr-unshift-vs-push-reverse-small-array\n      const parts = [name_cb!(node)];\n      parts.unshift(connectors![_is_last(node) ? 2 : 3]);\n      let p = node.parent;\n      while (p && p !== this) {\n        // `this` is the top node\n        parts.unshift(connectors![_is_last(p) ? 0 : 1]);\n        p = p.parent;\n      }\n      return parts.join(\"\");\n    };\n\n    yield name_cb(this);\n    for (const node of this) {\n      yield _format_line(node);\n    }\n  }\n\n  /**\n   * Return a multiline string representation of a node/subnode hierarchy.\n   * Mostly useful for debugging.\n   *\n   * Example:\n   * ```js\n   * console.info(tree.getActiveNode().format((n)=>n.title));\n   * ```\n   * logs\n   * ```\n   * Books\n   *  ├─ Art of War\n   *  ╰─ Don Quixote\n   * ```\n   * @see {@link WunderbaumNode.format_iter}\n   */\n  format(name_cb?: NodeStringCallback, connectors?: string[]): string {\n    const a = [];\n    for (const line of this.format_iter(name_cb, connectors)) {\n      a.push(line);\n    }\n    return a.join(\"\\n\");\n  }\n\n  /** Return the `<span class='wb-col'>` element with a given index or id.\n   * @returns {WunderbaumNode | null}\n   */\n  getColElem(colIdx: number | string) {\n    if (typeof colIdx === \"string\") {\n      colIdx = this.tree.columns.findIndex((value) => value.id === colIdx);\n    }\n    const colElems = this._rowElem?.querySelectorAll(\"span.wb-col\");\n    return colElems ? (colElems[colIdx] as HTMLSpanElement) : null;\n  }\n  /**\n   * Return all nodes with the same refKey.\n   *\n   * @param includeSelf Include this node itself.\n   * @see {@link Wunderbaum.findByRefKey}\n   */\n  getCloneList(includeSelf = false): WunderbaumNode[] {\n    if (!this.refKey) {\n      return [];\n    }\n    const clones = this.tree.findByRefKey(this.refKey);\n    if (includeSelf) {\n      return clones;\n    }\n    return [...clones].filter((n) => n !== this);\n  }\n\n  /** Return the first child node or null.\n   * @returns {WunderbaumNode | null}\n   */\n  getFirstChild() {\n    return this.children ? this.children[0] : null;\n  }\n\n  /** Return the last child node or null.\n   * @returns {WunderbaumNode | null}\n   */\n  getLastChild() {\n    return this.children ? this.children[this.children.length - 1] : null;\n  }\n\n  /** Return node depth (starting with 1 for top level nodes). */\n  getLevel(): number {\n    let i = 0,\n      p = this.parent;\n\n    while (p) {\n      i++;\n      p = p.parent;\n    }\n    return i;\n  }\n\n  /** Return the successive node (under the same parent) or null. */\n  getNextSibling(): WunderbaumNode | null {\n    const ac = this.parent.children!;\n    const idx = ac.indexOf(this);\n    return ac[idx + 1] || null;\n  }\n\n  /** Return the parent node (null for the system root node). */\n  getParent(): WunderbaumNode | null {\n    // TODO: return null for top-level nodes?\n    return this.parent;\n  }\n\n  /** Return an array of all parent nodes (top-down).\n   * @param includeRoot Include the invisible system root node.\n   * @param includeSelf Include the node itself.\n   */\n  getParentList(includeRoot = false, includeSelf = false) {\n    const l = [];\n    let dtn = includeSelf ? this : this.parent;\n    while (dtn) {\n      if (includeRoot || dtn.parent) {\n        l.unshift(dtn);\n      }\n      dtn = dtn.parent;\n    }\n    return l;\n  }\n  /** Return a string representing the hierarchical node path, e.g. \"a/b/c\".\n   * @param includeSelf\n   * @param part property name or callback\n   * @param separator\n   */\n  getPath(\n    includeSelf: boolean = true,\n    part: keyof WunderbaumNode | NodeAnyCallback = \"title\",\n    separator: string = \"/\"\n  ) {\n    let val;\n    const path: string[] = [];\n    const isFunc = typeof part === \"function\";\n\n    this.visitParents((n) => {\n      if (n.parent) {\n        val = isFunc\n          ? (<NodeAnyCallback>part)(n)\n          : n[<keyof WunderbaumNode>part];\n        path.unshift(val);\n      }\n      return undefined; // TODO remove this line\n    }, includeSelf);\n    return path.join(separator);\n  }\n\n  /** Return the preceding node (under the same parent) or null. */\n  getPrevSibling(): WunderbaumNode | null {\n    const ac = this.parent.children!;\n    const idx = ac.indexOf(this);\n    return ac[idx - 1] || null;\n  }\n\n  /** Return true if node has children.\n   * Return undefined if not sure, i.e. the node is lazy and not yet loaded.\n   */\n  hasChildren() {\n    if (this.lazy) {\n      if (this.children == null) {\n        return undefined; // null or undefined: Not yet loaded\n      } else if (this.children.length === 0) {\n        return false; // Loaded, but response was empty\n      } else if (\n        this.children.length === 1 &&\n        this.children[0].isStatusNode()\n      ) {\n        return undefined; // Currently loading or load error\n      }\n      return true; // One or more child nodes\n    }\n    return !!(this.children && this.children.length);\n  }\n\n  /** Return true if node has className set. */\n  hasClass(className: string): boolean {\n    return this.classes ? this.classes.has(className) : false;\n  }\n\n  /** Return true if node is the currently focused node. @since 0.9.0 */\n  hasFocus(): boolean {\n    return this.tree.focusNode === this;\n  }\n\n  /** Return true if this node is the currently active tree node. */\n  isActive() {\n    return this.tree.activeNode === this;\n  }\n\n  /** Return true if this node is a direct or indirect parent of `other`.\n   * @see {@link WunderbaumNode.isParentOf}\n   */\n  isAncestorOf(other: WunderbaumNode) {\n    return other && other.isDescendantOf(this);\n  }\n\n  /** Return true if this node is a **direct** subnode of `other`.\n   * @see {@link WunderbaumNode.isDescendantOf}\n   */\n  isChildOf(other: WunderbaumNode) {\n    return other && this.parent === other;\n  }\n\n  /** Return true if this node's refKey is used by at least one other node.\n   */\n  isClone() {\n    return !!this.refKey && this.tree.findByRefKey(this.refKey).length > 1;\n  }\n  /** Return true if this node's title spans all columns, i.e. the node has no\n   * grid cells.\n   */\n  isColspan() {\n    return !!this.getOption(\"colspan\");\n  }\n\n  /** Return true if this node is a direct or indirect subnode of `other`.\n   * @see {@link WunderbaumNode.isChildOf}\n   */\n  isDescendantOf(other: WunderbaumNode) {\n    if (!other || other.tree !== this.tree) {\n      return false;\n    }\n    let p = this.parent;\n    while (p) {\n      if (p === other) {\n        return true;\n      }\n      if (p === p.parent) {\n        util.error(`Recursive parent link: ${p}`);\n      }\n      p = p.parent;\n    }\n    return false;\n  }\n\n  /** Return true if this node has children, i.e. the node is generally expandable.\n   * If `andCollapsed` is set, we also check if this node is collapsed, i.e.\n   * an expand operation is currently possible.\n   */\n  isExpandable(andCollapsed = false): boolean {\n    // `false` is never expandable (unofficial)\n    if ((andCollapsed && this.expanded) || <any>this.children === false) {\n      return false;\n    }\n    if (this.children == null) {\n      return !!this.lazy; // null or undefined can trigger lazy load\n    }\n    if (this.children.length === 0) {\n      return !!this.tree.options.emptyChildListExpandable;\n    }\n    return true;\n  }\n\n  /** Return true if _this_ node is currently in edit-title mode.\n   *\n   * See {@link WunderbaumNode.startEditTitle}.\n   */\n  isEditingTitle(): boolean {\n    return this.tree._callMethod(\"edit.isEditingTitle\", this);\n  }\n\n  /** Return true if this node is currently expanded. */\n  isExpanded(): boolean {\n    return !!this.expanded;\n  }\n\n  /** Return true if this node is the first node of its parent's children. */\n  isFirstSibling(): boolean {\n    const p = this.parent;\n    return !p || p.children![0] === this;\n  }\n\n  /** Return true if this node is the last node of its parent's children. */\n  isLastSibling(): boolean {\n    const p = this.parent;\n    return !p || p.children![p.children!.length - 1] === this;\n  }\n\n  /** Return true if this node is lazy (even if data was already loaded) */\n  isLazy(): boolean {\n    return !!this.lazy;\n  }\n\n  /** Return true if node is lazy and loaded. For non-lazy nodes always return true. */\n  isLoaded(): boolean {\n    return !this.lazy || this.hasChildren() !== undefined; // Also checks if the only child is a status node\n  }\n\n  /** Return true if node is currently loading, i.e. a GET request is pending. */\n  isLoading(): boolean {\n    return this._isLoading;\n  }\n\n  /** Return true if this node is a temporarily generated status node of type 'paging'. */\n  isPagingNode(): boolean {\n    return this.statusNodeType === \"paging\";\n  }\n\n  /** Return true if this node is a **direct** parent of `other`.\n   * @see {@link WunderbaumNode.isAncestorOf}\n   */\n  isParentOf(other: WunderbaumNode) {\n    return other && other.parent === this;\n  }\n\n  /** Return true if this node is partially loaded. @experimental  */\n  isPartload(): boolean {\n    return !!this._partload;\n  }\n\n  /** Return true if this node is partially selected (tri-state). */\n  isPartsel(): boolean {\n    return !this.selected && !!this._partsel;\n  }\n\n  /** Return true if this node has DOM representation, i.e. is displayed in the viewport. */\n  isRadio(): boolean {\n    return !!this.parent.radiogroup || this.getOption(\"checkbox\") === \"radio\";\n  }\n\n  /** Return true if this node has DOM representation, i.e. is displayed in the viewport. */\n  isRendered(): boolean {\n    return !!this._rowElem;\n  }\n\n  /** Return true if this node is the (invisible) system root node.\n   * @see {@link WunderbaumNode.isTopLevel}\n   */\n  isRootNode(): boolean {\n    return this.tree.root === this;\n  }\n\n  /** Return true if this node is selected, i.e. the checkbox is set.\n   * `undefined` if partly selected (tri-state), false otherwise.\n   */\n  isSelected(): TristateType {\n    return this.selected ? true : this._partsel ? undefined : false;\n  }\n\n  /** Return true if this node is a temporarily generated system node like\n   * 'loading', 'paging', or 'error' (node.statusNodeType contains the type).\n   */\n  isStatusNode(): boolean {\n    return !!this.statusNodeType;\n  }\n\n  /** Return true if this a top level node, i.e. a direct child of the (invisible) system root node. */\n  isTopLevel(): boolean {\n    return this.tree.root === this.parent;\n  }\n\n  /** Return true if node is marked lazy but not yet loaded.\n   * For non-lazy nodes always return false.\n   */\n  isUnloaded(): boolean {\n    // Also checks if the only child is a status node:\n    return this.hasChildren() === undefined;\n  }\n\n  /** Return true if all parent nodes are expanded. Note: this does not check\n   * whether the node is scrolled into the visible part of the screen or viewport.\n   */\n  isVisible(): boolean {\n    const hasFilter = this.tree.filterMode === \"hide\";\n    const parents = this.getParentList(false, false);\n\n    // TODO: check $(n.span).is(\":visible\")\n    // i.e. return false for nodes (but not parents) that are hidden\n    // by a filter\n    if (hasFilter && !this.match && !this.subMatchCount) {\n      // this.debug( \"isVisible: HIDDEN (\" + hasFilter + \", \" + this.match + \", \" + this.match + \")\" );\n      return false;\n    }\n\n    for (let i = 0, l = parents.length; i < l; i++) {\n      const n = parents[i];\n\n      if (!n.expanded) {\n        // this.debug(\"isVisible: HIDDEN (parent collapsed)\");\n        return false;\n      }\n      // if (hasFilter && !n.match && !n.subMatchCount) {\n      // \tthis.debug(\"isVisible: HIDDEN (\" + hasFilter + \", \" + this.match + \", \" + this.match + \")\");\n      // \treturn false;\n      // }\n    }\n    // this.debug(\"isVisible: VISIBLE\");\n    return true;\n  }\n\n  protected _loadSourceObject(source: any, level?: number) {\n    const tree = this.tree;\n\n    level ??= this.getLevel();\n\n    // Let caller modify the parsed JSON response:\n    const res = this._callEvent(\"receive\", { response: source });\n    if (res != null) {\n      source = res;\n    }\n\n    if (util.isArray(source)) {\n      source = { children: source };\n    }\n    util.assert(\n      util.isPlainObject(source),\n      `Expected an array or plain object: ${source}`\n    );\n\n    const format: string = source.format ?? \"nested\";\n    util.assert(\n      format === \"nested\" || format === \"flat\",\n      `Expected source.format = 'nested' or 'flat': ${format}`\n    );\n\n    // Pre-rocess for 'nested' or 'flat' format\n    decompressSourceData(source);\n\n    util.assert(\n      source.children,\n      \"If `source` is an object, it must have a `children` property\"\n    );\n    if (source.types) {\n      tree.logInfo(\"Redefine types\", source.columns);\n      tree.setTypes(source.types, false);\n      delete source.types;\n    }\n    if (source.columns) {\n      tree.logInfo(\"Redefine columns\", source.columns);\n      tree.columns = source.columns;\n      delete source.columns;\n      tree.update(ChangeType.colStructure);\n    }\n\n    this.addChildren(source.children);\n\n    // Add extra data to `tree.data`\n    for (const [key, value] of Object.entries(source)) {\n      if (!RESERVED_TREE_SOURCE_KEYS.has(key)) {\n        tree.data[key] = value;\n        // tree.logDebug(`Add source.${key} to tree.data.${key}`);\n      }\n    }\n    if (tree.options.selectMode === \"hier\") {\n      this.fixSelection3FromEndNodes();\n    }\n    // Allow to un-sort nodes after sorting\n    this.resetNativeChildOrder();\n\n    this._callEvent(\"load\");\n  }\n\n  async _fetchWithOptions(source: any) {\n    // Either a URL string or an object with a `.url` property.\n    let url: string, params, body, options, rest;\n    let fetchOpts: RequestInit = {};\n    if (typeof source === \"string\") {\n      // source is a plain URL string: assume GET request\n      url = source;\n      fetchOpts.method = \"GET\";\n    } else if (util.isPlainObject(source)) {\n      // source is a plain object with `.url` property.\n      ({ url, params, body, options, ...rest } = source);\n      util.assert(\n        !rest || Object.keys(rest).length === 0,\n        `Unexpected source properties: ${Object.keys(\n          rest\n        )}. Use 'options' instead.`\n      );\n      util.assert(typeof url === \"string\", `expected source.url as string`);\n      if (util.isPlainObject(options)) {\n        fetchOpts = options;\n      }\n      if (util.isPlainObject(body)) {\n        // we also accept 'body' as object...\n        util.assert(\n          !fetchOpts.body,\n          \"options.body should be passed as source.body\"\n        );\n        fetchOpts.body = JSON.stringify(fetchOpts.body);\n        fetchOpts.method ??= \"POST\"; // set default\n      }\n      if (util.isPlainObject(params)) {\n        url += \"?\" + new URLSearchParams(params);\n        fetchOpts.method ??= \"GET\"; // set default\n      }\n    } else {\n      url = \"\"; // keep linter happy\n      util.error(`Unsupported source format: ${source}`);\n    }\n    this.setStatus(NodeStatusType.loading);\n    const response = await fetch(url, fetchOpts);\n    if (!response.ok) {\n      util.error(`GET ${url} returned ${response.status}, ${response}`);\n    }\n    return await response.json();\n  }\n  /** Download  data from the cloud, then call `.update()`. */\n  async load(source: SourceType) {\n    const tree = this.tree;\n    const requestId = Date.now();\n    const prevParent = this.parent;\n    const start = Date.now();\n    let elap = 0,\n      elapLoad = 0,\n      elapProcess = 0;\n\n    // Check for overlapping requests\n    if (this._requestId) {\n      this.logWarn(\n        `Recursive load request #${requestId} while #${this._requestId} is pending. ` +\n          \"The previous request will be ignored.\"\n      );\n    }\n    this._requestId = requestId;\n\n    // const timerLabel = tree.logTime(this + \".load()\");\n\n    try {\n      const url: string =\n        typeof source === \"string\" ? source : (<any>source).url;\n      if (!url) {\n        // An array or a plain object (that does NOT contain a `.url` property)\n        // will be treated as native Wunderbaum data\n        if (typeof (<any>source).then === \"function\") {\n          const msg = tree.logTime(`Resolve thenable ${source}`);\n          source = await Promise.resolve(source);\n          tree.logTimeEnd(msg);\n        }\n        this._loadSourceObject(source);\n        elapProcess = Date.now() - start;\n      } else {\n        // Either a URL string or an object with a `.url` property.\n        const data = await this._fetchWithOptions(source);\n\n        elapLoad = Date.now() - start;\n\n        if (this._requestId && this._requestId > requestId) {\n          this.logWarn(\n            `Ignored load response #${requestId} because #${this._requestId} is pending.`\n          );\n          return;\n        } else {\n          this.logDebug(`Received response for load request #${requestId}`);\n        }\n        if (this.parent === null && prevParent !== null) {\n          this.logWarn(\n            \"Lazy parent node was removed while loading: discarding response.\"\n          );\n          return;\n        }\n        this.setStatus(NodeStatusType.ok);\n        // if (data.columns) {\n        //   tree.logInfo(\"Re-define columns\", data.columns);\n        //   util.assert(!this.parent);\n        //   tree.columns = data.columns;\n        //   delete data.columns;\n        //   tree.updateColumns({ calculateCols: false });\n        // }\n        const startProcess = Date.now();\n        this._loadSourceObject(data);\n        elapProcess = Date.now() - startProcess;\n      }\n    } catch (error) {\n      this.logError(\"Error during load()\", source, error);\n      this._callEvent(\"error\", { error: error });\n      this.setStatus(NodeStatusType.error, { message: \"\" + error });\n      throw error;\n    } finally {\n      this._requestId = 0;\n      elap = Date.now() - start;\n      if (tree.options.debugLevel! >= 3) {\n        tree.logInfo(\n          `Load source took ${elap / 1000} seconds ` +\n            `(transfer: ${elapLoad / 1000}s, ` +\n            `processing: ${elapProcess / 1000}s)`\n        );\n      }\n    }\n  }\n\n  /**\n   * Load content of a lazy node.\n   * If the node is already loaded, nothing happens.\n   * @param [forceReload=false] If true, reload even if already loaded.\n   */\n  async loadLazy(forceReload: boolean = false) {\n    const wasExpanded = this.expanded;\n\n    util.assert(this.lazy, \"load() requires a lazy node\");\n\n    if (!forceReload && !this.isUnloaded()) {\n      return; // Already loaded: nothing to do\n    }\n    if (this.isLoading()) {\n      this.logWarn(\"loadLazy() called while already loading: ignored.\");\n      return; // Already loading: prevent duplicate requests\n    }\n    if (this.isLoaded()) {\n      this.resetLazy(); // Also collapses if currently expanded\n    }\n    // `lazyLoad` may be long-running, so mark node as loading now. `this.load()`\n    // will reset the status later.\n    this.setStatus(NodeStatusType.loading);\n    try {\n      const source = await this._callEvent(\"lazyLoad\");\n      if (source === false) {\n        this.setStatus(NodeStatusType.ok);\n        return;\n      }\n      util.assert(\n        util.isArray(source) || (source && source.url),\n        \"The lazyLoad event must return a node list, `{url: ...}`, or false.\"\n      );\n\n      await this.load(source);\n\n      this.setStatus(NodeStatusType.ok); // Also resets `this._isLoading`\n\n      if (wasExpanded) {\n        this.expanded = true;\n        this.tree.update(ChangeType.structure);\n      } else {\n        this.update(); // Fix expander icon to 'loaded'\n      }\n    } catch (e) {\n      this.logError(\"Error during loadLazy()\", e);\n      this._callEvent(\"error\", { error: e });\n      // Also resets `this._isLoading`:\n      this.setStatus(NodeStatusType.error, { message: \"\" + e });\n    }\n    return;\n  }\n\n  /** Write to `console.log` with node name as prefix if opts.debugLevel >= 4.\n   * @see {@link WunderbaumNode.logDebug}\n   */\n  log(...args: any[]) {\n    if (this.tree.options.debugLevel! >= 4) {\n      console.log(this.toString(), ...args); // eslint-disable-line no-console\n    }\n  }\n\n  /** Write to `console.debug` with node name as prefix if opts.debugLevel >= 4\n   * and browser console level includes debug/verbose messages.\n   * @see {@link WunderbaumNode.log}\n   */\n  logDebug(...args: any[]) {\n    if (this.tree.options.debugLevel! >= 4) {\n      console.debug(this.toString(), ...args); // eslint-disable-line no-console\n    }\n  }\n\n  /** Write to `console.error` with node name as prefix if opts.debugLevel >= 1. */\n  logError(...args: any[]) {\n    if (this.tree.options.debugLevel! >= 1) {\n      console.error(this.toString(), ...args); // eslint-disable-line no-console\n    }\n  }\n\n  /** Write to `console.info` with node name as prefix if opts.debugLevel >= 3. */\n  logInfo(...args: any[]) {\n    if (this.tree.options.debugLevel! >= 3) {\n      console.info(this.toString(), ...args); // eslint-disable-line no-console\n    }\n  }\n\n  /** Write to `console.warn` with node name as prefix if opts.debugLevel >= 2. */\n  logWarn(...args: any[]) {\n    if (this.tree.options.debugLevel! >= 2) {\n      console.warn(this.toString(), ...args); // eslint-disable-line no-console\n    }\n  }\n\n  /** Expand all parents and optionally scroll into visible area as neccessary.\n   * Promise is resolved, when lazy loading and animations are done.\n   * @param {object} [options] passed to `setExpanded()`.\n   *     Defaults to {noAnimation: false, noEvents: false, scrollIntoView: true}\n   */\n  async makeVisible(options?: MakeVisibleOptions) {\n    let i;\n    const dfd = new Deferred();\n    const deferreds = [];\n    const parents = this.getParentList(false, false);\n    const len = parents.length;\n    const noAnimation = util.getOption(options, \"noAnimation\", false);\n    const scroll = util.getOption(options, \"scrollIntoView\", true);\n\n    // Expand bottom-up, so only the top node is animated\n    for (i = len - 1; i >= 0; i--) {\n      // self.debug(\"pushexpand\" + parents[i]);\n      const seOpts = { noAnimation: noAnimation };\n      deferreds.push(parents[i].setExpanded(true, seOpts));\n    }\n    Promise.all(deferreds).then(() => {\n      // All expands have finished\n      // self.debug(\"expand DONE\", scroll);\n      // Note: this.tree may be none when switching demo trees\n      if (scroll && this.tree) {\n        // Make sure markup and _rowIdx is updated before we do the scroll calculations\n        this.tree.updatePendingModifications();\n        this.scrollIntoView().then(() => {\n          // self.debug(\"scroll DONE\");\n          dfd.resolve();\n        });\n      } else {\n        dfd.resolve();\n      }\n    });\n    return dfd.promise();\n  }\n\n  /** Move this node to targetNode. */\n  moveTo(\n    targetNode: WunderbaumNode,\n    mode: InsertNodeType = \"appendChild\",\n    map?: NodeAnyCallback\n  ) {\n    if (<string>mode === \"over\") {\n      mode = \"appendChild\"; // compatible with drop region\n    }\n    if (mode === \"prependChild\") {\n      if (targetNode.children && targetNode.children.length) {\n        mode = \"before\";\n        targetNode = targetNode.children[0];\n      } else {\n        mode = \"appendChild\";\n      }\n    }\n    let pos;\n    const tree = this.tree;\n    const prevParent = this.parent;\n    const targetParent =\n      mode === \"appendChild\" ? targetNode : targetNode.parent;\n\n    if (this === targetNode) {\n      return;\n    } else if (!this.parent) {\n      util.error(\"Cannot move system root\");\n    } else if (targetParent.isDescendantOf(this)) {\n      util.error(\"Cannot move a node to its own descendant\");\n    }\n    if (targetParent !== prevParent) {\n      prevParent.triggerModifyChild(\"remove\", this);\n    }\n    // Unlink this node from current parent\n    if (this.parent.children!.length === 1) {\n      if (this.parent === targetParent) {\n        return; // #258\n      }\n      this.parent.children = this.parent.lazy ? [] : null;\n      this.parent.expanded = false;\n    } else {\n      pos = this.parent.children!.indexOf(this);\n      util.assert(pos >= 0, \"invalid source parent\");\n      this.parent.children!.splice(pos, 1);\n    }\n\n    // Insert this node to target parent's child list\n    this.parent = targetParent;\n    if (targetParent.hasChildren()) {\n      switch (mode) {\n        case \"appendChild\":\n          // Append to existing target children\n          targetParent.children!.push(this);\n          break;\n        case \"before\":\n          // Insert this node before target node\n          pos = targetParent.children!.indexOf(targetNode);\n          util.assert(pos >= 0, \"invalid target parent\");\n          targetParent.children!.splice(pos, 0, this);\n          break;\n        case \"after\":\n          // Insert this node after target node\n          pos = targetParent.children!.indexOf(targetNode);\n          util.assert(pos >= 0, \"invalid target parent\");\n          targetParent.children!.splice(pos + 1, 0, this);\n          break;\n        default:\n          util.error(`Invalid mode '${mode}'.`);\n      }\n    } else {\n      targetParent.children = [this];\n    }\n\n    // Let caller modify the nodes\n    if (map) {\n      targetNode.visit(map, true);\n    }\n    if (targetParent === prevParent) {\n      targetParent.triggerModifyChild(\"move\", this);\n    } else {\n      // prevParent.triggerModifyChild(\"remove\", this);\n      targetParent.triggerModifyChild(\"add\", this);\n    }\n    // Handle cross-tree moves\n    if (tree !== targetNode.tree) {\n      // Fix node.tree for all source nodes\n      // \tutil.assert(false, \"Cross-tree move is not yet implemented.\");\n      this.logWarn(\"Cross-tree moveTo is experimental!\");\n      this.visit((n) => {\n        // TODO: fix selection state and activation, ...\n        n.tree = targetNode.tree;\n      }, true);\n    }\n    // Make sure we update async, because discarding the markup would prevent\n    // DragAndDrop to generate a dragend event on the source node\n    setTimeout(() => {\n      // Even indentation may have changed:\n      tree.update(ChangeType.any);\n    }, 0);\n    // TODO: fix selection state\n    // TODO: fix active state\n  }\n\n  /** Set focus relative to this node and optionally activate.\n   *\n   * 'left' collapses the node if it is expanded, or move to the parent\n   * otherwise.\n   * 'right' expands the node if it is collapsed, or move to the first\n   * child otherwise.\n   *\n   * @param where 'down', 'first', 'last', 'left', 'parent', 'right', or 'up'.\n   *   (Alternatively the `event.key` that would normally trigger this move,\n   *   e.g. `ArrowLeft` = 'left'.\n   * @param options\n   */\n  async navigate(where: NavigationType | string, options?: NavigateOptions) {\n    // Allow to pass 'ArrowLeft' instead of 'left'\n    const navType = (KEY_TO_NAVIGATION_MAP[where] ?? where) as NavigationType;\n\n    // Otherwise activate or focus the related node\n    const node = this.findRelatedNode(navType);\n    if (!node) {\n      this.logWarn(`Could not find related node '${where}'.`);\n      return Promise.resolve(this);\n    }\n    // setFocus/setActive will scroll later (if autoScroll is specified)\n    try {\n      node.makeVisible({ scrollIntoView: false });\n    } catch (e) {\n      // ignore\n    }\n    node.setFocus();\n    if (options?.activate === false) {\n      return Promise.resolve(this);\n    }\n    return node.setActive(true, { event: options?.event });\n  }\n\n  /** Delete this node and all descendants. */\n  remove() {\n    const tree = this.tree;\n    const pos = this.parent.children!.indexOf(this);\n    this.triggerModify(\"remove\");\n    this.parent.children!.splice(pos, 1);\n    this.visit((n) => {\n      n.removeMarkup();\n      tree._unregisterNode(n);\n    }, true);\n    tree.update(ChangeType.structure);\n  }\n\n  /** Remove all descendants of this node. */\n  removeChildren() {\n    const tree = this.tree;\n\n    if (!this.children) {\n      return;\n    }\n    if (tree.activeNode?.isDescendantOf(this)) {\n      tree.activeNode.setActive(false); // TODO: don't fire events\n    }\n    if (tree.focusNode?.isDescendantOf(this)) {\n      tree._setFocusNode(null);\n    }\n    // TODO: persist must take care to clear select and expand cookies\n    // Unlink children to support GC\n    // TODO: also delete this.children (not possible using visit())\n    this.triggerModifyChild(\"remove\", null);\n    this.visit((n) => {\n      tree._unregisterNode(n);\n    });\n    if (this.lazy) {\n      // 'undefined' would be interpreted as 'not yet loaded' for lazy nodes\n      this.children = [];\n    } else {\n      this.children = null;\n    }\n    // util.assert(this.parent); // don't call this for root node\n    if (!this.isRootNode()) {\n      this.expanded = false;\n    }\n    this.tree.update(ChangeType.structure);\n  }\n\n  /** Remove all HTML markup from the DOM. */\n  removeMarkup() {\n    if (this._rowElem) {\n      delete (<any>this._rowElem)._wb_node;\n      this._rowElem.remove();\n      this._rowElem = undefined;\n    }\n  }\n\n  protected _getRenderInfo(): any {\n    const allColInfosById: ColumnEventInfoMap = {};\n    const renderColInfosById: ColumnEventInfoMap = {};\n    const isColspan = this.isColspan();\n    const colElems = this._rowElem\n      ? ((<unknown>(\n          this._rowElem.querySelectorAll(\"span.wb-col\")\n        )) as HTMLSpanElement[])\n      : null;\n\n    let idx = 0;\n    for (const col of this.tree.columns) {\n      allColInfosById[col.id] = {\n        id: col.id,\n        idx: idx,\n        elem: colElems ? colElems[idx] : null,\n        info: col,\n      };\n      // renderColInfosById only contains columns that need rendering:\n      if (!isColspan && col.id !== \"*\") {\n        renderColInfosById[col.id] = allColInfosById[col.id];\n      }\n      idx++;\n    }\n    return {\n      allColInfosById: allColInfosById,\n      renderColInfosById: renderColInfosById,\n    };\n  }\n\n  protected _createIcon(\n    parentElem: HTMLElement,\n    replaceChild: HTMLElement | null,\n    showLoading: boolean\n  ): HTMLElement | null {\n    const iconElem = this.tree._createNodeIcon(this, showLoading, true);\n    if (iconElem) {\n      if (replaceChild) {\n        parentElem.replaceChild(iconElem, replaceChild);\n      } else {\n        parentElem.appendChild(iconElem);\n      }\n    }\n    return iconElem;\n  }\n\n  /**\n   * Create a whole new `<div class=\"wb-row\">` element.\n   * @see {@link WunderbaumNode._render}\n   */\n  protected _render_markup(opts: RenderOptions) {\n    const tree = this.tree;\n    const treeOptions = tree.options;\n    const rowHeight = treeOptions.rowHeightPx;\n    const checkbox = this.getOption(\"checkbox\");\n    const columns = tree.columns;\n    const level = this.getLevel();\n    const activeColIdx = tree.isRowNav() ? null : tree.activeColIdx;\n\n    let elem: HTMLElement;\n    let rowDiv = this._rowElem;\n    let checkboxSpan: HTMLElement | null = null;\n    let expanderSpan: HTMLElement | null = null;\n\n    const isNew = !rowDiv;\n    util.assert(isNew, \"Expected unrendered node\");\n    util.assert(\n      !isNew || (opts && opts.after),\n      \"opts.after expected, unless updating\"\n    );\n    util.assert(!this.isRootNode(), \"Root node not allowed\");\n\n    rowDiv = document.createElement(\"div\");\n    rowDiv.classList.add(\"wb-row\");\n\n    rowDiv.style.top = this._rowIdx! * rowHeight + \"px\";\n\n    this._rowElem = rowDiv;\n\n    // Attach a node reference to the DOM Element:\n    (<any>rowDiv)._wb_node = this;\n\n    const nodeElem: HTMLSpanElement = document.createElement(\"span\");\n    nodeElem.classList.add(\"wb-node\", \"wb-col\");\n    rowDiv.appendChild(nodeElem);\n\n    let ofsTitlePx = 0;\n\n    if (checkbox) {\n      checkboxSpan = document.createElement(\"i\");\n      checkboxSpan.classList.add(\"wb-checkbox\");\n      if (checkbox === \"radio\" || this.parent.radiogroup) {\n        checkboxSpan.classList.add(\"wb-radio\");\n      }\n      nodeElem.appendChild(checkboxSpan);\n      ofsTitlePx += ICON_WIDTH;\n    }\n\n    for (let i = level - 1; i > 0; i--) {\n      elem = document.createElement(\"i\");\n      elem.classList.add(\"wb-indent\");\n      nodeElem.appendChild(elem);\n      ofsTitlePx += ICON_WIDTH;\n    }\n\n    if (!treeOptions.minExpandLevel || level > treeOptions.minExpandLevel) {\n      expanderSpan = document.createElement(\"i\");\n      expanderSpan.classList.add(\"wb-expander\");\n      nodeElem.appendChild(expanderSpan);\n      ofsTitlePx += ICON_WIDTH;\n    }\n\n    // Render the icon (show a 'loading' icon if we do not have an expander that\n    // we would prefer).\n    const iconSpan = this._createIcon(nodeElem, null, !expanderSpan);\n    if (iconSpan) {\n      ofsTitlePx += ICON_WIDTH;\n    }\n\n    const titleSpan = document.createElement(\"span\");\n    titleSpan.classList.add(\"wb-title\");\n    nodeElem.appendChild(titleSpan);\n\n    // this._callEvent(\"enhanceTitle\", { titleSpan: titleSpan });\n\n    // Store the width of leading icons with the node, so we can calculate\n    // the width of the embedded title span later\n    (<any>nodeElem)._ofsTitlePx = ofsTitlePx;\n\n    // Support HTML5 drag-n-drop\n    if (tree.options.dnd!.dragStart) {\n      nodeElem.draggable = true;\n    }\n\n    // Render columns\n    const isColspan = this.isColspan();\n\n    if (!isColspan && columns.length > 1) {\n      let colIdx = 0;\n      for (const col of columns) {\n        colIdx++;\n\n        let colElem;\n        if (col.id === \"*\") {\n          colElem = nodeElem;\n        } else {\n          colElem = document.createElement(\"span\");\n          colElem.classList.add(\"wb-col\");\n          rowDiv.appendChild(colElem);\n        }\n        if (colIdx === activeColIdx) {\n          colElem.classList.add(\"wb-active\");\n        }\n        // Add classes from `columns` definition to `<div.wb-col>` cells\n        col.classes ? colElem.classList.add(...col.classes.split(\" \")) : 0;\n\n        colElem.style.left = col._ofsPx + \"px\";\n        colElem.style.width = col._widthPx + \"px\";\n        if (isNew && col.html) {\n          if (typeof col.html === \"string\") {\n            colElem.innerHTML = col.html;\n          }\n        }\n      }\n    }\n    // Attach to DOM as late as possible\n    const after = opts ? opts.after : \"last\";\n    switch (after) {\n      case \"first\":\n        tree.nodeListElement.prepend(rowDiv);\n        break;\n      case \"last\":\n        tree.nodeListElement.appendChild(rowDiv);\n        break;\n      default:\n        opts.after.after(rowDiv);\n    }\n    // Now go on and fill in data and update classes\n    opts.isNew = true;\n    this._render_data(opts);\n  }\n\n  /**\n   * Render `node.title`, `.icon` into an existing row.\n   *\n   * @see {@link WunderbaumNode._render}\n   */\n  protected _render_data(opts: RenderOptions) {\n    util.assert(this._rowElem, \"No _rowElem\");\n\n    const tree = this.tree;\n    const treeOptions = tree.options;\n    const rowDiv = this._rowElem!;\n    const isNew = !!opts.isNew; // Called by _render_markup()?\n    const preventScroll = !!opts.preventScroll;\n    const columns = tree.columns;\n    const isColspan = this.isColspan();\n\n    // Row markup already exists\n    const nodeElem = rowDiv.querySelector(\"span.wb-node\") as HTMLSpanElement;\n    const titleSpan = nodeElem.querySelector(\n      \"span.wb-title\"\n    ) as HTMLSpanElement;\n\n    const scrollTop = tree.element.scrollTop;\n    if (this.titleWithHighlight) {\n      titleSpan.innerHTML = this.titleWithHighlight;\n    } else {\n      titleSpan.textContent = this.title; // TODO: this triggers scroll events\n    }\n    const tooltip = this.getOption(\"tooltip\", false);\n    if (tooltip) {\n      titleSpan.title = tooltip === true ? this.title : tooltip;\n    }\n\n    // NOTE: At least on Safari, this render call triggers a scroll event\n    // probably when a focused input is replaced.\n    if (preventScroll) {\n      tree.element.scrollTop = scrollTop;\n    }\n\n    // Set the width of the title span, so overflow ellipsis work\n    if (!treeOptions.skeleton) {\n      if (isColspan) {\n        const vpWidth = tree.element.clientWidth;\n        titleSpan.style.width =\n          vpWidth - (<any>nodeElem)._ofsTitlePx - TITLE_SPAN_PAD_Y + \"px\";\n      } else {\n        titleSpan.style.width =\n          columns[0]._widthPx! -\n          (<any>nodeElem)._ofsTitlePx -\n          TITLE_SPAN_PAD_Y +\n          \"px\";\n      }\n    }\n\n    // Update row classes\n    opts.isDataChange = true;\n    this._render_status(opts);\n\n    // Let user modify the result\n    if (this.statusNodeType) {\n      this._callEvent(\"renderStatusNode\", {\n        isNew: isNew,\n        nodeElem: nodeElem,\n        isColspan: isColspan,\n      });\n    } else if (this.parent) {\n      // Skip root node\n      const renderInfo = this._getRenderInfo();\n\n      this._callEvent(\"render\", {\n        isNew: isNew,\n        nodeElem: nodeElem,\n        isColspan: isColspan,\n        allColInfosById: renderInfo.allColInfosById,\n        renderColInfosById: renderInfo.renderColInfosById,\n      });\n    }\n  }\n\n  /**\n   * Update row classes to reflect active, focuses, etc.\n   * @see {@link WunderbaumNode._render}\n   */\n  protected _render_status(opts: RenderOptions) {\n    // this.log(\"_render_status\", opts);\n    const tree = this.tree;\n    const iconMap = tree.iconMap;\n    const treeOptions = tree.options;\n    const typeInfo = this.type ? tree.types[this.type] : null;\n    const rowDiv = this._rowElem!;\n\n    // Row markup already exists\n    const nodeSpan = rowDiv.querySelector(\"span.wb-node\") as HTMLSpanElement;\n    const expanderElem = nodeSpan.querySelector(\n      \"i.wb-expander\"\n    ) as HTMLLIElement;\n    const checkboxElem = nodeSpan.querySelector(\n      \"i.wb-checkbox\"\n    ) as HTMLLIElement;\n\n    const rowClasses = [\"wb-row\"];\n    this.expanded ? rowClasses.push(\"wb-expanded\") : 0;\n    this.lazy ? rowClasses.push(\"wb-lazy\") : 0;\n    this.selected ? rowClasses.push(\"wb-selected\") : 0;\n    this._partsel ? rowClasses.push(\"wb-partsel\") : 0;\n    this === tree.activeNode ? rowClasses.push(\"wb-active\") : 0;\n    this === tree.focusNode ? rowClasses.push(\"wb-focus\") : 0;\n    this._errorInfo ? rowClasses.push(\"wb-error\") : 0;\n    this._isLoading ? rowClasses.push(\"wb-loading\") : 0;\n    this.isColspan() ? rowClasses.push(\"wb-colspan\") : 0;\n    this.statusNodeType\n      ? rowClasses.push(\"wb-status-\" + this.statusNodeType)\n      : 0;\n\n    this.match ? rowClasses.push(\"wb-match\") : 0;\n    this.subMatchCount ? rowClasses.push(\"wb-submatch\") : 0;\n    treeOptions.skeleton ? rowClasses.push(\"wb-skeleton\") : 0;\n\n    // Replace previous classes:\n    rowDiv.className = rowClasses.join(\" \");\n\n    // Add classes from `node.classes`\n    this.classes ? rowDiv.classList.add(...this.classes) : 0;\n\n    // Add classes from `tree.types[node.type]`\n    if (typeInfo && typeInfo.classes) {\n      rowDiv.classList.add(...typeInfo.classes);\n    }\n\n    if (expanderElem) {\n      let image = null;\n      if (this._isLoading) {\n        image = iconMap.loading;\n      } else if (this.isExpandable(false)) {\n        if (this.expanded) {\n          image = iconMap.expanderExpanded;\n        } else {\n          image = iconMap.expanderCollapsed;\n        }\n      } else if (this.lazy && this.children == null) {\n        image = iconMap.expanderLazy;\n      }\n\n      if (image == null) {\n        expanderElem.className = \"wb-expander\";\n        expanderElem.classList.add(\"wb-indent\");\n      } else if (TEST_HTML.test(image)) {\n        expanderElem.replaceWith(util.elemFromHtml(image));\n      } else if (TEST_FILE_PATH.test(image)) {\n        expanderElem.style.backgroundImage = `url('${image}')`;\n      } else {\n        expanderElem.className = \"wb-expander \" + image;\n      }\n    }\n    if (checkboxElem) {\n      let cbclass = \"wb-checkbox \";\n      if (this.isRadio()) {\n        cbclass += \"wb-radio \";\n        if (this.selected) {\n          cbclass += iconMap.radioChecked;\n          // } else if (this._partsel) {\n          //   cbclass += iconMap.radioUnknown;\n        } else {\n          cbclass += iconMap.radioUnchecked;\n        }\n      } else {\n        if (this.selected) {\n          cbclass += iconMap.checkChecked;\n        } else if (this._partsel) {\n          cbclass += iconMap.checkUnknown;\n        } else {\n          cbclass += iconMap.checkUnchecked;\n        }\n      }\n      checkboxElem.className = cbclass;\n    }\n    // Fix active cell in cell-nav mode\n    if (!opts.isNew) {\n      let i = 0;\n      for (const colSpan of rowDiv.children) {\n        colSpan.classList.toggle(\"wb-active\", i++ === tree.activeColIdx);\n        colSpan.classList.remove(\"wb-error\", \"wb-invalid\");\n      }\n      // Update icon (if not opts.isNew, which would rebuild markup anyway)\n      const iconSpan = nodeSpan.querySelector(\"i.wb-icon\") as HTMLElement;\n      if (iconSpan) {\n        this._createIcon(nodeSpan, iconSpan, !expanderElem);\n      }\n    }\n    // Adjust column width\n    if (opts.resizeCols !== false && !this.isColspan()) {\n      const colElems = rowDiv.querySelectorAll(\"span.wb-col\");\n      let idx = 0;\n      let ofs = 0;\n      for (const colDef of this.tree.columns) {\n        const colElem = colElems[idx] as HTMLSpanElement;\n        colElem.style.left = `${ofs}px`;\n        colElem.style.width = `${colDef._widthPx}px`;\n        idx++;\n        ofs += colDef._widthPx!;\n      }\n    }\n  }\n\n  /*\n   * Create or update node's markup.\n   *\n   * `options.change` defaults to ChangeType.data, which updates the title,\n   * icon, and status. It also triggers the `render` event, that lets the user\n   * create or update the content of embeded cell elements.\n   *\n   * If only the status or other class-only modifications have changed,\n   * `options.change` should be set to ChangeType.status instead for best\n   * efficiency.\n   *\n   * Calling `update()` is almost always a better alternative.\n   * @see {@link WunderbaumNode.update}\n   */\n  _render(options?: RenderOptions) {\n    // this.log(\"render\", options);\n    const opts = Object.assign({ change: ChangeType.data }, options);\n    if (!this._rowElem) {\n      opts.change = ChangeType.row;\n    }\n    switch (opts.change) {\n      case \"status\":\n        this._render_status(opts);\n        break;\n      case \"data\":\n        this._render_data(opts);\n        break;\n      case \"row\":\n        // _rowElem is not yet created (asserted in _render_markup)\n        this._render_markup(opts);\n        break;\n      default:\n        util.error(`Invalid change type '${opts.change}'.`);\n    }\n  }\n\n  /**\n   * Remove all children, collapse, and set the lazy-flag, so that the lazyLoad\n   * event is triggered on next expand.\n   */\n  resetLazy() {\n    this.removeChildren();\n    this.expanded = false;\n    this.lazy = true;\n    this.children = null;\n    this.tree.update(ChangeType.structure);\n  }\n\n  /** Convert node (or whole branch) into a plain object.\n   *\n   * The result is compatible with node.addChildren().\n   *\n   * @param recursive include child nodes\n   * @param callback is called for every node, in order to allow\n   *     modifications.\n   *     Return `false` to ignore this node or `\"skip\"` to include this node\n   *     without its children.\n   * @see {@link Wunderbaum.toDictArray}.\n   */\n  toDict(recursive = false, callback?: NodeToDictCallback): WbNodeData {\n    const dict: any = {};\n\n    NODE_DICT_PROPS.forEach((propName: string) => {\n      const val = (<any>this)[propName];\n\n      if (val instanceof Set) {\n        // Convert Set to string (or skip if set is empty)\n        val.size\n          ? (dict[propName] = Array.prototype.join.call(val.keys(), \" \"))\n          : 0;\n      } else if (val || val === false || val === 0) {\n        dict[propName] = val;\n      }\n    });\n    if (!util.isEmptyObject(this.data)) {\n      dict.data = util.extend({}, this.data);\n      if (util.isEmptyObject(dict.data)) {\n        delete dict.data;\n      }\n    }\n    if (callback) {\n      const res = callback(dict, this);\n      if (res === false) {\n        // Note: a return value of `false` is only used internally\n        return <any>false; // Don't include this node nor its children\n      }\n      if (res === \"skip\") {\n        recursive = false; // Include this node, but not the children\n      }\n    }\n    if (recursive) {\n      if (util.isArray(this.children)) {\n        dict.children = [];\n        for (let i = 0, l = this.children!.length; i < l; i++) {\n          const node = this.children![i];\n          if (!node.isStatusNode()) {\n            // Note: a return value of `false` is only used internally\n            const res = <any>node.toDict(true, callback);\n            if (res !== false) {\n              dict.children.push(res);\n            }\n          }\n        }\n      }\n    }\n    return dict;\n  }\n\n  /** Return an option value that has a default, but may be overridden by a\n   * callback or a node instance attribute.\n   *\n   * Evaluation sequence:\n   *\n   * - If `tree.options.<name>` is a callback that returns something, use that.\n   * - Else if `node.<name>` is defined, use that.\n   * - Else if `tree.types[<node.type>]` is a value, use that.\n   * - Else if `tree.options.<name>` is a value, use that.\n   * - Else use `defaultValue`.\n   *\n   * @param name name of the option property (on node and tree)\n   * @param defaultValue return this if nothing else matched\n   * {@link Wunderbaum.getOption|Wunderbaum.getOption}\n   */\n  getOption(name: string, defaultValue?: any) {\n    const tree = this.tree;\n    let opts: any = tree.options;\n\n    // Lookup `name` in options dict\n    if (name.indexOf(\".\") >= 0) {\n      [opts, name] = name.split(\".\");\n    }\n    const value = opts[name]; // ?? defaultValue;\n\n    // A callback resolver always takes precedence\n    if (typeof value === \"function\") {\n      const res = value.call(tree, {\n        type: \"resolve\",\n        tree: tree,\n        node: this,\n        // typeInfo: this.type ? tree.types[this.type] : {},\n      });\n      if (res !== undefined) {\n        return res;\n      }\n    }\n    // If this node has an explicit local setting, use it:\n    if ((<any>this)[name] !== undefined) {\n      return (<any>this)[name];\n    }\n    // Use value from type definition if defined\n    const typeInfo = this.type ? tree.types[this.type] : undefined;\n    const res = typeInfo ? typeInfo[name] : undefined;\n    if (res !== undefined) {\n      return res;\n    }\n    // Use value from value options dict, fallback do default\n    return value ?? defaultValue;\n  }\n\n  /** Make sure that this node is visible in the viewport.\n   * @see {@link Wunderbaum.scrollTo|Wunderbaum.scrollTo}\n   */\n  async scrollIntoView(options?: ScrollIntoViewOptions) {\n    const opts = Object.assign({ node: this }, options);\n    return this.tree.scrollTo(opts);\n  }\n\n  /**\n   * Activate this node, deactivate previous, send events, activate column and\n   * scroll into viewport.\n   */\n  async setActive(flag: boolean = true, options?: SetActiveOptions) {\n    const tree = this.tree;\n    const prev = tree.getActiveNode();\n    const retrigger = options?.retrigger; // Default: false\n    const focusTree = options?.focusTree; // Default: false\n    // const focusNode = options?.focusNode !== false; // Default: true\n    const noEvents = options?.noEvents; // Default: false\n    const orgEvent = options?.event; // Default: null\n    const colIdx = options?.colIdx; // Default: null\n    const edit = options?.edit; // Default: false\n\n    // util.assert(!colIdx || tree.isCellNav(), \"colIdx requires cellNav\");\n    util.assert(!edit || colIdx != null, \"edit requires colIdx\");\n\n    if (!noEvents) {\n      if (flag) {\n        if (prev !== this || retrigger) {\n          if (\n            prev?._callEvent(\"deactivate\", {\n              nextNode: this,\n              event: orgEvent,\n            }) === false ||\n            this._callEvent(\"beforeActivate\", {\n              prevNode: prev,\n              event: orgEvent,\n            }) === false\n          ) {\n            return;\n          }\n          tree._setActiveNode(null);\n          prev?.update(ChangeType.status);\n        }\n      } else if (prev === this || retrigger) {\n        this._callEvent(\"deactivate\", { nextNode: null, event: orgEvent });\n      }\n    }\n\n    if (prev !== this) {\n      if (flag) {\n        tree._setActiveNode(this);\n      }\n      prev?.update(ChangeType.status);\n      this.update(ChangeType.status);\n    }\n    return this.makeVisible().then(() => {\n      if (flag) {\n        if (focusTree || edit) {\n          tree.setFocus();\n          tree._setFocusNode(this);\n          tree.focusNode!.setFocus();\n        }\n        // if (focusNode || edit) {\n        //   tree.focusNode = this;\n        //   tree.focusNode.setFocus();\n        // }\n        if (colIdx != null && tree.isCellNav()) {\n          tree.setColumn(colIdx, { edit: edit });\n        }\n        if (!noEvents) {\n          this._callEvent(\"activate\", { prevNode: prev, event: orgEvent });\n        }\n      }\n    });\n  }\n\n  /**\n   * Expand or collapse this node.\n   */\n  async setExpanded(flag: boolean = true, options?: SetExpandedOptions) {\n    const { force, scrollIntoView, immediate, resetLazy } = options ?? {};\n    const sendEvents = !options?.noEvents; // Default: send events\n\n    if (\n      !flag &&\n      this.isExpanded() &&\n      this.getLevel() <= this.tree.getOption(\"minExpandLevel\") &&\n      !force\n    ) {\n      this.logDebug(\"Ignored collapse request below minExpandLevel.\");\n      return;\n    }\n    if (!flag === !this.expanded) {\n      return; // Nothing to do\n    }\n    if (\n      sendEvents &&\n      this._callEvent(\"beforeExpand\", { flag: flag }) === false\n    ) {\n      return;\n    }\n\n    // this.log(\"setExpanded()\");\n    if (flag && this.getOption(\"autoCollapse\")) {\n      this.collapseSiblings(options);\n    }\n    if (flag && this.lazy && this.children == null) {\n      await this.loadLazy();\n    } else if (!flag && resetLazy && this.lazy && this.children) {\n      this.resetLazy();\n    }\n    this.expanded = flag;\n    const updateOpts = { immediate: immediate };\n    // const updateOpts = { immediate: !!util.getOption(options, \"immediate\") };\n    this.tree.update(ChangeType.structure, updateOpts);\n    if (flag && scrollIntoView) {\n      const lastChild = this.getLastChild();\n      if (lastChild) {\n        this.tree.updatePendingModifications();\n        lastChild.scrollIntoView({ topNode: this });\n      }\n    }\n    if (sendEvents) {\n      this._callEvent(\"expand\", { flag: flag });\n    }\n  }\n\n  /**\n   * Set keyboard focus here.\n   * @see {@link setActive}\n   */\n  setFocus(flag: boolean = true) {\n    util.assert(!!flag, \"Blur is not yet implemented\");\n    const prev = this.tree.focusNode;\n    this.tree._setFocusNode(this);\n    prev?.update();\n    this.update();\n  }\n\n  /** Set a new icon path or class. */\n  setIcon(icon: string) {\n    this.icon = icon;\n    this.update();\n  }\n\n  /** Change node's {@link key} and/or {@link refKey}.  */\n  setKey(key: string | null, refKey: string | null) {\n    throw new Error(\"Not yet implemented\");\n  }\n  // /**\n  //  * Calculate a *stable*, unique key for this node from its refKey (or title).\n  //  * We also add information from the parent, because a refKey may occur multiple\n  //  * times in a tree.\n  //  */\n  // calcUniqueKey() {\n  //   // Assuming that the parent's key was calculated the same way, we implicitly\n  //   // involve the whole refKey-path:\n  //   const s = this.key + (this.refKey || this.title);\n  //   // 32-bit has a high probability of collisions, so we pump up to 64-bit\n  //   // https://security.stackexchange.com/q/209882/207588\n  //   const h1 = util.murmurHash3(s, true);\n  //   return \"id_\" + h1 + util.murmurHash3(h1 + s, true);\n  //   // const l = [];\n  //   // // eslint-disable-next-line  @typescript-eslint/no-this-alias\n  //   // let node: WunderbaumNode = this;\n  //   // while (node.parent) {\n  //   //   l.unshift(node.refKey || node.key);\n  //   //   node = node.parent;\n  //   // }\n  //   // const path = l.join(\"/\");\n  //   // 32-bit has a high probability of collisions, so we pump up to 64-bit\n  //   // https://security.stackexchange.com/q/209882/207588\n  //   // const h1 = util.murmurHash3(path, true);\n  //   // return \"id_\" + h1 + util.murmurHash3(h1 + path, true);\n  // }\n\n  /**\n   * Trigger a repaint, typically after a status or data change.\n   *\n   * `change` defaults to 'data', which handles modifcations of title, icon,\n   * and column content. It can be reduced to 'ChangeType.status' if only\n   * active/focus/selected state has changed.\n   *\n   * This method will eventually call  {@link WunderbaumNode._render} with\n   * default options, but may be more consistent with the tree's\n   * {@link Wunderbaum.update} API.\n   */\n  update(change: ChangeType = ChangeType.data) {\n    util.assert(\n      change === ChangeType.status || change === ChangeType.data,\n      `Invalid change type ${change}`\n    );\n    this.tree.update(change, this);\n  }\n\n  /**\n   * Return an array of selected nodes.\n   * @param stopOnParents only return the topmost selected node (useful with selectMode 'hier')\n   */\n  getSelectedNodes(stopOnParents: boolean = false): WunderbaumNode[] {\n    const nodeList: WunderbaumNode[] = [];\n    this.visit((node) => {\n      if (node.selected) {\n        nodeList.push(node);\n        if (stopOnParents === true) {\n          return \"skip\"; // stop processing this branch\n        }\n      }\n    });\n    return nodeList;\n  }\n\n  /**\n   * Return an array of refKey values.\n   *\n   * RefKeys are unique identifiers for a node data, and are used to identify\n   * clones.\n   * If more than one node has the same refKey, it is only returned once.\n   * @param selected if true, only return refKeys of selected nodes.\n   */\n  getRefKeys(selected = false): string[] {\n    const refKeys = new Set<string>();\n    this.visit((node) => {\n      if (node.refKey != null && (!selected || node.selected)) {\n        refKeys.add(node.refKey);\n      }\n    });\n    return Array.from(refKeys);\n  }\n\n  /** Toggle the check/uncheck state. */\n  toggleSelected(options?: SetSelectedOptions): TristateType {\n    let flag = this.isSelected();\n    if (flag === undefined && !this.isRadio()) {\n      flag = this._anySelectable();\n    } else {\n      flag = !flag;\n    }\n    return this.setSelected(flag, options);\n  }\n\n  /** Return true if at least on selectable descendant end-node is unselected. @internal */\n  _anySelectable(): boolean {\n    let found = false;\n    this.visit((node) => {\n      if (\n        node.selected === false &&\n        !node.unselectable &&\n        !node.hasChildren() &&\n        !node.parent.radiogroup\n      ) {\n        found = true;\n        return false; // Stop iteration\n      }\n    });\n    return found;\n  }\n\n  /* Apply selection state to a single node. */\n  protected _changeSelectStatusProps(state: TristateType): boolean {\n    let changed = false;\n    switch (state) {\n      case false:\n        changed = this.selected || this._partsel;\n        this.selected = false;\n        this._partsel = false;\n        break;\n      case true:\n        changed = !this.selected || !this._partsel;\n        this.selected = true;\n        this._partsel = true;\n        break;\n      case undefined:\n        changed = this.selected || !this._partsel;\n        this.selected = false;\n        // #110: end nodess cannot have a `_partsel` flag\n        this._partsel = this.hasChildren() ? true : false;\n        break;\n      default:\n        util.error(`Invalid state: ${state}`);\n    }\n    if (changed) {\n      this.update();\n    }\n    return changed;\n  }\n  /**\n   * Fix selection status, after this node was (de)selected in `selectMode: 'hier'`.\n   * This includes (de)selecting all descendants.\n   */\n  fixSelection3AfterClick(opts?: SetSelectedOptions): void {\n    const force = !!opts?.force;\n    const flag = this.isSelected();\n\n    this.visit((node) => {\n      if (node.radiogroup) {\n        return \"skip\"; // Don't (de)select this branch\n      }\n      if (force || !node.getOption(\"unselectable\")) {\n        node._changeSelectStatusProps(flag);\n      }\n    });\n    this.fixSelection3FromEndNodes();\n  }\n\n  /**\n   * Fix selection status for multi-hier mode.\n   * Only end-nodes are considered to update the descendants branch and parents.\n   * Should be called after this node has loaded new children or after\n   * children have been modified using the API.\n   */\n  fixSelection3FromEndNodes(opts?: SetSelectedOptions): void {\n    const force = !!opts?.force;\n    util.assert(\n      this.tree.options.selectMode === \"hier\",\n      \"expected selectMode 'hier'\"\n    );\n\n    // Visit all end nodes and adjust their parent's `selected` and `_partsel`\n    // attributes. Return selection state true, false, or undefined.\n    const _walk = (node: WunderbaumNode) => {\n      let state;\n      const children = node.children;\n\n      if (children && children.length) {\n        // check all children recursively\n        let allSelected = true;\n        let someSelected = false;\n\n        for (let i = 0, l = children.length; i < l; i++) {\n          const child = children[i];\n          // the selection state of a node is not relevant; we need the end-nodes\n          const s = _walk(child);\n          if (s !== false) {\n            someSelected = true;\n          }\n          if (s !== true) {\n            allSelected = false;\n          }\n        }\n        state = allSelected ? true : someSelected ? undefined : false;\n      } else {\n        // This is an end-node: simply report the status\n        state = !!node.selected;\n      }\n      // #939: Keep a `_partsel` flag that was explicitly set on a lazy node\n      if (\n        node._partsel &&\n        !node.selected &&\n        node.lazy &&\n        node.children == null\n      ) {\n        state = undefined;\n      }\n      if (force || !node.getOption(\"unselectable\")) {\n        node._changeSelectStatusProps(state);\n      }\n      return state;\n    };\n    _walk(this);\n\n    // Update parent's state\n    this.visitParents((node) => {\n      let state;\n      const children = node.children!;\n      let allSelected = true;\n      let someSelected = false;\n\n      for (let i = 0, l = children.length; i < l; i++) {\n        const child = children[i];\n\n        state = !!child.selected;\n        // When fixing the parents, we trust the sibling status (i.e. we don't recurse)\n        if (state || child._partsel) {\n          someSelected = true;\n        }\n        if (!state) {\n          allSelected = false;\n        }\n      }\n      state = allSelected ? true : someSelected ? undefined : false;\n      node._changeSelectStatusProps(state);\n    });\n  }\n\n  /** Modify the check/uncheck state. */\n  setSelected(\n    flag: boolean = true,\n    options?: SetSelectedOptions\n  ): TristateType {\n    const tree = this.tree;\n    const sendEvents = !options?.noEvents; // Default: send events\n    const prev = this.isSelected();\n    const isRadio = this.parent && this.parent.radiogroup;\n    const selectMode = tree.options.selectMode;\n    const canSelect = options?.force || !this.getOption(\"unselectable\");\n\n    flag = !!flag;\n    // this.logDebug(`setSelected(${flag})`, this);\n    if (!canSelect) {\n      return prev;\n    }\n    if (options?.propagateDown && selectMode === \"multi\") {\n      tree.runWithDeferredUpdate(() => {\n        this.visit((node) => {\n          node.setSelected(flag);\n        });\n      });\n      return prev;\n    }\n\n    if (\n      flag === prev ||\n      (sendEvents && this._callEvent(\"beforeSelect\", { flag: flag }) === false)\n    ) {\n      return prev;\n    }\n\n    tree.runWithDeferredUpdate(() => {\n      if (isRadio) {\n        // Radiobutton Group\n        if (!flag && !options?.force) {\n          return prev; // don't uncheck radio buttons\n        }\n        for (const sibling of this.parent.children!) {\n          sibling.selected = sibling === this;\n        }\n      } else {\n        this.selected = flag;\n        if (selectMode === \"hier\") {\n          this.fixSelection3AfterClick();\n        } else if (selectMode === \"single\" && flag) {\n          tree.visit((n) => {\n            if (n !== this) {\n              n.selected = false;\n            }\n          });\n        }\n      }\n    });\n\n    if (sendEvents) {\n      this._callEvent(\"select\", { flag: flag });\n    }\n    return prev;\n  }\n\n  /** Display node status (ok, loading, error, noData) using styles and a dummy child node. */\n  setStatus(\n    status: NodeStatusType,\n    options?: SetStatusOptions\n  ): WunderbaumNode | null {\n    const tree = this.tree;\n    const message = options?.message;\n    const details = options?.details;\n\n    let statusNode: WunderbaumNode | null = null;\n\n    const _clearStatusNode = () => {\n      // Remove dedicated dummy node, if any\n      const children = this.children;\n\n      if (children && children.length && children[0].isStatusNode()) {\n        children[0].remove();\n      }\n    };\n\n    const _setStatusNode = (data: any) => {\n      // Create/modify the dedicated dummy node for 'loading...' or\n      // 'error!' status. (only called for direct child of the invisible\n      // system root)\n      const children = this.children;\n      const firstChild = children ? children[0] : null;\n\n      util.assert(data.statusNodeType, \"Not a status node\");\n      util.assert(\n        !firstChild || !firstChild.isStatusNode(),\n        \"Child must not be a status node\"\n      );\n\n      statusNode = this.addNode(data, \"prependChild\");\n      statusNode.match = -1; // Mark as 'match' to avoid hiding\n      tree.update(ChangeType.structure);\n\n      return statusNode;\n    };\n\n    _clearStatusNode();\n\n    switch (status) {\n      case \"ok\":\n        this._isLoading = false;\n        this._errorInfo = null;\n        break;\n      case \"loading\":\n        this._isLoading = true;\n        this._errorInfo = null;\n        if (this.parent) {\n          this.update(ChangeType.status);\n        } else {\n          // If this is the invisible root, add a visible top-level node\n          _setStatusNode({\n            statusNodeType: status,\n            title:\n              tree.options.strings.loading +\n              (message ? \" (\" + message + \")\" : \"\"),\n            checkbox: false,\n            colspan: true,\n            tooltip: details,\n          });\n        }\n        // this.update();\n        break;\n      case \"error\":\n        _setStatusNode({\n          statusNodeType: status,\n          title:\n            tree.options.strings.loadError +\n            (message ? \" (\" + message + \")\" : \"\"),\n          checkbox: false,\n          colspan: true,\n          // classes: \"wb-center\",\n          tooltip: details,\n        });\n        this._isLoading = false;\n        this._errorInfo = { message: message, details: details };\n        break;\n      case \"noData\":\n        _setStatusNode({\n          statusNodeType: status,\n          title: message || tree.options.strings.noData,\n          checkbox: false,\n          colspan: true,\n          tooltip: details,\n        });\n        this._isLoading = false;\n        this._errorInfo = null;\n        break;\n      default:\n        util.error(\"invalid node status \" + status);\n    }\n    tree.update(ChangeType.structure);\n    return statusNode;\n  }\n\n  /** Rename this node. */\n  setTitle(title: string): void {\n    this.title = title;\n    this.update();\n    // this.triggerModify(\"rename\"); // TODO\n  }\n\n  /** Set the node tooltip. */\n  setTooltip(tooltip: TooltipOption): void {\n    this.tooltip = tooltip;\n    this.update();\n  }\n\n  /**\n   * Sort child list by title or custom criteria.\n   * @param {function} cmp custom compare function(a, b) that returns -1, 0, or 1\n   *    (defaults to sorting by title).\n   * @param {boolean} deep pass true to sort all descendant nodes recursively\n   * @deprecated use {@link sort}\n   */\n  sortChildren(\n    cmp: SortCallback | null = nodeTitleSorter,\n    deep: boolean = false\n  ): void {\n    this.tree.logDeprecate(\"node.sortChildren()\", { since: \"0.14.0\" });\n    return this.sort({ cmp: cmp ? cmp : undefined, deep: deep });\n  }\n\n  /**\n   * Renumber nodes `_nativeIndex`. This is useful to allow to restore the\n   * order after sorting a column.\n   * This method is automatically called after loading new child nodes.\n   * @since 0.11.0\n   */\n  resetNativeChildOrder(options?: ResetOrderOptions) {\n    const { recursive = true, propName = \"_nativeIndex\" } = options ?? {};\n\n    if (this.children) {\n      this.children.forEach((child, i) => {\n        child.data[propName] = i;\n        if (recursive && child.children) {\n          child.resetNativeChildOrder(options);\n        }\n      });\n    }\n  }\n\n  /**\n   * Convenience method to implement column sorting.\n   * @since 0.11.0\n   * @deprecated use {@link sort}\n   */\n  sortByProperty(options: SortByPropertyOptions) {\n    this.tree.logDeprecate(\"node.sortByProperty()\", { since: \"0.14.0\" });\n    return this.sort(options);\n  }\n\n  /**\n   * Implement column sorting.\n   * @since 0.14.0\n   */\n  sort(options: SortOptions) {\n    const tree = this.tree;\n    let {\n      propName = undefined,\n      deep = true,\n      key = undefined,\n      order = undefined,\n      caseInsensitive = true,\n      cmp = undefined,\n      // Support click on column sort header:\n      updateColInfo = false,\n      nativeOrderPropName = \"_nativeIndex\",\n      colId = undefined,\n    } = options;\n\n    propName ??= colId;\n    if (propName === \"*\") {\n      propName = \"title\";\n    }\n\n    const isFolder =\n      tree.options.sortFoldersFirst === true\n        ? (node: WunderbaumNode) =>\n            node.hasChildren() !== false || node.type === NODE_TYPE_FOLDER\n        : tree.options.sortFoldersFirst;\n\n    if (updateColInfo) {\n      const colDef = this.tree[\"_columnsById\"][options.colId!];\n      util.assert(colDef, `Invalid colId specified: ${options.colId}`);\n      order ??= util.rotate(colDef.sortOrder, [\"asc\", \"desc\", undefined]);\n\n      for (const col of this.tree.columns) {\n        col.sortOrder = col === colDef ? order : undefined;\n      }\n      if (order === undefined) {\n        propName = nativeOrderPropName;\n        order = \"asc\";\n      }\n      this.tree.update(ChangeType.colStructure);\n    } else {\n      propName ??= \"title\";\n      order ??= \"asc\";\n    }\n\n    this.logDebug(`sort(), propName=${propName}, ${order}`, options);\n    util.assert(propName || cmp || key, \"No `propName` or `key` specified\");\n\n    // Define a key callback from the parameters we have\n    if (key == null && cmp == null) {\n      key = (node) => {\n        let val;\n        if (NODE_DICT_PROPS.has(<string>propName)) {\n          val = node[propName as keyof WunderbaumNode];\n        } else {\n          val = node.data[propName!];\n        }\n        if (caseInsensitive && typeof val === \"string\") {\n          val = val.toLowerCase();\n        }\n        return val;\n      };\n    }\n    // Define a compare callback that uses the key callback\n    if (cmp) {\n      util.assert(!key, \"`key` and `cmp` are mutually exclusive\");\n      tree.logDeprecate(\"SortOptions.cmp\", {\n        since: \"0.14.0\",\n        hint: \"use the `key` callback instead\",\n      });\n    } else {\n      if (options.propName || options.caseInsensitive) {\n        tree.logWarn(\"sort(): ignoring propName, caseInsensitive\");\n      }\n\n      cmp = (a, b) => {\n        if (isFolder) {\n          const isFolderA = isFolder(a);\n          if (isFolderA !== isFolder(b)) {\n            return isFolderA ? -1 : 1;\n          }\n        }\n        let x = key!(a);\n        let y = key!(b);\n        // Assure we have reasonable comparisons with null values:\n        if (x == null) {\n          x = typeof y === \"string\" ? \"\" : 0;\n        } else if (typeof x === \"boolean\") {\n          x = x ? 1 : 0;\n        }\n        if (y == null) {\n          y = typeof x === \"string\" ? \"\" : 0;\n        } else if (typeof y === \"boolean\") {\n          y = y ? 1 : 0;\n        }\n\n        if (order === \"desc\") {\n          return x === y ? 0 : x > y ? -1 : 1;\n        }\n        return x === y ? 0 : x > y ? 1 : -1;\n      };\n    }\n\n    function _sortChildren(cl: WunderbaumNode[]): void {\n      if (!cl) {\n        return;\n      }\n      cl.sort(cmp);\n      if (deep) {\n        for (let i = 0, l = cl.length; i < l; i++) {\n          if (cl[i].children) {\n            _sortChildren(cl[i].children!);\n          }\n        }\n      }\n    }\n    if (this.children) {\n      _sortChildren(this.children);\n    }\n    this.tree.update(ChangeType.structure);\n    // this.triggerModify(\"sort\"); // TODO\n  }\n\n  /**\n   * Re-apply current sorting if any (use after lazy load).\n   * Example:\n   * ```js\n   * load: function (e) {\n   *   // Whe loading a lazy branch, apply current sort order if any\n   *   e.node.resort();\n   * },\n   * ```\n   * @since 0.14.0\n   */\n  resort(options: SortOptions = {}): void {\n    for (const colDef of this.tree.columns) {\n      if (colDef.sortOrder) {\n        options.colId = colDef.id;\n        options.order = colDef.sortOrder;\n        this.sort(options);\n        break;\n      }\n    }\n  }\n\n  /**\n   * Trigger `modifyChild` event on a parent to signal that a child was modified.\n   * @param {string} operation Type of change: 'add', 'remove', 'rename', 'move', 'data', ...\n   */\n  triggerModifyChild(\n    operation: string,\n    child: WunderbaumNode | null,\n    extra?: any\n  ) {\n    this.logDebug(`modifyChild(${operation})`, extra, child);\n    if (!this.tree.options.modifyChild) {\n      return;\n    }\n    if (child && child.parent !== this) {\n      util.error(\"child \" + child + \" is not a child of \" + this);\n    }\n    this._callEvent(\n      \"modifyChild\",\n      util.extend({ operation: operation, child: child }, extra)\n    );\n  }\n\n  /**\n   * Trigger `modifyChild` event on node.parent(!).\n   * @param {string} operation Type of change: 'add', 'remove', 'rename', 'move', 'data', ...\n   * @param {object} [extra]\n   */\n  triggerModify(operation: string, extra?: any) {\n    // if (!this.parent) {\n    //   return;\n    // }\n    this.parent.triggerModifyChild(operation, this, extra);\n  }\n\n  /**\n   * Call `callback(node)` for all descendant nodes in hierarchical order (depth-first, pre-order).\n   *\n   * Stop iteration, if fn() returns false. Skip current branch, if fn()\n   * returns \"skip\".<br>\n   * Return false if iteration was stopped.\n   *\n   * @param {function} callback the callback function.\n   *     Return false to stop iteration, return \"skip\" to skip this node and\n   *     its children only.\n   * @see `wb_node.WunderbaumNode.IterableIterator<WunderbaumNode>`\n   * @see {@link Wunderbaum.visit}.\n   */\n  visit(\n    callback: NodeVisitCallback,\n    includeSelf: boolean = false\n  ): NodeVisitResponse {\n    let res: any = true;\n    const children = this.children;\n\n    if (includeSelf === true) {\n      res = callback(this);\n      if (res === false || res === \"skip\") {\n        return res;\n      }\n    }\n    if (children) {\n      for (let i = 0, l = children.length; i < l; i++) {\n        res = children[i].visit(callback, true);\n        if (res === false) {\n          break;\n        }\n      }\n    }\n    return res;\n  }\n\n  /** Call fn(node) for all parent nodes, bottom-up, including invisible system root.<br>\n   * Stop iteration, if callback() returns false.<br>\n   * Return false if iteration was stopped.\n   *\n   * @param callback the callback function. Return false to stop iteration\n   */\n  visitParents(\n    callback: (node: WunderbaumNode) => boolean | void,\n    includeSelf: boolean = false\n  ): boolean {\n    if (includeSelf && callback(this) === false) {\n      return false;\n    }\n    let p = this.parent;\n    while (p) {\n      if (callback(p) === false) {\n        return false;\n      }\n      p = p.parent;\n    }\n    return true;\n  }\n\n  /**\n   * Call fn(node) for all sibling nodes.<br>\n   * Stop iteration, if fn() returns false.<br>\n   * Return false if iteration was stopped.\n   *\n   * @param callback the callback function.\n   *     Return false to stop iteration.\n   * @param includeSelf include this node in the iteration.\n   */\n  visitSiblings(\n    callback: (node: WunderbaumNode) => boolean | void,\n    includeSelf: boolean = false\n  ): boolean {\n    const ac = this.parent.children!;\n\n    for (let i = 0, l = ac.length; i < l; i++) {\n      const n = ac[i];\n      if (includeSelf || n !== this) {\n        if (callback(n) === false) {\n          return false;\n        }\n      }\n    }\n    return true;\n  }\n  /**\n   * [ext-filter] Return true if this node is matched by current filter (or no filter is active).\n   */\n  isMatched() {\n    return !(this.tree.filterMode && !this.match);\n  }\n}\n"
  },
  {
    "path": "src/wb_options.ts",
    "content": "/*!\n * Wunderbaum - options\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n\nimport {\n  ColumnDefinitionList,\n  DndOptionsType,\n  DynamicBoolOption,\n  DynamicBoolOrStringOption,\n  DynamicCheckboxOption,\n  DynamicIconOption,\n  EditOptionsType,\n  FilterOptionsType,\n  IconMapType,\n  // GridOptionsType,\n  // KeynavOptionsType,\n  // LoggerOptionsType,\n  NavModeEnum,\n  NodeTypeDefinitionMap,\n  SelectModeType,\n  SourceType,\n  TranslationsType,\n  WbActivateEventType,\n  WbButtonClickEventType,\n  WbCancelableEventResultType,\n  WbChangeEventType,\n  WbClickEventType,\n  WbDeactivateEventType,\n  WbErrorEventType,\n  WbExpandEventType,\n  WbIconBadgeCallback,\n  WbIconBadgeEventResultType,\n  WbInitEventType,\n  WbKeydownEventType,\n  WbNodeEventType,\n  WbReceiveEventType,\n  WbRenderEventType,\n  WbSelectEventType,\n  WbTreeEventType,\n} from \"./types\";\n\n/**\n * Properties of {@link wunderbaum.Wunderbaum.options}.\n *\n * This is similar, but not identical, to the options that can be passed to the\n * constructor(@see {@link InitWunderbaumOptions}).\n */\nexport interface WunderbaumOptions {\n  /**\n   * If true, add a `wb-skeleton` class to all nodes, that will result in a\n   * 'glow' effect. Typically used with initial dummy nodes, while loading the\n   * real data.\n   * @default false.\n   */\n  skeleton: boolean;\n  /**\n   * Translation map for some system messages.\n   */\n  strings: TranslationsType;\n  /**\n   * 0:quiet, 1:errors, 2:warnings, 3:info, 4:verbose\n   * @default 3 (4 in local debug environment)\n   */\n  debugLevel: number;\n  /**\n   * Number of levels that are forced to be expanded, and have no expander icon.\n   * E.g. 1 would keep all toplevel nodes expanded.\n   * @default 0\n   */\n  minExpandLevel: number;\n  /**\n   * If true, allow to expand parent nodes, even if `node.children` conatains\n   * an empty array (`[]`). This is the the behavior of macOS Finder, for example.\n   * @default false\n   */\n  emptyChildListExpandable: boolean;\n  // escapeTitles: boolean;\n  // /**\n  //  * Height of the header row div.\n  //  * @default 22\n  //  */\n  // headerHeightPx: number;\n  /**\n   * Height of a node row div.\n   * @default 22\n   */\n  rowHeightPx: number;\n  /**\n   * Icon font definition. May be a string (e.g. \"fontawesome6\" or \"bootstrap\")\n   * or a map of `iconName: iconClass` pairs.\n   * Note: the icon font must be loaded separately.\n   * In order to only override some defauöt icons, use this pattern:\n   * ```js\n   * const tree = new mar10.Wunderbaum({\n   *   ...\n   *   iconMap: Object.assign(Wunderbaum.iconMaps.bootstrap, {\n   *     folder: \"bi bi-archive\",\n   *   }),\n   * });\n   * ```\n\n   * @default \"bootstrap\"\n   */\n  iconMap: string | IconMapType;\n  /**\n   * Collapse siblings when a node is expanded.\n   * @default false\n   */\n  autoCollapse: boolean;\n  /**\n   * If true, the tree will automatically adjust its height to fit the parent\n   * container. This is useful when the tree is embedded in a container with\n   * a fixed or calculated sized.\n   * If the parent container is unsized (e.g. grows with its content, `height: auto`),\n   * then we can define a `height: ...` or `max_height: ...` style on the parent.\n   * To avoid a recursive resize-loop, it may be helpful to set `overflow: hidden`\n   * on the parent container.\n   *\n   * Set this option to `false` will disable auto-resizing.\n   *\n   * @default: true\n   */\n  adjustHeight: boolean;\n  /**\n   * HTMLElement or selector that receives the top nodes breadcrumb.\n   * @default undefined\n   */\n  connectTopBreadcrumb: HTMLElement | string | null;\n  /**\n   * @default  NavModeEnum.startRow\n   */\n  navigationModeOption: NavModeEnum;\n  /**\n   * Show/hide header (default: null)\n   * null: assume false for plain tree and true for grids.\n   * string: use text as header (only for plain trees)\n   * true: display a header (use tree's id as text for plain trees)\n   * false: do not display a header\n   */\n  header: boolean | string | null;\n  /**\n   * Show a `<progress>` element while loading data.\n   * @default false.\n   */\n  showSpinner: boolean;\n  /**\n   * Generate missing keys by hashing a combination of refKey (or title) and\n   * the parent key. This is useful when the source data does not contain unique\n   * keys but we want stable keys for persisting the active node, selection or\n   * expansion state. Note that this still assumes that the same refKey must not\n   * appear twice in the same parent node.\n   * @default false.\n   */\n  autoKeys: boolean;\n  /**\n   * If true, render a checkbox before the node tile to allow selection with the\n   * mouse. Pass `\"radio\"` to render a radio button instead.\n   * @default false.\n   */\n  checkbox: DynamicCheckboxOption;\n  /** Optional callback to render icons per node. */\n  icon?: DynamicIconOption;\n  /** Optional callback to render a tooltip for the icon. */\n  iconTooltip?: DynamicBoolOrStringOption;\n  /** Optional callback to render a tooltip for the node title.\n   * Pass `true` to use the node's `title` property as tooltip.\n   */\n  tooltip?: DynamicBoolOrStringOption;\n  /** Optional callback to make a node unselectable. */\n  unselectable?: DynamicBoolOption;\n  // /**\n  //  * @default 200\n  //  */\n  // updateThrottleWait?: number;\n  /**\n   * @default true\n   */\n  enabled: boolean;\n  /**\n   *\n   * @default false\n   */\n  fixedCol: boolean;\n  /**\n   * Default value for ColumnDefinition.filterable option.\n   * @default false\n   * @since 0.11.0\n   */\n  columnsFilterable: boolean;\n  /**\n   * Default value for ColumnDefinition.menu option.\n   * @default false\n   * @since 0.11.0\n   */\n  columnsMenu: boolean;\n  /**\n   * Default value for ColumnDefinition.resizable option.\n   * @default false\n   * @since 0.10.0\n   */\n  columnsResizable?: boolean;\n  /**\n   * Default value for ColumnDefinition.sortable option.\n   * @default false\n   * @since 0.11.0\n   */\n  columnsSortable?: boolean;\n  /**\n   * Group nodes with children or of `type: 'folder'` at the top when sorting.\n   * If a function is passed, it is called with the node as argument to determine\n   * whether the node is a folder or not. The function should return `true` for\n   * folders.\n   * and should return `true` for folders.\n   * @default false\n   * @since 0.14.0\n   */\n  sortFoldersFirst?: DynamicBoolOption;\n\n  // --- Selection ---\n  /**\n   * @default \"multi\"\n   */\n  selectMode: SelectModeType;\n\n  // --- KeyNav ---\n  /**\n   * @default true\n   */\n  quicksearch: boolean;\n\n  /**\n   * Scroll Node into view on Expand Click\n   * @default true\n   */\n  scrollIntoViewOnExpandClick: boolean;\n\n  // --- Extensions ------------------------------------------------------------\n\n  /** Configuration options for the drag-and-drop extension. */\n  dnd: DndOptionsType;\n  /** Configuration options for the edit-title extension. */\n  edit: EditOptionsType;\n  /** Configuration options for the node-filter extension. */\n  filter: FilterOptionsType;\n  // grid?: GridOptionsType;\n  // keynav?: KeynavOptionsType;\n  // logger?: LoggerOptionsType;\n\n  // --- Events ----------------------------------------------------------------\n\n  /**\n   * `e.node` was activated.\n   * @category Callback\n   */\n  activate?: (e: WbActivateEventType) => void;\n  /**\n   * `e.node` is about to be activated.\n   * Return `false` to prevent default handling, i.e. activating the node.\n   * See also `deactivate` event.\n   * @category Callback\n   */\n  beforeActivate?: (e: WbActivateEventType) => WbCancelableEventResultType;\n  /**\n   * `e.node` is about to be expanded/collapsed.\n   * Return `false` to prevent default handling, i.e. expanding/collapsing the node.\n   * @category Callback\n   */\n  beforeExpand?: (e: WbExpandEventType) => WbCancelableEventResultType;\n  /**\n   * Return `false` to prevent default handling, i.e. (de)selecting the node.\n   * @category Callback\n   */\n  beforeSelect?: (e: WbSelectEventType) => WbCancelableEventResultType;\n  /**\n   * Return `false` to prevent default handling, i.e. (de)selecting the node.\n   * @category Callback\n   */\n  buttonClick?: (e: WbButtonClickEventType) => void;\n  /**\n   *\n   * @category Callback\n   */\n  change?: (e: WbChangeEventType) => void;\n  /**\n   *\n   * Return `false` to prevent default behavior, e.g. expand/collapse, (de)selection, or activation.\n   * @category Callback\n   */\n  click?: (e: WbClickEventType) => WbCancelableEventResultType;\n  /**\n   * Return `false` to prevent default behavior, e.g. expand/collapse.\n   * @category Callback\n   */\n  dblclick?: (e: WbClickEventType) => WbCancelableEventResultType;\n  /**\n   * `e.node` was deactivated.\n   *\n   * Return `false` to prevent default handling, e.g. deactivating the node\n   * and activating the next.\n   * See also `activate` event.\n   * @category Callback\n   */\n  deactivate?: (e: WbDeactivateEventType) => WbCancelableEventResultType;\n  /**\n   * `e.node` was discarded from the viewport and its HTML markup removed.\n   * @category Callback\n   */\n  discard?: (e: WbNodeEventType) => void;\n  /**\n   * `e.node` is about to be rendered. We can add a badge to the icon cell here.\n   * @category Callback\n   */\n  iconBadge?: (e: WbIconBadgeCallback) => WbIconBadgeEventResultType;\n  /**\n   * An error occurred, e.g. during initialization or lazy loading.\n   * @category Callback\n   */\n  error?: (e: WbErrorEventType) => void;\n  /**\n   * `e.node` was expanded (`e.flag === true`) or collapsed (`e.flag === false`)\n   * @category Callback\n   */\n  expand?: (e: WbTreeEventType) => void;\n  /**\n   * The tree received or lost focus.\n   * Check `e.flag` for status.\n   * @category Callback\n   */\n  focus?: (e: WbTreeEventType) => void;\n  /**\n   * Fires when the tree markup was created and the initial source data was loaded.\n   * Typical use cases would be activating a node, setting focus, enabling other\n   * controls on the page, etc.<br>\n   *  Also sent if an error occured during initialization (check `e.error` for status).\n   * @category Callback\n   */\n  init?: (e: WbInitEventType) => void;\n  /**\n   * Fires when a key was pressed while the tree has focus.\n   * `e.node` is set if a node is currently active.\n   * Return `false` to prevent default navigation.\n   * @category Callback\n   */\n  keydown?: (e: WbKeydownEventType) => WbCancelableEventResultType;\n  /**\n   * Fires when a node that was marked 'lazy', is expanded for the first time.\n   * Typically we return an endpoint URL or the Promise of a fetch request that\n   * provides a (potentially nested) list of child nodes.\n   * @category Callback\n   */\n  lazyLoad?: (e: WbNodeEventType) => void;\n  /**\n   * Fires when data was loaded (initial request, reload, or lazy loading),\n   * after the data is applied and rendered.\n   * @category Callback\n   */\n  load?: (e: WbNodeEventType) => void;\n  /**\n   * @category Callback\n   */\n  modifyChild?: (e: WbNodeEventType) => void;\n  /**\n   * Fires when data was fetched (initial request, reload, or lazy loading),\n   * but before the data is applied and rendered.\n   * Here we can modify and adjust the received data, for example to convert an\n   * external response to native Wunderbaum syntax.\n   * @category Callback\n   */\n  receive?: (e: WbReceiveEventType) => void;\n  /**\n   * Fires when a node is about to be displayed.\n   * The default HTML markup is already created, but not yet added to the DOM.\n   * Now we can tweak the markup, create HTML elements in this node's column\n   * cells, etc.\n   * See also `Custom Rendering` for details.\n   * @category Callback\n   */\n  render?: (e: WbRenderEventType) => void;\n  /**\n   * Same as `render(e)`, but for the status nodes, i.e. `e.node.statusNodeType`.\n   * @category Callback\n   */\n  renderStatusNode?: (e: WbRenderEventType) => void;\n  /**\n   *`e.node` was selected (`e.flag === true`) or deselected (`e.flag === false`)\n   * @category Callback\n   */\n  select?: (e: WbNodeEventType) => void;\n  /**\n   * Fires when the viewport content was updated, after scroling, expanding etc.\n   * @category Callback\n   */\n  update?: (e: WbTreeEventType) => void;\n}\n\n/**\n * Available options for {@link wunderbaum.Wunderbaum}.\n *\n * Options are passed to the constructor as plain object:\n *\n * ```js\n * const tree = new mar10.Wunderbaum({\n *   id: \"demo\",\n *   element: document.getElementById(\"demo-tree\"),\n *   source: \"url/of/data/request\",\n *   ...\n * });\n * ```\n *\n * Event handlers are also passed as callbacks\n *\n * ```js\n * const tree = new mar10.Wunderbaum({\n *   ...\n *   init: (e) => {\n *     console.log(`Tree ${e.tree} was initialized and loaded.`)\n *   },\n *   activate: (e) => {\n *     console.log(`Node ${e.node} was activated.`)\n *   },\n *   ...\n * });\n * ```\n *\n * Most of the properties are optional and have resonable default.\n * They are then available as {@link Wunderbaum.options} property and can be\n * changed at runtime. <br>\n * Only the `element` option is mandatory.\n *\n * Note that some options passed here, are *not* available as {@link Wunderbaum.options}.\n * They are moved to the `tree` instance instead:\n * - `tree.element`\n * - `tree.id`\n * - `tree.columns`\n * - `tree.types`\n * - ...\n *\n * Some options are only used during initialization and are not stored in the\n * tree instance:\n * - `source`\n *\n */\nexport interface InitWunderbaumOptions extends Partial<WunderbaumOptions> {\n  /**\n   * The target `div` element (or selector) that shall become a Wunderbaum.\n   */\n  element: string | HTMLDivElement;\n  /**\n   * The identifier of this tree. Used to reference the instance, especially\n   * when multiple trees are present (e.g. `tree = mar10.Wunderbaum.getTree(\"demo\")`).\n   *\n   * @default `\"wb_\" + COUNTER`.\n   */\n  id?: string;\n  /**\n   * A list of maps that define column headers. If this option is set,\n   * Wunderbaum becomes a treegrid control instead of a plain tree.\n   * Column definitions can be passed as tree option, or be part of a `source`\n   * response.\n   * @default `[]` meaning this is a plain tree.\n   */\n  columns?: ColumnDefinitionList;\n  /**\n   * Define shared attributes for multiple nodes of the same type.\n   * This allows for more compact data models. Type definitions can be passed\n   * as tree option, or be part of a `source` response.\n   *\n   * @default `{}`.\n   */\n  types?: NodeTypeDefinitionMap;\n  /**\n   * Define the initial tree data. Typically a URL of an endpoint that serves\n   * a JSON formatted structure, but also a callback, Promise, or static data\n   * is allowed.\n   *\n   * @default `[]`.\n   */\n  source?: SourceType;\n}\n"
  },
  {
    "path": "src/wunderbaum.scss",
    "content": "/*!\n * Wunderbaum style sheet (generated from wunderbaum.scss)\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n// @use \"sass:meta\";\n@use \"sass:color\";\n@use \"sass:list\";\n\n// ----------------------------------------------------------------------------\n// --- Define default colors and settings\n\n$font-stack: Helvetica, sans-serif;\n\n// Basic Theme Colors\n$error-color: #b5373b;\n$node-text-color: #56534c;\n$border-color: $node-text-color;\n$bg-highlight-color: #26a0da;\n$header-color: #dedede;\n$background-color: #ffffff;\n$alternate-row-color: #f7f7f7; // #fcfcfc;\n$alternate-row-color-hover: #f3f3f3; //#f7fcfe;\n$focus-border-color: #275dc5;\n\n// derived\n$drop-source-color: color.adjust($node-text-color, $lightness: 50%);\n$drop-target-color: color.adjust($bg-highlight-color, $lightness: 40%);\n$dim-color: color.adjust($node-text-color, $lightness: 20%);\n$error-background-color: color.adjust($error-color, $lightness: 45%);\n// @debug $dim-color;\n$hover-color: color.adjust($bg-highlight-color, $lightness: 48%); // #f7f7f7;\n$hover-border-color: $hover-color;\n$grid-color: #dedede;\n$active-color: #e5f3fb;\n$active-cell-color: color.adjust($bg-highlight-color, $lightness: 20%);\n$active-border-color: #70c0e7;\n$active-hover-color: #dceff8;\n$active-hover-border-color: $bg-highlight-color;\n$active-column-color: $hover-color;\n$active-header-column-color: color.adjust($header-color, $lightness: -10%);\n$active-color-grayscale: color.grayscale($active-color);\n$active-border-color-grayscale: color.grayscale($active-border-color);\n$active-hover-color-grayscale: color.grayscale($active-hover-color);\n$active-cell-color-grayscale: color.grayscale($active-cell-color);\n$grid-color-grayscale: color.grayscale($grid-color);\n// @debug $active-header-column-color;\n$filter-dim-color: #dedede;\n$filter-submatch-color: #868581;\n\n$row-outer-height: 22px;\n$row-inner-height: $row-outer-height - 2; // outer height minus border size\n$row-padding-y: calc(($row-outer-height - $row-inner-height) / 2);\n$col-padding-x: 2px; // on each side within span.wb-col\n\n$icon-outer-height: $row-inner-height;\n$icon-outer-width: 20px;\n$icon-height: 16px;\n$icon-width: 16px;\n$icon-padding-y: calc(($icon-outer-height - $icon-height) / 2);\n$icon-padding-x: calc(($icon-outer-width - $icon-width) / 2);\n\n$header-height: $row-outer-height;\n\n// PyCharm:\n// $level-rainbow: rgba(255, 255, 232, 1), rgba(240, 255, 240, 1),\n//   rgba(255, 240, 255, 1), rgba(234, 253, 253, 1);\n// VS-Code_\n// $level-rainbow: rgba(255, 255, 64, 0.07), rgba(127, 255, 127, 0.07),\n//   rgba(255, 127, 255, 0.07), rgba(79, 236, 236, 0.07);\n// Slightly stronger*\n$level-rainbow:\n  rgb(255, 255, 201), rgb(218, 255, 218), rgb(255, 217, 254), rgb(204, 250, 250);\n\n// ----------------------------------------------------------------------------\n// --- Define CSS variables with calculated default values\n\n:root,\n:host {\n  // :host needed for ShadowDom\n\n  // TODO: do we need to use 'meta.inspect' in case a font name contains spaces?\n  // --wb-font-stack: #{meta.inspect($font-stack)};\n  --wb-font-stack: #{$font-stack};\n\n  // Basic Theme Colors\n  --wb-error-color: #{$error-color};\n  --wb-node-text-color: #{$node-text-color};\n  --wb-border-color: #{$border-color};\n  --wb-bg-highlight-color: #{$bg-highlight-color};\n  --wb-header-color: #{$header-color};\n  --wb-background-color: #{$background-color};\n  --wb-alternate-row-color: #{$alternate-row-color};\n  --wb-alternate-row-color-hover: #{$alternate-row-color-hover};\n  --wb-focus-border-color: #{$focus-border-color};\n\n  // derived\n  --wb-drop-source-color: #{$drop-source-color};\n  --wb-drop-target-color: #{$drop-target-color};\n  --wb-dim-color: #{$dim-color};\n  --wb-error-background-color: #{$error-background-color};\n  --wb-hover-color: #{$hover-color};\n  --wb-hover-border-color: #{$hover-border-color};\n  --wb-grid-color: #{$grid-color};\n  --wb-active-color: #{$active-color};\n  --wb-active-cell-color: #{$active-cell-color};\n  --wb-active-border-color: #{$active-border-color};\n  --wb-active-hover-color: #{$active-hover-color};\n  --wb-active-hover-border-color: #{$active-hover-border-color};\n  --wb-active-column-color: #{$active-column-color};\n  --wb-active-header-column-color: #{$active-header-column-color};\n  --wb-active-color-grayscale: #{$active-color-grayscale};\n  --wb-active-border-color-grayscale: #{$active-border-color-grayscale};\n  --wb-active-hover-color-grayscale: #{$active-hover-color-grayscale};\n  --wb-active-cell-color-grayscale: #{$active-cell-color-grayscale};\n  --wb-grid-color-grayscale: #{$grid-color-grayscale};\n\n  --wb-filter-dim-color: #{$filter-dim-color};\n  --wb-filter-submatch-color: #{$filter-submatch-color};\n\n  --wb-row-outer-height: #{$row-outer-height};\n  --wb-row-inner-height: #{$row-inner-height};\n  --wb-row-padding-y: #{$row-padding-y};\n  --wb-col-padding-x: #{$col-padding-x};\n\n  --wb-icon-outer-height: #{$icon-outer-height};\n  --wb-icon-outer-width: #{$icon-outer-width};\n  --wb-icon-height: #{$icon-height};\n  --wb-icon-width: #{$icon-width};\n  --wb-icon-padding-y: #{$icon-padding-y};\n  --wb-icon-padding-x: #{$icon-padding-x};\n\n  --wb-header-height: #{$header-height};\n}\n\n// ----------------------------------------------------------------------------\n// --- SCSS Rules\n\ndiv.wunderbaum * {\n  box-sizing: border-box;\n}\n\ndiv.wunderbaum {\n  height: 100%; // fill parent container\n  min-height: 4px;\n  background-color: var(--wb-background-color);\n  margin: 0;\n  padding: 0;\n\n  font-family: var(--wb-font-stack);\n  font-size: 14px;\n\n  color: var(--wb-node-text-color);\n  border: 2px solid var(--wb-border-color);\n  border-radius: 4px;\n  background-clip: content-box; // Keep bg color outside rounded borders?\n  overflow-x: auto;\n  // TODO:auto would be better, but may cause unwanted effects when auto-resizing?\n  // overflow-y: auto;\n  overflow-y: scroll;\n  // scroll-behavior: smooth;\n\n  // Focus border is generated by the browsers per default:\n  &:focus,\n  &:focus-within {\n    border-color: var(--wb-focus-border-color);\n    // outline-style: none;\n  }\n\n  &.wb-disabled {\n    opacity: 0.7;\n    pointer-events: none;\n  }\n\n  div.wb-list-container {\n    position: relative;\n    // overflow: auto;\n    min-height: 4px;\n    // height: calc(100% - #{$header-height});  // didn't work. Using JS instead\n  }\n\n  /* --- FIXED-COLUMN --- */\n\n  div.wb-header {\n    position: sticky;\n    top: 0;\n    z-index: 2;\n    -webkit-user-select: none; /* Safari */\n    user-select: none;\n  }\n\n  div.wb-header,\n  div.wb-list-container {\n    overflow: unset;\n  }\n\n  // }\n  // --- Header and node list ---\n  div.wb-row {\n    position: absolute;\n    width: 100%;\n    height: var(--wb-row-outer-height);\n    line-height: var(--wb-row-outer-height);\n    border: 1px solid transparent;\n  }\n\n  /* Fixed column must be opaque, i.e. have the bg color set. */\n  &.wb-fixed-col {\n    // Sticky first column (header and nodes)\n    span.wb-col:first-of-type {\n      position: sticky;\n      left: 0;\n      z-index: 1;\n      background-color: var(--wb-background-color);\n    }\n\n    div.wb-header {\n      span.wb-col:first-of-type {\n        background-color: var(--wb-header-color);\n      }\n    }\n\n    div.wb-node-list div.wb-row {\n      &.wb-active span.wb-col:first-of-type,\n      &.wb-selected span.wb-col:first-of-type {\n        background-color: var(--wb-active-color);\n      }\n\n      &.wb-active:hover span.wb-col:first-of-type,\n      &.wb-selected:hover span.wb-col:first-of-type {\n        background-color: var(--wb-active-hover-color);\n      }\n\n      &:hover span.wb-col:first-of-type {\n        background-color: var(--wb-hover-color);\n      }\n    }\n\n    &:not(:focus-within),\n    &:not(:focus) {\n      div.wb-node-list div.wb-row {\n        &.wb-active span.wb-col:first-of-type,\n        &.wb-selected span.wb-col:first-of-type {\n          background-color: var(--wb-active-color-grayscale);\n          border-color: var(--wb-active-border-color-grayscale);\n\n          &:hover span.wb-col:first-of-type {\n            background-color: var(--wb-active-hover-color-grayscale);\n          }\n        }\n      }\n    }\n  }\n\n  // --- Node List Only ---\n\n  // Dim some colors if tree has no focus\n  &:not(:focus-within),\n  &:not(:focus) {\n    div.wb-node-list div.wb-row {\n      &.wb-active,\n      &.wb-selected {\n        background-color: var(--wb-active-color-grayscale);\n        border-color: var(--wb-active-border-color-grayscale);\n\n        &:hover {\n          background-color: var(--wb-active-hover-color-grayscale);\n        }\n      }\n    }\n  }\n\n  &.wb-alternate div.wb-node-list {\n    div.wb-row:nth-of-type(even):not(.wb-active):not(.wb-selected) {\n      background-color: var(--wb-alternate-row-color);\n\n      &:hover {\n        background-color: var(--wb-alternate-row-color-hover);\n      }\n    }\n  }\n\n  div.wb-node-list {\n    div.wb-row {\n      &:hover {\n        background-color: var(--wb-hover-color);\n      }\n\n      &.wb-active,\n      &.wb-selected {\n        background-color: var(--wb-active-color);\n\n        // border-color: var(--wb-active-border-color);\n        &:hover {\n          background-color: var(--wb-active-hover-color);\n          // border-color: var(--wb-active-hover-border-color);\n        }\n      }\n\n      &.wb-focus:not(.wb-active) {\n        border-style: dotted;\n        border-color: var(--wb-active-border-color);\n      }\n\n      &.wb-active {\n        // background-color: var(--wb-active-hover-color);\n        border-style: solid;\n        border-color: var(--wb-active-border-color);\n\n        &:hover {\n          // background-color: var(--wb-active-hover-color);\n          border-color: var(--wb-active-hover-border-color);\n        }\n      }\n\n      &.wb-loading {\n        font-style: italic;\n      }\n\n      &.wb-busy,\n      i.wb-busy,\n      .wb-col.wb-busy {\n        font-style: italic;\n\n        // For our stripe pattern, we want a frictionless transition at\n        // the bottom, when repeating in y-direction:\n        // h: height of row = 22px\n        // d: spacing between stripe pairs (white + gray)\n        // Calculate the spacing that will lead to a minimal quadratic\n        // pattern with a height of h pixels:\n        //\n        //     (2 * d)^2 = 2 * h^2\n        // =>  d = sqrt(2 * h^2) / 2\n        //       = 15.56px\n        // We use the half distance to get a finer stripe pattern:\n        //     d/2 = 7.78\n        background: repeating-linear-gradient(\n          45deg,\n          // $hover-color,\n          // $hover-color 3.88px,\n          transparent,\n          transparent 3.88px,\n          var(--wb-grid-color) 3.88px,\n          var(--wb-grid-color) 7.78px\n        );\n        animation: wb-busy-animation 2s linear infinite;\n      }\n\n      &.wb-error,\n      &.wb-status-error {\n        color: var(--wb-error-color);\n      }\n    }\n  }\n\n  // --- HEADER ---\n\n  div.wb-header {\n    position: sticky;\n    height: var(--wb-header-height);\n    border-bottom: 1px solid var(--wb-border-color);\n    padding: 0;\n    background-color: var(--wb-header-color);\n\n    span.wb-col {\n      font-weight: bold;\n      // &::after {\n      //   content: \"|\";\n      // }\n      overflow: visible; // allow resizer to overlap next col\n    }\n\n    // <span class='wb-col'> contains <span class='wb-col-title'> and <span class='wb-col-resizer'>\n    span.wb-col-title {\n      width: 100%;\n      overflow: hidden;\n      white-space: nowrap;\n      text-overflow: ellipsis;\n    }\n\n    span.wb-col-resizer {\n      position: absolute;\n      top: 0;\n      // left: auto;\n      right: -1px;\n      width: 3px;\n      // float: right;\n      border: none;\n      border-right: 2px solid var(--wb-border-color);\n      height: 100%;\n      -webkit-user-select: none; // Safari\n      user-select: none;\n      &.wb-col-resizer-active {\n        cursor: col-resize;\n        // border-right-color: red;\n      }\n    }\n\n    i.wb-col-icon {\n      float: inline-end;\n      padding-left: 2px;\n\n      &:hover {\n        cursor: pointer;\n        color: var(--wb-focus-border-color);\n      }\n    }\n  }\n\n  span.wb-col {\n    position: absolute;\n    display: inline-block;\n    // text-overflow: ellipsis;\n    overflow: hidden;\n    height: var(--wb-row-inner-height);\n    line-height: var(--wb-row-inner-height);\n    padding: 0 var(--wb-col-padding-x);\n    border-right: 1px solid var(--wb-grid-color);\n    white-space: nowrap;\n\n    &:last-of-type {\n      border-right: none;\n    }\n  }\n\n  span.wb-node {\n    -webkit-user-select: none; // Safari\n    user-select: none;\n    // &:first-of-type {\n    //   margin-left: 8px; // leftmost icon gets a little margin\n    // }\n\n    i.wb-checkbox,\n    i.wb-expander,\n    i.wb-icon,\n    i.wb-indent {\n      height: var(--wb-icon-outer-height);\n      width: var(--wb-icon-outer-width);\n      padding: var(--wb-icon-padding-y) var(--wb-icon-padding-x);\n      display: inline-block;\n    }\n\n    i.wb-expander,\n    i.wb-icon {\n      background-repeat: no-repeat;\n      background-size: contain;\n    }\n\n    /* Fix Bootstrap Icon alignment */\n    i.bi::before {\n      vertical-align: baseline;\n    }\n\n    img.wb-icon {\n      width: var(--wb-icon-width);\n      height: var(--wb-icon-height);\n      padding: var(--wb-icon-padding-y) var(--wb-icon-padding-x);\n      // margin-top: var(--wb-icon-padding-y);\n    }\n\n    i.wb-indent {\n      // border-left: 1px solid gray;\n      &::before {\n        content: \"\\00a0\";\n      }\n    }\n\n    i.wb-expander.wb-spin,\n    i.wb-icon.wb-spin {\n      height: unset; // Prevent wobble\n      width: unset;\n      padding: 0 3px;\n      animation: wb-spin-animation 2s linear infinite;\n    }\n\n    span.wb-title {\n      min-width: 1em;\n      // display: inline-block; // fix vertical offset on Chrome?\n      vertical-align: top;\n      overflow-x: hidden;\n      display: inline-block;\n      white-space: nowrap;\n      text-overflow: ellipsis;\n    }\n  }\n\n  /* --- GRID --- */\n\n  &.wb-grid {\n    div.wb-header {\n      div.wb-row {\n        span.wb-col {\n          &:hover {\n            background-color: var(--wb-active-header-column-color);\n          }\n        }\n      }\n    }\n\n    &.wb-cell-mode div.wb-header div.wb-row span.wb-col {\n      &.wb-active {\n        background-color: var(--wb-active-hover-color);\n      }\n    }\n\n    div.wb-node-list div.wb-row {\n      border-bottom-color: var(--wb-grid-color);\n\n      &:hover:not(.wb-active):not(.wb-selected) {\n        background-color: var(--wb-hover-color);\n        // border-color: var(--wb-hover-border-color);\n      }\n\n      &.wb-active {\n        border-bottom-color: var(--wb-active-border-color);\n      }\n\n      span.wb-col {\n        border-right: 1px solid var(--wb-grid-color);\n\n        input.wb-input-edit,\n        > input[type=\"color\"],\n        > input[type=\"date\"],\n        > input[type=\"datetime\"],\n        > input[type=\"datetime-local\"],\n        > input[type=\"email\"],\n        > input[type=\"month\"],\n        > input[type=\"number\"],\n        > input[type=\"password\"],\n        > input[type=\"search\"],\n        > input[type=\"tel\"],\n        > input[type=\"text\"],\n        > input[type=\"time\"],\n        > input[type=\"url\"],\n        > input[type=\"week\"],\n        > select {\n          width: 100%;\n          max-height: var(--wb-row-inner-height);\n          border: none;\n        }\n\n        > input:focus,\n        > select:focus {\n          border: 1px dashed $active-border-color;\n        }\n      }\n\n      // input[type=\"number\"]::-webkit-inner-spin-button,\n      // input[type=\"number\"]::-webkit-outer-spin-button {\n      //   -webkit-appearance: none;\n      //   margin: 0;\n      // }\n    }\n\n    &.wb-cell-mode {\n      div.wb-row:not(.wb-colspan) {\n        &.wb-active {\n          span.wb-col.wb-active {\n            background-color: var(--wb-active-cell-color-grayscale);\n          }\n        }\n      }\n    }\n\n    &.wb-cell-mode:focus-within,\n    &.wb-cell-mode:focus {\n      div.wb-row:not(.wb-colspan):not(.wb-selected) {\n        // background-color: var(--wb-background-color);\n\n        span.wb-col.wb-active {\n          background-color: var(--wb-active-column-color);\n        }\n\n        &.wb-active {\n          background-color: var(--wb-active-column-color);\n\n          span.wb-col.wb-active {\n            background-color: var(--wb-active-cell-color);\n          }\n        }\n      }\n    }\n\n    &.wb-alternate div.wb-node-list {\n      div.wb-row:nth-of-type(even):not(.wb-active):not(.wb-selected) {\n        background-color: var(--wb-alternate-row-color);\n\n        &:hover {\n          background-color: var(--wb-alternate-row-color-hover);\n        }\n      }\n    }\n\n    // Dim some colors if tree has no focus\n    &:not(:focus-within),\n    &:not(:focus) {\n      div.wb-node-list div.wb-row {\n        border-bottom-color: var(--wb-grid-color-grayscale);\n      }\n    }\n  }\n\n  /* --- FILTER --- */\n\n  &.wb-ext-filter-dim,\n  &.wb-ext-filter-hide {\n    div.wb-node-list div.wb-row {\n      color: var(--wb-filter-dim-color);\n\n      &.wb-submatch {\n        color: var(--wb-filter-submatch-color);\n      }\n\n      &.wb-match {\n        color: var(--wb-node-text-color);\n      }\n    }\n  }\n  // Hide expanders for nodes that don't have matching children\n  &.wb-ext-filter-hide.wb-ext-filter-hide-expanders {\n    div.wb-node-list div.wb-row:not(.wb-submatch) i.wb-expander {\n      visibility: hidden;\n    }\n  }\n\n  // /* --- INPUT controls in grid --- */\n  // &.wb-lean-input div.wb-node-list div.wb-row span.wb-col {\n  //   input {\n  //     border-color: red;\n  //   }\n  // }\n\n  /* --- DND --- */\n\n  div.wb-row.wb-drag-source {\n    opacity: 0.5;\n\n    .wb-node {\n      background-color: var(--wb-drop-source-color);\n    }\n  }\n\n  div.wb-row.wb-drop-target {\n    overflow: visible;\n\n    .wb-node {\n      background-color: var(--wb-drop-target-color);\n      overflow: visible;\n\n      // z-index: 1000;\n      .wb-icon {\n        position: relative;\n        overflow: visible;\n\n        &::after {\n          // use ::after, because ::before is used by icon fonts\n          // vertical-align: baseline;\n          position: absolute;\n          z-index: 1000;\n          // TODO: should be done automatically via rollup plugin:\n          // content: url(../docs/assets/drop_marker_16x32.png);\n          content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAMAAABA3o1rAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACKUExURe/v9/f39+//7+f35+f/79bW5wgIawwYd97e55Tnpc731rjA2d7350LOY1LWa7Xvvf///wAQcyAze97e773vxnuczgA5pQBCpdb33rXvxu//9whjxgBaxlKU1oOz5ABz3gB73tbn99bW1rXe/wCM9xiU997v/97e3gCc/xil/9bv/wic/+/3/wAAALM9X5QAAAAudFJOU////////////////////////////////////////////////////////////wCCj3NVAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAqUlEQVQoU6WQ2w6CMAxA54agsCHq1HlFBREv/f/fs1tHAoaoiedlbXrWtGXwhV8FNqAXuAi4DwkShmE0cgGIcSwCCgkSkrAxpEonot0DhQxJptFsbnOpdNdgsFh6VtYwyqzTmG+oijDY7hr22E4qY7QybeGQe46nsxP0Wwc3Q1GWl+qKec8MlqKubxX+xzV7tkDuD1+3d+heigT2zGx/hCMUeUj4wL8CwAsW1kqCTugMCwAAAABJRU5ErkJggg==);\n          left: 0; //-$icon-outer-width;\n          top: calc(($row-outer-height - var(--wb-icon-height)) / 2);\n        }\n      }\n    }\n  }\n\n  // div.wb-row.wb-drop-target.wb-drop-after .wb-node {\n  //   border-bottom: 1px dotted #b5373b;\n  //   translate: 0 3px;\n  // }\n  // div.wb-row.wb-drop-target.wb-drop-before .wb-node,\n  // div.wb-row.wb-drop-target.wb-drop-after + div.wb-row .wb-node {\n  //   border-top: 1px dotted #b5373b;\n  //   translate: 0 -3px;\n  // }\n\n  div.wb-row.wb-drop-target.wb-drop-before .wb-node .wb-icon::after,\n  div.wb-row.wb-drop-target.wb-drop-after .wb-node .wb-icon::after {\n    // TODO: should be done automatically via rollup plugin:\n    // content: url(../docs/assets/drop_marker_insert_16x64.png);\n    content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAMAAACROYkbAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACNUExURe/v9/f39+//7+f35+f/79bW5wgIawwYd97e55Tnpc731rjA2d7350LOY1LWa7Xvvf///wAQcyAze97e773vxgAAAHuczgA5pQBCpdb33rXvxu//9whjxgBaxlKU1oOz5ABz3gB73tbn99bW1rXe/wCM9xiU997v/97e3gCc/xil/9bv/wic/+/3/wAAAParqS4AAAAvdFJOU/////////////////////////////////////////////////////////////8AWqU49wAAAAlwSFlzAAAOwwAADsMBx2+oZAAAALlJREFUOE/FktsSgiAQhglMS8WstKLzQTM77Ps/XguL16I208cFyzB8/LPAYCC/ErARzcCFx23pBgnGfjAxBYhpKDwq3SBB5DeGWCYz0SUDClIkmgeLpV7HMiNDbrbbYbBaWzbaoKTaJiHfQe5oYLA/NBwxTiyVyqTSghYwox4MTmfL5XozgqxjAtODoizv1QPXPXqgKer6WeH9+Iw9XgF5ve15/Q+6/SQSsE+q8yMcocoREgzg3wKAL4vrpBIKREShAAAAAElFTkSuQmCC);\n    left: 0; // $icon-outer-width * 1.5;\n    top: calc(\n      ($row-outer-height - var(--wb-icon-height)) / 2 - $row-outer-height / 2\n    );\n  }\n\n  div.wb-row.wb-drop-target.wb-drop-after .wb-node .wb-icon::after {\n    top: calc(\n      ($row-outer-height - var(--wb-icon-height)) / 2 + $row-outer-height / 2\n    );\n  }\n\n  /* --- SPECIAL EFFECTS --- */\n\n  /* Colorize indentation levels. */\n  &.wb-rainbow {\n    @for $i from 1 through list.length($level-rainbow) {\n      i.wb-expander:nth-child(#{list.length($level-rainbow)}n + #{$i}),\n      i.wb-indent:nth-child(#{list.length($level-rainbow)}n + #{$i}) {\n        background: list.nth($level-rainbow, $i);\n      }\n    }\n  }\n\n  /* Fade out expanders, when container is not hovered or active */\n  &.wb-fade-expander {\n    i.wb-expander {\n      // only text-alpha is animated, since we want to keep the background color\n      // transition: opacity 1.5s;\n      // opacity: 0;\n      transition: color 1.5s;\n      color: rgba($node-text-color, 0);\n    }\n\n    div.wb-row.wb-loading i.wb-expander,\n    &:hover i.wb-expander,\n    &:focus i.wb-expander,\n    &:focus-within i.wb-expander,\n    [class*=\"wb-statusnode-\"] i.wb-expander {\n      transition: color 0.6s;\n      color: var(--wb-node-text-color);\n    }\n  }\n\n  /* Skeleton */\n  div.wb-row.wb-skeleton {\n    span.wb-title,\n    i.wb-icon {\n      animation: wb-skeleton-animation 1s linear infinite alternate;\n      border-radius: 0.25em;\n      color: transparent;\n      opacity: 0.7;\n      // max-width: 20px;\n    }\n  }\n\n  /* Auto-hide checkboxes unless selected or hovered */\n  &.wb-checkbox-auto-hide {\n    i.wb-checkbox {\n      visibility: hidden;\n    }\n\n    .wb-row:hover i.wb-checkbox,\n    .wb-row.wb-selected i.wb-checkbox {\n      visibility: unset;\n    }\n\n    &:focus,\n    &:focus-within {\n      .wb-row.wb-active i.wb-checkbox {\n        visibility: unset;\n      }\n    }\n  }\n}\n\n/* --- TOOL CLASSES --- */\na.wb-breadcrumb {\n  cursor: pointer;\n  text-decoration: none;\n}\n\n.wb-helper-center {\n  text-align: center;\n}\n\n.wb-helper-disabled {\n  color: var(--wb-dim-color);\n}\n\n.wb-helper-hidden {\n  display: none;\n}\n\n.wb-helper-invalid {\n  color: var(--wb-error-color);\n}\n\n.wb-helper-lazy-expander {\n  color: var(--wb-bg-highlight-color);\n}\n\n.wb-helper-link {\n  cursor: pointer;\n}\n\n.wb-no-select {\n  -webkit-user-select: none; // Safari\n  user-select: none;\n\n  span.wb-title {\n    -webkit-user-select: contain; // Safari\n    user-select: contain;\n  }\n}\n\n// .wb-helper-edit-text {\n//   // content-editable: true;\n// }\nbutton.wb-filter-hide {\n  font-weight: bolder;\n  // background-color: var(--wb-active-color);\n  // -webkit-appearance: auto; /* Removes default Safari styles */\n}\n/* RTL support */\n.wb-helper-start,\n.wb-helper-start > input {\n  text-align: left;\n}\n\n.wb-helper-end,\n.wb-helper-end > input {\n  text-align: right;\n}\n\n.wb-rtl {\n  .wb-helper-start,\n  .wb-helper-start > input {\n    text-align: right;\n  }\n\n  .wb-helper-end,\n  .wb-helper-end > input {\n    text-align: left;\n  }\n}\n\ni.wb-icon {\n  position: relative;\n\n  > span.wb-badge {\n    position: absolute;\n    display: inline-block;\n    top: 0;\n    left: -0.6rem;\n    color: white; //var(--wb-dim-color);\n    background-color: var(--wb-bg-highlight-color);\n    padding: 0.2em 0.3rem 0.1em 0.3rem;\n    font-size: 60%;\n    font-weight: 200;\n    line-height: 1;\n    text-align: center;\n    white-space: nowrap;\n    // vertical-align: baseline;\n    border-radius: 0.5rem;\n    pointer-events: none;\n  }\n}\n\n/* Class 'wb-tristate' is used to mark checkboxes that should toggle like\n *   indeterminate -> checked -> unchecked -> indeterminate ...\n */\n// input[type=checkbox].wb-tristate {\n// }\n// tri-state checkbox in indeterminate state\n.wb-col input[type=\"checkbox\"]:indeterminate {\n  color: var(--wb-dim-color);\n  background-color: red;\n}\n\n.wb-col input:invalid {\n  // border-color: var(--wb-error-color);\n  // color: var(--wb-error-color);\n  background-color: var(--wb-error-background-color);\n}\n\n.wb-col.wb-invalid {\n  border: 1px dotted var(--wb-error-color);\n  // color: var(--wb-error-color);\n  // background-color: var(--wb-error-background-color);\n}\n\n@keyframes wb-spin-animation {\n  0% {\n    transform: rotate(0deg);\n  }\n\n  to {\n    transform: rotate(1turn);\n  }\n}\n\n@keyframes wb-skeleton-animation {\n  0% {\n    background-color: hsl(200, 20%, 70%);\n  }\n\n  100% {\n    background-color: hsl(200, 20%, 95%);\n  }\n}\n\n@keyframes wb-busy-animation {\n  0% {\n    background-position: 0 0;\n  }\n\n  100% {\n    background-position: 0 $row-outer-height;\n  }\n}\n"
  },
  {
    "path": "src/wunderbaum.ts",
    "content": "/*!\n * wunderbaum.ts\n *\n * A treegrid control.\n *\n * Copyright (c) 2021-2025, Martin Wendt (https://wwWendt.de).\n * https://github.com/mar10/wunderbaum\n *\n * Released under the MIT license.\n * @version @VERSION\n * @date @DATE\n */\n\n// import \"./wunderbaum.scss\";\nimport * as util from \"./util\";\nimport { FilterExtension } from \"./wb_ext_filter\";\nimport { KeynavExtension } from \"./wb_ext_keynav\";\nimport { LoggerExtension } from \"./wb_ext_logger\";\nimport { DndExtension } from \"./wb_ext_dnd\";\nimport { GridExtension } from \"./wb_ext_grid\";\nimport { ExtensionsDict, WunderbaumExtension } from \"./wb_extension_base\";\nimport {\n  AddChildrenOptions,\n  ApplyCommandOptions,\n  ApplyCommandType,\n  ChangeType,\n  ColumnDefinitionList,\n  ExpandAllOptions,\n  FilterModeType,\n  FilterNodesOptions,\n  IconMapType,\n  GetStateOptions,\n  MatcherCallback,\n  NavigationType,\n  NavModeEnum,\n  NodeFilterCallback,\n  NodeRegion,\n  NodeStatusType,\n  NodeStringCallback,\n  NodeToDictCallback,\n  NodeTypeDefinitionMap,\n  NodeVisitCallback,\n  RenderFlag,\n  ScrollToOptions,\n  SetActiveOptions,\n  SetColumnOptions,\n  SetStateOptions,\n  SetStatusOptions,\n  SortCallback,\n  SourceType,\n  TreeStateDefinition,\n  UpdateOptions,\n  VisitRowsOptions,\n  WbEventInfo,\n  WbNodeData,\n  FilterOptionsType,\n  EditOptionsType,\n  DndOptionsType,\n  SortOptions,\n  DeprecationOptions,\n  SortByPropertyOptions,\n  ReloadOptions,\n  LoadLazyNodesOptions,\n} from \"./types\";\nimport {\n  DEFAULT_DEBUGLEVEL,\n  defaultIconMaps,\n  makeNodeTitleStartMatcher,\n  nodeTitleSorter,\n  RENDER_MAX_PREFETCH,\n  DEFAULT_ROW_HEIGHT,\n  TEST_FILE_PATH,\n  TEST_HTML,\n} from \"./common\";\nimport { WunderbaumNode } from \"./wb_node\";\nimport { Deferred } from \"./deferred\";\nimport { EditExtension } from \"./wb_ext_edit\";\nimport { InitWunderbaumOptions, WunderbaumOptions } from \"./wb_options\";\nimport { DebouncedFunction } from \"./debounce\";\n\nclass WbSystemRoot extends WunderbaumNode {\n  constructor(tree: Wunderbaum) {\n    super(tree, <WunderbaumNode>(<unknown>null), {\n      key: \"__root__\",\n      title: tree.id,\n    });\n  }\n  toString() {\n    return `WbSystemRoot@${this.key}<'${this.tree.id}'>`;\n  }\n}\n\n/**\n * A persistent plain object or array.\n *\n * See also {@link WunderbaumOptions}.\n */\nexport class Wunderbaum {\n  protected static sequence = 0;\n  protected enabled = true;\n\n  /** Wunderbaum release version number \"MAJOR.MINOR.PATCH\". */\n  public static version: string = \"@VERSION\"; // Set to semver by 'grunt release'\n\n  /** The invisible root node, that holds all visible top level nodes. */\n  public readonly root: WunderbaumNode;\n  /** Unique tree ID as passed to constructor. Defaults to `\"wb_SEQUENCE\"`. */\n  public readonly id: string;\n  /** The `div` container element that was passed to the constructor. */\n  public readonly element: HTMLDivElement;\n  /** The `div.wb-header` element if any. */\n  public readonly headerElement: HTMLDivElement;\n  /** The `div.wb-list-container` element that contains the `nodeListElement`. */\n  public readonly listContainerElement: HTMLDivElement;\n  /** The `div.wb-node-list` element that contains all visible div.wb-row child elements. */\n  public readonly nodeListElement: HTMLDivElement;\n  /** Contains additional data that was sent as response to an Ajax source load request. */\n  public readonly data: { [key: string]: any } = {};\n\n  protected readonly _updateViewportThrottled: DebouncedFunction<() => void>;\n  protected extensionList: WunderbaumExtension<any>[] = [];\n  protected extensions: ExtensionsDict = <ExtensionsDict>{};\n\n  /** Merged options from constructor args and tree- and extension defaults. */\n  public options: WunderbaumOptions;\n\n  protected keyMap = new Map<string, WunderbaumNode>();\n  protected refKeyMap = new Map<string, Set<WunderbaumNode>>();\n  protected treeRowCount = 0;\n  protected _disableUpdateCount = 0;\n  protected _disableUpdateIgnoreCount = 0;\n\n  protected _activeNode: WunderbaumNode | null = null;\n  protected _focusNode: WunderbaumNode | null = null;\n  protected _initialSource: SourceType | null = null;\n\n  /** Currently active node if any.\n   * Use {@link WunderbaumNode.setActive|setActive} to modify.\n   */\n  public get activeNode() {\n    // Check for deleted node, i.e. node.tree === null\n    return this._activeNode?.tree ? this._activeNode : null;\n  }\n  /** Current node hat has keyboard focus if any.\n   * Use {@link WunderbaumNode.setFocus|setFocus()} to modify.\n   */\n  public get focusNode() {\n    // Check for deleted node, i.e. node.tree === null\n    return this._focusNode?.tree ? this._focusNode : null;\n  }\n\n  /** Shared properties, referenced by `node.type`. */\n  public types: NodeTypeDefinitionMap = {};\n  /** List of column definitions. */\n  public columns: ColumnDefinitionList = [];\n  protected _columnsById: { [key: string]: any } = {};\n  protected resizeObserver: ResizeObserver;\n\n  // Modification Status\n  protected pendingChangeTypes: Set<RenderFlag> = new Set();\n\n  /** A Promise that is resolved when the tree was initialized (similar to `init(e)` event). */\n  public readonly ready: Promise<any>;\n  /** Expose some useful methods of the util.ts module as `Wunderbaum.util`. */\n  public static util = util;\n  /** A map of default iconMaps.\n   * May be used as default, when passing partial icon definition maps:\n   * ```js\n   * const tree = new mar10.Wunderbaum({\n   *   ...\n   *   iconMap: Object.assign(Wunderbaum.iconMaps.bootstrap, {\n   *     folder: \"bi bi-archive\",\n   *   }),\n   * });\n   * ```\n   */\n  public static iconMaps = defaultIconMaps;\n  /** Expose some useful methods of the util.ts module as `tree._util`. */\n  public _util = util;\n\n  // --- SELECT ---\n  // public selectRangeAnchor: WunderbaumNode | null = null;\n\n  // --- BREADCRUMB ---\n  /** Filter options (used as defaults for calls to {@link Wunderbaum.filterNodes} ) */\n  public breadcrumb: HTMLElement | null = null;\n\n  // --- FILTER ---\n  /** Filter options (used as defaults for calls to {@link Wunderbaum.filterNodes} ) */\n  public filterMode: FilterModeType = null;\n\n  // --- KEYNAV ---\n  /** @internal Use `setColumn()`/`getActiveColElem()` to access. */\n  public activeColIdx = 0;\n  /** @internal */\n  public _cellNavMode = false;\n  /** @internal */\n  public lastQuicksearchTime = 0;\n  /** @internal */\n  public lastQuicksearchTerm = \"\";\n\n  // --- EDIT ---\n  protected lastClickTime = 0;\n\n  constructor(options: InitWunderbaumOptions) {\n    // Set default options and merge with user options\n    const initOptions = Object.assign<\n      InitWunderbaumOptions,\n      InitWunderbaumOptions\n    >(\n      {\n        id: undefined,\n        source: [], // URL for GET/PUT, Ajax options, or callback\n        element: util.unsafeCast<string>(null),\n        debugLevel: DEFAULT_DEBUGLEVEL, // 0:quiet, 1:errors, 2:warnings, 3:info, 4:verbose\n        header: null, // Show/hide header (pass bool or string)\n        rowHeightPx: DEFAULT_ROW_HEIGHT,\n        iconMap: \"bootstrap\",\n        columns: [], //util.unsafeCast<ColumnDefinitionList>(null),\n        types: {},\n        enabled: true,\n        fixedCol: false,\n        showSpinner: false,\n        checkbox: false,\n        minExpandLevel: 0,\n        emptyChildListExpandable: false,\n        skeleton: false,\n        autoCollapse: false,\n        adjustHeight: true,\n        connectTopBreadcrumb: null,\n        columnsFilterable: false,\n        columnsMenu: false,\n        columnsResizable: false,\n        columnsSortable: false,\n        selectMode: \"multi\", // SelectModeType\n        scrollIntoViewOnExpandClick: true,\n        // --- Extensions (actually set by exensions on init)\n        dnd: util.unsafeCast<DndOptionsType>(null),\n        edit: util.unsafeCast<EditOptionsType>(null),\n        filter: util.unsafeCast<FilterOptionsType>(null),\n        // --- KeyNav ---\n        navigationModeOption: util.unsafeCast<NavModeEnum>(null),\n        quicksearch: true,\n        // --- Events ---\n        // iconBadge: null,\n        // change: null,\n        // ...\n\n        // --- Strings ---\n        strings: {\n          loadError: \"Error\",\n          loading: \"Loading...\",\n          noData: \"No data\",\n          breadcrumbDelimiter: \" » \",\n          queryResult: \"Found ${matches} of ${count}\",\n          noMatch: \"No results\",\n          matchIndex: \"${match} of ${matches}\",\n        },\n      },\n      options\n    );\n    const opts = initOptions as WunderbaumOptions;\n    this.options = opts;\n\n    const readyDeferred = new Deferred();\n    this.ready = readyDeferred.promise();\n    let readyOk = false;\n    this.ready\n      .then(() => {\n        readyOk = true;\n        try {\n          this._callEvent(\"init\");\n        } catch (error) {\n          // We re-raise in the reject handler, but Chrome resets the stack\n          // frame then, so we log it here:\n          this.logError(\"Exception inside `init(e)` event:\", error);\n        }\n      })\n      .catch((err) => {\n        if (readyOk) {\n          // Error occurred in `init` handler. We can re-raise, but Chrome\n          // resets the stack frame.\n          throw err;\n        } else {\n          // Error in load process\n          this._callEvent(\"init\", { error: err });\n        }\n      });\n\n    this.id = initOptions.id || \"wb_\" + ++Wunderbaum.sequence;\n    delete initOptions.id;\n    this.root = new WbSystemRoot(this);\n\n    this._registerExtension(new KeynavExtension(this));\n    this._registerExtension(new EditExtension(this));\n    this._registerExtension(new FilterExtension(this));\n    this._registerExtension(new DndExtension(this));\n    this._registerExtension(new GridExtension(this));\n    this._registerExtension(new LoggerExtension(this));\n\n    this._updateViewportThrottled = util.adaptiveThrottle(\n      this._updateViewportImmediately.bind(this),\n      {}\n    );\n\n    // --- Evaluate options\n    this.columns = initOptions.columns || [];\n    delete initOptions.columns;\n    if (!this.columns || !this.columns.length) {\n      const title = typeof opts.header === \"string\" ? opts.header : this.id;\n      this.columns = [{ id: \"*\", title: title, width: \"*\" }];\n    }\n\n    if (initOptions.types) {\n      this.setTypes(initOptions.types, true);\n    }\n    delete initOptions.types;\n\n    // --- Create Markup\n    this.element = util.elemFromSelector<HTMLDivElement>(initOptions.element)!;\n    util.assert(\n      !!this.element,\n      `Invalid 'element' option: ${initOptions.element}`\n    );\n    delete (<any>initOptions).element;\n\n    this.element.classList.add(\"wunderbaum\");\n    if (!this.element.getAttribute(\"tabindex\")) {\n      this.element.tabIndex = 0;\n    }\n\n    if (opts.rowHeightPx !== DEFAULT_ROW_HEIGHT) {\n      this.element.style.setProperty(\n        \"--wb-row-outer-height\",\n        opts.rowHeightPx + \"px\"\n      );\n      this.element.style.setProperty(\n        \"--wb-row-inner-height\",\n        opts.rowHeightPx - 2 + \"px\"\n      );\n    }\n    // Attach tree instance to <div>\n    (<any>this.element)._wb_tree = this;\n\n    // Create header markup, or take it from the existing html\n\n    this.headerElement =\n      this.element.querySelector<HTMLDivElement>(\"div.wb-header\")!;\n\n    const wantHeader =\n      opts.header == null ? this.columns.length > 1 : !!opts.header;\n\n    if (this.headerElement) {\n      // User existing header markup to define `this.columns`\n      util.assert(\n        !this.columns,\n        \"`opts.columns` must not be set if table markup already contains a header\"\n      );\n      this.columns = [];\n      const rowElement =\n        this.headerElement.querySelector<HTMLDivElement>(\"div.wb-row\")!;\n      for (const colDiv of rowElement.querySelectorAll(\"div\")) {\n        this.columns.push({\n          id: colDiv.dataset.id || `col_${this.columns.length}`,\n          // id: colDiv.dataset.id || null,\n          title: \"\" + colDiv.textContent,\n          // text: \"\" + colDiv.textContent,\n          width: \"*\", // TODO: read from header span\n        });\n      }\n    } else {\n      // We need a row div, the rest will be computed from `this.columns`\n      const coldivs = \"<span class='wb-col'></span>\".repeat(\n        this.columns.length\n      );\n      this.element.innerHTML = `\n        <div class='wb-header'>\n          <div class='wb-row'>\n            ${coldivs}\n          </div>\n        </div>`;\n\n      if (!wantHeader) {\n        const he = this.element.querySelector<HTMLDivElement>(\"div.wb-header\")!;\n        he.style.display = \"none\";\n      }\n    }\n\n    //\n    this.element.innerHTML += `\n      <div class=\"wb-list-container\">\n        <div class=\"wb-node-list\"></div>\n      </div>`;\n    this.listContainerElement = this.element.querySelector<HTMLDivElement>(\n      \"div.wb-list-container\"\n    )!;\n    this.nodeListElement =\n      this.listContainerElement.querySelector<HTMLDivElement>(\n        \"div.wb-node-list\"\n      )!;\n    this.headerElement =\n      this.element.querySelector<HTMLDivElement>(\"div.wb-header\")!;\n\n    this.element.classList.toggle(\"wb-grid\", this.columns.length > 1);\n\n    if (this.options.connectTopBreadcrumb) {\n      this.breadcrumb = util.elemFromSelector(\n        this.options.connectTopBreadcrumb\n      )!;\n      util.assert(\n        !this.breadcrumb || this.breadcrumb.innerHTML != null,\n        `Invalid 'connectTopBreadcrumb' option: ${this.breadcrumb}.`\n      );\n      this.breadcrumb.addEventListener(\"click\", (e) => {\n        // const node = Wunderbaum.getNode(e)!;\n        const elem = e.target as HTMLElement;\n        if (elem && elem.matches(\"a.wb-breadcrumb\")) {\n          const node = this.keyMap.get(elem.dataset.key!);\n          node?.setActive();\n          e.preventDefault();\n        }\n      });\n    }\n    this._initExtensions();\n\n    // --- apply initial options\n    [\"enabled\", \"fixedCol\"].forEach((optName) => {\n      if ((opts as any)[optName] != null) {\n        this.setOption(optName, (opts as any)[optName]);\n      }\n    });\n\n    // --- Load initial data\n    if (initOptions.source) {\n      if (opts.showSpinner) {\n        this.nodeListElement.innerHTML = `<progress class='spinner'>${opts.strings.loading}</progress>`;\n      }\n      this.load(initOptions.source)\n        .then(() => {\n          // The source may have defined columns, so we may adjust the nav mode\n          if (opts.navigationModeOption == null) {\n            if (this.isGrid()) {\n              this.setNavigationOption(NavModeEnum.cell);\n            } else {\n              this.setNavigationOption(NavModeEnum.row);\n            }\n          } else {\n            this.setNavigationOption(opts.navigationModeOption);\n          }\n          this.update(ChangeType.structure, { immediate: true });\n          readyDeferred.resolve();\n        })\n        .catch((error) => {\n          readyDeferred.reject(error);\n        })\n        .finally(() => {\n          this.element.querySelector(\"progress.spinner\")?.remove();\n          this.element.classList.remove(\"wb-initializing\");\n        });\n    } else {\n      readyDeferred.resolve();\n    }\n\n    // Async mode is sometimes required, because this.element.clientWidth\n    // has a wrong value at start???\n    this.update(ChangeType.any);\n\n    // --- Bind listeners\n    this._registerEventHandlers();\n\n    this.resizeObserver = new ResizeObserver((entries) => {\n      // this.log(\"ResizeObserver: Size changed\", entries);\n      this.update(ChangeType.resize);\n    });\n    this.resizeObserver.observe(this.element);\n  }\n\n  private _registerEventHandlers() {\n    this.element.addEventListener(\"scroll\", (e: Event) => {\n      // this.log(`scroll, scrollTop:${e.target.scrollTop}`, e);\n      this.update(ChangeType.scroll);\n    });\n\n    util.onEvent(this.element, \"click\", \".wb-button,.wb-col-icon\", (e) => {\n      const info = Wunderbaum.getEventInfo(e);\n      const command = (<HTMLElement>e.target)?.dataset?.command;\n\n      this._callEvent(\"buttonClick\", {\n        event: e,\n        info: info,\n        command: command,\n      });\n    });\n\n    util.onEvent(this.nodeListElement, \"click\", \"div.wb-row\", (e) => {\n      const info = Wunderbaum.getEventInfo(e);\n      const node = info.node;\n      const mouseEvent = e as MouseEvent;\n\n      // this.log(\"click\", info);\n\n      if (\n        this._callEvent(\"click\", { event: e, node: node, info: info }) === false\n      ) {\n        this.lastClickTime = Date.now();\n        return false;\n      }\n      if (node) {\n        if (mouseEvent.ctrlKey) {\n          node.toggleSelected();\n          return;\n        }\n        // Edit title if 'clickActive' is triggered:\n        const trigger = this.getOption(\"edit.trigger\");\n        const slowClickDelay = this.getOption(\"edit.slowClickDelay\");\n        if (\n          trigger.indexOf(\"clickActive\") >= 0 &&\n          info.region === \"title\" &&\n          node.isActive() &&\n          (!slowClickDelay || Date.now() - this.lastClickTime < slowClickDelay)\n        ) {\n          node.startEditTitle();\n        }\n\n        if (info.region === NodeRegion.expander) {\n          node.setExpanded(!node.isExpanded(), {\n            scrollIntoView: this.options.scrollIntoViewOnExpandClick !== false,\n          });\n        } else if (info.region === NodeRegion.checkbox) {\n          node.toggleSelected();\n        } else {\n          if (info.colIdx >= 0) {\n            node.setActive(true, { colIdx: info.colIdx, event: e });\n          } else {\n            node.setActive(true, { event: e });\n          }\n        }\n      }\n      this.lastClickTime = Date.now();\n    });\n\n    util.onEvent(this.nodeListElement, \"dblclick\", \"div.wb-row\", (e) => {\n      const info = Wunderbaum.getEventInfo(e);\n      const node = info.node;\n      // this.log(\"dblclick\", info, e);\n\n      if (\n        this._callEvent(\"dblclick\", { event: e, node: node, info: info }) ===\n        false\n      ) {\n        return false;\n      }\n      if (\n        node &&\n        info.colIdx === 0 &&\n        node.isExpandable() &&\n        info.region !== NodeRegion.expander\n      ) {\n        this._callMethod(\"edit._stopEditTitle\");\n        node.setExpanded(!node.isExpanded());\n      }\n    });\n\n    util.onEvent(this.element, \"keydown\", (e) => {\n      const info = Wunderbaum.getEventInfo(e);\n      const eventName = util.eventToString(e);\n      const node = info.node || this.getFocusNode();\n\n      this._callHook(\"onKeyEvent\", {\n        event: e,\n        node: node,\n        info: info,\n        eventName: eventName,\n      });\n    });\n\n    util.onEvent(this.element, \"focusin focusout\", (e) => {\n      const flag = e.type === \"focusin\";\n      const targetNode = Wunderbaum.getNode(e)!;\n\n      this._callEvent(\"focus\", { flag: flag, event: e });\n\n      if (flag && this.isRowNav() && !this.isEditingTitle()) {\n        if (this.options.navigationModeOption === NavModeEnum.row) {\n          targetNode?.setActive();\n        } else {\n          this.setCellNav();\n        }\n      }\n      if (!flag) {\n        this._callMethod(\"edit._stopEditTitle\", true, {\n          event: e,\n          forceClose: true,\n        });\n      }\n    });\n  }\n  /**\n   * Return a Wunderbaum instance, from element, id, index, or event.\n   *\n   * ```js\n   * getTree();         // Get first Wunderbaum instance on page\n   * getTree(1);        // Get second Wunderbaum instance on page\n   * getTree(event);    // Get tree for this mouse- or keyboard event\n   * getTree(\"foo\");    // Get tree for this `tree.options.id`\n   * getTree(\"#tree\");  // Get tree for first matching element selector\n   * ```\n   */\n  public static getTree(\n    el?: Element | Event | number | string | WunderbaumNode\n  ): Wunderbaum | null {\n    if (el instanceof Wunderbaum) {\n      return el;\n    } else if (el instanceof WunderbaumNode) {\n      return el.tree;\n    }\n    if (el === undefined) {\n      el = 0; // get first tree\n    }\n    if (typeof el === \"number\") {\n      el = document.querySelectorAll(\".wunderbaum\")[el]; // el was an integer: return nth element\n    } else if (typeof el === \"string\") {\n      // Search all trees for matching ID\n      for (const treeElem of document.querySelectorAll(\".wunderbaum\")) {\n        const tree = (<any>treeElem)._wb_tree;\n        if (tree && tree.id === el) {\n          return tree;\n        }\n      }\n      // Search by selector\n      el = document.querySelector(el)!;\n      if (!el) {\n        return null;\n      }\n    } else if ((<Event>el).target) {\n      el = (<Event>el).target as Element;\n    }\n    util.assert(el instanceof Element, `Invalid el type: ${el}`);\n    if (!(<HTMLElement>el).matches(\".wunderbaum\")) {\n      el = (<HTMLElement>el).closest(\".wunderbaum\")!;\n    }\n\n    if (el && (<any>el)._wb_tree) {\n      return (<any>el)._wb_tree;\n    }\n    return null;\n  }\n\n  /**\n   * Return the icon-function -> icon-definition mapping.\n   * @deprecated Use {@link Wunderbaum.iconMaps}\n   */\n  get iconMap(): IconMapType {\n    const map = this.options.iconMap;\n    if (typeof map === \"string\") {\n      return defaultIconMaps[map as keyof typeof defaultIconMaps];\n    }\n    return map;\n  }\n\n  /**\n   * Return a WunderbaumNode instance from element or event.\n   */\n  public static getNode(el: Element | Event): WunderbaumNode | null {\n    if (!el) {\n      return null;\n    } else if (el instanceof WunderbaumNode) {\n      return el;\n    } else if ((<Event>el).target !== undefined) {\n      el = (<Event>el).target! as Element; // el was an Event\n    }\n    // `el` is a DOM element\n    // let nodeElem = obj.closest(\"div.wb-row\");\n    while (el) {\n      if ((<any>el)._wb_node) {\n        return (<any>el)._wb_node as WunderbaumNode;\n      }\n      el = (<Element>el).parentElement!; //.parentNode;\n    }\n    return null;\n  }\n\n  /**\n   * Iterate all descendant nodes depth-first, pre-order using `for ... of ...` syntax.\n   * More concise, but slightly slower than {@link Wunderbaum.visit}.\n   *\n   * Example:\n   * ```js\n   * for(const node of tree) {\n   *   ...\n   * }\n   * ```\n   */\n\n  *[Symbol.iterator](): IterableIterator<WunderbaumNode> {\n    yield* this.root;\n  }\n\n  /** @internal */\n  protected _registerExtension(extension: WunderbaumExtension<any>): void {\n    this.extensionList.push(extension);\n    this.extensions[extension.id] = extension;\n    // this.extensionMap.set(extension.id, extension);\n  }\n\n  /** Called on tree (re)init after markup is created, before loading. */\n  protected _initExtensions(): void {\n    for (const ext of this.extensionList) {\n      ext.init();\n    }\n  }\n\n  /**\n   * Calculate a *stable*, unique key for a node from its refKey (or title).\n   * We also add information from the parent, because a refKey may occur multiple\n   * times in a tree (but not as child of the same parent).\n   * @internal\n   */\n  _calculateKey(data: WbNodeData, parent?: WunderbaumNode): string {\n    if (data.key) {\n      // Always use an explicitly passed key\n      return data.key;\n    }\n    // Auto-keys are optional, use a monotonic counter by default:\n    if (!this.options.autoKeys) {\n      return \"\" + ++WunderbaumNode.sequence;\n    }\n    // Add the parent's key to the hash. Assuming this was generated by the\n    // same algorithm, this should incorporate the whole path:\n    const s = (parent ? parent.key : \"\") + (data.refKey || data.title);\n    // 32-bit has a high probability of collisions, so we pump up to 64-bit\n    // https://security.stackexchange.com/q/209882/207588\n    const h1 = util.murmurHash3(s, true);\n    let key = \"id_\" + h1 + util.murmurHash3(h1 + s, true);\n    // Check for collisions\n    // (Most likely if the same title occurs multiple in the same parent).\n    const existingNode = this.keyMap.get(key);\n    if (existingNode) {\n      key += \".\" + ++Wunderbaum.sequence;\n      this.logWarn(\n        `Node with existing key: '${existingNode}', using ${key}.`,\n        data\n      );\n    }\n    return key;\n  }\n\n  /** Add node to tree's bookkeeping data structures. @internal */\n  _registerNode(node: WunderbaumNode): void {\n    const key = node.key;\n    util.assert(key != null, `Missing key: '${node}'.`);\n    util.assert(!this.keyMap.has(key), `Duplicate key: '${key}': ${node}.`);\n    this.keyMap.set(key, node);\n    const rk = node.refKey;\n    if (rk != null) {\n      const rks = this.refKeyMap.get(rk); // Set of nodes with this refKey\n      if (rks) {\n        rks.add(node);\n      } else {\n        this.refKeyMap.set(rk, new Set([node]));\n      }\n    }\n  }\n\n  /** Remove node from tree's bookkeeping data structures. @internal  */\n  _unregisterNode(node: WunderbaumNode): void {\n    // Remove refKey reference from map (if any)\n    const rk = node.refKey;\n    if (rk != null) {\n      const rks = this.refKeyMap.get(rk);\n      if (rks && rks.delete(node) && !rks.size) {\n        // We just removed the last element\n        this.refKeyMap.delete(rk);\n      }\n    }\n    // Remove key reference from map\n    this.keyMap.delete(node.key);\n    // Mark as disposed\n    (node.tree as any) = null;\n    (node.parent as any) = null;\n    // Remove HTML markup\n    node.removeMarkup();\n  }\n\n  /** Call all hook methods of all registered extensions.*/\n  protected _callHook(\n    hook: keyof WunderbaumExtension<any>,\n    data: any = {}\n  ): any {\n    let res;\n    const d = util.extend(\n      {},\n      { tree: this, options: this.options, result: undefined },\n      data\n    );\n\n    for (const ext of this.extensionList) {\n      res = (<any>ext[hook]).call(ext, d);\n      if (res === false) {\n        break;\n      }\n      if (d.result !== undefined) {\n        res = d.result;\n      }\n    }\n    return res;\n  }\n\n  /**\n   * Call tree method or extension method if defined.\n   *\n   * Example:\n   * ```js\n   * tree._callMethod(\"edit.startEdit\", \"arg1\", \"arg2\")\n   * ```\n   */\n  _callMethod(name: string, ...args: any[]): any {\n    const [p, n] = name.split(\".\");\n    const obj = n ? this.extensions[p] : this;\n    const func = (<any>obj)[n];\n    if (func) {\n      return func.apply(obj, args);\n    } else {\n      this.logError(`Calling undefined method '${name}()'.`);\n    }\n  }\n\n  /**\n   * Call event handler if defined in tree or tree.EXTENSION options.\n   *\n   * Example:\n   * ```js\n   * tree._callEvent(\"edit.beforeEdit\", {foo: 42})\n   * ```\n   */\n  _callEvent(type: string, extra?: any): any {\n    const [p, n] = type.split(\".\");\n    const opts = this.options as any;\n    const func = n ? opts[p][n] : opts[p];\n    if (func) {\n      return func.call(\n        this,\n        util.extend({ type: type, tree: this, util: this._util }, extra)\n      );\n      // } else {\n      //   this.logError(`Triggering undefined event '${type}'.`)\n    }\n  }\n\n  /** Return the node for  given row index. */\n  protected _getNodeByRowIdx(idx: number): WunderbaumNode | null {\n    // TODO: start searching from active node (reverse)\n    let node: WunderbaumNode | null = null;\n    this.visitRows((n) => {\n      if (n._rowIdx === idx) {\n        node = n;\n        return false;\n      }\n    });\n    return <WunderbaumNode>node!;\n  }\n\n  /** Return the topmost visible node in the viewport.\n   * @param complete If `false`, the node is considered visible if at least one\n   * pixel is visible.\n   */\n  getTopmostVpNode(complete = true) {\n    const rowHeight = this.options.rowHeightPx;\n    const gracePx = 1; // ignore subpixel scrolling\n    const scrollParent = this.element;\n    // const headerHeight = this.headerElement.clientHeight;  // May be 0\n    const scrollTop = scrollParent.scrollTop; // + headerHeight;\n    let topIdx: number;\n\n    if (complete) {\n      topIdx = Math.ceil((scrollTop - gracePx) / rowHeight);\n    } else {\n      topIdx = Math.floor(scrollTop / rowHeight);\n    }\n    return this._getNodeByRowIdx(topIdx)!;\n  }\n\n  /** Return the lowest visible node in the viewport. */\n  getLowestVpNode(complete = true) {\n    const rowHeight = this.options.rowHeightPx;\n    const scrollParent = this.element;\n    const headerHeight = this.headerElement.clientHeight; // May be 0\n    const scrollTop = scrollParent.scrollTop;\n    const clientHeight = scrollParent.clientHeight - headerHeight;\n    let bottomIdx: number;\n\n    if (complete) {\n      bottomIdx = Math.floor((scrollTop + clientHeight) / rowHeight) - 1;\n    } else {\n      bottomIdx = Math.ceil((scrollTop + clientHeight) / rowHeight) - 1;\n    }\n    bottomIdx = Math.min(bottomIdx, this.count(true) - 1);\n    return this._getNodeByRowIdx(bottomIdx)!;\n  }\n\n  /** Return preceding visible node in the viewport. */\n  protected _getPrevNodeInView(node?: WunderbaumNode, ofs = 1) {\n    this.visitRows(\n      (n) => {\n        node = n;\n        if (ofs-- <= 0) {\n          return false;\n        }\n      },\n      { reverse: true, start: node || this.getActiveNode() }\n    );\n    return node;\n  }\n\n  /** Return following visible node in the viewport. */\n  protected _getNextNodeInView(\n    node?: WunderbaumNode,\n    options?: {\n      ofs?: number;\n      reverse?: boolean;\n      cb?: (n: WunderbaumNode) => boolean;\n    }\n  ) {\n    let ofs = options?.ofs || 1;\n    const reverse = !!options?.reverse;\n\n    this.visitRows(\n      (n) => {\n        node = n;\n        if (options?.cb && options.cb(n)) {\n          return false;\n        }\n        if (ofs-- <= 0) {\n          return false;\n        }\n      },\n      { reverse: reverse, start: node || this.getActiveNode() }\n    );\n    return node;\n  }\n\n  /**\n   * Append (or insert) a list of toplevel nodes.\n   *\n   * @see {@link WunderbaumNode.addChildren}\n   */\n  addChildren(nodeData: any, options?: AddChildrenOptions): WunderbaumNode {\n    return this.root.addChildren(nodeData, options);\n  }\n\n  /**\n   * Apply a modification (or navigation) operation on the **tree or active node**.\n   */\n  applyCommand(cmd: ApplyCommandType, options?: ApplyCommandOptions): any;\n\n  /**\n   * Apply a modification (or navigation) operation on a **node**.\n   * @see {@link WunderbaumNode.applyCommand}\n   */\n  applyCommand(\n    cmd: ApplyCommandType,\n    node: WunderbaumNode,\n    options?: ApplyCommandOptions\n  ): any;\n\n  /**\n   * Apply a modification or navigation operation.\n   *\n   * Most of these commands simply map to a node or tree method.\n   * This method is especially useful when implementing keyboard mapping,\n   * context menus, or external buttons.\n   *\n   * Valid commands:\n   *   - 'moveUp', 'moveDown'\n   *   - 'indent', 'outdent'\n   *   - 'remove'\n   *   - 'edit', 'addChild', 'addSibling': (reqires ext-edit extension)\n   *   - 'cut', 'copy', 'paste': (use an internal singleton 'clipboard')\n   *   - 'down', 'first', 'last', 'left', 'parent', 'right', 'up': navigate\n   *\n   */\n  applyCommand(\n    cmd: ApplyCommandType,\n    nodeOrOpts?: WunderbaumNode | any,\n    options?: ApplyCommandOptions\n  ): any {\n    let // clipboard,\n      node,\n      refNode;\n    // options = $.extend(\n    // \t{ setActive: true, clipboard: CLIPBOARD },\n    // \toptions_\n    // );\n    if (nodeOrOpts instanceof WunderbaumNode) {\n      node = nodeOrOpts;\n    } else {\n      node = this.getActiveNode()!;\n      util.assert(options === undefined, `Unexpected options: ${options}`);\n      options = nodeOrOpts;\n    }\n    // clipboard = options.clipboard;\n\n    switch (cmd) {\n      // Sorting and indentation:\n      case \"moveUp\":\n        refNode = node.getPrevSibling();\n        if (refNode) {\n          node.moveTo(refNode, \"before\");\n          node.setActive();\n        }\n        break;\n      case \"moveDown\":\n        refNode = node.getNextSibling();\n        if (refNode) {\n          node.moveTo(refNode, \"after\");\n          node.setActive();\n        }\n        break;\n      case \"indent\":\n        refNode = node.getPrevSibling();\n        if (refNode) {\n          node.moveTo(refNode, \"appendChild\");\n          refNode.setExpanded();\n          node.setActive();\n        }\n        break;\n      case \"outdent\":\n        if (!node.isTopLevel()) {\n          node.moveTo(node.getParent()!, \"after\");\n          node.setActive();\n        }\n        break;\n      // Remove:\n      case \"remove\":\n        refNode = node.getPrevSibling() || node.getParent();\n        node.remove();\n        if (refNode) {\n          refNode.setActive();\n        }\n        break;\n      // Add, edit (requires ext-edit):\n      case \"addChild\":\n        this._callMethod(\"edit.createNode\", \"prependChild\");\n        break;\n      case \"addSibling\":\n        this._callMethod(\"edit.createNode\", \"after\");\n        break;\n      case \"rename\":\n        node.startEditTitle();\n        break;\n      // Simple clipboard simulation:\n      // case \"cut\":\n      // \tclipboard = { mode: cmd, data: node };\n      // \tbreak;\n      // case \"copy\":\n      // \tclipboard = {\n      // \t\tmode: cmd,\n      // \t\tdata: node.toDict(function(d, n) {\n      // \t\t\tdelete d.key;\n      // \t\t}),\n      // \t};\n      // \tbreak;\n      // case \"clear\":\n      // \tclipboard = null;\n      // \tbreak;\n      // case \"paste\":\n      // \tif (clipboard.mode === \"cut\") {\n      // \t\t// refNode = node.getPrevSibling();\n      // \t\tclipboard.data.moveTo(node, \"child\");\n      // \t\tclipboard.data.setActive();\n      // \t} else if (clipboard.mode === \"copy\") {\n      // \t\tnode.addChildren(clipboard.data).setActive();\n      // \t}\n      // \tbreak;\n      // Navigation commands:\n      case \"down\":\n      case \"first\":\n      case \"last\":\n      case \"left\":\n      case \"nextMatch\":\n      case \"pageDown\":\n      case \"pageUp\":\n      case \"parent\":\n      case \"prevMatch\":\n      case \"right\":\n      case \"up\":\n        return node.navigate(cmd);\n      default:\n        util.error(`Unhandled command: '${cmd}'`);\n    }\n  }\n\n  /** Delete all nodes. */\n  clear() {\n    this.root.removeChildren();\n    this.root.children = null;\n    this.keyMap.clear();\n    this.refKeyMap.clear();\n    this.treeRowCount = 0;\n    this._activeNode = null;\n    this._focusNode = null;\n\n    // this.types = {};\n    // this. columns =[];\n    // this._columnsById = {};\n\n    // Modification Status\n    // this.changedSince = 0;\n    // this.changes.clear();\n    // this.changedNodes.clear();\n\n    // // --- FILTER ---\n    // public filterMode: FilterModeType = null;\n\n    // // --- KEYNAV ---\n    // public activeColIdx = 0;\n    // public cellNavMode = false;\n    // public lastQuicksearchTime = 0;\n    // public lastQuicksearchTerm = \"\";\n    this.update(ChangeType.structure);\n  }\n\n  /**\n   * Clear nodes and markup and detach events and observers.\n   *\n   * This method may be useful to free up resources before re-creating a tree\n   * on an existing div, for example in unittest suites.\n   * Note that this Wunderbaum instance becomes unusable afterwards.\n   */\n  public destroy() {\n    this.logInfo(\"destroy()...\");\n    this.clear();\n    this.resizeObserver.disconnect();\n    this.element.innerHTML = \"\";\n\n    // Remove all event handlers\n    this.element.outerHTML = this.element.outerHTML; // eslint-disable-line\n  }\n\n  /**\n   * Return `tree.option.NAME` (also resolving if this is a callback).\n   *\n   * See also {@link WunderbaumNode.getOption|WunderbaumNode.getOption()}\n   * to evaluate `node.NAME` setting and `tree.types[node.type].NAME`.\n   *\n   * @param name option name (use dot notation to access extension option, e.g.\n   * `filter.mode`)\n   */\n  getOption(name: string, defaultValue?: any): any {\n    let ext;\n    let opts = this.options as any;\n\n    // Lookup `name` in options dict\n    if (name.indexOf(\".\") >= 0) {\n      [ext, name] = name.split(\".\");\n      opts = opts[ext];\n    }\n    let value = opts[name];\n\n    // A callback resolver always takes precedence\n    if (typeof value === \"function\") {\n      value = value({ type: \"resolve\", tree: this });\n    }\n    // Use value from value options dict, fallback do default\n    // console.info(name, value, opts)\n    return value ?? defaultValue;\n  }\n\n  /**\n   * Set tree option.\n   * Use dot notation to set plugin option, e.g. \"filter.mode\".\n   */\n  setOption(name: string, value: any): void {\n    // this.log(`setOption(${name}, ${value})`);\n    if (name.indexOf(\".\") >= 0) {\n      const parts = name.split(\".\");\n      const ext = this.extensions[parts[0]];\n      ext!.setPluginOption(parts[1], value);\n      return;\n    }\n    (this.options as any)[name] = value;\n    switch (name) {\n      case \"checkbox\":\n        this.update(ChangeType.any);\n        break;\n      case \"enabled\":\n        this.setEnabled(!!value);\n        break;\n      case \"fixedCol\":\n        this.element.classList.toggle(\"wb-fixed-col\", !!value);\n        break;\n    }\n  }\n\n  /** Return true if the tree (or one of its nodes) has the input focus. */\n  hasFocus() {\n    return this.element.contains(document.activeElement);\n  }\n\n  /**\n   * Return true if the tree displays a header. Grids have a header unless the\n   * `header` option is set to `false`. Plain trees have a header if the `header`\n   * option is a string or `true`.\n   */\n  hasHeader() {\n    const header = this.options.header;\n    return this.isGrid() ? header !== false : !!header;\n  }\n\n  /** Run code, but defer rendering of viewport until done.\n   *\n   * ```js\n   * const res = tree.runWithDeferredUpdate(() => {\n   *   return someFunctionThatWouldUpdateManyNodes();\n   * });\n   * ```\n   */\n  runWithDeferredUpdate<T>(func: () => util.NotPromise<T>): T {\n    try {\n      this.enableUpdate(false);\n      const res = func();\n      util.assert(\n        !(res instanceof Promise),\n        `Promise return not allowed (see 'runWithDeferredUpdateAsync()'): ${res}`\n      );\n      return res;\n    } finally {\n      this.enableUpdate(true);\n    }\n  }\n  /** Run code, but defer rendering of viewport until done.\n   *\n   * ```js\n   * const res = await tree.runWithDeferredUpdate(async () => {\n   *   return someAsyncFunctionThatWouldUpdateManyNodes();\n   * });\n   * ```\n   */\n  async runWithDeferredUpdateAsync<T>(func: () => Promise<T>): Promise<T> {\n    try {\n      this.enableUpdate(false);\n      return await func();\n    } finally {\n      this.enableUpdate(true);\n    }\n  }\n\n  /** Recursively expand all expandable nodes (triggers lazy load if needed). */\n  async expandAll(flag: boolean = true, options?: ExpandAllOptions) {\n    await this.root.expandAll(flag, options);\n  }\n\n  /** Recursively select all nodes. */\n  selectAll(flag: boolean = true) {\n    return this.root.setSelected(flag, { propagateDown: true });\n  }\n\n  /** Toggle select all nodes. */\n  toggleSelect() {\n    this.selectAll(this.root._anySelectable());\n  }\n\n  /**\n   * Return an array of selected nodes.\n   * @param stopOnParents only return the topmost selected node (useful with selectMode 'hier')\n   */\n  getSelectedNodes(stopOnParents: boolean = false): WunderbaumNode[] {\n    return this.root.getSelectedNodes(stopOnParents);\n  }\n\n  /**\n   * Return an array of refKey values.\n   *\n   * RefKeys are unique identifiers for a node data, and are used to identify\n   * clones.\n   * If more than one node has the same refKey, it is only returned once.\n   * @param selected if true, only return refKeys of selected nodes.\n   */\n  getRefKeys(selected = false): string[] {\n    return this.root.getRefKeys(selected);\n  }\n\n  /*\n   * Return an array of selected nodes.\n   */\n  protected _selectRange(eventInfo: WbEventInfo): false | void {\n    this.logDebug(\"_selectRange\", eventInfo);\n    util.error(\"Not yet implemented.\");\n    // const mode = this.options.selectMode!;\n    // if (mode !== \"multi\") {\n    //   this.logDebug(`Range selection only available for selectMode 'multi'`);\n    //   return;\n    // }\n\n    // if (eventInfo.canonicalName === \"Meta+click\") {\n    //   eventInfo.node?.toggleSelected();\n    //   return false; // don't\n    // } else if (eventInfo.canonicalName === \"Shift+click\") {\n    //   let from = this.activeNode;\n    //   let to = eventInfo.node;\n    //   if (!from || !to || from === to) {\n    //     return;\n    //   }\n    //   this.runWithDeferredUpdate(() => {\n    //     this.visitRows(\n    //       (node) => {\n    //         node.setSelected();\n    //       },\n    //       {\n    //         includeHidden: true,\n    //         includeSelf: false,\n    //         start: from,\n    //         reverse: from!._rowIdx! > to!._rowIdx!,\n    //       }\n    //     );\n    //   });\n    //   return false;\n    // }\n  }\n\n  /** Return the number of nodes in the data model.\n   * @param visible if true, nodes that are hidden due to collapsed parents are ignored.\n   */\n  count(visible = false): number {\n    return visible ? this.treeRowCount : this.keyMap.size;\n  }\n\n  /** Return the number of *unique* nodes in the data model, i.e. unique `node.refKey`.\n   */\n  countUnique(): number {\n    return this.refKeyMap.size;\n  }\n\n  /** @internal sanity check. */\n  _check() {\n    let i = 0;\n    this.visit((n) => {\n      i++;\n    });\n    if (this.keyMap.size !== i) {\n      this.logWarn(`_check failed: ${this.keyMap.size} !== ${i}`);\n    }\n    // util.assert(this.keyMap.size === i);\n  }\n\n  /**\n   * Find all nodes that match condition.\n   *\n   * @param match title string to search for, or a\n   *     callback function that returns `true` if a node is matched.\n   * @see {@link WunderbaumNode.findAll}\n   */\n  findAll(match: string | RegExp | MatcherCallback) {\n    return this.root.findAll(match);\n  }\n\n  /**\n   * Find all nodes with a given _refKey_ (aka a list of clones).\n   *\n   * @param refKey a `node.refKey` value to search for.\n   * @returns an array of matching nodes with at least two element or `[]`\n   * if nothing found.\n   *\n   * @see {@link WunderbaumNode.getCloneList}\n   */\n  findByRefKey(refKey: string): WunderbaumNode[] {\n    const clones = this.refKeyMap.get(refKey);\n    return clones ? Array.from(clones) : [];\n  }\n\n  /**\n   * Find first node that matches condition.\n   *\n   * @param match title string to search for, or a\n   *     callback function that returns `true` if a node is matched.\n   * @see {@link WunderbaumNode.findFirst}\n   */\n  findFirst(match: string | RegExp | MatcherCallback) {\n    return this.root.findFirst(match);\n  }\n\n  /**\n   * Find first node that matches condition.\n   *\n   * @see {@link WunderbaumNode.findFirst}\n   *\n   */\n  findKey(key: string): WunderbaumNode | null {\n    return this.keyMap.get(key) || null;\n  }\n\n  /**\n   * Find the next visible node that starts with `match`, starting at `startNode`\n   * and wrap-around at the end.\n   * Used by quicksearch and keyboard navigation.\n   */\n  findNextNode(\n    match: string | MatcherCallback,\n    startNode?: WunderbaumNode | null,\n    reverse = false\n  ): WunderbaumNode | null {\n    //, visibleOnly) {\n    let res: WunderbaumNode | null = null;\n    const firstNode = this.getFirstChild()!;\n    // Last visible node (calculation is expensive, so do only if we need it):\n    const lastNode = reverse ? this.findRelatedNode(firstNode, \"last\")! : null;\n\n    const matcher =\n      typeof match === \"string\" ? makeNodeTitleStartMatcher(match) : match;\n    startNode = startNode || (reverse ? lastNode : firstNode);\n\n    function _checkNode(n: WunderbaumNode) {\n      // console.log(\"_check \" + n)\n      if (matcher(n)) {\n        res = n;\n      }\n      if (res || n === startNode) {\n        return false;\n      }\n    }\n    this.visitRows(_checkNode, {\n      start: startNode,\n      includeSelf: false,\n      reverse: reverse,\n    });\n    // Wrap around search\n    if (!res && startNode !== firstNode) {\n      this.visitRows(_checkNode, {\n        start: reverse ? lastNode : firstNode,\n        includeSelf: true,\n        reverse: reverse,\n      });\n    }\n    return res;\n  }\n\n  /**\n   * Find a node relative to another node.\n   *\n   * @param node\n   * @param where 'down', 'first', 'last', 'left', 'parent', 'right', or 'up'.\n   *   (Alternatively the keyCode that would normally trigger this move,\n   *   e.g. `$.ui.keyCode.LEFT` = 'left'.\n   * @param includeHidden Not yet implemented\n   */\n  findRelatedNode(\n    node: WunderbaumNode,\n    where: NavigationType,\n    includeHidden = false\n  ) {\n    const rowHeight = this.options.rowHeightPx;\n    let res = null;\n    const pageSize = Math.floor(\n      this.listContainerElement.clientHeight / rowHeight\n    );\n\n    switch (where) {\n      case \"parent\":\n        if (node.parent && node.parent.parent) {\n          res = node.parent;\n        }\n        break;\n      case \"first\":\n        // First visible node\n        this.visit((n) => {\n          if (n.isVisible()) {\n            res = n;\n            return false;\n          }\n        });\n        break;\n      case \"last\":\n        this.visit((n) => {\n          // last visible node\n          if (n.isVisible()) {\n            res = n;\n          }\n        });\n        break;\n      case \"left\":\n        if (node.parent && node.parent.parent) {\n          res = node.parent;\n        }\n        // if (node.expanded) {\n        //   node.setExpanded(false);\n        // } else if (node.parent && node.parent.parent) {\n        //   res = node.parent;\n        // }\n        break;\n      case \"right\":\n        if (node.children && node.children.length) {\n          res = node.children[0];\n        }\n        // if (this.cellNavMode) {\n        //   throw new Error(\"Not implemented\");\n        // } else {\n        //   if (!node.expanded && (node.children || node.lazy)) {\n        //     node.setExpanded();\n        //     res = node;\n        //   } else if (node.children && node.children.length) {\n        //     res = node.children[0];\n        //   }\n        // }\n        break;\n      case \"up\":\n        res = this._getNextNodeInView(node, { reverse: true });\n        break;\n      case \"down\":\n        res = this._getNextNodeInView(node);\n        break;\n      case \"pageDown\":\n        {\n          const bottomNode = this.getLowestVpNode();\n          // this.logDebug(`${where}(${node}) -> ${bottomNode}`);\n\n          if (node._rowIdx! < bottomNode._rowIdx!) {\n            res = bottomNode;\n          } else {\n            res = this._getNextNodeInView(node, {\n              reverse: false,\n              ofs: pageSize,\n            });\n          }\n        }\n        break;\n      case \"pageUp\":\n        if (node._rowIdx === 0) {\n          res = node;\n        } else {\n          const topNode = this.getTopmostVpNode();\n          // this.logDebug(`${where}(${node}) -> ${topNode}`);\n\n          if (node._rowIdx! > topNode._rowIdx!) {\n            res = topNode;\n          } else {\n            res = this._getNextNodeInView(node, {\n              reverse: true,\n              ofs: pageSize,\n            });\n          }\n        }\n        break;\n\n      case \"prevMatch\":\n      // fallthrough\n      case \"nextMatch\":\n        if (!this.isFilterActive) {\n          this.logWarn(`${where}: Filter is not active.`);\n          break;\n        }\n        res = this.findNextNode(\n          (n) => n.isMatched(),\n          node,\n          where === \"prevMatch\"\n        );\n        res?.setActive();\n        break;\n      default:\n        this.logWarn(\"Unknown relation '\" + where + \"'.\");\n    }\n    return res;\n  }\n\n  /**\n   * Iterator version of {@link Wunderbaum.format}.\n   */\n  *format_iter(\n    name_cb?: NodeStringCallback,\n    connectors?: string[]\n  ): IterableIterator<string> {\n    yield* this.root.format_iter(name_cb, connectors);\n  }\n\n  /**\n   * Return multiline string representation of the node hierarchy.\n   * Mostly useful for debugging.\n   *\n   * Example:\n   * ```js\n   * console.info(tree.format((n)=>n.title));\n   * ```\n   * logs\n   * ```\n   * Playground\n   * ├─ Books\n   * |   ├─ Art of War\n   * |   ╰─ Don Quixote\n   * ├─ Music\n   * ...\n   * ```\n   *\n   * @see {@link Wunderbaum.format_iter} and {@link WunderbaumNode.format}.\n   */\n  format(name_cb?: NodeStringCallback, connectors?: string[]): string {\n    return this.root.format(name_cb, connectors);\n  }\n\n  /**\n   * Always returns null (so a tree instance behaves as `tree.root`).\n   */\n  get parent(): null {\n    return null;\n  }\n\n  /**\n   * Return a list of top-level nodes.\n   */\n  get children(): WunderbaumNode[] {\n    return this.root.children || [];\n  }\n\n  /**\n   * Return the active cell (`span.wb-col`) of the currently active node or null.\n   */\n  getActiveColElem() {\n    if (this.activeNode && this.activeColIdx >= 0) {\n      return this.activeNode.getColElem(this.activeColIdx);\n    }\n    return null;\n  }\n\n  /**\n   * Return the currently active node or null (alias for `tree.activeNode`).\n   * Alias for {@link Wunderbaum.activeNode}.\n   *\n   * @see {@link WunderbaumNode.setActive}\n   * @see {@link WunderbaumNode.isActive}\n   * @see {@link Wunderbaum.activeNode}\n   * @see {@link Wunderbaum.focusNode}\n   */\n  getActiveNode() {\n    return this.activeNode;\n  }\n\n  /**\n   * Return the first top level node if any (not the invisible root node).\n   */\n  getFirstChild() {\n    return this.root.getFirstChild();\n  }\n\n  /**\n   * Return the last top level node if any (not the invisible root node).\n   */\n  getLastChild() {\n    return this.root.getLastChild();\n  }\n\n  /**\n   * Return the node that currently has keyboard focus or null.\n   * Alias for {@link Wunderbaum.focusNode}.\n   * @see {@link WunderbaumNode.setFocus}\n   * @see {@link WunderbaumNode.hasFocus}\n   * @see {@link Wunderbaum.activeNode}\n   * @see {@link Wunderbaum.focusNode}\n   */\n  getFocusNode() {\n    return this.focusNode;\n  }\n\n  /** Return a {node: WunderbaumNode, region: TYPE} object for a mouse event.\n   *\n   * @param {Event} event Mouse event, e.g. click, ...\n   * @returns {object} Return a {node: WunderbaumNode, region: TYPE} object\n   *     TYPE: 'title' | 'prefix' | 'expander' | 'checkbox' | 'icon' | undefined\n   */\n  static getEventInfo(event: Event): WbEventInfo {\n    const target = <Element>event.target;\n    const cl = target.classList;\n    const parentCol = target.closest(\"span.wb-col\") as HTMLSpanElement;\n    const node = Wunderbaum.getNode(target);\n    const tree = node ? node.tree : Wunderbaum.getTree(event);\n    const res: WbEventInfo = {\n      event: <MouseEvent>event,\n      canonicalName: util.eventToString(event),\n      tree: tree!,\n      node: node,\n      region: NodeRegion.unknown,\n      colDef: undefined,\n      colIdx: -1,\n      colId: undefined,\n      colElem: parentCol,\n    };\n\n    if (cl.contains(\"wb-title\")) {\n      res.region = NodeRegion.title;\n    } else if (cl.contains(\"wb-expander\")) {\n      res.region = node!.isExpandable()\n        ? NodeRegion.expander\n        : NodeRegion.prefix;\n    } else if (cl.contains(\"wb-checkbox\")) {\n      res.region = NodeRegion.checkbox;\n    } else if (cl.contains(\"wb-icon\")) {\n      //|| cl.contains(\"wb-custom-icon\")) {\n      res.region = NodeRegion.icon;\n    } else if (cl.contains(\"wb-node\")) {\n      res.region = NodeRegion.title;\n    } else if (parentCol) {\n      res.region = NodeRegion.column;\n      const idx = Array.prototype.indexOf.call(\n        parentCol.parentNode!.children,\n        parentCol\n      );\n      res.colIdx = idx;\n    } else if (cl.contains(\"wb-row\")) {\n      // Plain tree\n      res.region = NodeRegion.title;\n    } else {\n      // Somewhere near the title\n      if (event.type !== \"mousemove\" && !(event instanceof KeyboardEvent)) {\n        tree?.logWarn(\"getEventInfo(): not found\", event, res);\n      }\n      return res;\n    }\n    if (res.colIdx === -1) {\n      res.colIdx = 0;\n    }\n    res.colDef = <any>tree?.columns[res.colIdx];\n    res.colDef != null ? (res.colId = (<any>res.colDef).id) : 0;\n    // this.log(\"Event\", event, res);\n    return res;\n  }\n\n  /**\n   * Return readable string representation for this instance.\n   * @internal\n   */\n  toString() {\n    return `Wunderbaum<'${this.id}'>`;\n  }\n\n  /** Return true if any node title or grid cell is currently beeing edited.\n   *\n   * See also {@link isEditingTitle}.\n   */\n  isEditing(): boolean {\n    const focusElem = this.nodeListElement.querySelector(\n      \"input:focus,select:focus\"\n    );\n    return !!focusElem;\n  }\n\n  /** Return true if any node is currently in edit-title mode.\n   *\n   * See also {@link WunderbaumNode.isEditingTitle} and {@link isEditing}.\n   */\n  isEditingTitle(): boolean {\n    return this._callMethod(\"edit.isEditingTitle\");\n  }\n\n  /**\n   * Return true if any node is currently beeing loaded, i.e. a Ajax request is pending.\n   */\n  isLoading(): boolean {\n    let res = false;\n\n    this.root.visit((n) => {\n      // also visit rootNode\n      if (n._isLoading || n._requestId) {\n        res = true;\n        return false;\n      }\n    }, true);\n    return res;\n  }\n\n  /** Write to `console.log` with tree name as prefix if opts.debugLevel >= 4.\n   * @see {@link logDebug}\n   */\n  log(...args: any[]) {\n    if (this.options.debugLevel! >= 4) {\n      console.log(this.toString(), ...args); // eslint-disable-line no-console\n    }\n  }\n\n  /** Write to `console.debug`  with tree name as prefix if opts.debugLevel >= 4.\n   * and browser console level includes debug/verbose messages.\n   * @see {@link log}\n   */\n  logDebug(...args: any[]) {\n    if (this.options.debugLevel! >= 4) {\n      console.debug(this.toString(), ...args); // eslint-disable-line no-console\n    }\n  }\n\n  /** Write to `console.error` with tree name as prefix. */\n  logError(...args: any[]) {\n    if (this.options.debugLevel! >= 1) {\n      console.error(this.toString(), ...args); // eslint-disable-line no-console\n    }\n  }\n\n  /** Write to `console.info`  with tree name as prefix if opts.debugLevel >= 3. */\n  logInfo(...args: any[]) {\n    if (this.options.debugLevel! >= 3) {\n      console.info(this.toString(), ...args); // eslint-disable-line no-console\n    }\n  }\n\n  /** @internal */\n  logTime(label: string): string {\n    if (this.options.debugLevel! >= 4) {\n      console.time(this + \": \" + label); // eslint-disable-line no-console\n    }\n    return label;\n  }\n\n  /** @internal */\n  logTimeEnd(label: string): void {\n    if (this.options.debugLevel! >= 4) {\n      console.timeEnd(this + \": \" + label); // eslint-disable-line no-console\n    }\n  }\n\n  /** Write to `console.warn` with tree name as prefix with if opts.debugLevel >= 2. */\n  logWarn(...args: any[]) {\n    if (this.options.debugLevel! >= 2) {\n      console.warn(this.toString(), ...args); // eslint-disable-line no-console\n    }\n  }\n\n  /** Emit a warning for deprecated methods. @internal */\n  logDeprecate(method: string, options?: DeprecationOptions) {\n    if (this.options.debugLevel! >= 2) {\n      let msg = `${this}: ${method} is deprecated`;\n      if (options?.since) {\n        msg += ` since ${options.since}`;\n      }\n      if (options?.hint) {\n        msg += ` (${options.since})`;\n      }\n      console.warn(msg + \".\"); // eslint-disable-line no-console\n    }\n  }\n\n  /** Reset column widths to default. @since 0.10.0 */\n  resetColumns() {\n    this.columns.forEach((col) => {\n      delete col.customWidthPx;\n    });\n    this.update(ChangeType.colStructure);\n  }\n\n  // /** Renumber nodes `_nativeIndex`. @see {@link WunderbaumNode.resetNativeChildOrder} */\n  // resetNativeChildOrder(options?: ResetOrderOptions) {\n  //   this.root.resetNativeChildOrder(options);\n  // }\n\n  /**\n   * Make sure that this node is vertically scrolled into the viewport.\n   *\n   * Nodes that are above the visible area become the top row, nodes that are\n   * below the viewport become the bottom row.\n   */\n  scrollTo(nodeOrOpts: ScrollToOptions | WunderbaumNode) {\n    const PADDING = 2; // leave some pixels between viewport bounds\n\n    let node;\n    // WunderbaumNode;\n    let options: ScrollToOptions | undefined;\n\n    if (nodeOrOpts instanceof WunderbaumNode) {\n      node = nodeOrOpts;\n    } else {\n      options = nodeOrOpts;\n      node = options.node;\n    }\n    util.assert(node && node._rowIdx != null, `Invalid node: ${node}`);\n\n    const rowHeight = this.options.rowHeightPx;\n    const scrollParent = this.element;\n    const headerHeight = this.headerElement.clientHeight; // May be 0\n    const scrollTop = scrollParent.scrollTop;\n    const vpHeight = scrollParent.clientHeight;\n    const rowTop = node._rowIdx! * rowHeight + headerHeight;\n    const vpTop = headerHeight;\n    const vpRowTop = rowTop - scrollTop;\n    const vpRowBottom = vpRowTop + rowHeight;\n    const topNode = options?.topNode;\n\n    // this.log( `scrollTo(${node.title}), vpTop:${vpTop}px, scrollTop:${scrollTop}, vpHeight:${vpHeight}, rowTop:${rowTop}, vpRowTop:${vpRowTop}`, nodeOrOpts , options);\n\n    let newScrollTop: number | null = null;\n    if (vpRowTop >= vpTop) {\n      if (vpRowBottom <= vpHeight) {\n        // Already in view\n        // this.log(\"Already in view\");\n      } else {\n        // Node is below viewport\n        // this.log(\"Below viewport\");\n        newScrollTop = rowTop + rowHeight - vpHeight + PADDING; // leave some pixels between viewport bounds\n      }\n    } else {\n      // Node is above viewport\n      // this.log(\"Above viewport\");\n      newScrollTop = rowTop - vpTop - PADDING; // leave some pixels between viewport bounds\n    }\n    if (newScrollTop != null) {\n      this.log(`scrollTo(${rowTop}): ${scrollTop} => ${newScrollTop}`);\n      scrollParent.scrollTop = newScrollTop;\n      if (topNode) {\n        // Make sure the topNode is always visible\n        this.scrollTo(topNode);\n      }\n      // this.update(ChangeType.scroll);\n    }\n  }\n\n  /**\n   * Make sure that this node is horizontally scrolled into the viewport.\n   * Called by {@link setColumn}.\n   */\n  protected scrollToHorz() {\n    // const PADDING = 1;\n    const fixedWidth = this.columns[0]._widthPx!;\n    const vpWidth = this.element.clientWidth;\n    const scrollLeft = this.element.scrollLeft;\n    const colElem = this.getActiveColElem()!;\n    const colLeft = Number.parseInt(colElem?.style.left, 10);\n    const colRight = colLeft + Number.parseInt(colElem?.style.width, 10);\n    let newLeft = scrollLeft;\n\n    if (colLeft - scrollLeft < fixedWidth) {\n      // The current column is scrolled behind the left fixed column\n      newLeft = colLeft - fixedWidth;\n    } else if (colRight - scrollLeft > vpWidth) {\n      // The current column is scrolled outside the right side\n      newLeft = colRight - vpWidth;\n    }\n    newLeft = Math.max(0, newLeft);\n    // util.assert(node._rowIdx != null);\n    this.log(\n      `scrollToHorz(${this.activeColIdx}): ${colLeft}..${colRight}, fixedOfs=${fixedWidth}, vpWidth=${vpWidth}, curLeft=${scrollLeft} -> ${newLeft}`\n    );\n    this.element.scrollLeft = newLeft;\n    // this.update(ChangeType.scroll);\n  }\n  /**\n   * Set column #colIdx to 'active'.\n   *\n   * This higlights the column header and -cells by adding the `wb-active`\n   * class to all grid cells of the active column. <br>\n   * Available in cell-nav mode only.\n   *\n   * If _options.edit_ is true, the embedded input element is focused, or if\n   * colIdx is 0, the node title is put into edit mode.\n   */\n  setColumn(colIdx: number | string, options?: SetColumnOptions) {\n    const edit = options?.edit;\n    const scroll = options?.scrollIntoView !== false;\n\n    util.assert(this.isCellNav(), \"Expected cellNav mode\");\n\n    if (typeof colIdx === \"string\") {\n      const cid = colIdx;\n      colIdx = this.columns.findIndex((c) => c.id === colIdx);\n      util.assert(colIdx >= 0, `Invalid colId: ${cid}`);\n    }\n    util.assert(\n      0 <= colIdx && colIdx < this.columns.length,\n      `Invalid colIdx: ${colIdx}`\n    );\n    this.activeColIdx = colIdx;\n\n    // Update `wb-active` class for all headers\n    if (this.hasHeader()) {\n      for (const rowDiv of this.headerElement.children) {\n        let i = 0;\n        for (const colDiv of rowDiv.children) {\n          (colDiv as HTMLElement).classList.toggle(\"wb-active\", i++ === colIdx);\n        }\n      }\n    }\n\n    this.activeNode?.update(ChangeType.status);\n\n    // Update `wb-active` class for all cell spans\n    for (const rowDiv of this.nodeListElement.children) {\n      let i = 0;\n      for (const colDiv of rowDiv.children) {\n        (colDiv as HTMLElement).classList.toggle(\"wb-active\", i++ === colIdx);\n      }\n    }\n    // Horizontically scroll into view\n    if (scroll || edit) {\n      this.scrollToHorz();\n    }\n\n    if (edit && this.activeNode) {\n      // this.activeNode.setFocus(); // Blur prev. input if any\n      if (colIdx === 0) {\n        this.activeNode.startEditTitle();\n      } else {\n        this.getActiveColElem()\n          ?.querySelector<HTMLInputElement>(\"input,select\")\n          ?.focus();\n      }\n    }\n  }\n\n  /* Set or remove keyboard focus to the tree container. @internal */\n  _setActiveNode(node: WunderbaumNode | null) {\n    this._activeNode = node;\n  }\n\n  /** Set or remove keyboard focus to the tree container. */\n  setActiveNode(key: string, flag: boolean = true, options?: SetActiveOptions) {\n    this.findKey(key)?.setActive(flag, options);\n  }\n\n  /** Set or remove keyboard focus to the tree container. */\n  setFocus(flag = true) {\n    if (flag) {\n      this.element.focus();\n    } else {\n      this.element.blur();\n    }\n  }\n\n  /* Set or remove keyboard focus to the tree container. @internal */\n  _setFocusNode(node: WunderbaumNode | null) {\n    this._focusNode = node;\n  }\n\n  /** Return the current selection/expansion/activation status. @experimental */\n  getState(options: GetStateOptions = {}): TreeStateDefinition {\n    const {\n      activeKey = true,\n      expandedKeys = false,\n      selectedKeys = false,\n    } = options;\n\n    const expandSet = new Set<string>();\n\n    if (expandedKeys) {\n      for (const node of this) {\n        if (node.isExpanded() && node.hasChildren()) {\n          expandSet.add(node.key);\n        }\n      }\n    }\n    // Parents of active node are always expanded\n    if (activeKey && this.activeNode) {\n      this.activeNode.visitParents((n) => {\n        if (n.parent) {\n          expandSet.add(n.key);\n        }\n      }, false);\n    }\n\n    const state: TreeStateDefinition = {\n      expandedKeys: expandSet.size ? Array.from(expandSet) : undefined,\n      activeKey: this.activeNode?.key ?? null,\n      activeColIdx: this.activeColIdx,\n      selectedKeys: selectedKeys\n        ? this.getSelectedNodes().flatMap((n) => n.key)\n        : undefined,\n    };\n    return state;\n  }\n\n  /** Apply selection/expansion/activation status. @experimental */\n  async setState(state: TreeStateDefinition, options: SetStateOptions = {}) {\n    const { expandLazy = true } = options;\n    return this.runWithDeferredUpdateAsync(async () => {\n      if (state.expandedKeys && state.expandedKeys.length) {\n        if (expandLazy) {\n          // Expand all keys recursively, even if they are not in the tree yet\n          await this._loadLazyNodes(state.expandedKeys, {\n            expand: true,\n            noEvents: true,\n          });\n        } else {\n          for (const key of state.expandedKeys) {\n            this.findKey(key)?.setExpanded(true);\n          }\n        }\n      }\n      if (state.activeKey) {\n        this.setActiveNode(state.activeKey);\n      }\n      if (state.selectedKeys) {\n        this.selectAll(false);\n        for (const key of state.selectedKeys) {\n          this.findKey(key)?.setSelected(true);\n        }\n      }\n      if (this.isCellNav() && state.activeColIdx != null) {\n        this.setColumn(state.activeColIdx);\n      }\n    });\n  }\n\n  /**\n   * Schedule an update request to reflect a tree change.\n   * The render operation is async and debounced unless the `immediate` option\n   * is set.\n   *\n   * Use {@link WunderbaumNode.update} if only a single node has changed,\n   * or {@link WunderbaumNode._render}) to pass special options.\n   */\n  update(change: ChangeType, options?: UpdateOptions): void;\n\n  /**\n   * Update a row to reflect a single node's modification.\n   *\n   * @see {@link WunderbaumNode.update}, {@link WunderbaumNode._render}\n   */\n  update(\n    change: ChangeType,\n    node: WunderbaumNode,\n    options?: UpdateOptions\n  ): void;\n\n  update(\n    change: ChangeType,\n    node?: WunderbaumNode | UpdateOptions,\n    options?: UpdateOptions\n  ): void {\n    // this.log(`update(${change}) node=${node}`);\n    if (!(node instanceof WunderbaumNode)) {\n      options = node;\n      node = undefined;\n    }\n\n    const immediate = !!util.getOption(options, \"immediate\");\n    const RF = RenderFlag;\n    const pending = this.pendingChangeTypes;\n\n    if (this._disableUpdateCount) {\n      // Assuming that we redraw all when enableUpdate() is re-enabled.\n      // this.log(\n      //   `IGNORED update(${change}) node=${node} (disable level ${this._disableUpdateCount})`\n      // );\n      this._disableUpdateIgnoreCount++;\n      return;\n    }\n    switch (change) {\n      case ChangeType.any:\n      case ChangeType.colStructure:\n        pending.add(RF.header);\n        pending.add(RF.clearMarkup);\n        pending.add(RF.redraw);\n        pending.add(RF.scroll);\n        break;\n      case ChangeType.resize:\n        // case ChangeType.colWidth:\n        pending.add(RF.header);\n        pending.add(RF.redraw);\n        break;\n      case ChangeType.structure:\n        pending.add(RF.redraw);\n        break;\n      case ChangeType.scroll:\n        pending.add(RF.scroll);\n        break;\n      case ChangeType.row:\n      case ChangeType.data:\n      case ChangeType.status:\n        util.assert(node, `Option '${change}' requires a node.`);\n        // Single nodes are immediately updated if already inside the viewport\n        // (otherwise we can ignore)\n        if ((<WunderbaumNode>node)!._rowElem) {\n          (<WunderbaumNode>node)!._render({ change: change });\n        }\n        break;\n      default:\n        util.error(`Invalid change type '${change}'.`);\n    }\n\n    if (change === ChangeType.colStructure) {\n      const isGrid = this.isGrid();\n      this.element.classList.toggle(\"wb-grid\", isGrid);\n      if (!isGrid && this.isCellNav()) {\n        this.setCellNav(false);\n      }\n    }\n\n    if (pending.size > 0) {\n      if (immediate) {\n        this._updateViewportImmediately();\n      } else {\n        this._updateViewportThrottled();\n      }\n    }\n  }\n\n  /** Disable mouse and keyboard interaction (return prev. state). */\n  setEnabled(flag: boolean = true): boolean {\n    const prev = this.enabled;\n    this.enabled = !!flag;\n    this.element.classList.toggle(\"wb-disabled\", !flag);\n    return prev;\n  }\n\n  /** Return false if tree is disabled. */\n  isEnabled(): boolean {\n    return this.enabled;\n  }\n\n  /** Return true if tree has more than one column, i.e. has additional data columns. */\n  isGrid(): boolean {\n    return this.columns && this.columns.length > 1;\n  }\n\n  /** Return true if cell-navigation mode is active. */\n  isCellNav(): boolean {\n    return !!this._cellNavMode;\n  }\n  /** Return true if row-navigation mode is active. */\n  isRowNav(): boolean {\n    return !this._cellNavMode;\n  }\n\n  /** Set the tree's navigation mode. */\n  setCellNav(flag: boolean = true) {\n    const prev = this._cellNavMode;\n    // if (flag === prev) {\n    //   return;\n    // }\n    this._cellNavMode = !!flag;\n    if (flag && !prev) {\n      // switch from row to cell mode\n      this.setColumn(0);\n    }\n    this.element.classList.toggle(\"wb-cell-mode\", flag);\n    this.activeNode?.update(ChangeType.status);\n  }\n\n  /** Set the tree's navigation mode option. */\n  setNavigationOption(mode: NavModeEnum, reset = false) {\n    if (!this.isGrid() && mode !== NavModeEnum.row) {\n      this.logWarn(\"Plain trees only support row navigation mode.\");\n      return;\n    }\n    this.options.navigationModeOption = mode;\n\n    switch (mode) {\n      case NavModeEnum.cell:\n        this.setCellNav(true);\n        break;\n      case NavModeEnum.row:\n        this.setCellNav(false);\n        break;\n      case NavModeEnum.startCell:\n        if (reset) {\n          this.setCellNav(true);\n        }\n        break;\n      case NavModeEnum.startRow:\n        if (reset) {\n          this.setCellNav(false);\n        }\n        break;\n      default:\n        util.error(`Invalid mode '${mode}'.`);\n    }\n  }\n\n  /** Display tree status (ok, loading, error, noData) using styles and a dummy root node. */\n  setStatus(\n    status: NodeStatusType,\n    options?: SetStatusOptions\n  ): WunderbaumNode | null {\n    return this.root.setStatus(status, options);\n  }\n\n  /** Add or redefine node type definitions. */\n  setTypes(types: any, replace = true) {\n    util.assert(util.isPlainObject(types), `Expected plain objext: ${types}`);\n    if (replace) {\n      this.types = types;\n    } else {\n      util.extend(this.types, types);\n    }\n    // Convert `TYPE.classes` to a Set\n    for (const t of Object.values(this.types) as any) {\n      if (t.classes) {\n        t.classes = util.toSet(t.classes);\n      }\n    }\n  }\n\n  /**\n   * Sort nodes list by title or custom criteria.\n   * @param {function} cmp custom compare function(a, b) that returns -1, 0, or 1\n   *    (defaults to sorting by title).\n   * @param {boolean} deep pass true to sort all descendant nodes recursively\n   * @deprecated use {@link sort}\n   */\n  sortChildren(\n    cmp: SortCallback | null = nodeTitleSorter,\n    deep: boolean = false\n  ): void {\n    this.logDeprecate(\"sortChildren()\", { since: \"0.14.0\" });\n    return this.sort({\n      cmp: cmp ? cmp : undefined,\n      deep: deep,\n      propName: \"title\",\n    });\n  }\n\n  /**\n   * Convenience method to implement column sorting.\n   * @see {@link WunderbaumNode.sortByProperty}.\n   * @since 0.11.0\n   * @deprecated use {@link sort}\n   */\n  sortByProperty(options: SortByPropertyOptions) {\n    this.logDeprecate(\"sortByProperty()\", { since: \"0.14.0\" });\n    this.root.sortByProperty(options);\n  }\n\n  /**\n   * Sort nodes list by title or custom criteria.\n   * @since 0.14.0\n   */\n  sort(options: SortOptions): void {\n    this.root.sort(options);\n  }\n\n  /** Convert tree to an array of plain objects.\n   *\n   * @param callback is called for every node, in order to allow\n   *     modifications.\n   *     Return `false` to ignore this node or `\"skip\"` to include this node\n   *     without its children.\n   * @see {@link WunderbaumNode.toDict}.\n   */\n  toDictArray(callback?: NodeToDictCallback): Array<WbNodeData> {\n    const res = this.root.toDict(true, callback);\n    return res.children ?? [];\n  }\n\n  /**\n   * Update column headers and column width.\n   * Return true if at least one column width changed.\n   */\n  // _updateColumnWidths(options?: UpdateColumnsOptions): boolean {\n  _updateColumnWidths(): boolean {\n    // options = Object.assign({ updateRows: true, renderMarkup: false }, options);\n    const defaultMinWidth = 4;\n    const vpWidth = this.element.clientWidth;\n    // Shorten last column width to avoid h-scrollbar\n    // (otherwise resizbing the demo would display a void scrollbar?)\n    const FIX_ADJUST_LAST_COL = 1;\n    const columns = this.columns;\n    const col0 = columns[0];\n\n    let totalWidth = 0;\n    let totalWeight = 0;\n    let fixedWidth = 0;\n    let modified = false;\n\n    // this.element.classList.toggle(\"wb-grid\", isGrid);\n    // if (!isGrid && this.isCellNav()) {\n    //   this.setCellNav(false);\n    // }\n\n    // if (options.calculateCols) {\n    if (col0.id !== \"*\") {\n      throw new Error(`First column must have  id '*': got '${col0.id}'.`);\n    }\n    // Gather width definitions\n    this._columnsById = {};\n    for (const col of columns) {\n      this._columnsById[<string>col.id] = col;\n      const cw = col.customWidthPx ? `${col.customWidthPx}px` : col.width;\n      if (col.id === \"*\" && col !== col0) {\n        throw new Error(\n          `Column id '*' must be defined only once: '${col.title}'.`\n        );\n      }\n\n      if (!cw || cw === \"*\") {\n        col._weight = 1.0;\n        totalWeight += 1.0;\n      } else if (typeof cw === \"number\") {\n        col._weight = cw;\n        totalWeight += cw;\n      } else if (typeof cw === \"string\" && cw.endsWith(\"px\")) {\n        col._weight = 0;\n        const px = parseFloat(cw.slice(0, -2));\n        if (col._widthPx != px) {\n          modified = true;\n          col._widthPx = px;\n        }\n        fixedWidth += px;\n      } else {\n        util.error(\n          `Invalid column width: ${cw} (expected string ending with 'px' or number, e.g. \"<num>px\" or <int>).`\n        );\n      }\n    }\n    // Share remaining space between non-fixed columns\n    const restPx = Math.max(0, vpWidth - fixedWidth);\n    let ofsPx = 0;\n\n    for (const col of columns) {\n      let minWidth: number;\n\n      if (col._weight) {\n        const cmw = col.minWidth;\n        if (typeof cmw === \"number\") {\n          minWidth = cmw;\n        } else if (typeof cmw === \"string\" && cmw.endsWith(\"px\")) {\n          minWidth = parseFloat(cmw.slice(0, -2));\n        } else {\n          minWidth = defaultMinWidth;\n        }\n        const px = Math.max(minWidth, (restPx * col._weight) / totalWeight);\n        if (col._widthPx != px) {\n          modified = true;\n          col._widthPx = px;\n        }\n      }\n      col._ofsPx = ofsPx;\n      ofsPx += col._widthPx!;\n    }\n    columns[columns.length - 1]._widthPx! -= FIX_ADJUST_LAST_COL;\n    totalWidth = ofsPx - FIX_ADJUST_LAST_COL;\n\n    const tw = `${totalWidth}px`;\n    this.headerElement.style.width = tw;\n    this.listContainerElement!.style.width = tw;\n    // }\n\n    // Every column has now a calculated `_ofsPx` and `_widthPx`\n    // this.logInfo(\"UC\", this.columns, vpWidth, this.element.clientWidth, this.element);\n    // console.trace();\n    // util.error(\"BREAK\");\n    // if (modified) {\n    //   this._renderHeaderMarkup();\n    //   if (options.renderMarkup) {\n    //     this.update(ChangeType.header, { removeMarkup: true });\n    //   } else if (options.updateRows) {\n    //     this._updateRows();\n    //   }\n    // }\n    return modified;\n  }\n\n  // protected _insertIcon(icon: string, elem: HTMLElement) {\n  //   const iconElem = document.createElement(\"i\");\n  //   iconElem.className = icon;\n  //   elem.appendChild(iconElem);\n  // }\n\n  /** Create/update header markup from `this.columns` definition.\n   * @internal\n   */\n  protected _renderHeaderMarkup() {\n    util.assert(this.headerElement, \"Expected a headerElement\");\n    const wantHeader = this.hasHeader();\n    util.setElemDisplay(this.headerElement, wantHeader);\n    if (!wantHeader) {\n      return;\n    }\n    const iconMap = this.iconMap;\n    const colCount = this.columns.length;\n    const headerRow = this.headerElement.querySelector(\".wb-row\")!;\n    util.assert(headerRow, \"Expected a row in header element\");\n    headerRow.innerHTML = \"<span class='wb-col'></span>\".repeat(colCount);\n\n    for (let i = 0; i < colCount; i++) {\n      const col = this.columns[i];\n      const colElem = <HTMLElement>headerRow.children[i];\n\n      colElem.style.left = col._ofsPx + \"px\";\n      colElem.style.width = col._widthPx + \"px\";\n      // Add classes from `columns` definition to `<div.wb-col>` cells\n      if (typeof col.headerClasses === \"string\") {\n        col.headerClasses\n          ? colElem.classList.add(...col.headerClasses.split(\" \"))\n          : 0;\n      } else {\n        col.classes ? colElem.classList.add(...col.classes.split(\" \")) : 0;\n      }\n\n      // Add tooltip to column title\n      let tooltip = \"\";\n      if (col.tooltip) {\n        tooltip = util.escapeTooltip(col.tooltip);\n        tooltip = ` title=\"${tooltip}\"`;\n      }\n      // Add column header icons\n      let addMarkup = \"\";\n      // NOTE: we use CSS float: right to align icons, so they must be added in\n      // reverse order\n      if (util.toBool(col.menu, this.options.columnsMenu, false)) {\n        const iconClass = \"wb-col-icon-menu \" + iconMap.colMenu;\n        const icon = `<i data-command=menu class=\"wb-col-icon ${iconClass}\"></i>`;\n        addMarkup += icon;\n      }\n      if (util.toBool(col.sortable, this.options.columnsSortable, false)) {\n        let iconClass = \"wb-col-icon-sort \" + iconMap.colSortable;\n        if (col.sortOrder) {\n          iconClass += `wb-col-sort-${col.sortOrder}`;\n          iconClass +=\n            col.sortOrder === \"asc\" ? iconMap.colSortAsc : iconMap.colSortDesc;\n        }\n        const icon = `<i data-command=sort class=\"wb-col-icon ${iconClass}\"></i>`;\n        addMarkup += icon;\n      }\n      if (util.toBool(col.filterable, this.options.columnsFilterable, false)) {\n        colElem.classList.toggle(\"wb-col-filter\", !!col.filterActive);\n        let iconClass = \"wb-col-icon-filter \" + iconMap.colFilter;\n        if (col.filterActive) {\n          iconClass += iconMap.colFilterActive;\n        }\n        const icon = `<i data-command=filter class=\"wb-col-icon ${iconClass}\"></i>`;\n        addMarkup += icon;\n      }\n      // Add resizer to all but the last column\n      if (i < colCount - 1) {\n        if (util.toBool(col.resizable, this.options.columnsResizable, false)) {\n          addMarkup +=\n            '<span class=\"wb-col-resizer wb-col-resizer-active\"></span>';\n        } else {\n          addMarkup += '<span class=\"wb-col-resizer\"></span>';\n        }\n      }\n\n      // Create column header\n      const title = util.escapeHtml(col.title || col.id);\n      colElem.innerHTML = `<span class=\"wb-col-title\"${tooltip}>${title}</span>${addMarkup}`;\n\n      // Highlight active column\n      if (this.isCellNav()) {\n        colElem.classList.toggle(\"wb-active\", i === this.activeColIdx);\n      }\n    }\n  }\n\n  /**\n   * Render pending changes that were scheduled using {@link WunderbaumNode.update} if any.\n   *\n   * This is hardly ever neccessary, since we normally either\n   * - call `update(ChangeType.TYPE)` (async, throttled), or\n   * - call `update(ChangeType.TYPE, {immediate: true})` (synchronous)\n   *\n   * `updatePendingModifications()` will only force immediate execution of\n   * pending async changes if any.\n   */\n  updatePendingModifications() {\n    if (this.pendingChangeTypes.size > 0) {\n      this._updateViewportImmediately();\n    }\n  }\n\n  /** @internal */\n  public _createNodeIcon(\n    node: WunderbaumNode,\n    showLoading: boolean,\n    showBadge: boolean\n  ): HTMLElement | null {\n    const iconMap = this.iconMap;\n    let iconElem;\n    let icon = node.getOption(\"icon\");\n    if (node._errorInfo) {\n      icon = iconMap.error;\n    } else if (node._isLoading && showLoading) {\n      // Status nodes, or nodes without expander (< minExpandLevel) should\n      // display the 'loading' status with the i.wb-icon span\n      icon = iconMap.loading;\n    }\n    if (icon === false) {\n      return null; // explicitly disabled: don't try default icons\n    }\n    if (typeof icon === \"string\") {\n      // Callback returned an icon definition\n      // icon = icon.trim()\n    } else if (node.statusNodeType) {\n      icon = (<any>iconMap)[node.statusNodeType];\n    } else if (node.expanded) {\n      icon = iconMap.folderOpen;\n    } else if (node.children) {\n      icon = iconMap.folder;\n    } else if (node.lazy) {\n      icon = iconMap.folderLazy;\n    } else {\n      icon = iconMap.doc;\n    }\n\n    if (!icon) {\n      iconElem = document.createElement(\"i\");\n      iconElem.className = \"wb-icon\";\n    } else if (TEST_HTML.test(icon)) {\n      iconElem = util.elemFromHtml(icon);\n    } else if (TEST_FILE_PATH.test(icon)) {\n      iconElem = util.elemFromHtml(\n        `<i class=\"wb-icon\" style=\"background-image: url('${icon}');\">`\n      );\n    } else {\n      // Class name\n      iconElem = document.createElement(\"i\");\n      iconElem.className = \"wb-icon \" + icon;\n    }\n\n    // Event handler `tree.iconBadge` can return a badge text or HTMLSpanElement\n    const cbRes =\n      showBadge && node._callEvent(\"iconBadge\", { iconSpan: iconElem });\n\n    let badge = null;\n    if (cbRes != null && cbRes !== false) {\n      let classes = \"\";\n      let tooltip = \"\";\n      if (util.isPlainObject(cbRes)) {\n        badge = \"\" + cbRes.badge;\n        classes = cbRes.badgeClass ? \" \" + cbRes.badgeClass : \"\";\n        tooltip = cbRes.badgeTooltip ? ` title=\"${cbRes.badgeTooltip}\"` : \"\";\n      } else if (typeof cbRes === \"number\") {\n        badge = \"\" + cbRes;\n      } else {\n        badge = cbRes; // string or HTMLSpanElement\n      }\n      if (typeof badge === \"string\") {\n        badge = util.elemFromHtml(\n          `<span class=\"wb-badge${classes}\"${tooltip}>${util.escapeHtml(\n            badge\n          )}</span>`\n        );\n      }\n      if (badge) {\n        iconElem.append(<HTMLSpanElement>badge);\n      }\n    }\n    return iconElem;\n  }\n\n  private _updateTopBreadcrumb() {\n    const breadcrumb = this.breadcrumb!;\n    const topmost = this.getTopmostVpNode(true);\n    const parentList = topmost?.getParentList(false, false);\n    if (parentList?.length) {\n      breadcrumb.innerHTML = \"\";\n      for (const n of topmost.getParentList(false, false)) {\n        const icon = this._createNodeIcon(n, false, false);\n        if (icon) {\n          breadcrumb.append(icon, \" \");\n        }\n        const part = document.createElement(\"a\");\n        part.textContent = n.title;\n        part.href = \"#\";\n        part.classList.add(\"wb-breadcrumb\");\n        part.dataset.key = n.key;\n        breadcrumb.append(part, this.options.strings.breadcrumbDelimiter);\n      }\n    } else {\n      breadcrumb.innerHTML = \"&nbsp;\";\n    }\n  }\n\n  /**\n   * This is the actual update method, which is wrapped inside a throttle method.\n   * It calls `updateColumns()` and `_updateRows()`.\n   *\n   * This protected method should not be called directly but via\n   * {@link WunderbaumNode.update}`, {@link Wunderbaum.update},\n   * or {@link Wunderbaum.updatePendingModifications}.\n   * @internal\n   */\n  protected _updateViewportImmediately() {\n    if (this._disableUpdateCount) {\n      this.log(\n        `_updateViewportImmediately() IGNORED (disable level: ${this._disableUpdateCount}).`\n      );\n      this._disableUpdateIgnoreCount++;\n      return;\n    }\n    if (this._updateViewportThrottled.pending()) {\n      // this.logWarn(`_updateViewportImmediately() cancel pending timer.`);\n      this._updateViewportThrottled.cancel();\n    }\n    // Shorten container height to avoid v-scrollbar\n    const FIX_ADJUST_HEIGHT = 1;\n    const RF = RenderFlag;\n\n    const pending = new Set(this.pendingChangeTypes);\n    this.pendingChangeTypes.clear();\n\n    const scrollOnly = pending.has(RF.scroll) && pending.size === 1;\n    if (scrollOnly) {\n      this._updateRows({ newNodesOnly: true });\n      // this.log(\"_updateViewportImmediately(): scroll only.\");\n    } else {\n      this.log(\"_updateViewportImmediately():\", pending);\n      if (this.options.adjustHeight !== false) {\n        let height = this.listContainerElement.clientHeight;\n        const headerHeight = this.headerElement.clientHeight; // May be 0\n        const wantHeight =\n          this.element.clientHeight - headerHeight - FIX_ADJUST_HEIGHT;\n\n        if (Math.abs(height - wantHeight) > 1.0) {\n          // this.log(\"resize\", height, wantHeight);\n          this.listContainerElement.style.height = wantHeight + \"px\";\n          height = wantHeight;\n        }\n      }\n      // console.profile(`_updateViewportImmediately()`)\n\n      if (pending.has(RF.clearMarkup)) {\n        this.visit((n) => {\n          n.removeMarkup();\n        });\n      }\n\n      // let widthModified = false;\n      if (pending.has(RF.header)) {\n        // widthModified = this._updateColumnWidths();\n        this._updateColumnWidths();\n        this._renderHeaderMarkup();\n      }\n      this._updateRows();\n      // console.profileEnd(`_updateViewportImmediately()`)\n    }\n\n    if (this.breadcrumb) {\n      this._updateTopBreadcrumb();\n    }\n    this._callEvent(\"update\");\n  }\n\n  // /**\n  //  * Assert that TR order matches the natural node order\n  //  * @internal\n  //  */\n  // protected _validateRows(): boolean {\n  //   let trs = this.nodeListElement.childNodes;\n  //   let i = 0;\n  //   let prev = -1;\n  //   let ok = true;\n  //   trs.forEach((element) => {\n  //     const tr = element as HTMLTableRowElement;\n  //     const top = Number.parseInt(tr.style.top);\n  //     const n = (<any>tr)._wb_node;\n  //     // if (i < 4) {\n  //     //   console.info(\n  //     //     `TR#${i}, rowIdx=${n._rowIdx} , top=${top}px: '${n.title}'`\n  //     //   );\n  //     // }\n  //     if (prev >= 0 && top !== prev + ROW_HEIGHT) {\n  //       n.logWarn(\n  //         `TR order mismatch at index ${i}: top=${top}px != ${\n  //           prev + ROW_HEIGHT\n  //         }`\n  //       );\n  //       // throw new Error(\"fault\");\n  //       ok = false;\n  //     }\n  //     prev = top;\n  //     i++;\n  //   });\n  //   return ok;\n  // }\n\n  /*\n   * - Traverse all *visible* nodes of the whole tree, i.e. skip collapsed nodes.\n   * - Store count of rows to `tree.treeRowCount`.\n   * - Renumber `node._rowIdx` for all visible nodes.\n   * - Calculate the index range that must be rendered to fill the viewport\n   *   (including upper and lower prefetch)\n   * -\n   */\n  protected _updateRows(options?: any): boolean {\n    // const label = this.logTime(\"_updateRows\");\n    // this.log(\"_updateRows\", opts)\n    options = Object.assign({ newNodesOnly: false }, options);\n    const newNodesOnly = !!options.newNodesOnly;\n\n    const rowHeight = this.options.rowHeightPx;\n    const vpHeight = this.element.clientHeight;\n    const prefetch = RENDER_MAX_PREFETCH;\n    // const grace_prefetch = RENDER_MAX_PREFETCH - RENDER_MIN_PREFETCH;\n    const ofs = this.element.scrollTop;\n\n    let startIdx = Math.max(0, ofs / rowHeight - prefetch);\n    startIdx = Math.floor(startIdx);\n    // Make sure start is always even, so the alternating row colors don't\n    // change when scrolling:\n    if (startIdx % 2) {\n      startIdx--;\n    }\n    let endIdx = Math.max(0, (ofs + vpHeight) / rowHeight + prefetch);\n    endIdx = Math.ceil(endIdx);\n\n    // this.debug(\"render\", opts);\n    const obsoleteNodes = new Set<WunderbaumNode>();\n    this.nodeListElement.childNodes.forEach((elem) => {\n      if ((<any>elem)._wb_node) {\n        obsoleteNodes.add((<any>elem)._wb_node);\n      }\n    });\n\n    let idx = 0;\n    let top = 0;\n    let modified = false;\n    let prevElem: HTMLDivElement | \"first\" | \"last\" = \"first\";\n\n    this.visitRows(function (node) {\n      // node.log(\"visit\")\n      const rowDiv = node._rowElem;\n\n      // Renumber all expanded nodes\n      if (node._rowIdx !== idx) {\n        node._rowIdx = idx;\n        modified = true;\n      }\n\n      if (idx < startIdx || idx > endIdx) {\n        // row is outside viewport bounds\n        if (rowDiv) {\n          prevElem = rowDiv;\n        }\n      } else if (rowDiv && newNodesOnly) {\n        obsoleteNodes.delete(node);\n        // no need to update existing node markup\n        rowDiv.style.top = idx * rowHeight + \"px\";\n        prevElem = rowDiv;\n      } else {\n        obsoleteNodes.delete(node);\n        // Create new markup\n        if (rowDiv) {\n          rowDiv.style.top = idx * rowHeight + \"px\";\n        }\n        node._render({ top: top, after: prevElem });\n        // node.log(\"render\", top, prevElem, \"=>\", node._rowElem);\n        prevElem = node._rowElem!;\n      }\n      idx++;\n      top += rowHeight;\n    });\n    this.treeRowCount = idx;\n    for (const n of obsoleteNodes) {\n      n._callEvent(\"discard\");\n      n.removeMarkup();\n    }\n    // Resize tree container\n    this.nodeListElement.style.height = `${top}px`;\n    // this.log(\n    //   `_updateRows(scrollOfs:${ofs}, ${startIdx}..${endIdx})`,\n    //   this.nodeListElement.style.height\n    // );\n    // this.logTimeEnd(label);\n    // this._validateRows();\n    return modified;\n  }\n\n  /**\n   * Call `callback(node)` for all nodes in hierarchical order (depth-first, pre-order).\n   * @see `wb_node.WunderbaumNode.IterableIterator<WunderbaumNode>`\n   * @see {@link WunderbaumNode.visit}.\n   *\n   * @param {function} callback the callback function.\n   *     Return false to stop iteration, return \"skip\" to skip this node and\n   *     children only.\n   * @returns {boolean} false, if the iterator was stopped.\n   */\n  visit(callback: (node: WunderbaumNode) => any) {\n    return this.root.visit(callback, false);\n  }\n\n  /**\n   * Call callback(node) for all nodes in vertical order, top down (or bottom up).\n   *\n   * Note that this considers expansion state, i.e. filtered nodes and children\n   * of collapsed nodes are skipped, unless `includeHidden` is set.\n   *\n   * Stop iteration if callback() returns false.<br>\n   * Return false if iteration was stopped.\n   *\n   * @returns {boolean} false if iteration was canceled\n   */\n  visitRows(callback: NodeVisitCallback, options?: VisitRowsOptions): boolean {\n    if (!this.root.hasChildren()) {\n      return false;\n    }\n    if (options && options.reverse) {\n      delete options.reverse;\n      return this._visitRowsUp(callback, options);\n    }\n    options = options || {};\n    let i,\n      nextIdx,\n      parent,\n      res,\n      siblings,\n      stopNode: WunderbaumNode,\n      siblingOfs = 0,\n      skipFirstNode = options.includeSelf === false,\n      node: WunderbaumNode = options.start || this.root.children![0];\n    const includeHidden = !!options.includeHidden;\n    const checkFilter = !includeHidden && this.filterMode === \"hide\";\n    parent = node.parent;\n    while (parent) {\n      // visit siblings\n      siblings = parent.children!;\n      nextIdx = siblings.indexOf(node) + siblingOfs;\n      util.assert(\n        nextIdx >= 0,\n        `Could not find ${node} in parent's children: ${parent}`\n      );\n\n      for (i = nextIdx; i < siblings.length; i++) {\n        node = siblings[i];\n        if (node === stopNode!) {\n          return false;\n        }\n        if (\n          checkFilter &&\n          !node.statusNodeType &&\n          !node.match &&\n          !node.subMatchCount\n        ) {\n          continue;\n        }\n        if (!skipFirstNode && callback(node) === false) {\n          return false;\n        }\n        skipFirstNode = false;\n        // Dive into node's child nodes\n        if (\n          node.children &&\n          node.children.length &&\n          (includeHidden || node.expanded)\n        ) {\n          res = node.visit((n: WunderbaumNode) => {\n            if (n === stopNode) {\n              return false;\n            }\n            if (checkFilter && !n.match && !n.subMatchCount) {\n              return \"skip\";\n            }\n            if (callback(n) === false) {\n              return false;\n            }\n            if (!includeHidden && n.children && !n.expanded) {\n              return \"skip\";\n            }\n          }, false);\n          if (res === false) {\n            return false;\n          }\n        }\n      }\n      // Visit parent nodes (bottom up)\n      node = parent;\n      parent = parent.parent;\n      siblingOfs = 1; //\n\n      if (!parent && options.wrap) {\n        this.logDebug(\"visitRows(): wrap around\");\n        util.assert(options.start, \"`wrap` option requires `start`\");\n        stopNode = options.start!;\n        options.wrap = false;\n        parent = this.root;\n        siblingOfs = 0;\n      }\n    }\n    return true;\n  }\n\n  /**\n   * Call fn(node) for all nodes in vertical order, bottom up.\n   * @internal\n   */\n  protected _visitRowsUp(\n    callback: NodeVisitCallback,\n    options: VisitRowsOptions\n  ): boolean {\n    let children,\n      idx,\n      parent,\n      node = options.start || this.root.children![0];\n    const includeHidden = !!options.includeHidden;\n\n    if (options.includeSelf !== false) {\n      if (callback(node) === false) {\n        return false;\n      }\n    }\n    while (true) {\n      parent = node.parent;\n      children = parent.children!;\n\n      if (children[0] === node) {\n        // If this is already the first sibling, goto parent\n        node = parent;\n        if (!node.parent) {\n          break; // first node of the tree\n        }\n        children = parent.children;\n      } else {\n        // Otherwise, goto prev. sibling\n        idx = children.indexOf(node);\n        node = children[idx - 1];\n        // If the prev. sibling has children, follow down to last descendant\n        while (\n          (includeHidden || node.expanded) &&\n          node.children &&\n          node.children.length\n        ) {\n          children = node.children;\n          parent = node;\n          node = children[children.length - 1];\n        }\n      }\n      // Skip invisible\n      if (!includeHidden && !node.isVisible()) {\n        continue;\n      }\n      if (callback(node) === false) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  /**\n   * Reload the tree with a new source.\n   *\n   * Previous data is cleared. Note that also column- and type defintions may\n   * be passed with the `source` object.\n   * @see {@link Wunderbaum.reload} for a shortcut to reload the last ajax request\n   * and restore the previous state.\n   */\n  async load(source: SourceType) {\n    this.clear();\n    this._initialSource = source;\n    return this.root.load(source);\n  }\n\n  /** Reload the tree and optionally restore state.\n   * Source defaults to last ajax url if any.\n   * Restoring the active node requires stable keys\n   * @see {@link WunderbaumOptions.autoKeys}\n   * @see {@link Wunderbaum.load}\n   * @experimental\n   */\n  async reload(options: ReloadOptions = {}) {\n    const { source = this._initialSource, reactivate = true } = options;\n    if (!source) {\n      this.logWarn(\"No previous ajax source to reload.\");\n      return;\n    }\n    if (!reactivate) {\n      return this.load(source);\n    }\n    const state = this.getState();\n    await this.load(source);\n    return this.setState(state);\n  }\n\n  /**\n   * Make sure that all nodes in the given keyList are accessible.\n   * This may include loading lazy parent nodes.\n   * Recursively load (and optionally expand) all requested node paths.\n   */\n  protected async _loadLazyNodes(\n    keyList: string[],\n    options: LoadLazyNodesOptions = {}\n  ) {\n    const { expand = true } = options;\n    const keySet = new Set<string>(keyList);\n\n    // Make sure that all parent nodes are loaded (and expand if requested)\n    while (keySet.size > 0) {\n      const pendingNodes: Promise<void>[] = [];\n      const curSet = new Set(keySet);\n      for (const key of curSet) {\n        const node = this.findKey(key);\n        if (!node) {\n          continue; // key not yet found (need to load lazy parent?)\n        }\n        keySet.delete(key);\n        if (expand) {\n          pendingNodes.push(node.setExpanded(true));\n        } else if (node.isUnloaded()) {\n          pendingNodes.push(node.loadLazy());\n        }\n        if (node._rowElem) {\n          node._render(); // show spinner even is update is suppressed\n        }\n      }\n      if (pendingNodes.length === 0) {\n        // will not load any more nodes, so if if there are still keys\n        // left in the set, we will never find them\n        this.logWarn(`Could not expand ${keySet.size} nodes:`, keySet);\n        break;\n      }\n      await Promise.allSettled(pendingNodes);\n    }\n  }\n\n  /**\n   * Disable render requests during operations that would trigger many updates.\n   *\n   * ```js\n   * try {\n   *   tree.enableUpdate(false);\n   *   // ... (long running operation that would trigger many updates)\n   *   foo();\n   *   // ... NOTE: make sure that async operations have finished, e.g.\n   *   await foo();\n   * } finally {\n   *   tree.enableUpdate(true);\n   * }\n   * ```\n   */\n  public enableUpdate(flag: boolean): void {\n    /*\n        5  7  9                20       25   30\n    1   >-------------------------------------<\n    2      >--------------------<\n    3         >--------------------------<\n    */\n    if (flag) {\n      util.assert(\n        this._disableUpdateCount > 0,\n        \"enableUpdate(true) was called too often\"\n      );\n      this._disableUpdateCount--;\n      // this.logDebug(\n      //   `enableUpdate(${flag}): count -> ${this._disableUpdateCount}...`\n      // );\n      if (this._disableUpdateCount === 0) {\n        this.logDebug(\n          `enableUpdate(): active again. Re-painting to catch up with ${this._disableUpdateIgnoreCount} ignored update requests...`\n        );\n        this._disableUpdateIgnoreCount = 0;\n        this.update(ChangeType.any, { immediate: true });\n      }\n    } else {\n      this._disableUpdateCount++;\n      // this.logDebug(\n      //   `enableUpdate(${flag}): count -> ${this._disableUpdateCount}...`\n      // );\n      // this._disableUpdate = Date.now();\n    }\n    // return !flag; // return previous value\n  }\n\n  /* ---------------------------------------------------------------------------\n   * FILTER\n   * -------------------------------------------------------------------------*/\n  /**\n   * Dim or hide unmatched nodes.\n   * @param filter a string to match against node titles, or a callback function.\n   * @param options filter options. Defaults to the `tree.options.filter` settings.\n   * @returns the number of nodes that match the filter.\n   * @example\n   * ```ts\n   * tree.filterNodes(\"foo\", {mode: 'dim', fuzzy: true});\n   * // or pass a callback\n   * tree.filterNodes((node) => { return node.data.foo === true }, {mode: 'hide'});\n   * ```\n   */\n  filterNodes(\n    filter: string | RegExp | NodeFilterCallback,\n    options: FilterNodesOptions\n  ): number {\n    return this.extensions.filter.filterNodes(filter, options);\n  }\n\n  /**\n   * Return the number of nodes that match the current filter.\n   * @see {@link Wunderbaum.filterNodes}\n   * @since 0.9.0\n   */\n  countMatches(): number {\n    return this.extensions.filter.countMatches();\n  }\n\n  /**\n   * Dim or hide whole branches.\n   * @deprecated Use {@link filterNodes} instead and set `options.matchBranch: true`.\n   */\n  filterBranches(\n    filter: string | NodeFilterCallback,\n    options: FilterNodesOptions\n  ) {\n    return this.extensions.filter.filterBranches(filter, options);\n  }\n\n  /**\n   * Reset the filter.\n   */\n  clearFilter() {\n    return this.extensions.filter.clearFilter();\n  }\n  /**\n   * Return true if a filter is currently applied.\n   */\n  isFilterActive() {\n    return !!this.filterMode;\n  }\n  /**\n   * Re-apply current filter.\n   */\n  updateFilter() {\n    return this.extensions.filter.updateFilter();\n  }\n}\n"
  },
  {
    "path": "test/generator/README.txt",
    "content": "Generate test fixtures (Wunderbaum JSON data files)\n\nNOTE:\nRequires Python and pipenv to be installed.\n\n\n```bash\ncd <project_root>/wunderbaum\npipenv install\npipenv shell\ncd test/generator\npython -m make_fixture TYPE\n```\ne.g.\n```bash\npython -m make_fixture department_M\npython -m make_fixture fmea_XL\npython -m make_fixture store_XL\n```\n"
  },
  {
    "path": "test/generator/__init__.py",
    "content": ""
  },
  {
    "path": "test/generator/generator.py",
    "content": "\"\"\"\nGenerate a test data fixture for the tree viewer.\n\nImplements a generator that creates a random tree structure from a specification.\n\nExample:\n\n```py\nstructure_definition = {\n    ...\n}\nrandom_tree: nutree.TypedTree = generate_tree(structure_definition)\n```\n\nSee `make_fixture.py` for more examples.\nSee `test_tree_generator.py` for details.\n\"\"\"\n\nfrom collections import Counter\nfrom enum import Enum\nimport json\n\nfrom nutree.tree_generator import GenericNodeData\nfrom nutree.typed_tree import TypedTree\n\n\nclass FileFormat(Enum):\n    nested = \"nested\"\n    flat = \"flat\"\n\n\nclass Automatic:\n    \"\"\"Argument value that triggers automatic calculation.\"\"\"\n\n\n#: Preferred mappings for auto-compression (_keyMap)\nRESERVED_SHORT_NAMES = {\n    \"title\": \"t\",\n    \"type\": \"y\",\n    \"children\": \"c\",\n    \"key\": \"k\",\n    \"refKey\": \"r\",\n    \"selected\": \"s\",\n    \"expanded\": \"e\",\n}\n\n#: Node properties that are of type bool (or boolean & string).\n#: When parsing, we accept 0 for false and 1 for true for better JSON compression.\nCOMPRESSABLE_BOOLS = {\n    \"checkbox\",\n    \"colspan\",\n    \"expanded\",\n    \"icon\",\n    \"iconTooltip\",\n    \"radiogroup\",\n    \"selected\",\n    \"tooltip\",\n    \"unselectable\",\n}\n\n\ndef _rounded_number(n: int) -> str:\n    if n < 800:\n        return str(n)\n    if n < 900_000:\n        return f\"{round(n / 1_000)}k\"\n    return f\"{round(n / 1_000_000)}M\"\n\n\n# for n in (1, 32, 90, 100, 110, 532, 999, 1000, 1001, 2045, 98000, 101000, 300000):\n#     print(n, rounded_number(n))\n\n\ndef generate_random_wb_source(structure_definition: dict):\n    \"\"\"\n    Return a randomized tree structure in uncompressed, nested format.\n    \"\"\"\n    # Generate a random nutree.TypedTree structure\n    tree = TypedTree.build_random_tree(structure_definition)\n    # tree.print()\n    # if tree.count < 110:\n    #     tree.print()\n    # print(f\"Generated tree with {len(tree):,} nodes, depth: {tree.calc_height()}\")\n\n    # nutree generator uses GenericNodeData as default node type and we rely on it\n    defaults = structure_definition.get(\"types\", {}).get(\"*\", {})\n    assert defaults.get(\":factory\") in (None, GenericNodeData)\n\n    child_list = tree.to_dict_list(mapper=GenericNodeData.serialize_mapper)\n    random_struct = {\n        \"child_list\": child_list,\n        \"node_count\": len(tree),\n        \"node_count_disp\": _rounded_number(len(tree)),\n        \"depth\": tree.calc_height(),\n    }\n    return random_struct\n\n\ndef _iter_dict_pre_order(child_list: list):\n    \"\"\"Depth-first, pre-order iterator.\"\"\"\n    idx = 0\n\n    def _iter(child_list: list, parent_idx):\n        nonlocal idx\n\n        for c in child_list:\n            # Get 'children' before caller renames to short name\n            cl = c.get(\"children\")\n            yield parent_idx, c\n            idx += 1\n            if cl:\n                yield from _iter(cl, idx - 1)\n        return\n\n    yield from _iter(child_list, None)\n\n\ndef compress_child_list(\n    child_list: list,\n    *,\n    format: FileFormat,\n    types: dict = None,\n    columns: list = None,\n    key_map: dict | Automatic = Automatic,\n    positional: list | Automatic = Automatic,\n    auto_compress=True,\n    auto_compress_bool: set | None = None,\n) -> dict:\n    \"\"\"\n    Convert a child_list that was created by `generate_tree()`.\n\n    1. Optionally convert nested child list to flat parent-referencong list\n    2. Shorten node dict keys using a `keyMap`\n    3. In flat mode\n    \"\"\"\n    if type(child_list) is not list:\n        raise RuntimeError(f\"Expected JSON list (not {child_list!r})\")\n    #: Available short type names\n    avail_short_names = list(\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\")\n\n    for short in RESERVED_SHORT_NAMES.values():\n        avail_short_names.remove(short)\n\n    if auto_compress and key_map is Automatic:\n        # Reserve some short names for well-known attributes\n        key_map = {}\n    else:\n        key_map = key_map.copy()\n\n    #: Map full_name -> short_name\n    inverse_key_map = {v: k for k, v in key_map.items()}\n\n    # Remove used short names from list of available abbreviations\n    for short in key_map.keys():\n        if len(short) == 1:\n            # Raises ValueError if key_map contains a reserved abbrev.\n            avail_short_names.remove(short)\n\n    if auto_compress and positional is Automatic:\n        positional = [\"title\", \"type\"]\n    if positional:\n        positional = list(positional)  # don't want <dict_keys> type\n        if \"children\" in positional:\n            positional.remove(\"children\")\n\n    #: Occurrence counter of (long) attribute names\n    attr_counts = Counter()\n    #: Flat node list (used for)\n    node_list = []\n    #: Map type_name -> type_idx\n    type_map = {}\n    #: List of type names. The index into this list will be used.\n    type_list = []\n\n    # ----------\n    # Pass 1: collect used attribute and type names\n    seq = 0\n    for parent_idx, node in _iter_dict_pre_order(child_list):\n        # Build/update key_map / inverse_key_map\n        for attr in node.keys():\n            attr_counts[attr] += 1\n            if attr not in inverse_key_map:\n                if attr in RESERVED_SHORT_NAMES:\n                    short = RESERVED_SHORT_NAMES[attr]\n                else:\n                    # Try to dreive the short name from first char\n                    first_char_uc = attr[0].upper()\n                    first_char_lc = attr[0].lower()\n                    if first_char_uc in avail_short_names:\n                        short = first_char_uc\n                        avail_short_names.remove(first_char_uc)\n                    elif first_char_lc.lower() in avail_short_names:\n                        short = first_char_lc\n                        avail_short_names.remove(first_char_lc)\n                    elif avail_short_names:\n                        short = avail_short_names.pop(0)\n                    else:  # we are out of single-character short names\n                        seq += 1\n                        short = f\"_{seq}\"\n                inverse_key_map[attr] = short\n                key_map[short] = attr\n\n        # Build/update type_map & type_list\n        node_type = node.get(\"type\")\n        if node_type and node_type not in type_map:\n            type_idx = len(type_list)\n            type_list.append(node_type)\n            type_map[node_type] = type_idx\n\n    #: Short names of attrs that are passed as posiotional arg\n    positional_short_names = [inverse_key_map.get(p, p) for p in positional]\n    positional_short_names_set = set(positional_short_names)\n\n    # ----------\n    # Pass 2: collect used attribute and type names\n\n    for parent_idx, node in _iter_dict_pre_order(child_list):\n        # Replace `\"type\": \"TYPE_NAME\"` with `\"type\": INDEX`\n        node_type = node.get(\"type\")\n        if node_type:\n            type_idx = type_map.get(node_type)\n            node[\"type\"] = type_idx\n\n        # Replace `\"FULL_NAME\": VALUE` with `\"SHORT_NAME\": VALUE`\n        for attr, val in list(node.items()):\n            short = inverse_key_map.get(attr)\n            if short:\n                node[short] = val\n                del node[attr]\n\n        if format == FileFormat.flat:\n            pos_args = [node.get(p) for p in positional_short_names]\n            key_args = {\n                k: v for k, v in node.items() if k not in positional_short_names_set\n            }\n            key_args.pop(inverse_key_map.get(\"children\", \"children\"), None)\n            if key_args:\n                elem = (parent_idx, *pos_args, key_args)\n            else:\n                elem = (parent_idx, *pos_args)\n            node_list.append(elem)\n        # else:\n        #     node =\n\n    if format == FileFormat.flat:\n        children = node_list\n    else:\n        children = child_list\n\n    print(\"Attribute usage:\", attr_counts)\n    # print(\"inverse_key_map:\", inverse_key_map)\n    # print(\"positional:\", positional)\n    # print(\"positional_short_names:\", positional_short_names)\n    # print(\"type_map:\", type_map)\n    # print(\"type_list:\", type_list)\n    # print(\"key_map:\", key_map)\n    # print(\"node_list:\", node_list)\n\n    # Declare complete dict here, so we can control the order\n    res = {\n        \"_format\": format.value,\n        # \"_version\": 1,\n        \"types\": types,\n        \"columns\": columns,\n        \"_valueMap\": {\"type\": type_list},\n        # \"_typeList\": type_list,\n        \"_keyMap\": inverse_key_map,  # since v0.7.0\n        \"_positional\": positional,\n        \"children\": children,\n    }\n    if format != FileFormat.flat:\n        res.pop(\"_positional\")\n    # pprint(res)\n    return res\n\n\ndef compress_source_file(file_path, *, key_map: dict) -> dict:\n    with open(file_path, \"rt\") as fp:\n        source = json.load(fp)\n    return compress_child_list(source, key_map=key_map)\n\n\nif __name__ == \"__main__\":\n    raise RuntimeError(\"Run `python make_fixture.py` instead.\")\n"
  },
  {
    "path": "test/generator/make_fixture.py",
    "content": "\"\"\"\nThis script generates fixture data for different tree structures.\n\nThe script contains several functions that generate fixture data for different \ntree structures. \nEach function corresponds to a specific fixture and returns a dictionary \nrepresenting the tree data.\n\nThe available fixtures are:\n- 'store_XL': Generates fixture data for a store tree structure.\n- 'department_M': Generates fixture data for a department tree structure.\n- 'fmea_XL': Generates fixture data for a failure mode and effects analysis (FMEA) tree structure.\n\nThe naming conventions for the fixture functions are as follows:\n- The name of the fixture function should be prefixed with '_generate_fixture_'.\n- follwed by a name that describes the tree structure\n- and a suffix that indicates the size of the tree structure (e.g., 'XL', 'M', 'S').\n\nTo generate fixture data for a specific tree structure, pass the name of the \nfixture as a command-line argument when running the script.\n\nExample usage:\n    python make_fixture.py store_XL\n\nThe generated fixture data is written to JSON files in different formats:\n- tree_NAME_p.json: \n  Plain list format:\n  Each node is represented as a dictionary in a nested list. \n  No compression is applied.\n  \n- tree_NAME_o.json:\n  Standard format:\n  One top-level dictionary with a 'children' key containing a nested list child nodes.\n  No compression is applied.\n\n- tree_NAME_c.json:\n  Standard format with columns: a 'columns' key containing the column definitions.\n  No compression is applied.\n\n- tree_NAME_t.json:\n  Standard format with types: a 'types' key containing the node type definitions.\n  No compression is applied except for type references.\n\n- tree_NAME_t_c.json:\n  Standard format with types and columns.\n  No compression is applied except for type references.\n\n- tree_NAME_t_c_comp.json:\n  Standard format with types, columns, and compression:\n  The child nodes are compressed using `_valueMap` and `_keyMap` mappings.\n\n- tree_NAME_t_c_flat_comp.json:\n  Flat parent-referencing list with types, columns, and compression:\n  The child nodes are compressed using `_valueMap`, `_keyMap`, and `_positional` \n  mappings.\n\nThe generated JSON files are saved in the 'fixtures' directory.\n\"\"\"\n\nfrom copy import deepcopy\nfrom datetime import date\nimport json\nimport os\nfrom pathlib import Path\nimport sys\nfrom textwrap import dedent\n\nsys.path.append(os.path.dirname(__file__))\n\nfrom generator import (\n    Automatic,\n    FileFormat,\n    compress_child_list,\n    generate_random_wb_source,\n)\nfrom nutree.tree_generator import (\n    DateRangeRandomizer,\n    RangeRandomizer,\n    SampleRandomizer,\n    SparseBoolRandomizer,\n    TextRandomizer as Fab,\n    BlindTextRandomizer as Blind,\n)\n\n\n# ------------------------------------------------------------------------------\n# Fixture: 'store'\n# ------------------------------------------------------------------------------\ndef _generate_fixture_store_XL() -> dict:\n\n    # --- Node Types ---\n\n    type_dict = {\n        \"folder\": {\"colspan\": True},\n        \"book\": {\"icon\": \"bi bi-book\"},\n        \"computer\": {\"icon\": \"bi bi-laptop\"},\n        \"music\": {\"icon\": \"bi bi-disc\"},\n        \"phone\": {\"icon\": \"bi bi-phone\"},\n    }\n\n    # --- Define Columns ---\n\n    column_list = [\n        {\"id\": \"*\", \"title\": \"Product\", \"width\": \"250px\"},\n        {\"id\": \"author\", \"title\": \"Author\", \"width\": \"200px\"},\n        {\"id\": \"year\", \"title\": \"Year\", \"width\": \"60px\", \"classes\": \"wb-helper-end\"},\n        {\"id\": \"qty\", \"title\": \"Qty\", \"width\": \"80px\", \"classes\": \"wb-helper-end\"},\n        {\"id\": \"sale\", \"title\": \"Sale\", \"width\": \"60px\", \"classes\": \"wb-helper-center\"},\n        {\n            \"id\": \"price\",\n            \"title\": \"Price ($)\",\n            \"width\": \"90px\",\n            \"classes\": \"wb-helper-end\",\n        },\n        # In order to test horizontal scrolling, we need a fixed or at least minimal width:\n        {\"id\": \"details\", \"title\": \"Details\", \"width\": \"*\", \"minWidth\": \"600px\"},\n    ]\n\n    # --- Compression Hints ---\n\n    key_map = Automatic\n    positional = [\n        \"title\",\n        \"type\",\n        \"author\",\n        \"year\",\n        \"qty\",\n        \"price\",\n        \"details\",\n    ]\n\n    # --- Build nested node dictionary ---\n\n    structure_def = {\n        #: Relations define the possible parent / child relationships between\n        #: node types and optionally override the default properties.\n        \"relations\": {\n            \"__root__\": {\n                \"product_group\": {\n                    \":count\": 10,\n                    \"type\": \"folder\",\n                    \"title\": Fab(\"$(Noun:plural)\"),\n                },\n            },\n            \"product_group\": {\n                \"product_subgroup\": {\n                    \":count\": RangeRandomizer(70, 130),\n                    \"type\": \"folder\",\n                    \"title\": Fab(\"$(Adj) $(Noun:plural)\"),\n                },\n            },\n            \"product_subgroup\": {\n                \"product\": {\n                    # \":count\": 10,\n                    \":count\": RangeRandomizer(0, 200),\n                    # \":callback\": _person_callback,\n                    \"type\": SampleRandomizer((\"book\", \"computer\", \"music\", \"phone\")),\n                    \"title\": Fab(\"$(Noun)\"),\n                    \"author\": Fab(\"$(name:middle)\"),\n                    \"year\": DateRangeRandomizer(date(2, 1, 1), date(2023, 12, 31)),\n                    \"qty\": RangeRandomizer(1, 1_000_000, probability=0.9, none_value=0),\n                    \"price\": RangeRandomizer(0.01, 10_000.0),\n                    \"sale\": SparseBoolRandomizer(probability=0.1),\n                    \"details\": Fab(\"$(Verb:s) $(noun:plural) $(adv:#positive).\"),\n                },\n            },\n        },\n    }\n\n    random_data = generate_random_wb_source(structure_definition=structure_def)\n\n    random_data.update(\n        {\n            \"types\": type_dict,\n            \"columns\": column_list,\n            \"key_map\": key_map,\n            \"positional\": positional,\n            \"children\": random_data[\"child_list\"],\n        }\n    )\n    return random_data\n\n\n# ------------------------------------------------------------------------------\n# Fixture: 'department'\n# ------------------------------------------------------------------------------\n\n\ndef _generate_fixture_department_M() -> dict:\n\n    CB_COUNT = 50\n\n    # --- Node Types ---\n\n    type_dict = {\n        \"department\": {\"icon\": \"bi bi-diagram-3\", \"colspan\": True},\n        \"role\": {\"icon\": \"bi bi-microsoft-teams\", \"colspan\": True},\n        \"person\": {\"icon\": \"bi bi-person\"},\n    }\n\n    # --- Define Columns ---\n\n    column_list = [\n        {\"title\": \"Title\", \"id\": \"*\", \"width\": \"250px\", \"sortable\": True},\n        {\n            \"title\": \"Age\",\n            \"id\": \"age\",\n            \"width\": \"50px\",\n            \"html\": \"<input type=number min=0 tabindex='-1'>\",\n            \"classes\": \"wb-helper-end\",\n            \"sortable\": True,\n        },\n        {\n            \"title\": \"Date\",\n            \"id\": \"date\",\n            \"width\": \"100px\",\n            \"html\": '<input type=date tabindex=\"-1\">',\n            \"sortable\": True,\n        },\n        {\n            \"title\": \"Mood\",\n            \"id\": \"mood\",\n            \"width\": \"70px\",\n            \"html\": dedent(\n                \"\"\"\n                <select tabindex=\"-1\">\n                    <option value=\"h\">Happy</option>\n                    <option value=\"s\">Sad</option>\n                </select>\"\"\"\n            ),\n            \"sortable\": True,\n        },\n        {\n            \"title\": \"Remarks\",\n            \"id\": \"remarks\",\n            \"width\": \"300px\",\n            \"html\": \"<input type=text tabindex='-1'>\",\n            \"sortable\": True,\n        },\n    ]\n\n    for i in range(1, CB_COUNT):\n        column_list.append(\n            {\n                \"title\": f\"#{i}\",\n                \"id\": f\"state_{i}\",\n                \"width\": \"30px\",\n                \"classes\": \"wb-helper-center\",\n                \"html\": \"<input type=checkbox tabindex='-1'>\",\n                \"sortable\": False,\n            }\n        )\n\n    # --- Compression Hints ---\n\n    key_map = Automatic\n    positional = [\n        \"title\",\n        \"type\",\n        \"state\",\n        \"avail\",\n        \"age\",\n        \"date\",\n        \"remarks\",\n    ]\n\n    # --- Build nested node dictionary ---\n    def _person_callback(data):\n        # Initialize checkbox values\n        vr = SparseBoolRandomizer(probability=0.2)\n        for i in range(1, CB_COUNT + 1):\n            key = f\"state_{i}\"\n            val = vr.generate()\n            if val is None:\n                data.pop(key, None)\n            else:\n                data[key] = val\n        return\n\n    # --- Build nested node dictionary ---\n\n    structure_def = {\n        #: Relations define the possible parent / child relationships between\n        #: node types and optionally override the default properties.\n        \"relations\": {\n            \"__root__\": {\n                \"department\": {\n                    \":count\": 10,\n                    \"type\": \"department\",\n                    \"title\": Fab(\"Dept. for $(Noun:plural) and $(Noun:plural)\"),\n                    # \"expanded\": SparseBoolRandomizer(probability=0.2),\n                },\n            },\n            \"department\": {\n                \"role\": {\n                    \":count\": RangeRandomizer(8, 13),\n                    \"type\": \"role\",\n                    \"title\": Fab(\"$(Verb) $(noun:plural)\"),\n                    # \"expanded\": SparseBoolRandomizer(probability=0.3),7\n                },\n            },\n            \"role\": {\n                \"person\": {\n                    \":count\": RangeRandomizer(0, 22),\n                    \":callback\": _person_callback,\n                    \"type\": \"person\",\n                    \"title\": Fab(\"$(name:middle)\"),\n                    \"state\": SampleRandomizer((\"h\", \"s\"), probability=0.3),\n                    \"avail\": SparseBoolRandomizer(probability=0.9),\n                    \"age\": RangeRandomizer(21, 99),\n                    \"date\": DateRangeRandomizer(\n                        date(1970, 1, 1),\n                        date.today(),\n                        probability=0.6,\n                    ),\n                    # \"remarks\": Fab(\n                    #     \"$(Verb:s) $(noun:plural) $(adv:#positive).\", probability=0.3\n                    # ),\n                    \"remarks\": Blind(\n                        dialect=\"ipsum\", sentence_count=1, probability=0.3\n                    ),\n                },\n            },\n        },\n    }\n\n    random_data = generate_random_wb_source(structure_definition=structure_def)\n\n    random_data.update(\n        {\n            \"types\": type_dict,\n            \"columns\": column_list,\n            \"key_map\": key_map,\n            \"positional\": positional,\n            \"children\": random_data[\"child_list\"],\n        }\n    )\n    return random_data\n\n\n# ------------------------------------------------------------------------------\n# Fixture: 'fmea'\n# ------------------------------------------------------------------------------\n\n\ndef _generate_fixture_fmea_XL() -> dict:\n\n    # --- Node Types ---\n\n    type_dict = {\n        \"function\": {\"icon\": \"bi bi-gear\"},\n        \"failure\": {\"icon\": \"bi bi-exclamation-triangle\"},\n        \"causes\": {\"icon\": \"bi bi-tools\", \"expanded\": True},\n        \"cause\": {\"icon\": \"bi bi-tools\"},\n        \"effects\": {\"icon\": \"bi bi-lightning\", \"expanded\": True},\n        \"effect\": {\"icon\": \"bi bi-lightning\"},\n    }\n\n    # --- Define Columns ---\n\n    column_list = None\n    # column_list = [\n    #     {\n    #         \"title\": \"Title\",\n    #         \"id\": \"*\",\n    #         \"width\": \"250px\",\n    #     },\n    # ]\n\n    # --- Compression Hints ---\n\n    key_map = Automatic\n    positional = Automatic  # Uses default (title, type)\n\n    # --- Build nested node dictionary ---\n\n    structure_def = {\n        \"relations\": {\n            \"__root__\": {\n                \"function\": {\n                    \":count\": 200,\n                    \"type\": \"function\",\n                    \"title\": Fab([\"Deliver $(verb:ing)\", \"Produce $(noun:plural)\"]),\n                    # \"expanded\": SparseBoolRandomizer(probability=0.1),\n                    \"expanded\": True,\n                },\n            },\n            \"function\": {\n                \"failure\": {\n                    \":count\": RangeRandomizer(1, 32),\n                    \"type\": \"failure\",\n                    \"title\": Fab(\n                        [\"$(Noun) is $(adj:#negative)\", \"$(Noun) not $(verb:ing)\"]\n                    ),\n                    # \"expanded\": SparseBoolRandomizer(probability=0.3),7\n                },\n            },\n            \"failure\": {\n                \"causes\": {\n                    \":count\": 1,\n                    \"type\": \"causes\",\n                    \"title\": \"Causes\",\n                },\n                \"effects\": {\n                    \":count\": 1,\n                    \"type\": \"effects\",\n                    \"title\": \"Effects\",\n                },\n            },\n            \"causes\": {\n                \"cause\": {\n                    \":count\": RangeRandomizer(1, 35, probability=0.8),\n                    \"type\": \"cause\",\n                    \"title\": Fab(\"$(Noun:plural) not provided\"),\n                },\n            },\n            \"effects\": {\n                \"effect\": {\n                    \":count\": RangeRandomizer(1, 35, probability=0.8),\n                    \"type\": \"effect\",\n                    \"title\": Fab(\"$(Noun:plural) not provided\"),\n                },\n            },\n        },\n    }\n\n    random_data = generate_random_wb_source(structure_definition=structure_def)\n\n    random_data.update(\n        {\n            \"types\": type_dict,\n            \"columns\": column_list,\n            \"key_map\": key_map,\n            \"positional\": positional,\n            \"children\": random_data[\"child_list\"],\n        }\n    )\n    return random_data\n\n\n# ------------------------------------------------------------------------------\n# Main CLI\n# ------------------------------------------------------------------------------\n\n\ndef _size_disp(path: Path) -> str:\n    size = path.stat().st_size\n    if size > 500_000:\n        return f\"{round(0.000001*size, 2):,} MiB\"\n    elif size > 3000:\n        return f\"{round(0.001*size, 2):,} kiB\"\n    return f\"{size:,} bytes\"\n\n\ndef _write_json(path: Path, data: dict, *, debug: bool):\n    with open(path, \"wt\") as fp:\n        if debug:\n            json.dump(data, fp, indent=4, separators=(\", \", \": \"))\n        else:\n            json.dump(data, fp, indent=None, separators=(\",\", \":\"))\n    print(f\"Created {path}, {_size_disp(path)}\")\n\n\ndef main(locals):\n    # --- Find all implementation functions (starting with 'generate_fixture_')\n    METHOD_PREFIX = \"_generate_fixture_\"\n    METHOD_PREFIX_LEN = len(METHOD_PREFIX)\n    DEBUG = False\n    BASE_DIR = Path(__file__).parent.parent / \"fixtures\"\n    FILE_PREFIX = \"tree_\"\n\n    avail = [\n        name[METHOD_PREFIX_LEN:] for name in locals if name.startswith(METHOD_PREFIX)\n    ]\n    avail_disp = \"'{}'\".format(\"', '\".join(avail))\n\n    if len(sys.argv) != 2:\n        print(\"Usage: `python make_fixture.py NAME`\")\n        print(f\"Supported names: {avail_disp}\")\n        sys.exit(1)\n\n    fixture_name = sys.argv[1]\n    method = locals.get(f\"{METHOD_PREFIX}{fixture_name}\")\n    if not callable(method):\n        print(f\"Invalid fixture name: {fixture_name!r}. Expected {avail_disp}\")\n        sys.exit(1)\n\n    # --- Call the genreator method\n    random_data = method()\n\n    col_count = len(random_data[\"columns\"]) if random_data.get(\"columns\") else 0\n\n    # base_name = f'{FILE_PREFIX}{fixture_name}_{tree_data[\"node_count_disp\"]}_{tree_data[\"depth\"]}_{col_count}'\n    base_name = f\"{FILE_PREFIX}{fixture_name}\"\n\n    print(f\"Writing results to  {BASE_DIR}\")\n\n    # Remove previous fixtures\n    for fn in BASE_DIR.glob(f\"{FILE_PREFIX}{fixture_name}_*\"):\n        fn.unlink()\n        print(f\"REMOVED {fn}\")\n\n    # Write as plain list\n    file_name = f\"{base_name}_p.json\"\n    path = BASE_DIR / file_name\n    out = random_data[\"child_list\"]\n    _write_json(path, out, debug=DEBUG)\n\n    # Extended Standard (object format)\n    file_name = f\"{base_name}_o.json\"\n    path = BASE_DIR / file_name\n    out = {\"children\": random_data[\"children\"]}\n    _write_json(path, out, debug=DEBUG)\n\n    if col_count:\n        # Extended standard with columns\n        file_name = f\"{base_name}_c.json\"\n        path = BASE_DIR / file_name\n        out = {\"columns\": random_data[\"columns\"], \"children\": random_data[\"children\"]}\n        _write_json(path, out, debug=DEBUG)\n\n    if random_data[\"types\"]:\n        # Extended standard with types\n        file_name = f\"{base_name}_t.json\"\n        path = BASE_DIR / file_name\n        out = {\"types\": random_data[\"types\"], \"children\": random_data[\"children\"]}\n        _write_json(path, out, debug=DEBUG)\n\n        if col_count:\n            # Extended standard with types and columns\n            file_name = f\"{base_name}_t_c.json\"\n            path = BASE_DIR / file_name\n            out = {\n                \"types\": random_data[\"types\"],\n                \"columns\": random_data[\"columns\"],\n                \"children\": random_data[\"children\"],\n            }\n            _write_json(path, out, debug=DEBUG)\n\n    suffix = \"\"\n    if random_data[\"types\"]:\n        suffix += \"_t\"\n    if col_count:\n        suffix += \"_c\"\n\n    file_name = f\"{base_name}{suffix}_flat_comp.json\"\n    path = BASE_DIR / file_name\n    out = compress_child_list(\n        deepcopy(random_data[\"child_list\"]),  # DEEP-COPY, because nodes are modified\n        format=FileFormat.flat,\n        types=random_data[\"types\"],\n        columns=random_data[\"columns\"],\n        key_map=random_data[\"key_map\"],\n        positional=random_data[\"positional\"],\n        auto_compress=True,\n    )\n    _write_json(path, out, debug=DEBUG)\n\n    file_name = f\"{base_name}{suffix}_comp.json\"\n    path = BASE_DIR / file_name\n    out = compress_child_list(\n        random_data[\"child_list\"],\n        format=FileFormat.nested,\n        types=random_data[\"types\"],\n        columns=random_data[\"columns\"],\n        key_map=random_data[\"key_map\"],\n        positional=random_data[\"positional\"],\n        auto_compress=True,\n    )\n    _write_json(path, out, debug=DEBUG)\n\n    print(\n        \"Generated tree with {node_count:,} nodes, {col_count} columns, depth: {depth}\".format(\n            **random_data, col_count=col_count\n        )\n    )\n\n\nif __name__ == \"__main__\":\n    main(locals=locals())\n"
  },
  {
    "path": "test/playground.html",
    "content": "<!DOCTYPE html>\n<html>\n\n<head>\n    <link rel=\"stylesheet\" media=\"screen\" href=\"../build/wunderbaum.css\" />\n    <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css\" />\n    <!-- <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css\" /> -->\n    <style>\n        html,\n        body {\n            height: 100%\n        }\n\n        div.wunderbaum {\n            height: 80%;\n            width: 1024px;\n        }\n    </style>\n\n    <script defer type=\"module\" src=\"playground.js\"></script>\n</head>\n\n<body>\n    <button class=\"demo-btn\" data-action=\"toggleEnable\">Enable</button>\n    <button class=\"demo-btn\" data-action=\"expandAll\">Expand</button>\n    <button class=\"demo-btn\" data-action=\"collapseAll\">Collapse</button>\n    <button class=\"demo-btn\" data-action=\"test1\">Test 1</button>\n    <div id=\"tree\" class=\"wb-no-select-NOT\">\n    </div>\n</body>\n\n</html>"
  },
  {
    "path": "test/playground.js",
    "content": "/*\n * Note: This file must be import as module:\n *     `<script defer type=\"module\" src=\"playground.js\"></script>`\n */\n/* eslint-disable no-console */\nimport { Wunderbaum } from \"../build/wunderbaum.esm.js\";\n// import { Wunderbaum } from \"../build/wunderbaum.esm.min.js\";\n\nconst util = Wunderbaum.util;\n// const ModeElemTemplate = `<select tabindex='-1'>\n//   <option value='1'>O1</option>\n//   <option value='2'>O2</option>\n// </select>`;\n// let sequence = 1;\nconst tree = new Wunderbaum({\n  element: \"#tree\",\n  // checkbox: (node) => \"radio\",\n  // checkbox: \"radio\",\n  // checkbox: true,\n  id: \"Playground\",\n  // rowHeightPx: 40,\n  // enabled: false,\n  fixedCol: true,\n  debugLevel: 4,\n  // minExpandLevel: 1,\n  emptyChildListExpandable: true,\n  // tooltip: (e) => {\n  //   return `${e.node.title} (${e.node.children?.length || 0})`;\n  // },\n  // autoCollapse: true,\n  header: true, //\"Playground\",\n  iconMap: Object.assign(Wunderbaum.iconMaps.bootstrap, {\n    doc: \"<i class='wb-icon'>😍</i>\",\n    expanderCollapsed: \"<i class='wb-expander'>🤔</i>\",\n    expanderExpanded: \"<i class='wb-expander'>🤗</i>\",\n  }),\n  // navigationModeOption: \"cell\",\n  // scrollIntoViewOnExpandClick: false,\n  showSpinner: true,\n\n  columns: [\n    { title: \"test\", id: \"*\", width: \"200px\" },\n    // {\n    //   title: \"Fav\",\n    //   id: \"favorite\",\n    //   width: \"30px\",\n    //   classes: \"wb-helper-center\",\n    //   html: \"<input type=checkbox tabindex='-1'>\",\n    // },\n    {\n      title: \"Details\",\n      id: \"details\",\n      width: \"100px\",\n      html: \"<input type=text tabindex='-1' autocomplete=off>\",\n      headerClasses: \"wb-helper-center\",\n      sortable: true,\n      filterable: true,\n      menu: true,\n      // headerClasses: \"\",\n      classes: \"wb-helper-end\",\n    },\n    // { title: \"Mode\", id: \"mode\", width: \"100px\" },\n    {\n      title: \"Date\",\n      id: \"date\",\n      width: \"100px\",\n      html: \"<input type=date tabindex='-1'>\",\n    },\n  ],\n  types: {\n    book: { icon: \"bi bi-book\", classes: \"extra-book-class\" },\n    folder: {\n      // icon: \"bi bi-folder\",\n      // checkbox: \"radio\",\n    },\n  },\n  columnsResizable: true,\n\n  source: \"../docs/assets/json/ajax-tree-products.json\",\n  // source:\n  //   \"https://cdn.jsdelivr.net/gh/mar10/assets@master/wunderbaum/tree_fmea_XL_t_flat_comp.json\",\n  // source: {\n  //   children: [\n  //     { title: \"a\", type: \"book\", details: \"A book\", children: [] },\n  //     {\n  //       title: \"b\",\n  //       children: [\n  //         {\n  //           title: \"ba\",\n  //         },\n  //       ],\n  //     },\n  //     { title: \"c\", children: null },\n  //     { title: \"d\", children: false },\n  //     { title: \"e\" },\n  //   ],\n  // },\n\n  dnd: {\n    effectAllowed: \"all\",\n    dropEffectDefault: \"move\",\n    guessDropEffect: true,\n    dragStart: (e) => {\n      // if (e.node.type === \"folder\") {\n      //   return false;\n      // }\n      return true;\n    },\n    dragEnter: (e) => {\n      // console.log(`DragEnter ${e.event.dataTransfer.dropEffect} ${e.node}`, e);\n      // We can only drop 'over' a folder, so the source node becomes a child.\n      // We can drop 'before' or 'after' a non-folder, so the source node becomes a sibling.\n      if (e.node.type === \"folder\") {\n        // e.event.dataTransfer.dropEffect = \"link\";\n        return \"over\";\n      }\n      return [\"before\", \"after\"];\n    },\n    drag: (e) => {\n      // e.tree.log(e.type, e);\n    },\n    drop: (e) => {\n      console.log(\n        `Drop ${e.sourceNode} => ${e.suggestedDropEffect} ${e.suggestedDropMode} ${e.node}`,\n        e\n      );\n      switch (e.suggestedDropEffect) {\n        case \"copy\":\n          e.node.addNode(\n            { title: `Copy of ${e.sourceNodeData.title}` },\n            e.suggestedDropMode\n          );\n          break;\n        case \"link\":\n          e.node.addNode(\n            { title: `Link to ${e.sourceNodeData.title}` },\n            e.suggestedDropMode\n          );\n          break;\n        default:\n          e.sourceNode.moveTo(e.node, e.suggestedDropMode);\n      }\n    },\n  },\n  edit: {\n    trigger: [\"F2\", \"macEnter\"],\n    minlength: 2,\n    maxlength: 10,\n    edit: (e) => {\n      e.node.log(`${e.type}`);\n    },\n    apply: (e) => {\n      e.node.log(`${e.type}`);\n      if (e.newValue.indexOf(\"x\") >= 0) {\n        throw new util.ValidationError(\"No 'x' please\");\n      }\n    },\n  },\n  filter: {\n    // mode: \"hide\",\n  },\n  lazyLoad: (e) => {\n    // return {url: \"../docs/assets/json/ajax-lazy-products.json\"};\n    return util.setTimeoutPromise(() => {\n      return { url: \"../docs/assets/json/ajax-lazy-products.json\" };\n    }, 1000);\n  },\n  activate: (e) => {\n    tree.log(e.type, e);\n  },\n  click: (e) => {\n    tree.log(e.type, e);\n  },\n  buttonClick: (e) => {\n    tree.log(e.type, e);\n\n    if (e.command === \"filter\") {\n      // ... <open a filter dialog or toggle the filter mode> ...\n\n      // Update the button state\n      e.info.colDef.filterActive = !e.info.colDef.filterActive;\n      tree.update(\"colStructure\");\n    }\n    if (e.command === \"sort\") {\n      e.tree.sortByProperty({ colId: e.info.colId, updateColInfo: true });\n    } else if (e.command === \"menu\") {\n      // eslint-disable-next-line no-alert\n      alert(\"Open menu...\");\n    }\n  },\n  deactivate: (e) => {},\n  discard: (e) => {},\n  change: (e) => {\n    const node = e.node;\n    const value = e.inputValue;\n\n    node.log(e.type, e, value, node.data);\n\n    // Simulate a validation error from the client:\n    switch (e.info.colId) {\n      case \"age\":\n        if (e.inputValue > 20) {\n          throw new util.ValidationError(\"Age must be <= 20\");\n        }\n        break;\n      case \"date\":\n        if (e.inputElem.valueAsDate > new Date()) {\n          // throw new util.ValidationError(\"Date must be in the past\");\n          e.inputElem.setCustomValidity(\"Date must be in the past\");\n        }\n        break;\n    }\n\n    // Simulate a async/delayed behavior:\n    return util.setTimeoutPromise(() => {\n      node.log(\n        `Change '${e.info.colId}': '${node.data[e.info.colId]}' -> '${value}'`\n      );\n      // Simulate a validation error from the server:\n      if ((\"\" + value).indexOf(\"x\") >= 0) {\n        throw new util.ValidationError(\"No 'x' please\");\n      }\n      // Read the value from the input control that triggered the change event:\n      node.data[e.info.colId] = value;\n    }, 500);\n  },\n  render: (e) => {\n    const node = e.node;\n    // node.log(e.type, e, node, e.nodeElem.querySelector(\"span.wb-title\"));\n\n    // e.nodeElem.querySelector( \"span.wb-title\" ).innerHTML = `<u>${node.title}</u>`;\n    for (const col of Object.values(e.renderColInfosById)) {\n      switch (col.id) {\n        default:\n          // Assumption: we named column.id === node.data.NAME\n          util.setValueToElem(col.elem, node.data[col.id]);\n          break;\n      }\n    }\n  },\n  // iconBadge: (e) => {\n  //   const count = e.node.children?.length || 0;\n  //   const subMatch = e.node.subMatch || 0;\n  //   if (subMatch > 0) {\n  //     return { badge: subMatch, badgeTooltip: `${subMatch} matches` };\n  //   } else if (count > 0 && !e.node.expanded) {\n  //     if (count > 99) {\n  //       return { badge: \"99+\", badgeTooltip: `${count} children` };\n  //     }\n\n  //     // return { badge: count };\n  //     // return { badge: count, classes: \"badge-primary\" };\n  //     // return \"\" + count;\n  //     return count;\n  //     // return `<span class=\"badge badge-pill badge-primary\">${count}</span>`;\n  //   }\n  // },\n  init: (e) => {\n    // e.tree.findFirst(\"Anthony Ross\")?.setActive(true, {\n    //   colIdx: \"*\",\n    //   edit: true,\n    //   focusTree: true,\n    // });\n    // e.tree.findFirst(\"Observe\")?.setTooltip(\"This is a tooltip\");\n    // const res = e.tree.filterNodes(/^jo[eh]/i, {\n    //   mode: \"hide\",\n    //   hideExpanders: true,\n    //   // matchBranch: true,\n    //   // leavesOnly: true,\n    //   // fuzzy: true,\n    //   autoExpand: true,\n    // });\n    // e.tree.log(\"matches\", e.tree.countMatches(), res);\n  },\n});\nconsole.log(`Created  ${tree}`);\n\ntree.ready\n  .then(() => {\n    console.log(`${tree} is ready.`);\n  })\n  .catch((err) => {\n    console.error(`${tree} init failed.`, err);\n  });\n\n// document.body.style.setProperty(\"--wb-node-text-color\", \"#ff8080\");\n// document.querySelector(\"div.wunderbaum\").style.setProperty(\"--wb-font-stack\", \"monospace\");\n\ndocument.querySelectorAll(\".demo-btn\").forEach((elem) => {\n  elem.addEventListener(\"click\", (e) => {\n    const action = e.target.dataset.action;\n\n    switch (action) {\n      case \"collapseAll\":\n        {\n          tree.logTime(\"iter\");\n          let count = 0;\n          // for (const node of tree) {\n          //   count++;\n          // }\n          tree.visit((node) => {\n            count++;\n          });\n\n          tree.logTimeEnd(\"iter\");\n          tree.log(`count: ${count}`);\n          tree.expandAll(false, {\n            // force: true,\n            depth: 2,\n          });\n        }\n        break;\n      case \"expandAll\":\n        tree.expandAll(true, {\n          loadLazy: true,\n          depth: 5,\n        });\n        break;\n      case \"test1\":\n        // console.info(tree.getActiveNode()._format_line(tree.root));\n        // console.info((tree.getActiveNode() || tree.root).format((n)=>n.title));\n        // tree.sortChildren(null, true)\n        tree.getActiveNode().setIcon(\"bi bi-diagram-3\");\n        // tree.columns.push(\n        //   { title: \"Mode\", id: \"mode_\" + sequence++, width: \"100px\" }\n        // )\n        // tree.update(\"colStructure\")\n        break;\n    }\n  });\n});\n"
  },
  {
    "path": "test/unit/ajax-simple-sub.json",
    "content": "[{ \"title\": \"SubNode 1\" }, { \"title\": \"SubNode 2\" }]\n"
  },
  {
    "path": "test/unit/ajax-simple.json",
    "content": "[\n  {\n    \"title\": \"Node 1\",\n    \"expanded\": true,\n    \"children\": [{ \"title\": \"Node 1.1\" }, { \"title\": \"Node 1.2\" }]\n  },\n  { \"title\": \"Node 2\", \"lazy\": true }\n]\n"
  },
  {
    "path": "test/unit/test-core-fixture1.js",
    "content": "/*!\n * Wunderbaum - Unit Test\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n\nconst { test } = QUnit;\nconst Wunderbaum = mar10.Wunderbaum;\n\nconst FIXTURE_1 = [\n  {\n    title: \"Node 1\",\n    expanded: true,\n    children: [{ title: \"Node 1.1\" }, { title: \"Node 1.2\" }],\n  },\n  { title: \"Node 2\", lazy: true },\n];\n\nQUnit.module(\"Fixture-1 tests\", (hooks) => {\n  let tree;\n\n  hooks.beforeEach(() => {\n    tree = new Wunderbaum({\n      element: \"#tree\",\n      source: FIXTURE_1,\n    });\n  });\n  hooks.afterEach(() => {\n    tree.destroy();\n    tree = null;\n  });\n\n  test(\"fixture ok\", (assert) => {\n    assert.expect(1);\n    assert.equal(tree.count(), 4);\n  });\n});\n"
  },
  {
    "path": "test/unit/test-core.js",
    "content": "/*!\n * Wunderbaum - Unit Test\n * Copyright (c) 2021-2025, Martin Wendt. Released under the MIT license.\n * @VERSION, @DATE (https://github.com/mar10/wunderbaum)\n */\n/* global mar10, QUnit */\n/* eslint-disable no-console */\n\nconst { test } = QUnit;\nconst Wunderbaum = mar10.Wunderbaum;\nconst util = Wunderbaum.util;\nconst FIXTURE_1 = [\n  {\n    title: \"Node 1\",\n    expanded: true,\n    children: [{ title: \"Node 1.1\" }, { title: \"Node 1.2\" }],\n  },\n  { title: \"Node 2\", lazy: true },\n];\n\n/* Setup */\nQUnit.testStart(function () {\n  window.sessionStorage.clear();\n  window.localStorage.clear();\n});\n\n/* Tear Down */\nQUnit.testDone(function () {});\n\nQUnit.module(\"Utility tests\", (hooks) => {\n  test(\"Static utility functions\", (assert) => {\n    assert.expect(2);\n\n    assert.equal(util.type([]), \"array\", \"type([])\");\n    assert.equal(util.type({}), \"object\", \"type({})\");\n  });\n});\n\nQUnit.module(\"Static tests\", (hooks) => {\n  test(\"Access static properties\", (assert) => {\n    assert.expect(4);\n\n    assert.true(Wunderbaum.version != null, \"Statics defined\");\n\n    assert.throws(\n      function () {\n        const _dummy = Wunderbaum();\n      },\n      /TypeError/,\n      \"Fail if 'new' keyword is missing\"\n    );\n    assert.throws(\n      function () {\n        const _dummy = new Wunderbaum();\n      },\n      /Error: Invalid 'element' option: null/,\n      \"Fail if option is missing\"\n    );\n    assert.throws(\n      function () {\n        const _dummy = new Wunderbaum({});\n      },\n      /Error: Invalid 'element' option: null/,\n      \"Fail if 'element' option is missing\"\n    );\n  });\n});\n\nQUnit.module(\"Instance tests\", (hooks) => {\n  let tree = null;\n\n  hooks.beforeEach(() => {});\n  hooks.afterEach(() => {\n    tree.destroy();\n    tree = null;\n  });\n\n  test(\"Initial event sequence (fetch)\", (assert) => {\n    assert.expect(5);\n    assert.timeout(1000); // Timeout after 1 second\n    const done = assert.async();\n\n    tree = new Wunderbaum({\n      element: \"#tree\",\n      source: \"ajax-simple.json\",\n      // source: FIXTURE_1,\n      receive: (e) => {\n        assert.step(\"receive\");\n        assert.equal(\n          e.response[0].title,\n          \"Node 1\",\n          \"receive(e) passes e.response\"\n        );\n      },\n      load: (e) => {\n        assert.step(\"load\");\n      },\n      // render: (e) => {\n      //   assert.step(\"render\");\n      // },\n      init: (e) => {\n        assert.step(\"init\");\n        assert.verifySteps([\"receive\", \"load\", \"init\"], \"Event sequence\");\n        done();\n      },\n    });\n  });\n\n  test(\"Lazy load (fetch)\", (assert) => {\n    assert.expect(8);\n    assert.timeout(1000); // Timeout after 1 second\n    const done = assert.async();\n    let initComplete = false;\n\n    tree = new Wunderbaum({\n      element: \"#tree\",\n      source: \"ajax-simple.json\",\n      lazyLoad: (e) => {\n        if (initComplete) {\n          assert.step(\"lazyLoad\");\n          assert.equal(\n            e.node.title,\n            \"Node 2\",\n            \"lazyLoad(e) passes parent node\"\n          );\n          return { url: \"ajax-simple-sub.json\" };\n        }\n      },\n      receive: (e) => {\n        if (initComplete) {\n          assert.step(\"receive\");\n          assert.equal(\n            e.response[0].title,\n            \"SubNode 1\",\n            \"receive(e) passes e.response\"\n          );\n        }\n      },\n      load: (e) => {\n        if (initComplete) {\n          assert.step(\"load\");\n          assert.verifySteps(\n            [\"init\", \"lazyLoad\", \"receive\", \"load\"],\n            \"Event sequence\"\n          );\n          done();\n        }\n      },\n      // render: (e) => {\n      //   assert.step(\"render\");\n      // },\n      init: (e) => {\n        initComplete = true;\n        assert.step(\"init\");\n        const lazyNode = tree.findFirst(\"Node 2\");\n        assert.equal(lazyNode.title, \"Node 2\", \"Find node by name\");\n\n        // We need the markup, to issue a click event\n        // tree.updateViewport(true);\n        // assert.true(lazyNode.isRendered(), \"Node is rendered\");\n        // lazyNode.colspan.click();\n        lazyNode.setExpanded();\n      },\n    });\n  });\n\n  test(\"applyCommand\", (assert) => {\n    assert.expect(2);\n    assert.timeout(1000); // Timeout after 1 second\n    const done = assert.async();\n\n    tree = new Wunderbaum({\n      element: \"#tree\",\n      source: FIXTURE_1,\n      init: (e) => {\n        const node1 = tree.findFirst(\"Node 1\");\n        const node2 = tree.findFirst(\"Node 2\");\n        assert.equal(node1.getPrevSibling(), null);\n\n        node1.applyCommand(\"moveDown\");\n        assert.equal(node1.getPrevSibling(), node2);\n        // Avoid errors reported by ResizeObserver\n        done();\n      },\n    });\n  });\n  test(\"clones\", (assert) => {\n    assert.expect(11);\n    assert.timeout(1000); // Timeout after 1 second\n    const done = assert.async();\n\n    tree = new Wunderbaum({\n      element: \"#tree\",\n      source: [\n        { title: \"Node 1\", key: \"1\", refKey: \"n1\" },\n        { title: \"Node 2\", key: \"2\", refKey: \"nX\" },\n        { title: \"Node 3\", key: \"3\", refKey: \"nX\" },\n      ],\n      init: (e) => {\n        const n1 = tree.findKey(\"1\");\n        const n2 = tree.findKey(\"2\");\n        const n3 = tree.findKey(\"3\");\n\n        // console.warn(`tree.findByRefKey('nX'): >${tree.findByRefKey(\"nX\")}<`);\n\n        assert.deepEqual(tree.findByRefKey(\"x\"), []);\n        assert.deepEqual(tree.findByRefKey(\"n1\"), [n1]);\n        assert.equal(tree.findByRefKey(\"nX\").length, 2);\n\n        assert.false(n1.isClone());\n        assert.true(n2.isClone());\n        assert.true(n3.isClone());\n\n        assert.deepEqual(n1.getCloneList(), []);\n        assert.deepEqual(n1.getCloneList(true), [n1]);\n        assert.equal(n2.getCloneList().length, 1);\n        assert.equal(n2.getCloneList(false).length, 1);\n        assert.equal(n2.getCloneList(true).length, 2);\n\n        done();\n      },\n    });\n  });\n});\n"
  },
  {
    "path": "test/unit/test-dev.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <title>Test Suite (DEV) | Wunderbaum</title>\n\n  <!-- <link rel=\"stylesheet\" href=\"https://code.jquery.com/qunit/qunit-2.15.0.css\"> -->\n  <!-- <link rel=\"stylesheet\" href=\"qunit.css\"> -->\n  <link rel=\"stylesheet\" href=\"../../node_modules/qunit/qunit/qunit.css\">\n  <link rel=\"stylesheet\" href=\"../../build/wunderbaum.css\">\n\n  <!-- <script defer src=\"https://code.jquery.com/qunit/qunit-2.15.0.js\"></script> -->\n  <!-- <script defer src=\"qunit.js\"> </script> -->\n\t<script src=\"../../node_modules/qunit/qunit/qunit.js\"></script>\n\n  <script defer src=\"../../build/wunderbaum.umd.js\"> </script>\n\n  <script defer type=\"module\" src=\"test-core.js\"> </script>\n  <script defer type=\"module\" src=\"test-core-fixture1.js\"> </script>\n</head>\n<body>\n  <div id=\"qunit\"></div>\n  <div id=\"qunit-fixture\"></div>\n\n  <div id=\"tree\">\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "test/unit/test-dist.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <title>Test Suite (DIST) | Wunderbaum</title>\n\n  <link rel=\"stylesheet\" href=\"https://code.jquery.com/qunit/qunit-2.18.1.css\">\n  <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/gh/mar10/wunderbaum/dist/wunderbaum.css\">\n\n  <script defer src=\"https://code.jquery.com/qunit/qunit-2.18.1.js\"></script>\n  <script defer src=\"https://cdn.jsdelivr.net/gh/mar10/wunderbaum/dist/wunderbaum.umd.min.js\"> </script>\n\n  <script defer type=\"module\" src=\"test-core.js\"> </script>\n  <script defer type=\"module\" src=\"test-core-fixture1.js\"> </script>\n</head>\n<body>\n  <div id=\"qunit\"></div>\n  <div id=\"qunit-fixture\"></div>\n\n  <div id=\"tree\">\n  </div>\n</body>\n</html>\n"
  },
  {
    "path": "tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    /* Basic Options */\n    // \"incremental\": true,                   /* Enable incremental compilation */\n    \"target\": \"ES2019\" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */,\n    \"module\": \"esnext\" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */,\n    // \"lib\": [],                             /* Specify library files to be included in the compilation. */\n    // \"allowJs\": true,                       /* Allow javascript files to be compiled. */\n    // \"checkJs\": true,                       /* Report errors in .js files. */\n    // \"jsx\": \"preserve\",                     /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */\n    // \"declaration\": true,                   /* Generates corresponding '.d.ts' file. */\n    // \"declarationMap\": true,                /* Generates a sourcemap for each corresponding '.d.ts' file. */\n    // \"sourceMap\": true,                     /* Generates corresponding '.map' file. */\n    // \"outFile\": \"./\",                       /* Concatenate and emit output to single file. */\n    // \"outDir\": \"./build\" /* Redirect output structure to the directory. */,\n    // \"rootDir\": \"./\",                       /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */\n    // \"composite\": true,                     /* Enable project compilation */\n    // \"tsBuildInfoFile\": \"./\",               /* Specify file to store incremental compilation information */\n    // \"removeComments\": true,                /* Do not emit comments to output. */\n    // \"noEmit\": true,                        /* Do not emit outputs. */\n    // \"importHelpers\": true,                 /* Import emit helpers from 'tslib'. */\n    // \"downlevelIteration\": true,            /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */\n    // \"isolatedModules\": true,               /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */\n    /* Strict Type-Checking Options */\n    \"strict\": true /* Enable all strict type-checking options. */,\n    // \"noImplicitAny\": true,                 /* Raise error on expressions and declarations with an implied 'any' type. */\n    // \"strictNullChecks\": true,              /* Enable strict null checks. */\n    // \"strictFunctionTypes\": true,           /* Enable strict checking of function types. */\n    // \"strictBindCallApply\": true,           /* Enable strict 'bind', 'call', and 'apply' methods on functions. */\n    // \"strictPropertyInitialization\": true,  /* Enable strict checking of property initialization in classes. */\n    // \"noImplicitThis\": true,                /* Raise error on 'this' expressions with an implied 'any' type. */\n    // \"alwaysStrict\": true,                  /* Parse in strict mode and emit \"use strict\" for each source file. */\n    /* Additional Checks */\n    \"noUnusedLocals\": true /* Report errors on unused locals. */,\n    // \"noUnusedParameters\": true /* Report errors on unused parameters. */,\n    // \"noImplicitReturns\": true /* Report error when not all code paths in function return a value. */,\n    // \"noFallthroughCasesInSwitch\": true /* Report errors for fallthrough cases in switch statement. */,\n    /* Module Resolution Options */\n    \"moduleResolution\": \"node\" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */,\n    // \"baseUrl\": \"./\",                       /* Base directory to resolve non-absolute module names. */\n    // \"paths\": {},                           /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */\n    // \"rootDirs\": [],                        /* List of root folders whose combined content represents the structure of the project at runtime. */\n    // \"typeRoots\": [],                       /* List of folders to include type definitions from. */\n    // \"types\": [],                           /* Type declaration files to be included in compilation. */\n    // \"allowSyntheticDefaultImports\": true,  /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */\n    \"esModuleInterop\": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,\n    // \"preserveSymlinks\": true,              /* Do not resolve the real path of symlinks. */\n    // \"allowUmdGlobalAccess\": true,          /* Allow accessing UMD globals from modules. */\n    /* Source Map Options */\n    // \"sourceRoot\": \"\",                      /* Specify the location where debugger should locate TypeScript files instead of source locations. */\n    // \"mapRoot\": \"\",                         /* Specify the location where debugger should locate map files instead of generated locations. */\n    // \"inlineSourceMap\": true,               /* Emit a single file with source maps instead of having a separate file. */\n    // \"inlineSources\": true,                 /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */\n    /* Experimental Options */\n    // \"experimentalDecorators\": true,        /* Enables experimental support for ES7 decorators. */\n    // \"emitDecoratorMetadata\": true,         /* Enables experimental support for emitting type metadata for decorators. */\n    /* Advanced Options */\n    \"forceConsistentCasingInFileNames\": true /* Disallow inconsistently-cased references to the same file. */,\n    \"typeRoots\": [\"./node_modules/@types\"]\n  },\n  \"exclude\": [\n    \"node_modules\",\n    \"build\",\n    \"dist\",\n    \"docs\",\n    \"**/*.test.ts\",\n    \"**/*.spec.ts\"\n  ],\n  \"typedocOptions\": {\n    // \"name\": \"API Docs | Wunderbaum\",\n    \"entryPoints\": [\n      \"src/wunderbaum.ts\",\n      \"src/wb_node.ts\",\n      \"src/wb_options.ts\",\n      \"src/common.ts\",\n      \"src/types.ts\",\n      \"src/util.ts\"\n    ],\n    \"out\": \"docs/api\",\n    \"excludePrivate\": true,\n    \"excludeProtected\": true,\n    \"includeVersion\": true\n  }\n}\n"
  },
  {
    "path": "typedoc.json",
    "content": "{\n  \"intentionallyNotExported\": [\n    \"src/debounce.ts:DebouncedFunction\",\n    \"src/debounce.ts:DebounceOptions\",\n    \"src/debounce.ts:ThrottleOptions\",\n    \"src/debounce.ts:Procedure\"\n    // \"src/debounce.ts\"\n  ]\n}\n"
  }
]