diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ce8750f9..ee00e304 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -46,7 +46,7 @@ jobs:
run: |
pnpm run tsc
- name: Clean coverage
- run: pnpm run clean-coverage
+ run: rm -rf .nyc_output && npx jest --clearCache
- name: Run jest tests
run: pnpm run jest
- name: Playwright install
@@ -60,20 +60,12 @@ jobs:
name: screenshots
path: src/playwright/playwright.test.ts-snapshots/
- name: Merge coverage
- run: |
- pnpm run merge-coverage
- pnpm run print-coverage
- pnpm run write-coverage
+ run: cp jest-coverage/coverage-final.json .nyc_output/coverage_jsdom.json
- name: Coverage artifact
uses: actions/upload-artifact@v3
with:
name: coverage
path: .nyc_output
- - name: Coveralls
- uses: coverallsapp/github-action@master
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
- path-to-lcov: ./lcov.info
- name: Codecov
uses: codecov/codecov-action@v3
with:
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 4380af30..6c3e975f 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -2,9 +2,9 @@ name: "CodeQL"
on:
push:
- branches: [master]
+ branches: [dev]
pull_request:
- branches: [master]
+ branches: [dev]
jobs:
analyze:
diff --git a/bower.json b/bower.json
index 8fd5f140..6f642477 100644
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
{
"name": "jqTree",
- "version": "1.7.0",
+ "version": "1.7.1",
"main": [
"jqtree.css",
"jqtree-circle.png",
diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock
index aafec6ca..61746f60 100644
--- a/docs/Gemfile.lock
+++ b/docs/Gemfile.lock
@@ -1,43 +1,42 @@
GEM
remote: https://rubygems.org/
specs:
- activesupport (6.0.5)
+ activesupport (7.0.4.3)
concurrent-ruby (~> 1.0, >= 1.0.2)
- i18n (>= 0.7, < 2)
- minitest (~> 5.1)
- tzinfo (~> 1.1)
- zeitwerk (~> 2.2, >= 2.2.2)
- addressable (2.8.0)
- public_suffix (>= 2.0.2, < 5.0)
+ i18n (>= 1.6, < 2)
+ minitest (>= 5.1)
+ tzinfo (~> 2.0)
+ addressable (2.8.1)
+ public_suffix (>= 2.0.2, < 6.0)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.11.1)
colorator (1.1.0)
- commonmarker (0.23.6)
- concurrent-ruby (1.1.10)
+ commonmarker (0.23.9)
+ concurrent-ruby (1.2.2)
dnsruby (1.61.9)
simpleidn (~> 0.1)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
- ethon (0.15.0)
+ ethon (0.16.0)
ffi (>= 1.15.0)
eventmachine (1.2.7)
execjs (2.8.1)
- faraday (2.3.0)
- faraday-net_http (~> 2.0)
+ faraday (2.7.4)
+ faraday-net_http (>= 2.0, < 3.1)
ruby2_keywords (>= 0.0.4)
- faraday-net_http (2.0.3)
+ faraday-net_http (3.0.2)
ffi (1.15.5)
forwardable-extended (2.6.0)
gemoji (3.0.1)
- github-pages (226)
+ github-pages (228)
github-pages-health-check (= 1.17.9)
- jekyll (= 3.9.2)
+ jekyll (= 3.9.3)
jekyll-avatar (= 0.7.0)
jekyll-coffeescript (= 1.1.1)
- jekyll-commonmark-ghpages (= 0.2.0)
+ jekyll-commonmark-ghpages (= 0.4.0)
jekyll-default-layout (= 0.1.4)
jekyll-feed (= 0.15.1)
jekyll-gist (= 1.5.0)
@@ -71,10 +70,10 @@ GEM
jemoji (= 0.12.0)
kramdown (= 2.3.2)
kramdown-parser-gfm (= 1.1.0)
- liquid (= 4.0.3)
+ liquid (= 4.0.4)
mercenary (~> 0.3)
minima (= 2.5.1)
- nokogiri (>= 1.13.4, < 2.0)
+ nokogiri (>= 1.13.6, < 2.0)
rouge (= 3.26.0)
terminal-table (~> 1.4)
github-pages-health-check (1.17.9)
@@ -83,17 +82,17 @@ GEM
octokit (~> 4.0)
public_suffix (>= 3.0, < 5.0)
typhoeus (~> 1.3)
- html-pipeline (2.14.1)
+ html-pipeline (2.14.3)
activesupport (>= 2)
nokogiri (>= 1.4)
http_parser.rb (0.8.0)
- i18n (0.9.5)
+ i18n (1.12.0)
concurrent-ruby (~> 1.0)
- jekyll (3.9.2)
+ jekyll (3.9.3)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
- i18n (~> 0.7)
+ i18n (>= 0.7, < 2)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 2.0)
kramdown (>= 1.17, < 3)
@@ -109,11 +108,11 @@ GEM
coffee-script-source (~> 1.11.1)
jekyll-commonmark (1.4.0)
commonmarker (~> 0.22)
- jekyll-commonmark-ghpages (0.2.0)
- commonmarker (~> 0.23.4)
+ jekyll-commonmark-ghpages (0.4.0)
+ commonmarker (~> 0.23.7)
jekyll (~> 3.9.0)
jekyll-commonmark (~> 1.4.0)
- rouge (>= 2.0, < 4.0)
+ rouge (>= 2.0, < 5.0)
jekyll-default-layout (0.1.4)
jekyll (~> 3.0)
jekyll-feed (0.15.1)
@@ -201,28 +200,28 @@ GEM
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
- liquid (4.0.3)
- listen (3.7.1)
+ liquid (4.0.4)
+ listen (3.8.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
- mini_portile2 (2.8.0)
+ mini_portile2 (2.8.1)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
- minitest (5.15.0)
- nokogiri (1.13.10)
+ minitest (5.18.0)
+ nokogiri (1.14.3)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
- octokit (4.25.0)
+ octokit (4.25.1)
faraday (>= 1, < 3)
sawyer (~> 0.9)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (4.0.7)
- racc (1.6.1)
- rb-fsevent (0.11.1)
+ racc (1.6.2)
+ rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.5)
@@ -242,16 +241,14 @@ GEM
unf (~> 0.1.4)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
- thread_safe (0.3.6)
typhoeus (1.4.0)
ethon (>= 0.9.0)
- tzinfo (1.2.10)
- thread_safe (~> 0.1)
+ tzinfo (2.0.6)
+ concurrent-ruby (~> 1.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.8.2)
unicode-display_width (1.8.0)
- zeitwerk (2.5.4)
PLATFORMS
ruby
diff --git a/docs/_config.yml b/docs/_config.yml
index 9dcd3e36..73f726f3 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -18,7 +18,7 @@ defaults:
values:
layout: "example"
-jqtree_version: 1.7.0
+jqtree_version: 1.7.1
# Build settings
markdown: kramdown
diff --git a/docs/_entries/10_changelog.md b/docs/_entries/10_changelog.md
index f742e45b..a872975e 100644
--- a/docs/_entries/10_changelog.md
+++ b/docs/_entries/10_changelog.md
@@ -3,6 +3,10 @@ title: Changelog
name: changelog
---
+#### 1.7.1 (august 6 2023)
+
+- Issue #724: improve accessibility
+
#### 1.7.0 (december 23 2022)
Small breaking change: this release changes the definition of getPreviousNode and getNextNode.
diff --git a/docs/package.json b/docs/package.json
index 81179517..fa147142 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -10,13 +10,13 @@
"copy_static": "cp ../tree.jquery.js . && cp ../jqtree.css ."
},
"devDependencies": {
- "@tailwindcss/typography": "^0.5.7",
- "autoprefixer": "^10.4.12",
- "postcss": "^8.4.18",
- "postcss-cli": "^10",
- "postcss-import": "^15",
+ "@tailwindcss/typography": "^0.5.9",
+ "autoprefixer": "^10.4.14",
+ "postcss": "^8.4.27",
+ "postcss-cli": "^10.1.0",
+ "postcss-import": "^15.1.0",
"postcss-load-config": "^4.0.1",
- "postcss-nested": "^6",
- "tailwindcss": "^3.1.8"
+ "postcss-nested": "^6.0.1",
+ "tailwindcss": "^3.3.3"
}
}
diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml
index 741f0c41..8477b636 100644
--- a/docs/pnpm-lock.yaml
+++ b/docs/pnpm-lock.yaml
@@ -1,28 +1,77 @@
-lockfileVersion: 5.4
-
-specifiers:
- '@tailwindcss/typography': ^0.5.7
- autoprefixer: ^10.4.12
- postcss: ^8.4.18
- postcss-cli: ^10
- postcss-import: ^15
- postcss-load-config: ^4.0.1
- postcss-nested: ^6
- tailwindcss: ^3.1.8
+lockfileVersion: '6.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
devDependencies:
- '@tailwindcss/typography': 0.5.7_tailwindcss@3.1.8
- autoprefixer: 10.4.12_postcss@8.4.18
- postcss: 8.4.18
- postcss-cli: 10.0.0_postcss@8.4.18
- postcss-import: 15.0.0_postcss@8.4.18
- postcss-load-config: 4.0.1_postcss@8.4.18
- postcss-nested: 6.0.0_postcss@8.4.18
- tailwindcss: 3.1.8_postcss@8.4.18
+ '@tailwindcss/typography':
+ specifier: ^0.5.9
+ version: 0.5.9(tailwindcss@3.3.3)
+ autoprefixer:
+ specifier: ^10.4.14
+ version: 10.4.14(postcss@8.4.27)
+ postcss:
+ specifier: ^8.4.27
+ version: 8.4.27
+ postcss-cli:
+ specifier: ^10.1.0
+ version: 10.1.0(postcss@8.4.27)
+ postcss-import:
+ specifier: ^15.1.0
+ version: 15.1.0(postcss@8.4.27)
+ postcss-load-config:
+ specifier: ^4.0.1
+ version: 4.0.1(postcss@8.4.27)
+ postcss-nested:
+ specifier: ^6.0.1
+ version: 6.0.1(postcss@8.4.27)
+ tailwindcss:
+ specifier: ^3.3.3
+ version: 3.3.3
packages:
- /@nodelib/fs.scandir/2.1.5:
+ /@alloc/quick-lru@5.2.0:
+ resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /@jridgewell/gen-mapping@0.3.3:
+ resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/set-array': 1.1.2
+ '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/trace-mapping': 0.3.18
+ dev: true
+
+ /@jridgewell/resolve-uri@3.1.0:
+ resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
+ engines: {node: '>=6.0.0'}
+ dev: true
+
+ /@jridgewell/set-array@1.1.2:
+ resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
+ engines: {node: '>=6.0.0'}
+ dev: true
+
+ /@jridgewell/sourcemap-codec@1.4.14:
+ resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
+ dev: true
+
+ /@jridgewell/sourcemap-codec@1.4.15:
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+ dev: true
+
+ /@jridgewell/trace-mapping@0.3.18:
+ resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==}
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.0
+ '@jridgewell/sourcemap-codec': 1.4.14
+ dev: true
+
+ /@nodelib/fs.scandir@2.1.5:
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
dependencies:
@@ -30,21 +79,21 @@ packages:
run-parallel: 1.2.0
dev: true
- /@nodelib/fs.stat/2.0.5:
+ /@nodelib/fs.stat@2.0.5:
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
engines: {node: '>= 8'}
dev: true
- /@nodelib/fs.walk/1.2.8:
+ /@nodelib/fs.walk@1.2.8:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
dependencies:
'@nodelib/fs.scandir': 2.1.5
- fastq: 1.13.0
+ fastq: 1.15.0
dev: true
- /@tailwindcss/typography/0.5.7_tailwindcss@3.1.8:
- resolution: {integrity: sha512-JTTSTrgZfp6Ki4svhPA4mkd9nmQ/j9EfE7SbHJ1cLtthKkpW2OxsFXzSmxbhYbEkfNIyAyhle5p4SYyKRbz/jg==}
+ /@tailwindcss/typography@0.5.9(tailwindcss@3.3.3):
+ resolution: {integrity: sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==}
peerDependencies:
tailwindcss: '>=3.0.0 || insiders'
dependencies:
@@ -52,105 +101,101 @@ packages:
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
postcss-selector-parser: 6.0.10
- tailwindcss: 3.1.8_postcss@8.4.18
+ tailwindcss: 3.3.3
dev: true
- /acorn-node/1.8.2:
- resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==}
- dependencies:
- acorn: 7.4.1
- acorn-walk: 7.2.0
- xtend: 4.0.2
- dev: true
-
- /acorn-walk/7.2.0:
- resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==}
- engines: {node: '>=0.4.0'}
- dev: true
-
- /acorn/7.4.1:
- resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
- engines: {node: '>=0.4.0'}
- hasBin: true
- dev: true
-
- /ansi-regex/5.0.1:
+ /ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
dev: true
- /ansi-styles/4.3.0:
+ /ansi-styles@4.3.0:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
dependencies:
color-convert: 2.0.1
dev: true
- /anymatch/3.1.2:
- resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
+ /any-promise@1.3.0:
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+ dev: true
+
+ /anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
dependencies:
normalize-path: 3.0.0
picomatch: 2.3.1
dev: true
- /arg/5.0.2:
+ /arg@5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
dev: true
- /autoprefixer/10.4.12_postcss@8.4.18:
- resolution: {integrity: sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==}
+ /autoprefixer@10.4.14(postcss@8.4.27):
+ resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==}
engines: {node: ^10 || ^12 || >=14}
hasBin: true
peerDependencies:
postcss: ^8.1.0
dependencies:
- browserslist: 4.21.4
- caniuse-lite: 1.0.30001420
+ browserslist: 4.21.5
+ caniuse-lite: 1.0.30001478
fraction.js: 4.2.0
normalize-range: 0.1.2
picocolors: 1.0.0
- postcss: 8.4.18
+ postcss: 8.4.27
postcss-value-parser: 4.2.0
dev: true
- /binary-extensions/2.2.0:
+ /balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ dev: true
+
+ /binary-extensions@2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
engines: {node: '>=8'}
dev: true
- /braces/3.0.2:
+ /brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+ dev: true
+
+ /braces@3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
dependencies:
fill-range: 7.0.1
dev: true
- /browserslist/4.21.4:
- resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==}
+ /browserslist@4.21.5:
+ resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001420
- electron-to-chromium: 1.4.283
- node-releases: 2.0.6
- update-browserslist-db: 1.0.10_browserslist@4.21.4
+ caniuse-lite: 1.0.30001478
+ electron-to-chromium: 1.4.310
+ node-releases: 2.0.10
+ update-browserslist-db: 1.0.10(browserslist@4.21.5)
dev: true
- /camelcase-css/2.0.1:
+ /camelcase-css@2.0.1:
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
engines: {node: '>= 6'}
dev: true
- /caniuse-lite/1.0.30001420:
- resolution: {integrity: sha512-OnyeJ9ascFA9roEj72ok2Ikp7PHJTKubtEJIQ/VK3fdsS50q4KWy+Z5X0A1/GswEItKX0ctAp8n4SYDE7wTu6A==}
+ /caniuse-lite@1.0.30001478:
+ resolution: {integrity: sha512-gMhDyXGItTHipJj2ApIvR+iVB5hd0KP3svMWWXDvZOmjzJJassGLMfxRkQCSYgGd2gtdL/ReeiyvMSFD1Ss6Mw==}
dev: true
- /chokidar/3.5.3:
+ /chokidar@3.5.3:
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
engines: {node: '>= 8.10.0'}
dependencies:
- anymatch: 3.1.2
+ anymatch: 3.1.3
braces: 3.0.2
glob-parent: 5.1.2
is-binary-path: 2.1.0
@@ -161,7 +206,7 @@ packages:
fsevents: 2.3.2
dev: true
- /cliui/8.0.1:
+ /cliui@8.0.1:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
dependencies:
@@ -170,71 +215,66 @@ packages:
wrap-ansi: 7.0.0
dev: true
- /color-convert/2.0.1:
+ /color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
dependencies:
color-name: 1.1.4
dev: true
- /color-name/1.1.4:
+ /color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
dev: true
- /cssesc/3.0.0:
+ /commander@4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ dev: true
+
+ /cssesc@3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
hasBin: true
dev: true
- /defined/1.0.1:
- resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==}
- dev: true
-
- /dependency-graph/0.11.0:
+ /dependency-graph@0.11.0:
resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==}
engines: {node: '>= 0.6.0'}
dev: true
- /detective/5.2.1:
- resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==}
- engines: {node: '>=0.8.0'}
- hasBin: true
- dependencies:
- acorn-node: 1.8.2
- defined: 1.0.1
- minimist: 1.2.7
- dev: true
-
- /didyoumean/1.2.2:
+ /didyoumean@1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
dev: true
- /dir-glob/3.0.1:
+ /dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
dependencies:
path-type: 4.0.0
dev: true
- /dlv/1.1.3:
+ /dlv@1.1.3:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
dev: true
- /electron-to-chromium/1.4.283:
- resolution: {integrity: sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==}
+ /electron-to-chromium@1.4.310:
+ resolution: {integrity: sha512-/xlATgfwkm5uDDwLw5nt/MNEf7c1oazLURMZLy39vOioGYyYzLWIDT8fZMJak6qTiAJ7udFTy7JG7ziyjNutiA==}
dev: true
- /emoji-regex/8.0.0:
+ /emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
dev: true
- /escalade/3.1.1:
+ /escalade@3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
dev: true
- /fast-glob/3.2.12:
+ /fast-glob@3.2.12:
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
engines: {node: '>=8.6.0'}
dependencies:
@@ -245,33 +285,37 @@ packages:
micromatch: 4.0.5
dev: true
- /fastq/1.13.0:
- resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
+ /fastq@1.15.0:
+ resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
dependencies:
reusify: 1.0.4
dev: true
- /fill-range/7.0.1:
+ /fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
dependencies:
to-regex-range: 5.0.1
dev: true
- /fraction.js/4.2.0:
+ /fraction.js@4.2.0:
resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
dev: true
- /fs-extra/10.1.0:
- resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
- engines: {node: '>=12'}
+ /fs-extra@11.1.0:
+ resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==}
+ engines: {node: '>=14.14'}
dependencies:
graceful-fs: 4.2.10
jsonfile: 6.1.0
universalify: 2.0.0
dev: true
- /fsevents/2.3.2:
+ /fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+ dev: true
+
+ /fsevents@2.3.2:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
@@ -279,97 +323,130 @@ packages:
dev: true
optional: true
- /function-bind/1.1.1:
+ /function-bind@1.1.1:
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
dev: true
- /get-caller-file/2.0.5:
+ /get-caller-file@2.0.5:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
dev: true
- /get-stdin/9.0.0:
+ /get-stdin@9.0.0:
resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==}
engines: {node: '>=12'}
dev: true
- /glob-parent/5.1.2:
+ /glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
dependencies:
is-glob: 4.0.3
dev: true
- /glob-parent/6.0.2:
+ /glob-parent@6.0.2:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
dependencies:
is-glob: 4.0.3
dev: true
- /globby/13.1.2:
- resolution: {integrity: sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==}
+ /glob@7.1.6:
+ resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+ dev: true
+
+ /globby@13.1.3:
+ resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
dir-glob: 3.0.1
fast-glob: 3.2.12
- ignore: 5.2.0
+ ignore: 5.2.4
merge2: 1.4.1
slash: 4.0.0
dev: true
- /graceful-fs/4.2.10:
+ /graceful-fs@4.2.10:
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
dev: true
- /has/1.0.3:
+ /has@1.0.3:
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
engines: {node: '>= 0.4.0'}
dependencies:
function-bind: 1.1.1
dev: true
- /ignore/5.2.0:
- resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
+ /ignore@5.2.4:
+ resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
engines: {node: '>= 4'}
dev: true
- /is-binary-path/2.1.0:
+ /inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+ dev: true
+
+ /inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ dev: true
+
+ /is-binary-path@2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
dependencies:
binary-extensions: 2.2.0
dev: true
- /is-core-module/2.10.0:
- resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==}
+ /is-core-module@2.11.0:
+ resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
+ dependencies:
+ has: 1.0.3
+ dev: true
+
+ /is-core-module@2.12.0:
+ resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==}
dependencies:
has: 1.0.3
dev: true
- /is-extglob/2.1.1:
+ /is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
dev: true
- /is-fullwidth-code-point/3.0.0:
+ /is-fullwidth-code-point@3.0.0:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
dev: true
- /is-glob/4.0.3:
+ /is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
dependencies:
is-extglob: 2.1.1
dev: true
- /is-number/7.0.0:
+ /is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
dev: true
- /jsonfile/6.1.0:
+ /jiti@1.18.2:
+ resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==}
+ hasBin: true
+ dev: true
+
+ /jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
dependencies:
universalify: 2.0.0
@@ -377,29 +454,38 @@ packages:
graceful-fs: 4.2.10
dev: true
- /lilconfig/2.0.6:
+ /lilconfig@2.0.6:
resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==}
engines: {node: '>=10'}
dev: true
- /lodash.castarray/4.4.0:
+ /lilconfig@2.1.0:
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ dev: true
+
+ /lodash.castarray@4.4.0:
resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
dev: true
- /lodash.isplainobject/4.0.6:
+ /lodash.isplainobject@4.0.6:
resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
dev: true
- /lodash.merge/4.6.2:
+ /lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
dev: true
- /merge2/1.4.1:
+ /merge2@1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
dev: true
- /micromatch/4.0.5:
+ /micromatch@4.0.5:
resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
engines: {node: '>=8.6'}
dependencies:
@@ -407,60 +493,91 @@ packages:
picomatch: 2.3.1
dev: true
- /minimist/1.2.7:
- resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
+ /minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ dependencies:
+ brace-expansion: 1.1.11
dev: true
- /nanoid/3.3.4:
- resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
+ /mz@2.7.0:
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+ dependencies:
+ any-promise: 1.3.0
+ object-assign: 4.1.1
+ thenify-all: 1.6.0
+ dev: true
+
+ /nanoid@3.3.6:
+ resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
dev: true
- /node-releases/2.0.6:
- resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==}
+ /node-releases@2.0.10:
+ resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==}
dev: true
- /normalize-path/3.0.0:
+ /normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
dev: true
- /normalize-range/0.1.2:
+ /normalize-range@0.1.2:
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
engines: {node: '>=0.10.0'}
dev: true
- /object-hash/3.0.0:
+ /object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /object-hash@3.0.0:
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
engines: {node: '>= 6'}
dev: true
- /path-parse/1.0.7:
+ /once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ dependencies:
+ wrappy: 1.0.2
+ dev: true
+
+ /path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
dev: true
- /path-type/4.0.0:
+ /path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
dev: true
- /picocolors/1.0.0:
+ /picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
dev: true
- /picomatch/2.3.1:
+ /picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
dev: true
- /pify/2.3.0:
+ /pify@2.3.0:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: '>=0.10.0'}
dev: true
- /postcss-cli/10.0.0_postcss@8.4.18:
- resolution: {integrity: sha512-Wjy/00wBBEgQqnSToznxLWDnATznokFGXsHtF/3G8glRZpz5KYlfHcBW/VMJmWAeF2x49zjgy4izjM3/Wx1dKA==}
+ /pirates@4.0.5:
+ resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /postcss-cli@10.1.0(postcss@8.4.27):
+ resolution: {integrity: sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==}
engines: {node: '>=14'}
hasBin: true
peerDependencies:
@@ -468,73 +585,44 @@ packages:
dependencies:
chokidar: 3.5.3
dependency-graph: 0.11.0
- fs-extra: 10.1.0
+ fs-extra: 11.1.0
get-stdin: 9.0.0
- globby: 13.1.2
+ globby: 13.1.3
picocolors: 1.0.0
- postcss: 8.4.18
- postcss-load-config: 4.0.1_postcss@8.4.18
- postcss-reporter: 7.0.5_postcss@8.4.18
+ postcss: 8.4.27
+ postcss-load-config: 4.0.1(postcss@8.4.27)
+ postcss-reporter: 7.0.5(postcss@8.4.27)
pretty-hrtime: 1.0.3
read-cache: 1.0.0
- slash: 4.0.0
- yargs: 17.6.0
+ slash: 5.0.0
+ yargs: 17.7.1
transitivePeerDependencies:
- ts-node
dev: true
- /postcss-import/14.1.0_postcss@8.4.18:
- resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==}
- engines: {node: '>=10.0.0'}
- peerDependencies:
- postcss: ^8.0.0
- dependencies:
- postcss: 8.4.18
- postcss-value-parser: 4.2.0
- read-cache: 1.0.0
- resolve: 1.22.1
- dev: true
-
- /postcss-import/15.0.0_postcss@8.4.18:
- resolution: {integrity: sha512-Y20shPQ07RitgBGv2zvkEAu9bqvrD77C9axhj/aA1BQj4czape2MdClCExvB27EwYEJdGgKZBpKanb0t1rK2Kg==}
+ /postcss-import@15.1.0(postcss@8.4.27):
+ resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
engines: {node: '>=14.0.0'}
peerDependencies:
postcss: ^8.0.0
dependencies:
- postcss: 8.4.18
+ postcss: 8.4.27
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.1
dev: true
- /postcss-js/4.0.0_postcss@8.4.18:
- resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==}
+ /postcss-js@4.0.1(postcss@8.4.27):
+ resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
engines: {node: ^12 || ^14 || >= 16}
peerDependencies:
- postcss: ^8.3.3
+ postcss: ^8.4.21
dependencies:
camelcase-css: 2.0.1
- postcss: 8.4.18
- dev: true
-
- /postcss-load-config/3.1.4_postcss@8.4.18:
- resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
- engines: {node: '>= 10'}
- peerDependencies:
- postcss: '>=8.0.9'
- ts-node: '>=9.0.0'
- peerDependenciesMeta:
- postcss:
- optional: true
- ts-node:
- optional: true
- dependencies:
- lilconfig: 2.0.6
- postcss: 8.4.18
- yaml: 1.10.2
+ postcss: 8.4.27
dev: true
- /postcss-load-config/4.0.1_postcss@8.4.18:
+ /postcss-load-config@4.0.1(postcss@8.4.27):
resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
engines: {node: '>= 14'}
peerDependencies:
@@ -547,42 +635,32 @@ packages:
optional: true
dependencies:
lilconfig: 2.0.6
- postcss: 8.4.18
- yaml: 2.1.3
+ postcss: 8.4.27
+ yaml: 2.2.1
dev: true
- /postcss-nested/5.0.6_postcss@8.4.18:
- resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==}
+ /postcss-nested@6.0.1(postcss@8.4.27):
+ resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.2.14
dependencies:
- postcss: 8.4.18
- postcss-selector-parser: 6.0.10
+ postcss: 8.4.27
+ postcss-selector-parser: 6.0.11
dev: true
- /postcss-nested/6.0.0_postcss@8.4.18:
- resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==}
- engines: {node: '>=12.0'}
- peerDependencies:
- postcss: ^8.2.14
- dependencies:
- postcss: 8.4.18
- postcss-selector-parser: 6.0.10
- dev: true
-
- /postcss-reporter/7.0.5_postcss@8.4.18:
+ /postcss-reporter@7.0.5(postcss@8.4.27):
resolution: {integrity: sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==}
engines: {node: '>=10'}
peerDependencies:
postcss: ^8.1.0
dependencies:
picocolors: 1.0.0
- postcss: 8.4.18
+ postcss: 8.4.27
thenby: 1.3.4
dev: true
- /postcss-selector-parser/6.0.10:
+ /postcss-selector-parser@6.0.10:
resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
engines: {node: '>=4'}
dependencies:
@@ -590,82 +668,99 @@ packages:
util-deprecate: 1.0.2
dev: true
- /postcss-value-parser/4.2.0:
+ /postcss-selector-parser@6.0.11:
+ resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==}
+ engines: {node: '>=4'}
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+ dev: true
+
+ /postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
dev: true
- /postcss/8.4.18:
- resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==}
+ /postcss@8.4.27:
+ resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
- nanoid: 3.3.4
+ nanoid: 3.3.6
picocolors: 1.0.0
source-map-js: 1.0.2
dev: true
- /pretty-hrtime/1.0.3:
+ /pretty-hrtime@1.0.3:
resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==}
engines: {node: '>= 0.8'}
dev: true
- /queue-microtask/1.2.3:
+ /queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
dev: true
- /quick-lru/5.1.1:
- resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
- engines: {node: '>=10'}
- dev: true
-
- /read-cache/1.0.0:
+ /read-cache@1.0.0:
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
dependencies:
pify: 2.3.0
dev: true
- /readdirp/3.6.0:
+ /readdirp@3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
dependencies:
picomatch: 2.3.1
dev: true
- /require-directory/2.1.1:
+ /require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
dev: true
- /resolve/1.22.1:
+ /resolve@1.22.1:
resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
hasBin: true
dependencies:
- is-core-module: 2.10.0
+ is-core-module: 2.11.0
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
dev: true
- /reusify/1.0.4:
+ /resolve@1.22.2:
+ resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.12.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: true
+
+ /reusify@1.0.4:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
dev: true
- /run-parallel/1.2.0:
+ /run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
dependencies:
queue-microtask: 1.2.3
dev: true
- /slash/4.0.0:
+ /slash@4.0.0:
resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
engines: {node: '>=12'}
dev: true
- /source-map-js/1.0.2:
+ /slash@5.0.0:
+ resolution: {integrity: sha512-n6KkmvKS0623igEVj3FF0OZs1gYYJ0o0Hj939yc1fyxl2xt+xYpLnzJB6xBSqOfV9ZFLEWodBBN/heZJahuIJQ==}
+ engines: {node: '>=14.16'}
+ dev: true
+
+ /source-map-js@1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
dev: true
- /string-width/4.2.3:
+ /string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
dependencies:
@@ -674,83 +769,112 @@ packages:
strip-ansi: 6.0.1
dev: true
- /strip-ansi/6.0.1:
+ /strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
dependencies:
ansi-regex: 5.0.1
dev: true
- /supports-preserve-symlinks-flag/1.0.0:
+ /sucrase@3.32.0:
+ resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==}
+ engines: {node: '>=8'}
+ hasBin: true
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.3
+ commander: 4.1.1
+ glob: 7.1.6
+ lines-and-columns: 1.2.4
+ mz: 2.7.0
+ pirates: 4.0.5
+ ts-interface-checker: 0.1.13
+ dev: true
+
+ /supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
dev: true
- /tailwindcss/3.1.8_postcss@8.4.18:
- resolution: {integrity: sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==}
- engines: {node: '>=12.13.0'}
+ /tailwindcss@3.3.3:
+ resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==}
+ engines: {node: '>=14.0.0'}
hasBin: true
- peerDependencies:
- postcss: ^8.0.9
dependencies:
+ '@alloc/quick-lru': 5.2.0
arg: 5.0.2
chokidar: 3.5.3
- color-name: 1.1.4
- detective: 5.2.1
didyoumean: 1.2.2
dlv: 1.1.3
fast-glob: 3.2.12
glob-parent: 6.0.2
is-glob: 4.0.3
- lilconfig: 2.0.6
+ jiti: 1.18.2
+ lilconfig: 2.1.0
+ micromatch: 4.0.5
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.0.0
- postcss: 8.4.18
- postcss-import: 14.1.0_postcss@8.4.18
- postcss-js: 4.0.0_postcss@8.4.18
- postcss-load-config: 3.1.4_postcss@8.4.18
- postcss-nested: 5.0.6_postcss@8.4.18
- postcss-selector-parser: 6.0.10
- postcss-value-parser: 4.2.0
- quick-lru: 5.1.1
- resolve: 1.22.1
+ postcss: 8.4.27
+ postcss-import: 15.1.0(postcss@8.4.27)
+ postcss-js: 4.0.1(postcss@8.4.27)
+ postcss-load-config: 4.0.1(postcss@8.4.27)
+ postcss-nested: 6.0.1(postcss@8.4.27)
+ postcss-selector-parser: 6.0.11
+ resolve: 1.22.2
+ sucrase: 3.32.0
transitivePeerDependencies:
- ts-node
dev: true
- /thenby/1.3.4:
+ /thenby@1.3.4:
resolution: {integrity: sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==}
dev: true
- /to-regex-range/5.0.1:
+ /thenify-all@1.6.0:
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
+ engines: {node: '>=0.8'}
+ dependencies:
+ thenify: 3.3.1
+ dev: true
+
+ /thenify@3.3.1:
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+ dependencies:
+ any-promise: 1.3.0
+ dev: true
+
+ /to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
dependencies:
is-number: 7.0.0
dev: true
- /universalify/2.0.0:
+ /ts-interface-checker@0.1.13:
+ resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
+ dev: true
+
+ /universalify@2.0.0:
resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
engines: {node: '>= 10.0.0'}
dev: true
- /update-browserslist-db/1.0.10_browserslist@4.21.4:
+ /update-browserslist-db@1.0.10(browserslist@4.21.5):
resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
dependencies:
- browserslist: 4.21.4
+ browserslist: 4.21.5
escalade: 3.1.1
picocolors: 1.0.0
dev: true
- /util-deprecate/1.0.2:
+ /util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true
- /wrap-ansi/7.0.0:
+ /wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
dependencies:
@@ -759,33 +883,27 @@ packages:
strip-ansi: 6.0.1
dev: true
- /xtend/4.0.2:
- resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
- engines: {node: '>=0.4'}
+ /wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: true
- /y18n/5.0.8:
+ /y18n@5.0.8:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}
dev: true
- /yaml/1.10.2:
- resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
- engines: {node: '>= 6'}
- dev: true
-
- /yaml/2.1.3:
- resolution: {integrity: sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==}
+ /yaml@2.2.1:
+ resolution: {integrity: sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==}
engines: {node: '>= 14'}
dev: true
- /yargs-parser/21.1.1:
+ /yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
dev: true
- /yargs/17.6.0:
- resolution: {integrity: sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==}
+ /yargs@17.7.1:
+ resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==}
engines: {node: '>=12'}
dependencies:
cliui: 8.0.1
diff --git a/docs/static/bower.json b/docs/static/bower.json
index a4216293..58a51e31 100644
--- a/docs/static/bower.json
+++ b/docs/static/bower.json
@@ -1,8 +1,8 @@
{
"name": "jqtree-docs",
"dependencies": {
- "fontawesome": "5.15.2",
- "jquery": "3.6.3",
+ "fontawesome": "6.3.0",
+ "jquery": "3.7.0",
"jquery-mockjax": "2.6.0"
}
}
diff --git a/docs/static/bower_components/fontawesome/css/all.min.css b/docs/static/bower_components/fontawesome/css/all.min.css
index 4b0bad1f..df7439bc 100644
--- a/docs/static/bower_components/fontawesome/css/all.min.css
+++ b/docs/static/bower_components/fontawesome/css/all.min.css
@@ -1,5 +1,9 @@
/*!
- * Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com
+ * Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2023 Fonticons, Inc.
*/
-.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.fab,.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900}
\ No newline at end of file
+.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}
+
+.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}
+.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
\ No newline at end of file
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.eot b/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.eot
deleted file mode 100644
index 75a2c7f9..00000000
Binary files a/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.eot and /dev/null differ
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.svg b/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.svg
deleted file mode 100644
index d6f80194..00000000
--- a/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.svg
+++ /dev/null
@@ -1,3717 +0,0 @@
-
-
-
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.ttf b/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.ttf
index 4c57a4c8..911775ec 100644
Binary files a/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.ttf and b/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.ttf differ
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff b/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff
deleted file mode 100644
index 0ddd8b31..00000000
Binary files a/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff and /dev/null differ
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff2 b/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff2
index f4d9f8db..ffec3955 100644
Binary files a/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff2 and b/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff2 differ
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.eot b/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.eot
deleted file mode 100644
index c40a954e..00000000
Binary files a/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.eot and /dev/null differ
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.svg b/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.svg
deleted file mode 100644
index 898dc42d..00000000
--- a/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.svg
+++ /dev/null
@@ -1,801 +0,0 @@
-
-
-
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.ttf b/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.ttf
index 932df4ae..7c7df7fa 100644
Binary files a/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.ttf and b/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.ttf differ
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff b/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff
deleted file mode 100644
index 7f7b5b67..00000000
Binary files a/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff and /dev/null differ
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff2 b/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff2
index 24a3df2d..eccc8c8f 100644
Binary files a/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff2 and b/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff2 differ
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.eot b/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.eot
deleted file mode 100644
index 3fbb831e..00000000
Binary files a/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.eot and /dev/null differ
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.svg b/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.svg
deleted file mode 100644
index c91788b0..00000000
--- a/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.svg
+++ /dev/null
@@ -1,5028 +0,0 @@
-
-
-
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.ttf b/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.ttf
index 49133379..94135a20 100644
Binary files a/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.ttf and b/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.ttf differ
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff b/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff
deleted file mode 100644
index c187c7fd..00000000
Binary files a/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff and /dev/null differ
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff2 b/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff2
index de099897..7e62f26e 100644
Binary files a/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff2 and b/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff2 differ
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-v4compatibility.ttf b/docs/static/bower_components/fontawesome/webfonts/fa-v4compatibility.ttf
new file mode 100644
index 00000000..9cc7d017
Binary files /dev/null and b/docs/static/bower_components/fontawesome/webfonts/fa-v4compatibility.ttf differ
diff --git a/docs/static/bower_components/fontawesome/webfonts/fa-v4compatibility.woff2 b/docs/static/bower_components/fontawesome/webfonts/fa-v4compatibility.woff2
new file mode 100644
index 00000000..87600727
Binary files /dev/null and b/docs/static/bower_components/fontawesome/webfonts/fa-v4compatibility.woff2 differ
diff --git a/docs/static/bower_components/jquery/dist/jquery.js b/docs/static/bower_components/jquery/dist/jquery.js
index b86de89a..5f5c9cae 100644
--- a/docs/static/bower_components/jquery/dist/jquery.js
+++ b/docs/static/bower_components/jquery/dist/jquery.js
@@ -1,15 +1,12 @@
/*!
- * jQuery JavaScript Library v3.6.3
+ * jQuery JavaScript Library v3.7.0
* https://jquery.com/
*
- * Includes Sizzle.js
- * https://sizzlejs.com/
- *
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
- * Date: 2022-12-20T21:28Z
+ * Date: 2023-05-11T18:29Z
*/
( function( global, factory ) {
@@ -150,8 +147,9 @@ function toType( obj ) {
-var
- version = "3.6.3",
+var version = "3.7.0",
+
+ rhtmlSuffix = /HTML$/i,
// Define a local copy of jQuery
jQuery = function( selector, context ) {
@@ -397,6 +395,33 @@ jQuery.extend( {
return obj;
},
+
+ // Retrieve the text value of an array of DOM nodes
+ text: function( elem ) {
+ var node,
+ ret = "",
+ i = 0,
+ nodeType = elem.nodeType;
+
+ if ( !nodeType ) {
+
+ // If no nodeType, this is expected to be an array
+ while ( ( node = elem[ i++ ] ) ) {
+
+ // Do not traverse comment nodes
+ ret += jQuery.text( node );
+ }
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+ return elem.textContent;
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+
+ // Do not include comment or processing instruction nodes
+
+ return ret;
+ },
+
// results is for internal usage only
makeArray: function( arr, results ) {
var ret = results || [];
@@ -419,6 +444,15 @@ jQuery.extend( {
return arr == null ? -1 : indexOf.call( arr, elem, i );
},
+ isXMLDoc: function( elem ) {
+ var namespace = elem && elem.namespaceURI,
+ docElem = elem && ( elem.ownerDocument || elem ).documentElement;
+
+ // Assume HTML when documentElement doesn't yet exist, such as inside
+ // document fragments.
+ return !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || "HTML" );
+ },
+
// Support: Android <=4.0 only, PhantomJS 1 only
// push.apply(_, arraylike) throws on ancient WebKit
merge: function( first, second ) {
@@ -520,43 +554,98 @@ function isArrayLike( obj ) {
return type === "array" || length === 0 ||
typeof length === "number" && length > 0 && ( length - 1 ) in obj;
}
-var Sizzle =
-/*!
- * Sizzle CSS Selector Engine v2.3.9
- * https://sizzlejs.com/
- *
- * Copyright JS Foundation and other contributors
- * Released under the MIT license
- * https://js.foundation/
- *
- * Date: 2022-12-19
- */
-( function( window ) {
+
+
+function nodeName( elem, name ) {
+
+ return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+}
+var pop = arr.pop;
+
+
+var sort = arr.sort;
+
+
+var splice = arr.splice;
+
+
+var whitespace = "[\\x20\\t\\r\\n\\f]";
+
+
+var rtrimCSS = new RegExp(
+ "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$",
+ "g"
+);
+
+
+
+
+// Note: an element does not contain itself
+jQuery.contains = function( a, b ) {
+ var bup = b && b.parentNode;
+
+ return a === bup || !!( bup && bup.nodeType === 1 && (
+
+ // Support: IE 9 - 11+
+ // IE doesn't have `contains` on SVG.
+ a.contains ?
+ a.contains( bup ) :
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+ ) );
+};
+
+
+
+
+// CSS string/identifier serialization
+// https://drafts.csswg.org/cssom/#common-serializing-idioms
+var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;
+
+function fcssescape( ch, asCodePoint ) {
+ if ( asCodePoint ) {
+
+ // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+ if ( ch === "\0" ) {
+ return "\uFFFD";
+ }
+
+ // Control characters and (dependent upon position) numbers get escaped as code points
+ return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+ }
+
+ // Other potentially-special ASCII characters get backslash-escaped
+ return "\\" + ch;
+}
+
+jQuery.escapeSelector = function( sel ) {
+ return ( sel + "" ).replace( rcssescape, fcssescape );
+};
+
+
+
+
+var preferredDoc = document,
+ pushNative = push;
+
+( function() {
+
var i,
- support,
Expr,
- getText,
- isXML,
- tokenize,
- compile,
- select,
outermostContext,
sortInput,
hasDuplicate,
+ push = pushNative,
// Local document vars
- setDocument,
document,
- docElem,
+ documentElement,
documentIsHTML,
rbuggyQSA,
- rbuggyMatches,
matches,
- contains,
// Instance-specific data
- expando = "sizzle" + 1 * new Date(),
- preferredDoc = window.document,
+ expando = jQuery.expando,
dirruns = 0,
done = 0,
classCache = createCache(),
@@ -570,47 +659,22 @@ var i,
return 0;
},
- // Instance methods
- hasOwn = ( {} ).hasOwnProperty,
- arr = [],
- pop = arr.pop,
- pushNative = arr.push,
- push = arr.push,
- slice = arr.slice,
-
- // Use a stripped-down indexOf as it's faster than native
- // https://jsperf.com/thor-indexof-vs-for/5
- indexOf = function( list, elem ) {
- var i = 0,
- len = list.length;
- for ( ; i < len; i++ ) {
- if ( list[ i ] === elem ) {
- return i;
- }
- }
- return -1;
- },
-
- booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" +
- "ismap|loop|multiple|open|readonly|required|scoped",
+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|" +
+ "loop|multiple|open|readonly|required|scoped",
// Regular expressions
- // http://www.w3.org/TR/css3-selectors/#whitespace
- whitespace = "[\\x20\\t\\r\\n\\f]",
-
// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
- // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+ // Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors
attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
// Operator (capture 2)
"*([*^$|!~]?=)" + whitespace +
- // "Attribute values must be CSS identifiers [capture 5]
- // or strings [capture 3 or capture 4]"
+ // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" +
whitespace + "*\\]",
@@ -629,101 +693,88 @@ var i,
// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
rwhitespace = new RegExp( whitespace + "+", "g" ),
- rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" +
- whitespace + "+$", "g" ),
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
- rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace +
- "*" ),
+ rleadingCombinator = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" +
+ whitespace + "*" ),
rdescend = new RegExp( whitespace + "|>" ),
rpseudo = new RegExp( pseudos ),
ridentifier = new RegExp( "^" + identifier + "$" ),
matchExpr = {
- "ID": new RegExp( "^#(" + identifier + ")" ),
- "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
- "TAG": new RegExp( "^(" + identifier + "|[*])" ),
- "ATTR": new RegExp( "^" + attributes ),
- "PSEUDO": new RegExp( "^" + pseudos ),
- "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
- whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
- whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
- "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+ ID: new RegExp( "^#(" + identifier + ")" ),
+ CLASS: new RegExp( "^\\.(" + identifier + ")" ),
+ TAG: new RegExp( "^(" + identifier + "|[*])" ),
+ ATTR: new RegExp( "^" + attributes ),
+ PSEUDO: new RegExp( "^" + pseudos ),
+ CHILD: new RegExp(
+ "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
+ whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
+ whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+ bool: new RegExp( "^(?:" + booleans + ")$", "i" ),
// For use in libraries implementing .is()
// We use this for POS matching in `select`
- "needsContext": new RegExp( "^" + whitespace +
+ needsContext: new RegExp( "^" + whitespace +
"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
"*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
},
- rhtml = /HTML$/i,
rinputs = /^(?:input|select|textarea|button)$/i,
rheader = /^h\d$/i,
- rnative = /^[^{]+\{\s*\[native \w/,
-
// Easily-parseable/retrievable ID or TAG or CLASS selectors
rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
rsibling = /[+~]/,
// CSS escapes
- // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
- runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ),
+ // https://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+ runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace +
+ "?|\\\\([^\\r\\n\\f])", "g" ),
funescape = function( escape, nonHex ) {
var high = "0x" + escape.slice( 1 ) - 0x10000;
- return nonHex ?
+ if ( nonHex ) {
// Strip the backslash prefix from a non-hex escape sequence
- nonHex :
-
- // Replace a hexadecimal escape sequence with the encoded Unicode code point
- // Support: IE <=11+
- // For values outside the Basic Multilingual Plane (BMP), manually construct a
- // surrogate pair
- high < 0 ?
- String.fromCharCode( high + 0x10000 ) :
- String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
- },
-
- // CSS string/identifier serialization
- // https://drafts.csswg.org/cssom/#common-serializing-idioms
- rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
- fcssescape = function( ch, asCodePoint ) {
- if ( asCodePoint ) {
-
- // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
- if ( ch === "\0" ) {
- return "\uFFFD";
- }
-
- // Control characters and (dependent upon position) numbers get escaped as code points
- return ch.slice( 0, -1 ) + "\\" +
- ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+ return nonHex;
}
- // Other potentially-special ASCII characters get backslash-escaped
- return "\\" + ch;
+ // Replace a hexadecimal escape sequence with the encoded Unicode code point
+ // Support: IE <=11+
+ // For values outside the Basic Multilingual Plane (BMP), manually construct a
+ // surrogate pair
+ return high < 0 ?
+ String.fromCharCode( high + 0x10000 ) :
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
},
- // Used for iframes
- // See setDocument()
+ // Used for iframes; see `setDocument`.
+ // Support: IE 9 - 11+, Edge 12 - 18+
// Removing the function wrapper causes a "Permission Denied"
- // error in IE
+ // error in IE/Edge.
unloadHandler = function() {
setDocument();
},
inDisabledFieldset = addCombinator(
function( elem ) {
- return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
+ return elem.disabled === true && nodeName( elem, "fieldset" );
},
{ dir: "parentNode", next: "legend" }
);
+// Support: IE <=9 only
+// Accessing document.activeElement can throw unexpectedly
+// https://bugs.jquery.com/ticket/13393
+function safeActiveElement() {
+ try {
+ return document.activeElement;
+ } catch ( err ) { }
+}
+
// Optimize for push.apply( _, NodeList )
try {
push.apply(
@@ -731,32 +782,22 @@ try {
preferredDoc.childNodes
);
- // Support: Android<4.0
+ // Support: Android <=4.0
// Detect silently failing push.apply
// eslint-disable-next-line no-unused-expressions
arr[ preferredDoc.childNodes.length ].nodeType;
} catch ( e ) {
- push = { apply: arr.length ?
-
- // Leverage slice if possible
- function( target, els ) {
+ push = {
+ apply: function( target, els ) {
pushNative.apply( target, slice.call( els ) );
- } :
-
- // Support: IE<9
- // Otherwise append directly
- function( target, els ) {
- var j = target.length,
- i = 0;
-
- // Can't trust NodeList.length
- while ( ( target[ j++ ] = els[ i++ ] ) ) {}
- target.length = j - 1;
+ },
+ call: function( target ) {
+ pushNative.apply( target, slice.call( arguments, 1 ) );
}
};
}
-function Sizzle( selector, context, results, seed ) {
+function find( selector, context, results, seed ) {
var m, i, elem, nid, match, groups, newSelector,
newContext = context && context.ownerDocument,
@@ -790,11 +831,10 @@ function Sizzle( selector, context, results, seed ) {
if ( nodeType === 9 ) {
if ( ( elem = context.getElementById( m ) ) ) {
- // Support: IE, Opera, Webkit
- // TODO: identify versions
+ // Support: IE 9 only
// getElementById can match elements by name instead of ID
if ( elem.id === m ) {
- results.push( elem );
+ push.call( results, elem );
return results;
}
} else {
@@ -804,14 +844,13 @@ function Sizzle( selector, context, results, seed ) {
// Element context
} else {
- // Support: IE, Opera, Webkit
- // TODO: identify versions
+ // Support: IE 9 only
// getElementById can match elements by name instead of ID
if ( newContext && ( elem = newContext.getElementById( m ) ) &&
- contains( context, elem ) &&
+ find.contains( context, elem ) &&
elem.id === m ) {
- results.push( elem );
+ push.call( results, elem );
return results;
}
}
@@ -822,22 +861,15 @@ function Sizzle( selector, context, results, seed ) {
return results;
// Class selector
- } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&
- context.getElementsByClassName ) {
-
+ } else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {
push.apply( results, context.getElementsByClassName( m ) );
return results;
}
}
// Take advantage of querySelectorAll
- if ( support.qsa &&
- !nonnativeSelectorCache[ selector + " " ] &&
- ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&
-
- // Support: IE 8 only
- // Exclude object elements
- ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) {
+ if ( !nonnativeSelectorCache[ selector + " " ] &&
+ ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {
newSelector = selector;
newContext = context;
@@ -850,7 +882,7 @@ function Sizzle( selector, context, results, seed ) {
// as such selectors are not recognized by querySelectorAll.
// Thanks to Andrew Dupont for this technique.
if ( nodeType === 1 &&
- ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {
+ ( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {
// Expand context for sibling selectors
newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
@@ -858,11 +890,15 @@ function Sizzle( selector, context, results, seed ) {
// We can use :scope instead of the ID hack if the browser
// supports it & if we're not changing the context.
- if ( newContext !== context || !support.scope ) {
+ // Support: IE 11+, Edge 17 - 18+
+ // IE/Edge sometimes throw a "Permission denied" error when
+ // strict-comparing two documents; shallow comparisons work.
+ // eslint-disable-next-line eqeqeq
+ if ( newContext != context || !support.scope ) {
// Capture the context ID, setting it first if necessary
if ( ( nid = context.getAttribute( "id" ) ) ) {
- nid = nid.replace( rcssescape, fcssescape );
+ nid = jQuery.escapeSelector( nid );
} else {
context.setAttribute( "id", ( nid = expando ) );
}
@@ -879,27 +915,6 @@ function Sizzle( selector, context, results, seed ) {
}
try {
-
- // `qSA` may not throw for unrecognized parts using forgiving parsing:
- // https://drafts.csswg.org/selectors/#forgiving-selector
- // like the `:has()` pseudo-class:
- // https://drafts.csswg.org/selectors/#relational
- // `CSS.supports` is still expected to return `false` then:
- // https://drafts.csswg.org/css-conditional-4/#typedef-supports-selector-fn
- // https://drafts.csswg.org/css-conditional-4/#dfn-support-selector
- if ( support.cssSupportsSelector &&
-
- // eslint-disable-next-line no-undef
- !CSS.supports( "selector(:is(" + newSelector + "))" ) ) {
-
- // Support: IE 11+
- // Throw to get to the same code path as an error directly in qSA.
- // Note: once we only support browser supporting
- // `CSS.supports('selector(...)')`, we can most likely drop
- // the `try-catch`. IE doesn't implement the API.
- throw new Error();
- }
-
push.apply( results,
newContext.querySelectorAll( newSelector )
);
@@ -916,7 +931,7 @@ function Sizzle( selector, context, results, seed ) {
}
// All others
- return select( selector.replace( rtrim, "$1" ), context, results, seed );
+ return select( selector.replace( rtrimCSS, "$1" ), context, results, seed );
}
/**
@@ -930,7 +945,8 @@ function createCache() {
function cache( key, value ) {
- // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+ // Use (key + " ") to avoid collision with native prototype properties
+ // (see https://github.com/jquery/sizzle/issues/157)
if ( keys.push( key + " " ) > Expr.cacheLength ) {
// Only keep the most recent entries
@@ -942,7 +958,7 @@ function createCache() {
}
/**
- * Mark a function for special use by Sizzle
+ * Mark a function for special use by jQuery selector module
* @param {Function} fn The function to mark
*/
function markFunction( fn ) {
@@ -973,56 +989,13 @@ function assert( fn ) {
}
}
-/**
- * Adds the same handler for all of the specified attrs
- * @param {String} attrs Pipe-separated list of attributes
- * @param {Function} handler The method that will be applied
- */
-function addHandle( attrs, handler ) {
- var arr = attrs.split( "|" ),
- i = arr.length;
-
- while ( i-- ) {
- Expr.attrHandle[ arr[ i ] ] = handler;
- }
-}
-
-/**
- * Checks document order of two siblings
- * @param {Element} a
- * @param {Element} b
- * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
- */
-function siblingCheck( a, b ) {
- var cur = b && a,
- diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
- a.sourceIndex - b.sourceIndex;
-
- // Use IE sourceIndex if available on both nodes
- if ( diff ) {
- return diff;
- }
-
- // Check if b follows a
- if ( cur ) {
- while ( ( cur = cur.nextSibling ) ) {
- if ( cur === b ) {
- return -1;
- }
- }
- }
-
- return a ? 1 : -1;
-}
-
/**
* Returns a function to use in pseudos for input types
* @param {String} type
*/
function createInputPseudo( type ) {
return function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return name === "input" && elem.type === type;
+ return nodeName( elem, "input" ) && elem.type === type;
};
}
@@ -1032,8 +1005,8 @@ function createInputPseudo( type ) {
*/
function createButtonPseudo( type ) {
return function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return ( name === "input" || name === "button" ) && elem.type === type;
+ return ( nodeName( elem, "input" ) || nodeName( elem, "button" ) ) &&
+ elem.type === type;
};
}
@@ -1069,14 +1042,13 @@ function createDisabledPseudo( disabled ) {
}
}
- // Support: IE 6 - 11
+ // Support: IE 6 - 11+
// Use the isDisabled shortcut property to check for disabled fieldset ancestors
return elem.isDisabled === disabled ||
// Where there is no isDisabled, check manually
- /* jshint -W018 */
elem.isDisabled !== !disabled &&
- inDisabledFieldset( elem ) === disabled;
+ inDisabledFieldset( elem ) === disabled;
}
return elem.disabled === disabled;
@@ -1116,7 +1088,7 @@ function createPositionalPseudo( fn ) {
}
/**
- * Checks a node for validity as a Sizzle context
+ * Checks a node for validity as a jQuery selector context
* @param {Element|Object=} context
* @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
*/
@@ -1124,31 +1096,13 @@ function testContext( context ) {
return context && typeof context.getElementsByTagName !== "undefined" && context;
}
-// Expose support vars for convenience
-support = Sizzle.support = {};
-
-/**
- * Detects XML nodes
- * @param {Element|Object} elem An element or a document
- * @returns {Boolean} True iff elem is a non-HTML XML node
- */
-isXML = Sizzle.isXML = function( elem ) {
- var namespace = elem && elem.namespaceURI,
- docElem = elem && ( elem.ownerDocument || elem ).documentElement;
-
- // Support: IE <=8
- // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
- // https://bugs.jquery.com/ticket/4833
- return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
-};
-
/**
* Sets document-related variables once based on the current document
- * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @param {Element|Object} [node] An element or document object to use to set the document
* @returns {Object} Returns the current document
*/
-setDocument = Sizzle.setDocument = function( node ) {
- var hasCompare, subWindow,
+function setDocument( node ) {
+ var subWindow,
doc = node ? node.ownerDocument || node : preferredDoc;
// Return early if doc is invalid or already selected
@@ -1162,11 +1116,17 @@ setDocument = Sizzle.setDocument = function( node ) {
// Update global variables
document = doc;
- docElem = document.documentElement;
- documentIsHTML = !isXML( document );
+ documentElement = document.documentElement;
+ documentIsHTML = !jQuery.isXMLDoc( document );
+
+ // Support: iOS 7 only, IE 9 - 11+
+ // Older browsers didn't support unprefixed `matches`.
+ matches = documentElement.matches ||
+ documentElement.webkitMatchesSelector ||
+ documentElement.msMatchesSelector;
// Support: IE 9 - 11+, Edge 12 - 18+
- // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+ // Accessing iframe documents after unload throws "permission denied" errors (see trac-13936)
// Support: IE 11+, Edge 17 - 18+
// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
// two documents; shallow comparisons work.
@@ -1174,100 +1134,67 @@ setDocument = Sizzle.setDocument = function( node ) {
if ( preferredDoc != document &&
( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {
- // Support: IE 11, Edge
- if ( subWindow.addEventListener ) {
- subWindow.addEventListener( "unload", unloadHandler, false );
-
- // Support: IE 9 - 10 only
- } else if ( subWindow.attachEvent ) {
- subWindow.attachEvent( "onunload", unloadHandler );
- }
+ // Support: IE 9 - 11+, Edge 12 - 18+
+ subWindow.addEventListener( "unload", unloadHandler );
}
- // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,
- // Safari 4 - 5 only, Opera <=11.6 - 12.x only
- // IE/Edge & older browsers don't support the :scope pseudo-class.
- // Support: Safari 6.0 only
- // Safari 6.0 supports :scope but it's an alias of :root there.
- support.scope = assert( function( el ) {
- docElem.appendChild( el ).appendChild( document.createElement( "div" ) );
- return typeof el.querySelectorAll !== "undefined" &&
- !el.querySelectorAll( ":scope fieldset div" ).length;
- } );
-
- // Support: Chrome 105+, Firefox 104+, Safari 15.4+
- // Make sure forgiving mode is not used in `CSS.supports( "selector(...)" )`.
- //
- // `:is()` uses a forgiving selector list as an argument and is widely
- // implemented, so it's a good one to test against.
- support.cssSupportsSelector = assert( function() {
- /* eslint-disable no-undef */
-
- return CSS.supports( "selector(*)" ) &&
-
- // Support: Firefox 78-81 only
- // In old Firefox, `:is()` didn't use forgiving parsing. In that case,
- // fail this test as there's no selector to test against that.
- // `CSS.supports` uses unforgiving parsing
- document.querySelectorAll( ":is(:jqfake)" ) &&
-
- // `*` is needed as Safari & newer Chrome implemented something in between
- // for `:has()` - it throws in `qSA` if it only contains an unsupported
- // argument but multiple ones, one of which is supported, are fine.
- // We want to play safe in case `:is()` gets the same treatment.
- !CSS.supports( "selector(:is(*,:jqfake))" );
-
- /* eslint-enable */
+ // Support: IE <10
+ // Check if getElementById returns elements by name
+ // The broken getElementById methods don't pick up programmatically-set names,
+ // so use a roundabout getElementsByName test
+ support.getById = assert( function( el ) {
+ documentElement.appendChild( el ).id = jQuery.expando;
+ return !document.getElementsByName ||
+ !document.getElementsByName( jQuery.expando ).length;
} );
- /* Attributes
- ---------------------------------------------------------------------- */
-
- // Support: IE<8
- // Verify that getAttribute really returns attributes and not properties
- // (excepting IE8 booleans)
- support.attributes = assert( function( el ) {
- el.className = "i";
- return !el.getAttribute( "className" );
+ // Support: IE 9 only
+ // Check to see if it's possible to do matchesSelector
+ // on a disconnected node.
+ support.disconnectedMatch = assert( function( el ) {
+ return matches.call( el, "*" );
} );
- /* getElement(s)By*
- ---------------------------------------------------------------------- */
-
- // Check if getElementsByTagName("*") returns only elements
- support.getElementsByTagName = assert( function( el ) {
- el.appendChild( document.createComment( "" ) );
- return !el.getElementsByTagName( "*" ).length;
+ // Support: IE 9 - 11+, Edge 12 - 18+
+ // IE/Edge don't support the :scope pseudo-class.
+ support.scope = assert( function() {
+ return document.querySelectorAll( ":scope" );
} );
- // Support: IE<9
- support.getElementsByClassName = rnative.test( document.getElementsByClassName );
-
- // Support: IE<10
- // Check if getElementById returns elements by name
- // The broken getElementById methods don't pick up programmatically-set names,
- // so use a roundabout getElementsByName test
- support.getById = assert( function( el ) {
- docElem.appendChild( el ).id = expando;
- return !document.getElementsByName || !document.getElementsByName( expando ).length;
+ // Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only
+ // Make sure the `:has()` argument is parsed unforgivingly.
+ // We include `*` in the test to detect buggy implementations that are
+ // _selectively_ forgiving (specifically when the list includes at least
+ // one valid selector).
+ // Note that we treat complete lack of support for `:has()` as if it were
+ // spec-compliant support, which is fine because use of `:has()` in such
+ // environments will fail in the qSA path and fall back to jQuery traversal
+ // anyway.
+ support.cssHas = assert( function() {
+ try {
+ document.querySelector( ":has(*,:jqfake)" );
+ return false;
+ } catch ( e ) {
+ return true;
+ }
} );
// ID filter and find
if ( support.getById ) {
- Expr.filter[ "ID" ] = function( id ) {
+ Expr.filter.ID = function( id ) {
var attrId = id.replace( runescape, funescape );
return function( elem ) {
return elem.getAttribute( "id" ) === attrId;
};
};
- Expr.find[ "ID" ] = function( id, context ) {
+ Expr.find.ID = function( id, context ) {
if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
var elem = context.getElementById( id );
return elem ? [ elem ] : [];
}
};
} else {
- Expr.filter[ "ID" ] = function( id ) {
+ Expr.filter.ID = function( id ) {
var attrId = id.replace( runescape, funescape );
return function( elem ) {
var node = typeof elem.getAttributeNode !== "undefined" &&
@@ -1278,7 +1205,7 @@ setDocument = Sizzle.setDocument = function( node ) {
// Support: IE 6 - 7 only
// getElementById is not reliable as a find shortcut
- Expr.find[ "ID" ] = function( id, context ) {
+ Expr.find.ID = function( id, context ) {
if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
var node, i, elems,
elem = context.getElementById( id );
@@ -1308,40 +1235,18 @@ setDocument = Sizzle.setDocument = function( node ) {
}
// Tag
- Expr.find[ "TAG" ] = support.getElementsByTagName ?
- function( tag, context ) {
- if ( typeof context.getElementsByTagName !== "undefined" ) {
- return context.getElementsByTagName( tag );
+ Expr.find.TAG = function( tag, context ) {
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
+ return context.getElementsByTagName( tag );
- // DocumentFragment nodes don't have gEBTN
- } else if ( support.qsa ) {
- return context.querySelectorAll( tag );
- }
- } :
-
- function( tag, context ) {
- var elem,
- tmp = [],
- i = 0,
-
- // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
- results = context.getElementsByTagName( tag );
-
- // Filter out possible comments
- if ( tag === "*" ) {
- while ( ( elem = results[ i++ ] ) ) {
- if ( elem.nodeType === 1 ) {
- tmp.push( elem );
- }
- }
-
- return tmp;
- }
- return results;
- };
+ // DocumentFragment nodes don't have gEBTN
+ } else {
+ return context.querySelectorAll( tag );
+ }
+ };
// Class
- Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) {
+ Expr.find.CLASS = function( className, context ) {
if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
return context.getElementsByClassName( className );
}
@@ -1352,195 +1257,94 @@ setDocument = Sizzle.setDocument = function( node ) {
// QSA and matchesSelector support
- // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
- rbuggyMatches = [];
-
- // qSa(:focus) reports false when true (Chrome 21)
- // We allow this because of a bug in IE8/9 that throws an error
- // whenever `document.activeElement` is accessed on an iframe
- // So, we allow :focus to pass through QSA all the time to avoid the IE error
- // See https://bugs.jquery.com/ticket/13378
rbuggyQSA = [];
- if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {
-
- // Build QSA regex
- // Regex strategy adopted from Diego Perini
- assert( function( el ) {
+ // Build QSA regex
+ // Regex strategy adopted from Diego Perini
+ assert( function( el ) {
- var input;
-
- // Select is set to empty string on purpose
- // This is to test IE's treatment of not explicitly
- // setting a boolean content attribute,
- // since its presence should be enough
- // https://bugs.jquery.com/ticket/12359
- docElem.appendChild( el ).innerHTML = "" +
- "";
-
- // Support: IE8, Opera 11-12.16
- // Nothing should be selected when empty strings follow ^= or $= or *=
- // The test attribute must be unknown in Opera but "safe" for WinRT
- // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
- if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) {
- rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
- }
-
- // Support: IE8
- // Boolean attributes and "value" are not treated correctly
- if ( !el.querySelectorAll( "[selected]" ).length ) {
- rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
- }
-
- // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
- if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
- rbuggyQSA.push( "~=" );
- }
-
- // Support: IE 11+, Edge 15 - 18+
- // IE 11/Edge don't find elements on a `[name='']` query in some cases.
- // Adding a temporary attribute to the document before the selection works
- // around the issue.
- // Interestingly, IE 10 & older don't seem to have the issue.
- input = document.createElement( "input" );
- input.setAttribute( "name", "" );
- el.appendChild( input );
- if ( !el.querySelectorAll( "[name='']" ).length ) {
- rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
- whitespace + "*(?:''|\"\")" );
- }
-
- // Webkit/Opera - :checked should return selected option elements
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
- // IE8 throws error here and will not see later tests
- if ( !el.querySelectorAll( ":checked" ).length ) {
- rbuggyQSA.push( ":checked" );
- }
-
- // Support: Safari 8+, iOS 8+
- // https://bugs.webkit.org/show_bug.cgi?id=136851
- // In-page `selector#id sibling-combinator selector` fails
- if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
- rbuggyQSA.push( ".#.+[+~]" );
- }
-
- // Support: Firefox <=3.6 - 5 only
- // Old Firefox doesn't throw on a badly-escaped identifier.
- el.querySelectorAll( "\\\f" );
- rbuggyQSA.push( "[\\r\\n\\f]" );
- } );
+ var input;
- assert( function( el ) {
- el.innerHTML = "" +
- "";
+ documentElement.appendChild( el ).innerHTML =
+ "" +
+ "";
- // Support: Windows 8 Native Apps
- // The type and name attributes are restricted during .innerHTML assignment
- var input = document.createElement( "input" );
- input.setAttribute( "type", "hidden" );
- el.appendChild( input ).setAttribute( "name", "D" );
-
- // Support: IE8
- // Enforce case-sensitivity of name attribute
- if ( el.querySelectorAll( "[name=d]" ).length ) {
- rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
- }
-
- // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
- // IE8 throws error here and will not see later tests
- if ( el.querySelectorAll( ":enabled" ).length !== 2 ) {
- rbuggyQSA.push( ":enabled", ":disabled" );
- }
-
- // Support: IE9-11+
- // IE's :disabled selector does not pick up the children of disabled fieldsets
- docElem.appendChild( el ).disabled = true;
- if ( el.querySelectorAll( ":disabled" ).length !== 2 ) {
- rbuggyQSA.push( ":enabled", ":disabled" );
- }
-
- // Support: Opera 10 - 11 only
- // Opera 10-11 does not throw on post-comma invalid pseudos
- el.querySelectorAll( "*,:x" );
- rbuggyQSA.push( ",.*:" );
- } );
- }
+ // Support: iOS <=7 - 8 only
+ // Boolean attributes and "value" are not treated correctly in some XML documents
+ if ( !el.querySelectorAll( "[selected]" ).length ) {
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+ }
- if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||
- docElem.webkitMatchesSelector ||
- docElem.mozMatchesSelector ||
- docElem.oMatchesSelector ||
- docElem.msMatchesSelector ) ) ) ) {
+ // Support: iOS <=7 - 8 only
+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+ rbuggyQSA.push( "~=" );
+ }
- assert( function( el ) {
+ // Support: iOS 8 only
+ // https://bugs.webkit.org/show_bug.cgi?id=136851
+ // In-page `selector#id sibling-combinator selector` fails
+ if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+ rbuggyQSA.push( ".#.+[+~]" );
+ }
- // Check to see if it's possible to do matchesSelector
- // on a disconnected node (IE 9)
- support.disconnectedMatch = matches.call( el, "*" );
+ // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+
+ // In some of the document kinds, these selectors wouldn't work natively.
+ // This is probably OK but for backwards compatibility we want to maintain
+ // handling them through jQuery traversal in jQuery 3.x.
+ if ( !el.querySelectorAll( ":checked" ).length ) {
+ rbuggyQSA.push( ":checked" );
+ }
- // This should fail with an exception
- // Gecko does not error, returns false instead
- matches.call( el, "[s!='']:x" );
- rbuggyMatches.push( "!=", pseudos );
- } );
- }
+ // Support: Windows 8 Native Apps
+ // The type and name attributes are restricted during .innerHTML assignment
+ input = document.createElement( "input" );
+ input.setAttribute( "type", "hidden" );
+ el.appendChild( input ).setAttribute( "name", "D" );
+
+ // Support: IE 9 - 11+
+ // IE's :disabled selector does not pick up the children of disabled fieldsets
+ // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+
+ // In some of the document kinds, these selectors wouldn't work natively.
+ // This is probably OK but for backwards compatibility we want to maintain
+ // handling them through jQuery traversal in jQuery 3.x.
+ documentElement.appendChild( el ).disabled = true;
+ if ( el.querySelectorAll( ":disabled" ).length !== 2 ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Support: IE 11+, Edge 15 - 18+
+ // IE 11/Edge don't find elements on a `[name='']` query in some cases.
+ // Adding a temporary attribute to the document before the selection works
+ // around the issue.
+ // Interestingly, IE 10 & older don't seem to have the issue.
+ input = document.createElement( "input" );
+ input.setAttribute( "name", "" );
+ el.appendChild( input );
+ if ( !el.querySelectorAll( "[name='']" ).length ) {
+ rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
+ whitespace + "*(?:''|\"\")" );
+ }
+ } );
- if ( !support.cssSupportsSelector ) {
+ if ( !support.cssHas ) {
- // Support: Chrome 105+, Safari 15.4+
- // `:has()` uses a forgiving selector list as an argument so our regular
- // `try-catch` mechanism fails to catch `:has()` with arguments not supported
- // natively like `:has(:contains("Foo"))`. Where supported & spec-compliant,
- // we now use `CSS.supports("selector(:is(SELECTOR_TO_BE_TESTED))")`, but
- // outside that we mark `:has` as buggy.
+ // Support: Chrome 105 - 110+, Safari 15.4 - 16.3+
+ // Our regular `try-catch` mechanism fails to detect natively-unsupported
+ // pseudo-classes inside `:has()` (such as `:has(:contains("Foo"))`)
+ // in browsers that parse the `:has()` argument as a forgiving selector list.
+ // https://drafts.csswg.org/selectors/#relational now requires the argument
+ // to be parsed unforgivingly, but browsers have not yet fully adjusted.
rbuggyQSA.push( ":has" );
}
rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) );
- rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) );
-
- /* Contains
- ---------------------------------------------------------------------- */
- hasCompare = rnative.test( docElem.compareDocumentPosition );
-
- // Element contains another
- // Purposefully self-exclusive
- // As in, an element does not contain itself
- contains = hasCompare || rnative.test( docElem.contains ) ?
- function( a, b ) {
-
- // Support: IE <9 only
- // IE doesn't have `contains` on `document` so we need to check for
- // `documentElement` presence.
- // We need to fall back to `a` when `documentElement` is missing
- // as `ownerDocument` of elements within `` may have
- // a null one - a default behavior of all modern browsers.
- var adown = a.nodeType === 9 && a.documentElement || a,
- bup = b && b.parentNode;
- return a === bup || !!( bup && bup.nodeType === 1 && (
- adown.contains ?
- adown.contains( bup ) :
- a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
- ) );
- } :
- function( a, b ) {
- if ( b ) {
- while ( ( b = b.parentNode ) ) {
- if ( b === a ) {
- return true;
- }
- }
- }
- return false;
- };
/* Sorting
---------------------------------------------------------------------- */
// Document order sorting
- sortOrder = hasCompare ?
- function( a, b ) {
+ sortOrder = function( a, b ) {
// Flag for duplicate removal
if ( a === b ) {
@@ -1574,8 +1378,8 @@ setDocument = Sizzle.setDocument = function( node ) {
// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
// two documents; shallow comparisons work.
// eslint-disable-next-line eqeqeq
- if ( a == document || a.ownerDocument == preferredDoc &&
- contains( preferredDoc, a ) ) {
+ if ( a === document || a.ownerDocument == preferredDoc &&
+ find.contains( preferredDoc, a ) ) {
return -1;
}
@@ -1583,100 +1387,33 @@ setDocument = Sizzle.setDocument = function( node ) {
// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
// two documents; shallow comparisons work.
// eslint-disable-next-line eqeqeq
- if ( b == document || b.ownerDocument == preferredDoc &&
- contains( preferredDoc, b ) ) {
+ if ( b === document || b.ownerDocument == preferredDoc &&
+ find.contains( preferredDoc, b ) ) {
return 1;
}
// Maintain original order
return sortInput ?
- ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+ ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
0;
}
return compare & 4 ? -1 : 1;
- } :
- function( a, b ) {
-
- // Exit early if the nodes are identical
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
-
- var cur,
- i = 0,
- aup = a.parentNode,
- bup = b.parentNode,
- ap = [ a ],
- bp = [ b ];
-
- // Parentless nodes are either documents or disconnected
- if ( !aup || !bup ) {
-
- // Support: IE 11+, Edge 17 - 18+
- // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
- // two documents; shallow comparisons work.
- /* eslint-disable eqeqeq */
- return a == document ? -1 :
- b == document ? 1 :
- /* eslint-enable eqeqeq */
- aup ? -1 :
- bup ? 1 :
- sortInput ?
- ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
- 0;
-
- // If the nodes are siblings, we can do a quick check
- } else if ( aup === bup ) {
- return siblingCheck( a, b );
- }
-
- // Otherwise we need full lists of their ancestors for comparison
- cur = a;
- while ( ( cur = cur.parentNode ) ) {
- ap.unshift( cur );
- }
- cur = b;
- while ( ( cur = cur.parentNode ) ) {
- bp.unshift( cur );
- }
-
- // Walk down the tree looking for a discrepancy
- while ( ap[ i ] === bp[ i ] ) {
- i++;
- }
-
- return i ?
-
- // Do a sibling check if the nodes have a common ancestor
- siblingCheck( ap[ i ], bp[ i ] ) :
-
- // Otherwise nodes in our document sort first
- // Support: IE 11+, Edge 17 - 18+
- // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
- // two documents; shallow comparisons work.
- /* eslint-disable eqeqeq */
- ap[ i ] == preferredDoc ? -1 :
- bp[ i ] == preferredDoc ? 1 :
- /* eslint-enable eqeqeq */
- 0;
};
return document;
-};
+}
-Sizzle.matches = function( expr, elements ) {
- return Sizzle( expr, null, null, elements );
+find.matches = function( expr, elements ) {
+ return find( expr, null, null, elements );
};
-Sizzle.matchesSelector = function( elem, expr ) {
+find.matchesSelector = function( elem, expr ) {
setDocument( elem );
- if ( support.matchesSelector && documentIsHTML &&
+ if ( documentIsHTML &&
!nonnativeSelectorCache[ expr + " " ] &&
- ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
- ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
+ ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
try {
var ret = matches.call( elem, expr );
@@ -1684,9 +1421,9 @@ Sizzle.matchesSelector = function( elem, expr ) {
// IE 9's matchesSelector returns false on disconnected nodes
if ( ret || support.disconnectedMatch ||
- // As well, disconnected nodes are said to be in a document
- // fragment in IE 9
- elem.document && elem.document.nodeType !== 11 ) {
+ // As well, disconnected nodes are said to be in a document
+ // fragment in IE 9
+ elem.document && elem.document.nodeType !== 11 ) {
return ret;
}
} catch ( e ) {
@@ -1694,10 +1431,10 @@ Sizzle.matchesSelector = function( elem, expr ) {
}
}
- return Sizzle( expr, document, null, [ elem ] ).length > 0;
+ return find( expr, document, null, [ elem ] ).length > 0;
};
-Sizzle.contains = function( context, elem ) {
+find.contains = function( context, elem ) {
// Set document vars if needed
// Support: IE 11+, Edge 17 - 18+
@@ -1707,10 +1444,11 @@ Sizzle.contains = function( context, elem ) {
if ( ( context.ownerDocument || context ) != document ) {
setDocument( context );
}
- return contains( context, elem );
+ return jQuery.contains( context, elem );
};
-Sizzle.attr = function( elem, name ) {
+
+find.attr = function( elem, name ) {
// Set document vars if needed
// Support: IE 11+, Edge 17 - 18+
@@ -1723,25 +1461,19 @@ Sizzle.attr = function( elem, name ) {
var fn = Expr.attrHandle[ name.toLowerCase() ],
- // Don't get fooled by Object.prototype properties (jQuery #13807)
+ // Don't get fooled by Object.prototype properties (see trac-13807)
val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
fn( elem, name, !documentIsHTML ) :
undefined;
- return val !== undefined ?
- val :
- support.attributes || !documentIsHTML ?
- elem.getAttribute( name ) :
- ( val = elem.getAttributeNode( name ) ) && val.specified ?
- val.value :
- null;
-};
+ if ( val !== undefined ) {
+ return val;
+ }
-Sizzle.escape = function( sel ) {
- return ( sel + "" ).replace( rcssescape, fcssescape );
+ return elem.getAttribute( name );
};
-Sizzle.error = function( msg ) {
+find.error = function( msg ) {
throw new Error( "Syntax error, unrecognized expression: " + msg );
};
@@ -1749,16 +1481,20 @@ Sizzle.error = function( msg ) {
* Document sorting and removing duplicates
* @param {ArrayLike} results
*/
-Sizzle.uniqueSort = function( results ) {
+jQuery.uniqueSort = function( results ) {
var elem,
duplicates = [],
j = 0,
i = 0;
// Unless we *know* we can detect duplicates, assume their presence
- hasDuplicate = !support.detectDuplicates;
- sortInput = !support.sortStable && results.slice( 0 );
- results.sort( sortOrder );
+ //
+ // Support: Android <=4.0+
+ // Testing for detecting duplicates is unpredictable so instead assume we can't
+ // depend on duplicate detection in all browsers without a stable sort.
+ hasDuplicate = !support.sortStable;
+ sortInput = !support.sortStable && slice.call( results, 0 );
+ sort.call( results, sortOrder );
if ( hasDuplicate ) {
while ( ( elem = results[ i++ ] ) ) {
@@ -1767,7 +1503,7 @@ Sizzle.uniqueSort = function( results ) {
}
}
while ( j-- ) {
- results.splice( duplicates[ j ], 1 );
+ splice.call( results, duplicates[ j ], 1 );
}
}
@@ -1778,47 +1514,11 @@ Sizzle.uniqueSort = function( results ) {
return results;
};
-/**
- * Utility function for retrieving the text value of an array of DOM nodes
- * @param {Array|Element} elem
- */
-getText = Sizzle.getText = function( elem ) {
- var node,
- ret = "",
- i = 0,
- nodeType = elem.nodeType;
-
- if ( !nodeType ) {
-
- // If no nodeType, this is expected to be an array
- while ( ( node = elem[ i++ ] ) ) {
-
- // Do not traverse comment nodes
- ret += getText( node );
- }
- } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
-
- // Use textContent for elements
- // innerText usage removed for consistency of new lines (jQuery #11153)
- if ( typeof elem.textContent === "string" ) {
- return elem.textContent;
- } else {
-
- // Traverse its children
- for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
- ret += getText( elem );
- }
- }
- } else if ( nodeType === 3 || nodeType === 4 ) {
- return elem.nodeValue;
- }
-
- // Do not include comment or processing instruction nodes
-
- return ret;
+jQuery.fn.uniqueSort = function() {
+ return this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );
};
-Expr = Sizzle.selectors = {
+Expr = jQuery.expr = {
// Can be adjusted by the user
cacheLength: 50,
@@ -1839,12 +1539,12 @@ Expr = Sizzle.selectors = {
},
preFilter: {
- "ATTR": function( match ) {
+ ATTR: function( match ) {
match[ 1 ] = match[ 1 ].replace( runescape, funescape );
// Move the given value to match[3] whether quoted or unquoted
- match[ 3 ] = ( match[ 3 ] || match[ 4 ] ||
- match[ 5 ] || "" ).replace( runescape, funescape );
+ match[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || "" )
+ .replace( runescape, funescape );
if ( match[ 2 ] === "~=" ) {
match[ 3 ] = " " + match[ 3 ] + " ";
@@ -1853,7 +1553,7 @@ Expr = Sizzle.selectors = {
return match.slice( 0, 4 );
},
- "CHILD": function( match ) {
+ CHILD: function( match ) {
/* matches from matchExpr["CHILD"]
1 type (only|nth|...)
@@ -1871,29 +1571,30 @@ Expr = Sizzle.selectors = {
// nth-* requires argument
if ( !match[ 3 ] ) {
- Sizzle.error( match[ 0 ] );
+ find.error( match[ 0 ] );
}
// numeric x and y parameters for Expr.filter.CHILD
// remember that false/true cast respectively to 0/1
match[ 4 ] = +( match[ 4 ] ?
match[ 5 ] + ( match[ 6 ] || 1 ) :
- 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) );
+ 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" )
+ );
match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" );
- // other types prohibit arguments
+ // other types prohibit arguments
} else if ( match[ 3 ] ) {
- Sizzle.error( match[ 0 ] );
+ find.error( match[ 0 ] );
}
return match;
},
- "PSEUDO": function( match ) {
+ PSEUDO: function( match ) {
var excess,
unquoted = !match[ 6 ] && match[ 2 ];
- if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) {
+ if ( matchExpr.CHILD.test( match[ 0 ] ) ) {
return null;
}
@@ -1922,36 +1623,36 @@ Expr = Sizzle.selectors = {
filter: {
- "TAG": function( nodeNameSelector ) {
- var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+ TAG: function( nodeNameSelector ) {
+ var expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
return nodeNameSelector === "*" ?
function() {
return true;
} :
function( elem ) {
- return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+ return nodeName( elem, expectedNodeName );
};
},
- "CLASS": function( className ) {
+ CLASS: function( className ) {
var pattern = classCache[ className + " " ];
return pattern ||
- ( pattern = new RegExp( "(^|" + whitespace +
- ")" + className + "(" + whitespace + "|$)" ) ) && classCache(
- className, function( elem ) {
- return pattern.test(
- typeof elem.className === "string" && elem.className ||
- typeof elem.getAttribute !== "undefined" &&
- elem.getAttribute( "class" ) ||
- ""
- );
+ ( pattern = new RegExp( "(^|" + whitespace + ")" + className +
+ "(" + whitespace + "|$)" ) ) &&
+ classCache( className, function( elem ) {
+ return pattern.test(
+ typeof elem.className === "string" && elem.className ||
+ typeof elem.getAttribute !== "undefined" &&
+ elem.getAttribute( "class" ) ||
+ ""
+ );
} );
},
- "ATTR": function( name, operator, check ) {
+ ATTR: function( name, operator, check ) {
return function( elem ) {
- var result = Sizzle.attr( elem, name );
+ var result = find.attr( elem, name );
if ( result == null ) {
return operator === "!=";
@@ -1962,22 +1663,34 @@ Expr = Sizzle.selectors = {
result += "";
- /* eslint-disable max-len */
-
- return operator === "=" ? result === check :
- operator === "!=" ? result !== check :
- operator === "^=" ? check && result.indexOf( check ) === 0 :
- operator === "*=" ? check && result.indexOf( check ) > -1 :
- operator === "$=" ? check && result.slice( -check.length ) === check :
- operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
- operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
- false;
- /* eslint-enable max-len */
+ if ( operator === "=" ) {
+ return result === check;
+ }
+ if ( operator === "!=" ) {
+ return result !== check;
+ }
+ if ( operator === "^=" ) {
+ return check && result.indexOf( check ) === 0;
+ }
+ if ( operator === "*=" ) {
+ return check && result.indexOf( check ) > -1;
+ }
+ if ( operator === "$=" ) {
+ return check && result.slice( -check.length ) === check;
+ }
+ if ( operator === "~=" ) {
+ return ( " " + result.replace( rwhitespace, " " ) + " " )
+ .indexOf( check ) > -1;
+ }
+ if ( operator === "|=" ) {
+ return result === check || result.slice( 0, check.length + 1 ) === check + "-";
+ }
+ return false;
};
},
- "CHILD": function( type, what, _argument, first, last ) {
+ CHILD: function( type, what, _argument, first, last ) {
var simple = type.slice( 0, 3 ) !== "nth",
forward = type.slice( -4 ) !== "last",
ofType = what === "of-type";
@@ -1990,7 +1703,7 @@ Expr = Sizzle.selectors = {
} :
function( elem, _context, xml ) {
- var cache, uniqueCache, outerCache, node, nodeIndex, start,
+ var cache, outerCache, node, nodeIndex, start,
dir = simple !== forward ? "nextSibling" : "previousSibling",
parent = elem.parentNode,
name = ofType && elem.nodeName.toLowerCase(),
@@ -2005,7 +1718,7 @@ Expr = Sizzle.selectors = {
node = elem;
while ( ( node = node[ dir ] ) ) {
if ( ofType ?
- node.nodeName.toLowerCase() === name :
+ nodeName( node, name ) :
node.nodeType === 1 ) {
return false;
@@ -2024,17 +1737,8 @@ Expr = Sizzle.selectors = {
if ( forward && useCache ) {
// Seek `elem` from a previously-cached index
-
- // ...in a gzip-friendly way
- node = parent;
- outerCache = node[ expando ] || ( node[ expando ] = {} );
-
- // Support: IE <9 only
- // Defend against cloned attroperties (jQuery gh-1709)
- uniqueCache = outerCache[ node.uniqueID ] ||
- ( outerCache[ node.uniqueID ] = {} );
-
- cache = uniqueCache[ type ] || [];
+ outerCache = parent[ expando ] || ( parent[ expando ] = {} );
+ cache = outerCache[ type ] || [];
nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
diff = nodeIndex && cache[ 2 ];
node = nodeIndex && parent.childNodes[ nodeIndex ];
@@ -2046,7 +1750,7 @@ Expr = Sizzle.selectors = {
// When found, cache indexes on `parent` and break
if ( node.nodeType === 1 && ++diff && node === elem ) {
- uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+ outerCache[ type ] = [ dirruns, nodeIndex, diff ];
break;
}
}
@@ -2055,17 +1759,8 @@ Expr = Sizzle.selectors = {
// Use previously-cached element index if available
if ( useCache ) {
-
- // ...in a gzip-friendly way
- node = elem;
- outerCache = node[ expando ] || ( node[ expando ] = {} );
-
- // Support: IE <9 only
- // Defend against cloned attroperties (jQuery gh-1709)
- uniqueCache = outerCache[ node.uniqueID ] ||
- ( outerCache[ node.uniqueID ] = {} );
-
- cache = uniqueCache[ type ] || [];
+ outerCache = elem[ expando ] || ( elem[ expando ] = {} );
+ cache = outerCache[ type ] || [];
nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
diff = nodeIndex;
}
@@ -2079,7 +1774,7 @@ Expr = Sizzle.selectors = {
( diff = nodeIndex = 0 ) || start.pop() ) ) {
if ( ( ofType ?
- node.nodeName.toLowerCase() === name :
+ nodeName( node, name ) :
node.nodeType === 1 ) &&
++diff ) {
@@ -2087,13 +1782,7 @@ Expr = Sizzle.selectors = {
if ( useCache ) {
outerCache = node[ expando ] ||
( node[ expando ] = {} );
-
- // Support: IE <9 only
- // Defend against cloned attroperties (jQuery gh-1709)
- uniqueCache = outerCache[ node.uniqueID ] ||
- ( outerCache[ node.uniqueID ] = {} );
-
- uniqueCache[ type ] = [ dirruns, diff ];
+ outerCache[ type ] = [ dirruns, diff ];
}
if ( node === elem ) {
@@ -2111,19 +1800,19 @@ Expr = Sizzle.selectors = {
};
},
- "PSEUDO": function( pseudo, argument ) {
+ PSEUDO: function( pseudo, argument ) {
// pseudo-class names are case-insensitive
- // http://www.w3.org/TR/selectors/#pseudo-classes
+ // https://www.w3.org/TR/selectors/#pseudo-classes
// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
// Remember that setFilters inherits from pseudos
var args,
fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
- Sizzle.error( "unsupported pseudo: " + pseudo );
+ find.error( "unsupported pseudo: " + pseudo );
// The user may use createPseudo to indicate that
// arguments are needed to create the filter function
- // just as Sizzle does
+ // just as jQuery does
if ( fn[ expando ] ) {
return fn( argument );
}
@@ -2137,7 +1826,7 @@ Expr = Sizzle.selectors = {
matched = fn( seed, argument ),
i = matched.length;
while ( i-- ) {
- idx = indexOf( seed, matched[ i ] );
+ idx = indexOf.call( seed, matched[ i ] );
seed[ idx ] = !( matches[ idx ] = matched[ i ] );
}
} ) :
@@ -2153,14 +1842,14 @@ Expr = Sizzle.selectors = {
pseudos: {
// Potentially complex pseudos
- "not": markFunction( function( selector ) {
+ not: markFunction( function( selector ) {
// Trim the selector passed to compile
// to avoid treating leading and trailing
// spaces as combinators
var input = [],
results = [],
- matcher = compile( selector.replace( rtrim, "$1" ) );
+ matcher = compile( selector.replace( rtrimCSS, "$1" ) );
return matcher[ expando ] ?
markFunction( function( seed, matches, _context, xml ) {
@@ -2179,22 +1868,23 @@ Expr = Sizzle.selectors = {
input[ 0 ] = elem;
matcher( input, null, xml, results );
- // Don't keep the element (issue #299)
+ // Don't keep the element
+ // (see https://github.com/jquery/sizzle/issues/299)
input[ 0 ] = null;
return !results.pop();
};
} ),
- "has": markFunction( function( selector ) {
+ has: markFunction( function( selector ) {
return function( elem ) {
- return Sizzle( selector, elem ).length > 0;
+ return find( selector, elem ).length > 0;
};
} ),
- "contains": markFunction( function( text ) {
+ contains: markFunction( function( text ) {
text = text.replace( runescape, funescape );
return function( elem ) {
- return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
+ return ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;
};
} ),
@@ -2204,12 +1894,12 @@ Expr = Sizzle.selectors = {
// or beginning with the identifier C immediately followed by "-".
// The matching of C against the element's language value is performed case-insensitively.
// The identifier C does not have to be a valid language name."
- // http://www.w3.org/TR/selectors/#lang-pseudo
- "lang": markFunction( function( lang ) {
+ // https://www.w3.org/TR/selectors/#lang-pseudo
+ lang: markFunction( function( lang ) {
// lang value must be a valid identifier
if ( !ridentifier.test( lang || "" ) ) {
- Sizzle.error( "unsupported lang: " + lang );
+ find.error( "unsupported lang: " + lang );
}
lang = lang.replace( runescape, funescape ).toLowerCase();
return function( elem ) {
@@ -2228,38 +1918,39 @@ Expr = Sizzle.selectors = {
} ),
// Miscellaneous
- "target": function( elem ) {
+ target: function( elem ) {
var hash = window.location && window.location.hash;
return hash && hash.slice( 1 ) === elem.id;
},
- "root": function( elem ) {
- return elem === docElem;
+ root: function( elem ) {
+ return elem === documentElement;
},
- "focus": function( elem ) {
- return elem === document.activeElement &&
- ( !document.hasFocus || document.hasFocus() ) &&
+ focus: function( elem ) {
+ return elem === safeActiveElement() &&
+ document.hasFocus() &&
!!( elem.type || elem.href || ~elem.tabIndex );
},
// Boolean properties
- "enabled": createDisabledPseudo( false ),
- "disabled": createDisabledPseudo( true ),
+ enabled: createDisabledPseudo( false ),
+ disabled: createDisabledPseudo( true ),
- "checked": function( elem ) {
+ checked: function( elem ) {
// In CSS3, :checked should return both checked and selected elements
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
- var nodeName = elem.nodeName.toLowerCase();
- return ( nodeName === "input" && !!elem.checked ) ||
- ( nodeName === "option" && !!elem.selected );
+ // https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ return ( nodeName( elem, "input" ) && !!elem.checked ) ||
+ ( nodeName( elem, "option" ) && !!elem.selected );
},
- "selected": function( elem ) {
+ selected: function( elem ) {
- // Accessing this property makes selected-by-default
- // options in Safari work properly
+ // Support: IE <=11+
+ // Accessing the selectedIndex property
+ // forces the browser to treat the default option as
+ // selected when in an optgroup.
if ( elem.parentNode ) {
// eslint-disable-next-line no-unused-expressions
elem.parentNode.selectedIndex;
@@ -2269,9 +1960,9 @@ Expr = Sizzle.selectors = {
},
// Contents
- "empty": function( elem ) {
+ empty: function( elem ) {
- // http://www.w3.org/TR/selectors/#empty-pseudo
+ // https://www.w3.org/TR/selectors/#empty-pseudo
// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
// but not by others (comment: 8; processing instruction: 7; etc.)
// nodeType < 6 works because attributes (2) do not appear as children
@@ -2283,49 +1974,49 @@ Expr = Sizzle.selectors = {
return true;
},
- "parent": function( elem ) {
- return !Expr.pseudos[ "empty" ]( elem );
+ parent: function( elem ) {
+ return !Expr.pseudos.empty( elem );
},
// Element/input types
- "header": function( elem ) {
+ header: function( elem ) {
return rheader.test( elem.nodeName );
},
- "input": function( elem ) {
+ input: function( elem ) {
return rinputs.test( elem.nodeName );
},
- "button": function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return name === "input" && elem.type === "button" || name === "button";
+ button: function( elem ) {
+ return nodeName( elem, "input" ) && elem.type === "button" ||
+ nodeName( elem, "button" );
},
- "text": function( elem ) {
+ text: function( elem ) {
var attr;
- return elem.nodeName.toLowerCase() === "input" &&
- elem.type === "text" &&
+ return nodeName( elem, "input" ) && elem.type === "text" &&
// Support: IE <10 only
- // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+ // New HTML5 attribute values (e.g., "search") appear
+ // with elem.type === "text"
( ( attr = elem.getAttribute( "type" ) ) == null ||
attr.toLowerCase() === "text" );
},
// Position-in-collection
- "first": createPositionalPseudo( function() {
+ first: createPositionalPseudo( function() {
return [ 0 ];
} ),
- "last": createPositionalPseudo( function( _matchIndexes, length ) {
+ last: createPositionalPseudo( function( _matchIndexes, length ) {
return [ length - 1 ];
} ),
- "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) {
+ eq: createPositionalPseudo( function( _matchIndexes, length, argument ) {
return [ argument < 0 ? argument + length : argument ];
} ),
- "even": createPositionalPseudo( function( matchIndexes, length ) {
+ even: createPositionalPseudo( function( matchIndexes, length ) {
var i = 0;
for ( ; i < length; i += 2 ) {
matchIndexes.push( i );
@@ -2333,7 +2024,7 @@ Expr = Sizzle.selectors = {
return matchIndexes;
} ),
- "odd": createPositionalPseudo( function( matchIndexes, length ) {
+ odd: createPositionalPseudo( function( matchIndexes, length ) {
var i = 1;
for ( ; i < length; i += 2 ) {
matchIndexes.push( i );
@@ -2341,19 +2032,24 @@ Expr = Sizzle.selectors = {
return matchIndexes;
} ),
- "lt": createPositionalPseudo( function( matchIndexes, length, argument ) {
- var i = argument < 0 ?
- argument + length :
- argument > length ?
- length :
- argument;
+ lt: createPositionalPseudo( function( matchIndexes, length, argument ) {
+ var i;
+
+ if ( argument < 0 ) {
+ i = argument + length;
+ } else if ( argument > length ) {
+ i = length;
+ } else {
+ i = argument;
+ }
+
for ( ; --i >= 0; ) {
matchIndexes.push( i );
}
return matchIndexes;
} ),
- "gt": createPositionalPseudo( function( matchIndexes, length, argument ) {
+ gt: createPositionalPseudo( function( matchIndexes, length, argument ) {
var i = argument < 0 ? argument + length : argument;
for ( ; ++i < length; ) {
matchIndexes.push( i );
@@ -2363,7 +2059,7 @@ Expr = Sizzle.selectors = {
}
};
-Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ];
+Expr.pseudos.nth = Expr.pseudos.eq;
// Add button/input type pseudos
for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
@@ -2378,7 +2074,7 @@ function setFilters() {}
setFilters.prototype = Expr.filters = Expr.pseudos;
Expr.setFilters = new setFilters();
-tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+function tokenize( selector, parseOnly ) {
var matched, match, tokens, type,
soFar, groups, preFilters,
cached = tokenCache[ selector + " " ];
@@ -2406,13 +2102,13 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
matched = false;
// Combinators
- if ( ( match = rcombinators.exec( soFar ) ) ) {
+ if ( ( match = rleadingCombinator.exec( soFar ) ) ) {
matched = match.shift();
tokens.push( {
value: matched,
// Cast descendant combinators to space
- type: match[ 0 ].replace( rtrim, " " )
+ type: match[ 0 ].replace( rtrimCSS, " " )
} );
soFar = soFar.slice( matched.length );
}
@@ -2439,14 +2135,16 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
// Return the length of the invalid excess
// if we're just parsing
// Otherwise, throw an error or return tokens
- return parseOnly ?
- soFar.length :
- soFar ?
- Sizzle.error( selector ) :
+ if ( parseOnly ) {
+ return soFar.length;
+ }
- // Cache the tokens
- tokenCache( selector, groups ).slice( 0 );
-};
+ return soFar ?
+ find.error( selector ) :
+
+ // Cache the tokens
+ tokenCache( selector, groups ).slice( 0 );
+}
function toSelector( tokens ) {
var i = 0,
@@ -2479,7 +2177,7 @@ function addCombinator( matcher, combinator, base ) {
// Check against all ancestor/preceding elements
function( elem, context, xml ) {
- var oldCache, uniqueCache, outerCache,
+ var oldCache, outerCache,
newCache = [ dirruns, doneName ];
// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
@@ -2496,14 +2194,9 @@ function addCombinator( matcher, combinator, base ) {
if ( elem.nodeType === 1 || checkNonElements ) {
outerCache = elem[ expando ] || ( elem[ expando ] = {} );
- // Support: IE <9 only
- // Defend against cloned attroperties (jQuery gh-1709)
- uniqueCache = outerCache[ elem.uniqueID ] ||
- ( outerCache[ elem.uniqueID ] = {} );
-
- if ( skip && skip === elem.nodeName.toLowerCase() ) {
+ if ( skip && nodeName( elem, skip ) ) {
elem = elem[ dir ] || elem;
- } else if ( ( oldCache = uniqueCache[ key ] ) &&
+ } else if ( ( oldCache = outerCache[ key ] ) &&
oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
// Assign to newCache so results back-propagate to previous elements
@@ -2511,7 +2204,7 @@ function addCombinator( matcher, combinator, base ) {
} else {
// Reuse newcache so results back-propagate to previous elements
- uniqueCache[ key ] = newCache;
+ outerCache[ key ] = newCache;
// A match means we're done; a fail means we have to keep checking
if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {
@@ -2543,7 +2236,7 @@ function multipleContexts( selector, contexts, results ) {
var i = 0,
len = contexts.length;
for ( ; i < len; i++ ) {
- Sizzle( selector, contexts[ i ], results );
+ find( selector, contexts[ i ], results );
}
return results;
}
@@ -2577,38 +2270,37 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
postFinder = setMatcher( postFinder, postSelector );
}
return markFunction( function( seed, results, context, xml ) {
- var temp, i, elem,
+ var temp, i, elem, matcherOut,
preMap = [],
postMap = [],
preexisting = results.length,
// Get initial elements from seed or context
- elems = seed || multipleContexts(
- selector || "*",
- context.nodeType ? [ context ] : context,
- []
- ),
+ elems = seed ||
+ multipleContexts( selector || "*",
+ context.nodeType ? [ context ] : context, [] ),
// Prefilter to get matcher input, preserving a map for seed-results synchronization
matcherIn = preFilter && ( seed || !selector ) ?
condense( elems, preMap, preFilter, context, xml ) :
- elems,
+ elems;
- matcherOut = matcher ?
+ if ( matcher ) {
- // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
- postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+ // If we have a postFinder, or filtered seed, or non-seed postFilter
+ // or preexisting results,
+ matcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
- // ...intermediate processing is necessary
- [] :
+ // ...intermediate processing is necessary
+ [] :
- // ...otherwise use results directly
- results :
- matcherIn;
+ // ...otherwise use results directly
+ results;
- // Find primary matches
- if ( matcher ) {
+ // Find primary matches
matcher( matcherIn, matcherOut, context, xml );
+ } else {
+ matcherOut = matcherIn;
}
// Apply postFilter
@@ -2646,7 +2338,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
i = matcherOut.length;
while ( i-- ) {
if ( ( elem = matcherOut[ i ] ) &&
- ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {
+ ( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {
seed[ temp ] = !( results[ temp ] = elem );
}
@@ -2681,15 +2373,21 @@ function matcherFromTokens( tokens ) {
return elem === checkContext;
}, implicitRelative, true ),
matchAnyContext = addCombinator( function( elem ) {
- return indexOf( checkContext, elem ) > -1;
+ return indexOf.call( checkContext, elem ) > -1;
}, implicitRelative, true ),
matchers = [ function( elem, context, xml ) {
- var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+
+ // Support: IE 11+, Edge 17 - 18+
+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+ // two documents; shallow comparisons work.
+ // eslint-disable-next-line eqeqeq
+ var ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (
( checkContext = context ).nodeType ?
matchContext( elem, context, xml ) :
matchAnyContext( elem, context, xml ) );
- // Avoid hanging onto element (issue #299)
+ // Avoid hanging onto element
+ // (see https://github.com/jquery/sizzle/issues/299)
checkContext = null;
return ret;
} ];
@@ -2714,11 +2412,10 @@ function matcherFromTokens( tokens ) {
i > 1 && elementMatcher( matchers ),
i > 1 && toSelector(
- // If the preceding token was a descendant combinator, insert an implicit any-element `*`
- tokens
- .slice( 0, i - 1 )
- .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } )
- ).replace( rtrim, "$1" ),
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
+ tokens.slice( 0, i - 1 )
+ .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } )
+ ).replace( rtrimCSS, "$1" ),
matcher,
i < j && matcherFromTokens( tokens.slice( i, j ) ),
j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),
@@ -2744,7 +2441,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
contextBackup = outermostContext,
// We must always have either seed elements or outermost context
- elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ),
+ elems = seed || byElement && Expr.find.TAG( "*", outermost ),
// Use integer dirruns iff this is the outermost matcher
dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),
@@ -2760,8 +2457,9 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
}
// Add elements passing elementMatchers directly to results
- // Support: IE<9, Safari
- // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id
+ // Support: iOS <=7 - 9 only
+ // Tolerate NodeList properties (IE: "length"; Safari: ) matching
+ // elements by id. (see trac-14142)
for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {
if ( byElement && elem ) {
j = 0;
@@ -2776,7 +2474,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
}
while ( ( matcher = elementMatchers[ j++ ] ) ) {
if ( matcher( elem, context || document, xml ) ) {
- results.push( elem );
+ push.call( results, elem );
break;
}
}
@@ -2839,7 +2537,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
if ( outermost && !seed && setMatched.length > 0 &&
( matchedCount + setMatchers.length ) > 1 ) {
- Sizzle.uniqueSort( results );
+ jQuery.uniqueSort( results );
}
}
@@ -2857,7 +2555,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
superMatcher;
}
-compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+function compile( selector, match /* Internal Use Only */ ) {
var i,
setMatchers = [],
elementMatchers = [],
@@ -2880,27 +2578,25 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
}
// Cache the compiled function
- cached = compilerCache(
- selector,
- matcherFromGroupMatchers( elementMatchers, setMatchers )
- );
+ cached = compilerCache( selector,
+ matcherFromGroupMatchers( elementMatchers, setMatchers ) );
// Save selector and tokenization
cached.selector = selector;
}
return cached;
-};
+}
/**
- * A low-level selection function that works with Sizzle's compiled
+ * A low-level selection function that works with jQuery's compiled
* selector functions
* @param {String|Function} selector A selector or a pre-compiled
- * selector function built with Sizzle.compile
+ * selector function built with jQuery selector compile
* @param {Element} context
* @param {Array} [results]
* @param {Array} [seed] A set of elements to match against
*/
-select = Sizzle.select = function( selector, context, results, seed ) {
+function select( selector, context, results, seed ) {
var i, tokens, token, type, find,
compiled = typeof selector === "function" && selector,
match = !seed && tokenize( ( selector = compiled.selector || selector ) );
@@ -2914,10 +2610,12 @@ select = Sizzle.select = function( selector, context, results, seed ) {
// Reduce context if the leading compound selector is an ID
tokens = match[ 0 ] = match[ 0 ].slice( 0 );
if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" &&
- context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {
+ context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {
- context = ( Expr.find[ "ID" ]( token.matches[ 0 ]
- .replace( runescape, funescape ), context ) || [] )[ 0 ];
+ context = ( Expr.find.ID(
+ token.matches[ 0 ].replace( runescape, funescape ),
+ context
+ ) || [] )[ 0 ];
if ( !context ) {
return results;
@@ -2930,7 +2628,7 @@ select = Sizzle.select = function( selector, context, results, seed ) {
}
// Fetch a seed set for right-to-left matching
- i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length;
+ i = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;
while ( i-- ) {
token = tokens[ i ];
@@ -2943,8 +2641,8 @@ select = Sizzle.select = function( selector, context, results, seed ) {
// Search, expanding context for leading sibling combinators
if ( ( seed = find(
token.matches[ 0 ].replace( runescape, funescape ),
- rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||
- context
+ rsibling.test( tokens[ 0 ].type ) &&
+ testContext( context.parentNode ) || context
) ) ) {
// If seed is empty or no tokens remain, we can return early
@@ -2971,21 +2669,18 @@ select = Sizzle.select = function( selector, context, results, seed ) {
!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
);
return results;
-};
+}
// One-time assignments
+// Support: Android <=4.0 - 4.1+
// Sort stability
support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando;
-// Support: Chrome 14-35+
-// Always assume duplicates if they aren't passed to the comparison function
-support.detectDuplicates = !!hasDuplicate;
-
// Initialize against the default document
setDocument();
-// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Support: Android <=4.0 - 4.1+
// Detached nodes confoundingly follow *each other*
support.sortDetached = assert( function( el ) {
@@ -2993,68 +2688,29 @@ support.sortDetached = assert( function( el ) {
return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1;
} );
-// Support: IE<8
-// Prevent attribute/property "interpolation"
-// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
-if ( !assert( function( el ) {
- el.innerHTML = "";
- return el.firstChild.getAttribute( "href" ) === "#";
-} ) ) {
- addHandle( "type|href|height|width", function( elem, name, isXML ) {
- if ( !isXML ) {
- return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
- }
- } );
-}
-
-// Support: IE<9
-// Use defaultValue in place of getAttribute("value")
-if ( !support.attributes || !assert( function( el ) {
- el.innerHTML = "";
- el.firstChild.setAttribute( "value", "" );
- return el.firstChild.getAttribute( "value" ) === "";
-} ) ) {
- addHandle( "value", function( elem, _name, isXML ) {
- if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
- return elem.defaultValue;
- }
- } );
-}
-
-// Support: IE<9
-// Use getAttributeNode to fetch booleans when getAttribute lies
-if ( !assert( function( el ) {
- return el.getAttribute( "disabled" ) == null;
-} ) ) {
- addHandle( booleans, function( elem, name, isXML ) {
- var val;
- if ( !isXML ) {
- return elem[ name ] === true ? name.toLowerCase() :
- ( val = elem.getAttributeNode( name ) ) && val.specified ?
- val.value :
- null;
- }
- } );
-}
-
-return Sizzle;
-
-} )( window );
-
-
-
-jQuery.find = Sizzle;
-jQuery.expr = Sizzle.selectors;
+jQuery.find = find;
// Deprecated
jQuery.expr[ ":" ] = jQuery.expr.pseudos;
-jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
-jQuery.escapeSelector = Sizzle.escape;
+jQuery.unique = jQuery.uniqueSort;
+
+// These have always been private, but they used to be documented
+// as part of Sizzle so let's maintain them in the 3.x line
+// for backwards compatibility purposes.
+find.compile = compile;
+find.select = select;
+find.setDocument = setDocument;
+find.escape = jQuery.escapeSelector;
+find.getText = jQuery.text;
+find.isXML = jQuery.isXMLDoc;
+find.selectors = jQuery.expr;
+find.support = jQuery.support;
+find.uniqueSort = jQuery.uniqueSort;
+ /* eslint-enable */
+
+} )();
var dir = function( elem, dir, until ) {
@@ -3088,13 +2744,6 @@ var siblings = function( n, elem ) {
var rneedsContext = jQuery.expr.match.needsContext;
-
-
-function nodeName( elem, name ) {
-
- return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
-
-}
var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
@@ -3345,7 +2994,7 @@ jQuery.fn.extend( {
if ( cur.nodeType < 11 && ( targets ?
targets.index( cur ) > -1 :
- // Don't pass non-elements to Sizzle
+ // Don't pass non-elements to jQuery#find
cur.nodeType === 1 &&
jQuery.find.matchesSelector( cur, selectors ) ) ) {
@@ -3900,7 +3549,7 @@ jQuery.extend( {
if ( jQuery.Deferred.exceptionHook ) {
jQuery.Deferred.exceptionHook( e,
- process.stackTrace );
+ process.error );
}
// Support: Promises/A+ section 2.3.3.3.4.1
@@ -3928,10 +3577,17 @@ jQuery.extend( {
process();
} else {
- // Call an optional hook to record the stack, in case of exception
+ // Call an optional hook to record the error, in case of exception
// since it's otherwise lost when execution goes async
- if ( jQuery.Deferred.getStackHook ) {
- process.stackTrace = jQuery.Deferred.getStackHook();
+ if ( jQuery.Deferred.getErrorHook ) {
+ process.error = jQuery.Deferred.getErrorHook();
+
+ // The deprecated alias of the above. While the name suggests
+ // returning the stack, not an error instance, jQuery just passes
+ // it directly to `console.warn` so both will work; an instance
+ // just better cooperates with source maps.
+ } else if ( jQuery.Deferred.getStackHook ) {
+ process.error = jQuery.Deferred.getStackHook();
}
window.setTimeout( process );
}
@@ -4106,12 +3762,16 @@ jQuery.extend( {
// warn about them ASAP rather than swallowing them by default.
var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
-jQuery.Deferred.exceptionHook = function( error, stack ) {
+// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error
+// captured before the async barrier to get the original error cause
+// which may otherwise be hidden.
+jQuery.Deferred.exceptionHook = function( error, asyncError ) {
// Support: IE 8 - 9 only
// Console exists when dev tools are open, which can happen at any time
if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
- window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+ window.console.warn( "jQuery.Deferred exception: " + error.message,
+ error.stack, asyncError );
}
};
@@ -5167,25 +4827,6 @@ function returnFalse() {
return false;
}
-// Support: IE <=9 - 11+
-// focus() and blur() are asynchronous, except when they are no-op.
-// So expect focus to be synchronous when the element is already active,
-// and blur to be synchronous when the element is not already active.
-// (focus and blur are always synchronous in other supported browsers,
-// this just defines when we can count on it).
-function expectSync( elem, type ) {
- return ( elem === safeActiveElement() ) === ( type === "focus" );
-}
-
-// Support: IE <=9 only
-// Accessing document.activeElement can throw unexpectedly
-// https://bugs.jquery.com/ticket/13393
-function safeActiveElement() {
- try {
- return document.activeElement;
- } catch ( err ) { }
-}
-
function on( elem, types, selector, data, fn, one ) {
var origFn, type;
@@ -5623,7 +5264,7 @@ jQuery.event = {
el.click && nodeName( el, "input" ) ) {
// dataPriv.set( el, "click", ... )
- leverageNative( el, "click", returnTrue );
+ leverageNative( el, "click", true );
}
// Return false to allow normal processing in the caller
@@ -5674,10 +5315,10 @@ jQuery.event = {
// synthetic events by interrupting progress until reinvoked in response to
// *native* events that it fires directly, ensuring that state changes have
// already occurred before other listeners are invoked.
-function leverageNative( el, type, expectSync ) {
+function leverageNative( el, type, isSetup ) {
- // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
- if ( !expectSync ) {
+ // Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add
+ if ( !isSetup ) {
if ( dataPriv.get( el, type ) === undefined ) {
jQuery.event.add( el, type, returnTrue );
}
@@ -5689,15 +5330,13 @@ function leverageNative( el, type, expectSync ) {
jQuery.event.add( el, type, {
namespace: false,
handler: function( event ) {
- var notAsync, result,
+ var result,
saved = dataPriv.get( this, type );
if ( ( event.isTrigger & 1 ) && this[ type ] ) {
// Interrupt processing of the outer synthetic .trigger()ed event
- // Saved data should be false in such cases, but might be a leftover capture object
- // from an async native handler (gh-4350)
- if ( !saved.length ) {
+ if ( !saved ) {
// Store arguments for use when handling the inner native event
// There will always be at least one argument (an event object), so this array
@@ -5706,33 +5345,22 @@ function leverageNative( el, type, expectSync ) {
dataPriv.set( this, type, saved );
// Trigger the native event and capture its result
- // Support: IE <=9 - 11+
- // focus() and blur() are asynchronous
- notAsync = expectSync( this, type );
this[ type ]();
result = dataPriv.get( this, type );
- if ( saved !== result || notAsync ) {
- dataPriv.set( this, type, false );
- } else {
- result = {};
- }
+ dataPriv.set( this, type, false );
+
if ( saved !== result ) {
// Cancel the outer synthetic event
event.stopImmediatePropagation();
event.preventDefault();
- // Support: Chrome 86+
- // In Chrome, if an element having a focusout handler is blurred by
- // clicking outside of it, it invokes the handler synchronously. If
- // that handler calls `.remove()` on the element, the data is cleared,
- // leaving `result` undefined. We need to guard against this.
- return result && result.value;
+ return result;
}
// If this is an inner synthetic event for an event with a bubbling surrogate
- // (focus or blur), assume that the surrogate already propagated from triggering the
- // native event and prevent that from happening again here.
+ // (focus or blur), assume that the surrogate already propagated from triggering
+ // the native event and prevent that from happening again here.
// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
// bubbling surrogate propagates *after* the non-bubbling base), but that seems
// less bad than duplication.
@@ -5742,22 +5370,25 @@ function leverageNative( el, type, expectSync ) {
// If this is a native event triggered above, everything is now in order
// Fire an inner synthetic event with the original arguments
- } else if ( saved.length ) {
+ } else if ( saved ) {
// ...and capture the result
- dataPriv.set( this, type, {
- value: jQuery.event.trigger(
-
- // Support: IE <=9 - 11+
- // Extend with the prototype to reset the above stopImmediatePropagation()
- jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
- saved.slice( 1 ),
- this
- )
- } );
-
- // Abort handling of the native event
- event.stopImmediatePropagation();
+ dataPriv.set( this, type, jQuery.event.trigger(
+ saved[ 0 ],
+ saved.slice( 1 ),
+ this
+ ) );
+
+ // Abort handling of the native event by all jQuery handlers while allowing
+ // native handlers on the same element to run. On target, this is achieved
+ // by stopping immediate propagation just on the jQuery event. However,
+ // the native event is re-wrapped by a jQuery one on each level of the
+ // propagation so the only way to stop it for jQuery is to stop it for
+ // everyone via native `stopPropagation()`. This is not a problem for
+ // focus/blur which don't bubble, but it does also stop click on checkboxes
+ // and radios. We accept this limitation.
+ event.stopPropagation();
+ event.isImmediatePropagationStopped = returnTrue;
}
}
} );
@@ -5896,18 +5527,73 @@ jQuery.each( {
}, jQuery.event.addProp );
jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
+
+ function focusMappedHandler( nativeEvent ) {
+ if ( document.documentMode ) {
+
+ // Support: IE 11+
+ // Attach a single focusin/focusout handler on the document while someone wants
+ // focus/blur. This is because the former are synchronous in IE while the latter
+ // are async. In other browsers, all those handlers are invoked synchronously.
+
+ // `handle` from private data would already wrap the event, but we need
+ // to change the `type` here.
+ var handle = dataPriv.get( this, "handle" ),
+ event = jQuery.event.fix( nativeEvent );
+ event.type = nativeEvent.type === "focusin" ? "focus" : "blur";
+ event.isSimulated = true;
+
+ // First, handle focusin/focusout
+ handle( nativeEvent );
+
+ // ...then, handle focus/blur
+ //
+ // focus/blur don't bubble while focusin/focusout do; simulate the former by only
+ // invoking the handler at the lower level.
+ if ( event.target === event.currentTarget ) {
+
+ // The setup part calls `leverageNative`, which, in turn, calls
+ // `jQuery.event.add`, so event handle will already have been set
+ // by this point.
+ handle( event );
+ }
+ } else {
+
+ // For non-IE browsers, attach a single capturing handler on the document
+ // while someone wants focusin/focusout.
+ jQuery.event.simulate( delegateType, nativeEvent.target,
+ jQuery.event.fix( nativeEvent ) );
+ }
+ }
+
jQuery.event.special[ type ] = {
// Utilize native event if possible so blur/focus sequence is correct
setup: function() {
+ var attaches;
+
// Claim the first handler
// dataPriv.set( this, "focus", ... )
// dataPriv.set( this, "blur", ... )
- leverageNative( this, type, expectSync );
+ leverageNative( this, type, true );
- // Return false to allow normal processing in the caller
- return false;
+ if ( document.documentMode ) {
+
+ // Support: IE 9 - 11+
+ // We use the same native handler for focusin & focus (and focusout & blur)
+ // so we need to coordinate setup & teardown parts between those events.
+ // Use `delegateType` as the key as `type` is already used by `leverageNative`.
+ attaches = dataPriv.get( this, delegateType );
+ if ( !attaches ) {
+ this.addEventListener( delegateType, focusMappedHandler );
+ }
+ dataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );
+ } else {
+
+ // Return false to allow normal processing in the caller
+ return false;
+ }
},
trigger: function() {
@@ -5918,6 +5604,24 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp
return true;
},
+ teardown: function() {
+ var attaches;
+
+ if ( document.documentMode ) {
+ attaches = dataPriv.get( this, delegateType ) - 1;
+ if ( !attaches ) {
+ this.removeEventListener( delegateType, focusMappedHandler );
+ dataPriv.remove( this, delegateType );
+ } else {
+ dataPriv.set( this, delegateType, attaches );
+ }
+ } else {
+
+ // Return false to indicate standard teardown should be applied
+ return false;
+ }
+ },
+
// Suppress native focus or blur if we're currently inside
// a leveraged native-event stack
_default: function( event ) {
@@ -5926,6 +5630,58 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp
delegateType: delegateType
};
+
+ // Support: Firefox <=44
+ // Firefox doesn't have focus(in | out) events
+ // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+ //
+ // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+ // focus(in | out) events fire after focus & blur events,
+ // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+ // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+ //
+ // Support: IE 9 - 11+
+ // To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,
+ // attach a single handler for both events in IE.
+ jQuery.event.special[ delegateType ] = {
+ setup: function() {
+
+ // Handle: regular nodes (via `this.ownerDocument`), window
+ // (via `this.document`) & document (via `this`).
+ var doc = this.ownerDocument || this.document || this,
+ dataHolder = document.documentMode ? this : doc,
+ attaches = dataPriv.get( dataHolder, delegateType );
+
+ // Support: IE 9 - 11+
+ // We use the same native handler for focusin & focus (and focusout & blur)
+ // so we need to coordinate setup & teardown parts between those events.
+ // Use `delegateType` as the key as `type` is already used by `leverageNative`.
+ if ( !attaches ) {
+ if ( document.documentMode ) {
+ this.addEventListener( delegateType, focusMappedHandler );
+ } else {
+ doc.addEventListener( type, focusMappedHandler, true );
+ }
+ }
+ dataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );
+ },
+ teardown: function() {
+ var doc = this.ownerDocument || this.document || this,
+ dataHolder = document.documentMode ? this : doc,
+ attaches = dataPriv.get( dataHolder, delegateType ) - 1;
+
+ if ( !attaches ) {
+ if ( document.documentMode ) {
+ this.removeEventListener( delegateType, focusMappedHandler );
+ } else {
+ doc.removeEventListener( type, focusMappedHandler, true );
+ }
+ dataPriv.remove( dataHolder, delegateType );
+ } else {
+ dataPriv.set( dataHolder, delegateType, attaches );
+ }
+ }
+ };
} );
// Create mouseenter/leave events using mouseover/out and event-time checks
@@ -6228,7 +5984,8 @@ jQuery.extend( {
if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
!jQuery.isXMLDoc( elem ) ) {
- // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+ // We eschew jQuery#find here for performance reasons:
+ // https://jsperf.com/getall-vs-sizzle/2
destElements = getAll( clone );
srcElements = getAll( elem );
@@ -6504,15 +6261,6 @@ var swap = function( elem, options, callback ) {
var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
-var whitespace = "[\\x20\\t\\r\\n\\f]";
-
-
-var rtrimCSS = new RegExp(
- "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$",
- "g"
-);
-
-
( function() {
@@ -6821,7 +6569,8 @@ function setPositiveNumber( _elem, value, subtract ) {
function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
var i = dimension === "width" ? 1 : 0,
extra = 0,
- delta = 0;
+ delta = 0,
+ marginDelta = 0;
// Adjustment may not be necessary
if ( box === ( isBorderBox ? "border" : "content" ) ) {
@@ -6831,8 +6580,10 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
for ( ; i < 4; i += 2 ) {
// Both box models exclude margin
+ // Count margin delta separately to only add it after scroll gutter adjustment.
+ // This is needed to make negative margins work with `outerHeight( true )` (gh-3982).
if ( box === "margin" ) {
- delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
+ marginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
}
// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
@@ -6883,7 +6634,7 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
) ) || 0;
}
- return delta;
+ return delta + marginDelta;
}
function getWidthOrHeight( elem, dimension, extra ) {
@@ -6981,26 +6732,35 @@ jQuery.extend( {
// Don't automatically add "px" to these possibly-unitless properties
cssNumber: {
- "animationIterationCount": true,
- "columnCount": true,
- "fillOpacity": true,
- "flexGrow": true,
- "flexShrink": true,
- "fontWeight": true,
- "gridArea": true,
- "gridColumn": true,
- "gridColumnEnd": true,
- "gridColumnStart": true,
- "gridRow": true,
- "gridRowEnd": true,
- "gridRowStart": true,
- "lineHeight": true,
- "opacity": true,
- "order": true,
- "orphans": true,
- "widows": true,
- "zIndex": true,
- "zoom": true
+ animationIterationCount: true,
+ aspectRatio: true,
+ borderImageSlice: true,
+ columnCount: true,
+ flexGrow: true,
+ flexShrink: true,
+ fontWeight: true,
+ gridArea: true,
+ gridColumn: true,
+ gridColumnEnd: true,
+ gridColumnStart: true,
+ gridRow: true,
+ gridRowEnd: true,
+ gridRowStart: true,
+ lineHeight: true,
+ opacity: true,
+ order: true,
+ orphans: true,
+ scale: true,
+ widows: true,
+ zIndex: true,
+ zoom: true,
+
+ // SVG-related
+ fillOpacity: true,
+ floodOpacity: true,
+ stopOpacity: true,
+ strokeMiterlimit: true,
+ strokeOpacity: true
},
// Add in properties whose names you wish to fix before
@@ -8726,9 +8486,39 @@ jQuery.each( [ "radio", "checkbox" ], function() {
// Return jQuery for attributes-only inclusion
+var location = window.location;
+
+var nonce = { guid: Date.now() };
+var rquery = ( /\?/ );
-support.focusin = "onfocusin" in window;
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+ var xml, parserErrorElem;
+ if ( !data || typeof data !== "string" ) {
+ return null;
+ }
+
+ // Support: IE 9 - 11 only
+ // IE throws on parseFromString with invalid input.
+ try {
+ xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+ } catch ( e ) {}
+
+ parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
+ if ( !xml || parserErrorElem ) {
+ jQuery.error( "Invalid XML: " + (
+ parserErrorElem ?
+ jQuery.map( parserErrorElem.childNodes, function( el ) {
+ return el.textContent;
+ } ).join( "\n" ) :
+ data
+ ) );
+ }
+ return xml;
+};
var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
@@ -8916,85 +8706,6 @@ jQuery.fn.extend( {
} );
-// Support: Firefox <=44
-// Firefox doesn't have focus(in | out) events
-// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
-//
-// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
-// focus(in | out) events fire after focus & blur events,
-// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
-// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
-if ( !support.focusin ) {
- jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
-
- // Attach a single capturing handler on the document while someone wants focusin/focusout
- var handler = function( event ) {
- jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
- };
-
- jQuery.event.special[ fix ] = {
- setup: function() {
-
- // Handle: regular nodes (via `this.ownerDocument`), window
- // (via `this.document`) & document (via `this`).
- var doc = this.ownerDocument || this.document || this,
- attaches = dataPriv.access( doc, fix );
-
- if ( !attaches ) {
- doc.addEventListener( orig, handler, true );
- }
- dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
- },
- teardown: function() {
- var doc = this.ownerDocument || this.document || this,
- attaches = dataPriv.access( doc, fix ) - 1;
-
- if ( !attaches ) {
- doc.removeEventListener( orig, handler, true );
- dataPriv.remove( doc, fix );
-
- } else {
- dataPriv.access( doc, fix, attaches );
- }
- }
- };
- } );
-}
-var location = window.location;
-
-var nonce = { guid: Date.now() };
-
-var rquery = ( /\?/ );
-
-
-
-// Cross-browser xml parsing
-jQuery.parseXML = function( data ) {
- var xml, parserErrorElem;
- if ( !data || typeof data !== "string" ) {
- return null;
- }
-
- // Support: IE 9 - 11 only
- // IE throws on parseFromString with invalid input.
- try {
- xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
- } catch ( e ) {}
-
- parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
- if ( !xml || parserErrorElem ) {
- jQuery.error( "Invalid XML: " + (
- parserErrorElem ?
- jQuery.map( parserErrorElem.childNodes, function( el ) {
- return el.textContent;
- } ).join( "\n" ) :
- data
- ) );
- }
- return xml;
-};
-
-
var
rbracket = /\[\]$/,
rCRLF = /\r?\n/g,
diff --git a/docs/static/bower_components/jquery/dist/jquery.min.js b/docs/static/bower_components/jquery/dist/jquery.min.js
index b5329e9a..e7e29d5b 100644
--- a/docs/static/bower_components/jquery/dist/jquery.min.js
+++ b/docs/static/bower_components/jquery/dist/jquery.min.js
@@ -1,2 +1,2 @@
-/*! jQuery v3.6.3 | (c) OpenJS Foundation and other contributors | jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},S=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||S).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.3",E=function(e,t){return new E.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,S)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=E)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{if(d.cssSupportsSelector&&!CSS.supports("selector(:is("+c+"))"))throw new Error;return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===E&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[E]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,S=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.cssSupportsSelector=ce(function(){return CSS.supports("selector(*)")&&C.querySelectorAll(":is(:jqfake)")&&!CSS.supports("selector(:is(*,:jqfake))")}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=E,!C.getElementsByName||!C.getElementsByName(E).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&S){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&S){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&S)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+E+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+E+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),d.cssSupportsSelector||y.push(":has"),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&S&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):"string"!=typeof n?E.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),N.test(r[1])&&E.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=S.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,D=E(S);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=S.createDocumentFragment().appendChild(S.createElement("div")),(fe=S.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?E.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),S.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;E.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||E.expando+"_"+Ct.guid++;return this[e]=!0,e}}),E.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||E.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?E(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=S.implementation.createHTMLDocument("").body).innerHTML="",2===Ut.childNodes.length),E.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=S.implementation.createHTMLDocument("")).createElement("base")).href=S.location.href,t.head.appendChild(r)):t=S),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&E(o).remove(),E.merge([],i.childNodes)));var r,i,o},E.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(E.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},E.expr.pseudos.animated=function(t){return E.grep(E.timers,function(e){return t===e.elem}).length},E.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=E.css(e,"position"),c=E(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=E.css(e,"top"),u=E.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,E.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===E.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===E.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=E(e).offset()).top+=E.css(e,"borderTopWidth",!0),i.left+=E.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-E.css(r,"marginTop",!0),left:t.left-i.left-E.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===E.css(e,"position"))e=e.offsetParent;return e||re})}}),E.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;E.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),E.each(["top","left"],function(e,n){E.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?E(e).position()[n]+"px":t})}),E.each({Height:"height",Width:"width"},function(a,s){E.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){E.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?E.css(e,t,i):E.style(e,t,n,i)},s,n?e:void 0,n)}})}),E.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){E.fn[t]=function(e){return this.on(t,e)}}),E.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),E.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){E.fn[n]=function(e,t){return 0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},R=function(){V()},M=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&z(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function X(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&M(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function U(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function z(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",R),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Me(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return R(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return R(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0 ul > li p):not(:where([class~="not-prose"] *)) {
- margin-top: 0.5714286em;
- margin-bottom: 0.5714286em;
-}
-
-.prose-sm :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 1.1428571em;
-}
-
-.prose-sm :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 1.1428571em;
-}
-
-.prose-sm :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 1.1428571em;
-}
-
-.prose-sm :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 1.1428571em;
-}
-
-.prose-sm :where(.prose > :first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 0;
-}
-
-.prose-sm :where(.prose > :last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 0;
-}
-
-.prose-base :where(.prose > ul > li p):not(:where([class~="not-prose"] *)) {
- margin-top: 0.75em;
- margin-bottom: 0.75em;
-}
-
-.prose-base :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 1.25em;
-}
-
-.prose-base :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 1.25em;
-}
-
-.prose-base :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 1.25em;
-}
-
-.prose-base :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 1.25em;
-}
-
-.prose-base :where(.prose > :first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 0;
-}
-
-.prose-base :where(.prose > :last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 0;
-}
-
-.prose-lg :where(.prose > ul > li p):not(:where([class~="not-prose"] *)) {
- margin-top: 0.8888889em;
- margin-bottom: 0.8888889em;
-}
-
-.prose-lg :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 1.3333333em;
-}
-
-.prose-lg :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 1.3333333em;
-}
-
-.prose-lg :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 1.3333333em;
-}
-
-.prose-lg :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 1.3333333em;
-}
-
-.prose-lg :where(.prose > :first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 0;
-}
-
-.prose-lg :where(.prose > :last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 0;
-}
-
-.prose-xl :where(.prose > ul > li p):not(:where([class~="not-prose"] *)) {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-
-.prose-xl :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 1.2em;
-}
-
-.prose-xl :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 1.2em;
-}
-
-.prose-xl :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 1.2em;
-}
-
-.prose-xl :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 1.2em;
-}
-
-.prose-xl :where(.prose > :first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 0;
-}
-
-.prose-xl :where(.prose > :last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 0;
-}
-
-.prose-2xl :where(.prose > ul > li p):not(:where([class~="not-prose"] *)) {
- margin-top: 0.8333333em;
- margin-bottom: 0.8333333em;
-}
-
-.prose-2xl :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 1.3333333em;
-}
-
-.prose-2xl :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 1.3333333em;
-}
-
-.prose-2xl :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 1.3333333em;
-}
-
-.prose-2xl :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 1.3333333em;
-}
-
-.prose-2xl :where(.prose > :first-child):not(:where([class~="not-prose"] *)) {
- margin-top: 0;
-}
-
-.prose-2xl :where(.prose > :last-child):not(:where([class~="not-prose"] *)) {
- margin-bottom: 0;
-}
-
.fixed {
position: fixed;
}
.inset-0 {
- top: 0px;
- right: 0px;
- bottom: 0px;
- left: 0px;
+ inset: 0px;
}
.left-\[max\(0px\2c calc\(50\%-45rem\)\)\] {
@@ -1131,40 +1013,40 @@ video {
margin-right: auto;
}
-.mt-8 {
- margin-top: 2rem;
+.mb-16 {
+ margin-bottom: 4rem;
}
.mb-3 {
margin-bottom: 0.75rem;
}
-.mt-5 {
- margin-top: 1.25rem;
+.mb-4 {
+ margin-bottom: 1rem;
}
.mb-8 {
margin-bottom: 2rem;
}
-.mb-4 {
- margin-bottom: 1rem;
+.ml-2 {
+ margin-left: 0.5rem;
}
-.mb-16 {
- margin-bottom: 4rem;
+.mr-4 {
+ margin-right: 1rem;
}
.mt-4 {
margin-top: 1rem;
}
-.mr-4 {
- margin-right: 1rem;
+.mt-5 {
+ margin-top: 1.25rem;
}
-.ml-2 {
- margin-left: 0.5rem;
+.mt-8 {
+ margin-top: 2rem;
}
.block {
@@ -1213,6 +1095,11 @@ video {
border-left-width: 1px;
}
+.border-gray-300 {
+ --tw-border-opacity: 1;
+ border-color: rgb(209 213 219 / var(--tw-border-opacity));
+}
+
.border-slate-100 {
--tw-border-opacity: 1;
border-color: rgb(241 245 249 / var(--tw-border-opacity));
@@ -1222,11 +1109,6 @@ video {
border-color: transparent;
}
-.border-gray-300 {
- --tw-border-opacity: 1;
- border-color: rgb(209 213 219 / var(--tw-border-opacity));
-}
-
.bg-gray-50 {
--tw-bg-opacity: 1;
background-color: rgb(249 250 251 / var(--tw-bg-opacity));
@@ -1242,31 +1124,21 @@ video {
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
-.px-8 {
- padding-left: 2rem;
- padding-right: 2rem;
-}
-
.px-10 {
padding-left: 2.5rem;
padding-right: 2.5rem;
}
-.py-4 {
- padding-top: 1rem;
- padding-bottom: 1rem;
-}
-
-.py-8 {
- padding-top: 2rem;
- padding-bottom: 2rem;
-}
-
.px-4 {
padding-left: 1rem;
padding-right: 1rem;
}
+.px-8 {
+ padding-left: 2rem;
+ padding-right: 2rem;
+}
+
.py-1 {
padding-top: 0.25rem;
padding-bottom: 0.25rem;
@@ -1277,12 +1149,14 @@ video {
padding-bottom: 0.5rem;
}
-.pl-4 {
- padding-left: 1rem;
+.py-4 {
+ padding-top: 1rem;
+ padding-bottom: 1rem;
}
-.pt-16 {
- padding-top: 4rem;
+.py-8 {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
}
.pb-24 {
@@ -1293,58 +1167,71 @@ video {
padding-bottom: 1.5rem;
}
+.pl-4 {
+ padding-left: 1rem;
+}
+
+.pt-16 {
+ padding-top: 4rem;
+}
+
.text-center {
text-align: center;
}
+.text-4xl {
+ font-size: 2.25rem;
+ line-height: 2.5rem;
+}
+
.text-6xl {
font-size: 3.75rem;
line-height: 1;
}
-.text-xl {
- font-size: 1.25rem;
- line-height: 1.75rem;
-}
-
.text-lg {
font-size: 1.125rem;
line-height: 1.75rem;
}
-.text-4xl {
- font-size: 2.25rem;
- line-height: 2.5rem;
-}
-
.text-sm {
font-size: 0.875rem;
line-height: 1.25rem;
}
-.font-semibold {
- font-weight: 600;
-}
-
-.font-extrabold {
- font-weight: 800;
+.text-xl {
+ font-size: 1.25rem;
+ line-height: 1.75rem;
}
.font-bold {
font-weight: 700;
}
+.font-extrabold {
+ font-weight: 800;
+}
+
.font-medium {
font-weight: 500;
}
+.font-semibold {
+ font-weight: 600;
+}
+
.tracking-tight {
letter-spacing: -0.025em;
}
-.text-slate-700 {
+.text-gray-500 {
--tw-text-opacity: 1;
- color: rgb(51 65 85 / var(--tw-text-opacity));
+ color: rgb(107 114 128 / var(--tw-text-opacity));
+}
+
+.text-gray-700 {
+ --tw-text-opacity: 1;
+ color: rgb(55 65 81 / var(--tw-text-opacity));
}
.text-gray-900 {
@@ -1357,14 +1244,9 @@ video {
color: rgb(79 70 229 / var(--tw-text-opacity));
}
-.text-gray-500 {
- --tw-text-opacity: 1;
- color: rgb(107 114 128 / var(--tw-text-opacity));
-}
-
-.text-white {
+.text-slate-700 {
--tw-text-opacity: 1;
- color: rgb(255 255 255 / var(--tw-text-opacity));
+ color: rgb(51 65 85 / var(--tw-text-opacity));
}
.text-slate-900 {
@@ -1372,9 +1254,9 @@ video {
color: rgb(15 23 42 / var(--tw-text-opacity));
}
-.text-gray-700 {
+.text-white {
--tw-text-opacity: 1;
- color: rgb(55 65 81 / var(--tw-text-opacity));
+ color: rgb(255 255 255 / var(--tw-text-opacity));
}
.underline {
@@ -1402,14 +1284,14 @@ video {
border-color: rgb(148 163 184 / var(--tw-border-opacity));
}
-.hover\:bg-indigo-700:hover {
+.hover\:bg-gray-50:hover {
--tw-bg-opacity: 1;
- background-color: rgb(67 56 202 / var(--tw-bg-opacity));
+ background-color: rgb(249 250 251 / var(--tw-bg-opacity));
}
-.hover\:bg-gray-50:hover {
+.hover\:bg-indigo-700:hover {
--tw-bg-opacity: 1;
- background-color: rgb(249 250 251 / var(--tw-bg-opacity));
+ background-color: rgb(67 56 202 / var(--tw-bg-opacity));
}
.hover\:text-slate-900:hover {
diff --git a/docs/tree.jquery.js b/docs/tree.jquery.js
index a01dcbec..d4f963eb 100644
--- a/docs/tree.jquery.js
+++ b/docs/tree.jquery.js
@@ -1,7 +1,7 @@
/*
-JqTree 1.7.0
+JqTree 1.7.1
-Copyright 2022 Marco Braak
+Copyright 2023 Marco Braak
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -17,5 +17,5 @@ limitations under the License.
@license
*/
-var jqtree=function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function n(e){for(var n=1;ne.length)&&(t=e.length);for(var n=0,i=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function N(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var S;!function(e){e[e.Before=1]="Before",e[e.After=2]="After",e[e.Inside=3]="Inside",e[e.None=4]="None"}(S||(S={}));var b={before:S.Before,after:S.After,inside:S.Inside,none:S.None},_=function(e){for(var t in b)if(Object.prototype.hasOwnProperty.call(b,t)&&b[t]===e)return t;return""},D=function(e){return"object"===i(e)&&"children"in e&&e.children instanceof Array},I=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;r(this,e),a(this,"id",void 0),a(this,"name",void 0),a(this,"children",void 0),a(this,"parent",void 0),a(this,"idMapping",void 0),a(this,"tree",void 0),a(this,"nodeClass",void 0),a(this,"load_on_demand",void 0),a(this,"is_open",void 0),a(this,"element",void 0),a(this,"is_loading",void 0),a(this,"isEmptyFolder",void 0),this.name="",this.isEmptyFolder=!1,this.load_on_demand=!1,this.setData(t),this.children=[],this.parent=null,n&&(this.idMapping=new Map,this.tree=this,this.nodeClass=i)}return s(e,[{key:"setData",value:function(e){if(e)if("string"==typeof e)this.name=e;else if("object"===i(e))for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var n=e[t];"label"===t||"name"===t?"string"==typeof n&&(this.name=n):"children"!==t&&"parent"!==t&&(this[t]=n)}}},{key:"loadFromData",value:function(e){this.removeChildren();var t,n=k(e);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=this.createNode(i);this.addChild(r),D(i)&&(0===i.children.length?r.isEmptyFolder=!0:r.loadFromData(i.children))}}catch(e){n.e(e)}finally{n.f()}return this}},{key:"addChild",value:function(e){this.children.push(e),e.setParent(this)}},{key:"addChildAtPosition",value:function(e,t){this.children.splice(t,0,e),e.setParent(this)}},{key:"removeChild",value:function(e){e.removeChildren(),this.doRemoveChild(e)}},{key:"getChildIndex",value:function(e){return this.children.indexOf(e)}},{key:"hasChildren",value:function(){return 0!==this.children.length}},{key:"isFolder",value:function(){return this.hasChildren()||this.load_on_demand}},{key:"iterate",value:function(e){!function t(n,i){if(n.children){var r,o=k(n.children);try{for(o.s();!(r=o.n()).done;){var s=r.value;e(s,i)&&s.hasChildren()&&t(s,i+1)}}catch(e){o.e(e)}finally{o.f()}}}(this,0)}},{key:"moveNode",value:function(e,t,n){if(!e.parent||e.isParentOf(t))return!1;switch(e.parent.doRemoveChild(e),n){case S.After:return!!t.parent&&(t.parent.addChildAtPosition(e,t.parent.getChildIndex(t)+1),!0);case S.Before:return!!t.parent&&(t.parent.addChildAtPosition(e,t.parent.getChildIndex(t)),!0);case S.Inside:return t.addChildAtPosition(e,0),!0;default:return!1}}},{key:"getData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=function e(t){return t.map((function(t){var n={};for(var i in t)if(-1===["parent","children","element","idMapping","load_on_demand","nodeClass","tree","isEmptyFolder"].indexOf(i)&&Object.prototype.hasOwnProperty.call(t,i)){var r=t[i];n[i]=r}return t.hasChildren()&&(n.children=e(t.children)),n}))};return t(e?[this]:this.children)}},{key:"getNodeByName",value:function(e){return this.getNodeByCallback((function(t){return t.name===e}))}},{key:"getNodeByNameMustExist",value:function(e){var t=this.getNodeByCallback((function(t){return t.name===e}));if(!t)throw"Node with name ".concat(e," not found");return t}},{key:"getNodeByCallback",value:function(e){var t=null;return this.iterate((function(n){return!t&&(!e(n)||(t=n,!1))})),t}},{key:"addAfter",value:function(e){if(this.parent){var t=this.createNode(e),n=this.parent.getChildIndex(this);return this.parent.addChildAtPosition(t,n+1),D(e)&&e.children.length&&t.loadFromData(e.children),t}return null}},{key:"addBefore",value:function(e){if(this.parent){var t=this.createNode(e),n=this.parent.getChildIndex(this);return this.parent.addChildAtPosition(t,n),D(e)&&e.children.length&&t.loadFromData(e.children),t}return null}},{key:"addParent",value:function(e){if(this.parent){var t=this.createNode(e);this.tree&&t.setParent(this.tree);var n,i=this.parent,r=k(i.children);try{for(r.s();!(n=r.n()).done;){var o=n.value;t.addChild(o)}}catch(e){r.e(e)}finally{r.f()}return i.children=[],i.addChild(t),t}return null}},{key:"remove",value:function(){this.parent&&(this.parent.removeChild(this),this.parent=null)}},{key:"append",value:function(e){var t=this.createNode(e);return this.addChild(t),D(e)&&e.children.length&&t.loadFromData(e.children),t}},{key:"prepend",value:function(e){var t=this.createNode(e);return this.addChildAtPosition(t,0),D(e)&&e.children.length&&t.loadFromData(e.children),t}},{key:"isParentOf",value:function(e){for(var t=e.parent;t;){if(t===this)return!0;t=t.parent}return!1}},{key:"getLevel",value:function(){for(var e=0,t=this;t.parent;)e+=1,t=t.parent;return e}},{key:"getNodeById",value:function(e){return this.idMapping.get(e)||null}},{key:"addNodeToIndex",value:function(e){null!=e.id&&this.idMapping.set(e.id,e)}},{key:"removeNodeFromIndex",value:function(e){null!=e.id&&this.idMapping.delete(e.id)}},{key:"removeChildren",value:function(){var e=this;this.iterate((function(t){var n;return null===(n=e.tree)||void 0===n||n.removeNodeFromIndex(t),!0})),this.children=[]}},{key:"getPreviousSibling",value:function(){if(this.parent){var e=this.parent.getChildIndex(this)-1;return e>=0?this.parent.children[e]:null}return null}},{key:"getNextSibling",value:function(){if(this.parent){var e=this.parent.getChildIndex(this)+1;return e0&&void 0!==arguments[0])||arguments[0];if(e&&this.hasChildren())return this.children[0];if(this.parent){var t=this.getNextSibling();return t||this.parent.getNextNode(!1)}return null}},{key:"getNextVisibleNode",value:function(){if(this.hasChildren()&&this.is_open)return this.children[0];if(this.parent){var e=this.getNextSibling();return e||this.parent.getNextNode(!1)}return null}},{key:"getPreviousNode",value:function(){if(this.parent){var e=this.getPreviousSibling();return e?e.hasChildren()?e.getLastChild():e:this.getParent()}return null}},{key:"getPreviousVisibleNode",value:function(){if(this.parent){var e=this.getPreviousSibling();return e?e.hasChildren()&&e.is_open?e.getLastChild():e:this.getParent()}return null}},{key:"getParent",value:function(){return this.parent&&this.parent.parent?this.parent:null}},{key:"getLastChild",value:function(){if(this.hasChildren()){var e=this.children[this.children.length-1];return e.hasChildren()&&e.is_open?e.getLastChild():e}return null}},{key:"initFromData",value:function(e){var t,n=this,i=function(e){var t,i=k(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=n.createNode();o.initFromData(r),n.addChild(o)}}catch(e){i.e(e)}finally{i.f()}};t=e,n.setData(t),D(t)&&t.children.length&&i(t.children)}},{key:"setParent",value:function(e){var t;this.parent=e,this.tree=e.tree,null===(t=this.tree)||void 0===t||t.addNodeToIndex(this)}},{key:"doRemoveChild",value:function(e){var t;this.children.splice(this.getChildIndex(e),1),null===(t=this.tree)||void 0===t||t.removeNodeFromIndex(e)}},{key:"getNodeClass",value:function(){var t;return this.nodeClass||(null==this||null===(t=this.tree)||void 0===t?void 0:t.nodeClass)||e}},{key:"createNode",value:function(e){return new(this.getNodeClass())(e)}}]),e}(),j=function(){function e(t){r(this,e),a(this,"hitAreas",void 0),a(this,"isDragging",void 0),a(this,"currentItem",void 0),a(this,"hoveredArea",void 0),a(this,"positionInfo",void 0),a(this,"treeWidget",void 0),a(this,"dragElement",void 0),a(this,"previousGhost",void 0),a(this,"openFolderTimer",void 0),this.treeWidget=t,this.hoveredArea=null,this.hitAreas=[],this.isDragging=!1,this.currentItem=null,this.positionInfo=null}return s(e,[{key:"mouseCapture",value:function(e){var t=jQuery(e.target);if(!this.mustCaptureElement(t))return null;if(this.treeWidget.options.onIsMoveHandle&&!this.treeWidget.options.onIsMoveHandle(t))return null;var n=this.treeWidget._getNodeElement(t);return n&&this.treeWidget.options.onCanMove&&(this.treeWidget.options.onCanMove(n.node)||(n=null)),this.currentItem=n,null!=this.currentItem}},{key:"mouseStart",value:function(e){var t;if(!this.currentItem||void 0===e.pageX||void 0===e.pageY)return!1;this.refresh();var n=jQuery(e.target).offset(),i=n?n.left:0,r=n?n.top:0,o=this.currentItem.node;return this.dragElement=new C(o.name,e.pageX-i,e.pageY-r,this.treeWidget.element,null===(t=this.treeWidget.options.autoEscape)||void 0===t||t),this.isDragging=!0,this.positionInfo=e,this.currentItem.$element.addClass("jqtree-moving"),!0}},{key:"mouseDrag",value:function(e){if(!this.currentItem||!this.dragElement||void 0===e.pageX||void 0===e.pageY)return!1;this.dragElement.move(e.pageX,e.pageY),this.positionInfo=e;var t=this.findHoveredArea(e.pageX,e.pageY);return t&&this.canMoveToArea(t)?(t.node.isFolder()||this.stopOpenFolderTimer(),this.hoveredArea!==t&&(this.hoveredArea=t,this.mustOpenFolderTimer(t)?this.startOpenFolderTimer(t.node):this.stopOpenFolderTimer(),this.updateDropHint())):(this.removeDropHint(),this.stopOpenFolderTimer(),this.hoveredArea=t),t||this.treeWidget.options.onDragMove&&this.treeWidget.options.onDragMove(this.currentItem.node,e.originalEvent),!0}},{key:"mouseStop",value:function(e){this.moveItem(e),this.clear(),this.removeHover(),this.removeDropHint(),this.removeHitAreas();var t=this.currentItem;return this.currentItem&&(this.currentItem.$element.removeClass("jqtree-moving"),this.currentItem=null),this.isDragging=!1,this.positionInfo=null,!this.hoveredArea&&t&&this.treeWidget.options.onDragStop&&this.treeWidget.options.onDragStop(t.node,e.originalEvent),!1}},{key:"refresh",value:function(){this.removeHitAreas(),this.currentItem&&(this.generateHitAreas(),this.currentItem=this.treeWidget._getNodeElementForNode(this.currentItem.node),this.isDragging&&this.currentItem.$element.addClass("jqtree-moving"))}},{key:"generateHitAreas",value:function(){if(this.currentItem){var e=new E(this.treeWidget.tree,this.currentItem.node,this.getTreeDimensions().bottom);this.hitAreas=e.generate()}else this.hitAreas=[]}},{key:"mustCaptureElement",value:function(e){return!e.is("input,select,textarea")}},{key:"canMoveToArea",value:function(e){if(!this.treeWidget.options.onCanMoveTo)return!0;if(!this.currentItem)return!1;var t=_(e.position);return this.treeWidget.options.onCanMoveTo(this.currentItem.node,e.node,t)}},{key:"removeHitAreas",value:function(){this.hitAreas=[]}},{key:"clear",value:function(){this.dragElement&&(this.dragElement.remove(),this.dragElement=null)}},{key:"removeDropHint",value:function(){this.previousGhost&&this.previousGhost.remove()}},{key:"removeHover",value:function(){this.hoveredArea=null}},{key:"findHoveredArea",value:function(e,t){var n=this.getTreeDimensions();if(en.right||t>n.bottom)return null;for(var i=0,r=this.hitAreas.length;i>1,s=this.hitAreas[o];if(ts.bottom))return s;i=o+1}}return null}},{key:"mustOpenFolderTimer",value:function(e){var t=e.node;return t.isFolder()&&!t.is_open&&e.position===S.Inside}},{key:"updateDropHint",value:function(){if(this.hoveredArea){this.removeDropHint();var e=this.treeWidget._getNodeElementForNode(this.hoveredArea.node);this.previousGhost=e.addDropHint(this.hoveredArea.position)}}},{key:"startOpenFolderTimer",value:function(e){var t=this;this.stopOpenFolderTimer();var n=this.treeWidget.options.openFolderDelay;!1!==n&&(this.openFolderTimer=window.setTimeout((function(){t.treeWidget._openNode(e,t.treeWidget.options.slide,(function(){t.refresh(),t.updateDropHint()}))}),n))}},{key:"stopOpenFolderTimer",value:function(){this.openFolderTimer&&(clearTimeout(this.openFolderTimer),this.openFolderTimer=null)}},{key:"moveItem",value:function(e){var t=this;if(this.currentItem&&this.hoveredArea&&this.hoveredArea.position!==S.None&&this.canMoveToArea(this.hoveredArea)){var n=this.currentItem.node,i=this.hoveredArea.node,r=this.hoveredArea.position,o=n.parent;r===S.Inside&&(this.hoveredArea.node.is_open=!0);var s=function(){t.treeWidget.tree.moveNode(n,i,r),t.treeWidget.element.empty(),t.treeWidget._refreshElements(null)};this.treeWidget._triggerEvent("tree.move",{move_info:{moved_node:n,target_node:i,position:_(r),previous_parent:o,do_move:s,original_event:e.originalEvent}}).isDefaultPrevented()||s()}}},{key:"getTreeDimensions",value:function(){var e=this.treeWidget.element.offset();if(e){var t=this.treeWidget.element,n=t.width()||0,i=t.height()||0,r=e.left+this.treeWidget._getScrollLeft();return{left:r,top:e.top,right:r+n,bottom:e.top+i+16}}return{left:0,top:0,right:0,bottom:0}}}]),e}(),E=function(e){l(n,e);var t=v(n);function n(e,i,o){var s;return r(this,n),a(h(s=t.call(this,e)),"currentNode",void 0),a(h(s),"treeBottom",void 0),a(h(s),"positions",void 0),a(h(s),"lastTop",void 0),s.currentNode=i,s.treeBottom=o,s}return s(n,[{key:"generate",value:function(){return this.positions=[],this.lastTop=0,this.iterate(),this.generateHitAreas(this.positions)}},{key:"generateHitAreas",value:function(e){var t,n=-1,i=[],r=[],o=k(e);try{for(o.s();!(t=o.n()).done;){var s=t.value;s.top!==n&&i.length&&(i.length&&this.generateHitAreasForGroup(r,i,n,s.top),n=s.top,i=[]),i.push(s)}}catch(e){o.e(e)}finally{o.f()}return this.generateHitAreasForGroup(r,i,n,this.treeBottom),r}},{key:"handleOpenFolder",value:function(e,t){return e!==this.currentNode&&(e.children[0]!==this.currentNode&&this.addPosition(e,S.Inside,this.getTop(t)),!0)}},{key:"handleClosedFolder",value:function(e,t,n){var i=this.getTop(n);e===this.currentNode?this.addPosition(e,S.None,i):(this.addPosition(e,S.Inside,i),t!==this.currentNode&&this.addPosition(e,S.After,i))}},{key:"handleFirstNode",value:function(e){e!==this.currentNode&&this.addPosition(e,S.Before,this.getTop(jQuery(e.element)))}},{key:"handleAfterOpenFolder",value:function(e,t){e===this.currentNode||t===this.currentNode?this.addPosition(e,S.None,this.lastTop):this.addPosition(e,S.After,this.lastTop)}},{key:"handleNode",value:function(e,t,n){var i=this.getTop(n);e===this.currentNode?this.addPosition(e,S.None,i):this.addPosition(e,S.Inside,i),t===this.currentNode||e===this.currentNode?this.addPosition(e,S.None,i):this.addPosition(e,S.After,i)}},{key:"getTop",value:function(e){var t=e.offset();return t?t.top:0}},{key:"addPosition",value:function(e,t,n){var i={top:n,bottom:0,node:e,position:t};this.positions.push(i),this.lastTop=n}},{key:"generateHitAreasForGroup",value:function(e,t,n,i){for(var r=Math.min(t.length,4),o=Math.round((i-n)/r),s=n,a=0;a").addClass("jqtree-title jqtree-dragging"),s?this.$element.text(t):this.$element.html(t),this.$element.css("position","absolute"),o.append(this.$element)}return s(e,[{key:"move",value:function(e,t){this.$element.offset({left:e-this.offsetX,top:t-this.offsetY})}},{key:"remove",value:function(){this.$element.remove()}}]),e}(),w=function(e){return e?"true":"false"},F=function(){function e(t){r(this,e),a(this,"openedIconElement",void 0),a(this,"closedIconElement",void 0),a(this,"treeWidget",void 0),this.treeWidget=t,this.openedIconElement=this.createButtonElement(t.options.openedIcon||"+"),this.closedIconElement=this.createButtonElement(t.options.closedIcon||"-")}return s(e,[{key:"render",value:function(e){e&&e.parent?this.renderFromNode(e):this.renderFromRoot()}},{key:"renderFromRoot",value:function(){var e=this.treeWidget.element;e.empty(),this.createDomElements(e[0],this.treeWidget.tree.children,!0,1)}},{key:"renderFromNode",value:function(e){var t=jQuery(e.element),n=this.createLi(e,e.getLevel());this.attachNodeData(e,n),t.after(n),t.remove(),e.children&&this.createDomElements(n,e.children,!1,e.getLevel()+1)}},{key:"createDomElements",value:function(e,t,n,i){var r=this.createUl(n);e.appendChild(r);var o,s=k(t);try{for(s.s();!(o=s.n()).done;){var a=o.value,l=this.createLi(a,i);r.appendChild(l),this.attachNodeData(a,l),a.hasChildren()&&this.createDomElements(l,a.children,!1,i+1)}}catch(e){s.e(e)}finally{s.f()}}},{key:"attachNodeData",value:function(e,t){e.element=t,jQuery(t).data("node",e)}},{key:"createUl",value:function(e){var t,n;e?(t="jqtree-tree",n="tree",this.treeWidget.options.rtl&&(t+=" jqtree-rtl")):(t="",n="group"),this.treeWidget.options.dragAndDrop&&(t+=" jqtree-dnd");var i=document.createElement("ul");return i.className="jqtree_common ".concat(t),i.setAttribute("role",n),i}},{key:"createLi",value:function(e,t){var n=Boolean(this.treeWidget.selectNodeHandler.isNodeSelected(e)),i=e.isFolder()||e.isEmptyFolder&&this.treeWidget.options.showEmptyFolder?this.createFolderLi(e,t,n):this.createNodeLi(e,t,n);return this.treeWidget.options.onCreateLi&&this.treeWidget.options.onCreateLi(e,jQuery(i),n),i}},{key:"createFolderLi",value:function(e,t,n){var i=this.getButtonClasses(e),r=this.getFolderClasses(e,n),o=e.is_open?this.openedIconElement:this.closedIconElement,s=document.createElement("li");s.className="jqtree_common ".concat(r),s.setAttribute("role","presentation");var a=document.createElement("div");a.className="jqtree-element jqtree_common",a.setAttribute("role","presentation"),s.appendChild(a);var l=document.createElement("a");return l.className=i,l.appendChild(o.cloneNode(!0)),l.setAttribute("role","presentation"),l.setAttribute("aria-hidden","true"),this.treeWidget.options.buttonLeft&&a.appendChild(l),a.appendChild(this.createTitleSpan(e.name,t,n,e.is_open,!0)),this.treeWidget.options.buttonLeft||a.appendChild(l),s}},{key:"createNodeLi",value:function(e,t,n){var i=["jqtree_common"];n&&i.push("jqtree-selected");var r=i.join(" "),o=document.createElement("li");o.className=r,o.setAttribute("role","presentation");var s=document.createElement("div");return s.className="jqtree-element jqtree_common",s.setAttribute("role","presentation"),o.appendChild(s),s.appendChild(this.createTitleSpan(e.name,t,n,e.is_open,!1)),o}},{key:"createTitleSpan",value:function(e,t,n,i,r){var o=document.createElement("span"),s="jqtree-title jqtree_common";if(r&&(s+=" jqtree-title-folder"),s+=" jqtree-title-button-".concat(this.treeWidget.options.buttonLeft?"left":"right"),o.className=s,o.setAttribute("role","treeitem"),o.setAttribute("aria-level","".concat(t)),o.setAttribute("aria-selected",w(n)),o.setAttribute("aria-expanded",w(i)),n){var a=this.treeWidget.options.tabIndex;void 0!==a&&o.setAttribute("tabindex","".concat(a))}return this.treeWidget.options.autoEscape?o.textContent=e:o.innerHTML=e,o}},{key:"getButtonClasses",value:function(e){var t=["jqtree-toggler","jqtree_common"];return e.is_open||t.push("jqtree-closed"),this.treeWidget.options.buttonLeft?t.push("jqtree-toggler-left"):t.push("jqtree-toggler-right"),t.join(" ")}},{key:"getFolderClasses",value:function(e,t){var n=["jqtree-folder"];return e.is_open||n.push("jqtree-closed"),t&&n.push("jqtree-selected"),e.is_loading&&n.push("jqtree-loading"),n.join(" ")}},{key:"createButtonElement",value:function(e){if("string"==typeof e){var t=document.createElement("div");return t.innerHTML=e,document.createTextNode(t.innerHTML)}return jQuery(e)[0]}}]),e}(),W=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),this.treeWidget=t}return s(e,[{key:"loadFromUrl",value:function(e,t,n){var i=this;if(e){var r=this.getDomElement(t);this.addLoadingClass(r),this.notifyLoading(!0,t,r);var o=function(){i.removeLoadingClass(r),i.notifyLoading(!1,t,r)};this.submitRequest(e,(function(e){o(),i.treeWidget.loadData(i.parseData(e),t),n&&"function"==typeof n&&n()}),(function(e){o(),i.treeWidget.options.onLoadFailed&&i.treeWidget.options.onLoadFailed(e)}))}}},{key:"addLoadingClass",value:function(e){e&&e.addClass("jqtree-loading")}},{key:"removeLoadingClass",value:function(e){e&&e.removeClass("jqtree-loading")}},{key:"getDomElement",value:function(e){return e?jQuery(e.element):this.treeWidget.element}},{key:"notifyLoading",value:function(e,t,n){this.treeWidget.options.onLoading&&this.treeWidget.options.onLoading(e,t,n),this.treeWidget._triggerEvent("tree.loading_data",{isLoading:e,node:t,$el:n})}},{key:"submitRequest",value:function(e,t,i){var r,o=n({method:"GET",cache:!1,dataType:"json",success:t,error:i},"string"==typeof e?{url:e}:e);o.method=(null===(r=o.method)||void 0===r?void 0:r.toUpperCase())||"GET",jQuery.ajax(o)}},{key:"parseData",value:function(e){var t=this.treeWidget.options.dataFilter,n="string"==typeof e?JSON.parse(e):e;return t?t(n):n}}]),e}(),T=function(){function e(t){var n=this;r(this,e),a(this,"treeWidget",void 0),a(this,"handleKeyDown",(function(t){if(!n.canHandleKeyboard())return!0;var i=n.treeWidget.getSelectedNode();if(!i)return!0;switch(t.which){case e.DOWN:return n.moveDown(i);case e.UP:return n.moveUp(i);case e.RIGHT:return n.moveRight(i);case e.LEFT:return n.moveLeft(i);default:return!0}})),this.treeWidget=t,t.options.keyboardSupport&&jQuery(document).on("keydown.jqtree",this.handleKeyDown)}return s(e,[{key:"deinit",value:function(){jQuery(document).off("keydown.jqtree")}},{key:"moveDown",value:function(e){return this.selectNode(e.getNextVisibleNode())}},{key:"moveUp",value:function(e){return this.selectNode(e.getPreviousVisibleNode())}},{key:"moveRight",value:function(e){return!e.isFolder()||(e.is_open?this.selectNode(e.getNextVisibleNode()):(this.treeWidget.openNode(e),!1))}},{key:"moveLeft",value:function(e){return e.isFolder()&&e.is_open?(this.treeWidget.closeNode(e),!1):this.selectNode(e.getParent())}},{key:"selectNode",value:function(e){return!e||(this.treeWidget.selectNode(e),this.treeWidget.scrollHandler.isScrolledIntoView(jQuery(e.element).find(".jqtree-element"))||this.treeWidget.scrollToNode(e),!1)}},{key:"canHandleKeyboard",value:function(){return!!this.treeWidget.options.keyboardSupport&&this.treeWidget.selectNodeHandler.isFocusOnTree()}}]),e}();a(T,"LEFT",37),a(T,"UP",38),a(T,"RIGHT",39),a(T,"DOWN",40);var P=function(e,t){var n=function(){return"simple_widget_".concat(t)},r=function(e,t){var n=jQuery.data(e,t);return n&&n instanceof L?n:null},o=function(t,i){var o,s=n(),a=k(t.get());try{for(a.s();!(o=a.n()).done;){var l=o.value;if(!r(l,s)){var d=new e(l,i);jQuery.data(l,s)||jQuery.data(l,s,d),d.init()}}}catch(e){a.e(e)}finally{a.f()}return t},s=function(e){var t,i=n(),o=k(e.get());try{for(o.s();!(t=o.n()).done;){var s=t.value,a=r(s,i);a&&a.destroy(),jQuery.removeData(s,i)}}catch(e){o.e(e)}finally{o.f()}},a=function(e,t,i){var r,o=null,s=k(e.get());try{for(s.s();!(r=s.n()).done;){var a=r.value,l=jQuery.data(a,n());if(l&&l instanceof L){var d=l[t];d&&"function"==typeof d&&(o=d.apply(l,i))}}}catch(e){s.e(e)}finally{s.f()}return o};jQuery.fn[t]=function(t){if(!t)return o(this,null);if("object"===i(t)){var n=t;return o(this,n)}if("string"==typeof t&&"_"!==t[0]){var r=t;if("destroy"===r)return s(this);if("get_widget_class"===r)return e;for(var l=arguments.length,d=new Array(l>1?l-1:0),u=1;u1)){var n=t.changedTouches[0];e.handleMouseDown(A(n,t))}})),a(h(e),"touchMove",(function(t){if(t&&!(t.touches.length>1)){var n=t.changedTouches[0];e.handleMouseMove(t,A(n,t))}})),a(h(e),"touchEnd",(function(t){if(t&&!(t.touches.length>1)){var n=t.changedTouches[0];e.handleMouseUp(A(n,t))}})),e}return s(n,[{key:"init",value:function(){var e=this.$el.get(0);e&&(e.addEventListener("mousedown",this.mouseDown,{passive:!1}),e.addEventListener("touchstart",this.touchStart,{passive:!1})),this.isMouseStarted=!1,this.mouseDelayTimer=null,this.isMouseDelayMet=!1,this.mouseDownInfo=null}},{key:"deinit",value:function(){var e=this.$el.get(0);e&&(e.removeEventListener("mousedown",this.mouseDown,{passive:!1}),e.removeEventListener("touchstart",this.touchStart,{passive:!1})),this.removeMouseMoveEventListeners()}},{key:"handleMouseDown",value:function(e){return this.isMouseStarted&&this.handleMouseUp(e),this.mouseDownInfo=e,!!this.mouseCapture(e)&&(this.handleStartMouse(),!0)}},{key:"handleStartMouse",value:function(){document.addEventListener("mousemove",this.mouseMove,{passive:!1}),document.addEventListener("touchmove",this.touchMove,{passive:!1}),document.addEventListener("mouseup",this.mouseUp,{passive:!1}),document.addEventListener("touchend",this.touchEnd,{passive:!1});var e=this.getMouseDelay();e?this.startMouseDelayTimer(e):this.isMouseDelayMet=!0}},{key:"startMouseDelayTimer",value:function(e){var t=this;this.mouseDelayTimer&&clearTimeout(this.mouseDelayTimer),this.mouseDelayTimer=window.setTimeout((function(){t.mouseDownInfo&&(t.isMouseDelayMet=!0)}),e),this.isMouseDelayMet=!1}},{key:"handleMouseMove",value:function(e,t){if(this.isMouseStarted)return this.mouseDrag(t),void(e.cancelable&&e.preventDefault());this.isMouseDelayMet&&(this.mouseDownInfo&&(this.isMouseStarted=!1!==this.mouseStart(this.mouseDownInfo)),this.isMouseStarted?(this.mouseDrag(t),e.cancelable&&e.preventDefault()):this.handleMouseUp(t))}},{key:"handleMouseUp",value:function(e){this.removeMouseMoveEventListeners(),this.isMouseDelayMet=!1,this.mouseDownInfo=null,this.isMouseStarted&&(this.isMouseStarted=!1,this.mouseStop(e))}},{key:"removeMouseMoveEventListeners",value:function(){document.removeEventListener("mousemove",this.mouseMove,{passive:!1}),document.removeEventListener("touchmove",this.touchMove,{passive:!1}),document.removeEventListener("mouseup",this.mouseUp,{passive:!1}),document.removeEventListener("touchend",this.touchEnd,{passive:!1})}}]),n}(L),M=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),a(this,"_supportsLocalStorage",void 0),this.treeWidget=t}return s(e,[{key:"saveState",value:function(){var e=JSON.stringify(this.getState());this.treeWidget.options.onSetStateFromStorage?this.treeWidget.options.onSetStateFromStorage(e):this.supportsLocalStorage()&&localStorage.setItem(this.getKeyName(),e)}},{key:"getStateFromStorage",value:function(){var e=this.loadFromStorage();return e?this.parseState(e):null}},{key:"getState",value:function(){var e,t,n=this;return{open_nodes:(t=[],n.treeWidget.tree.iterate((function(e){return e.is_open&&e.id&&e.hasChildren()&&t.push(e.id),!0})),t),selected_node:(e=[],n.treeWidget.getSelectedNodes().forEach((function(t){null!=t.id&&e.push(t.id)})),e)}}},{key:"setInitialState",value:function(e){if(e){var t=!1;return e.open_nodes&&(t=this.openInitialNodes(e.open_nodes)),e.selected_node&&(this.resetSelection(),this.selectInitialNodes(e.selected_node)),t}return!1}},{key:"setInitialStateOnDemand",value:function(e,t){e?this.doSetInitialStateOnDemand(e.open_nodes,e.selected_node,t):t()}},{key:"getNodeIdToBeSelected",value:function(){var e=this.getStateFromStorage();return e&&e.selected_node?e.selected_node[0]:null}},{key:"parseState",value:function(e){var t,n=JSON.parse(e);return n&&n.selected_node&&("number"==typeof(t=n.selected_node)&&t%1==0)&&(n.selected_node=[n.selected_node]),n}},{key:"loadFromStorage",value:function(){return this.treeWidget.options.onGetStateFromStorage?this.treeWidget.options.onGetStateFromStorage():this.supportsLocalStorage()?localStorage.getItem(this.getKeyName()):null}},{key:"openInitialNodes",value:function(e){var t,n=!1,i=k(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=this.treeWidget.getNodeById(r);o&&(o.load_on_demand?n=!0:o.is_open=!0)}}catch(e){i.e(e)}finally{i.f()}return n}},{key:"selectInitialNodes",value:function(e){var t,n=0,i=k(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=this.treeWidget.getNodeById(r);o&&(n+=1,this.treeWidget.selectNodeHandler.addToSelection(o))}}catch(e){i.e(e)}finally{i.f()}return 0!==n}},{key:"resetSelection",value:function(){var e=this.treeWidget.selectNodeHandler;e.getSelectedNodes().forEach((function(t){e.removeFromSelection(t)}))}},{key:"doSetInitialStateOnDemand",value:function(e,t,n){var i=this,r=0,o=e,s=function(){var e,s=[],l=k(o);try{for(l.s();!(e=l.n()).done;){var d=e.value,u=i.treeWidget.getNodeById(d);u?u.is_loading||(u.load_on_demand?a(u):i.treeWidget._openNode(u,!1,null)):s.push(d)}}catch(e){l.e(e)}finally{l.f()}o=s,i.selectInitialNodes(t)&&i.treeWidget._refreshElements(null),0===r&&n()},a=function(e){r+=1,i.treeWidget._openNode(e,!1,(function(){r-=1,s()}))};s()}},{key:"getKeyName",value:function(){return"string"==typeof this.treeWidget.options.saveState?this.treeWidget.options.saveState:"tree"}},{key:"supportsLocalStorage",value:function(){return null==this._supportsLocalStorage&&(this._supportsLocalStorage=function(){if(null==localStorage)return!1;try{var e="_storage_test";sessionStorage.setItem(e,"value"),sessionStorage.removeItem(e)}catch(e){return!1}return!0}()),this._supportsLocalStorage}}]),e}(),x=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),a(this,"previousTop",void 0),a(this,"isInitialized",void 0),a(this,"$scrollParent",void 0),a(this,"scrollParentTop",void 0),this.treeWidget=t,this.previousTop=-1,this.isInitialized=!1}return s(e,[{key:"checkScrolling",value:function(){this.ensureInit(),this.checkVerticalScrolling(),this.checkHorizontalScrolling()}},{key:"scrollToY",value:function(e){if(this.ensureInit(),this.$scrollParent)this.$scrollParent[0].scrollTop=e;else{var t=this.treeWidget.$el.offset(),n=t?t.top:0;jQuery(document).scrollTop(e+n)}}},{key:"isScrolledIntoView",value:function(e){var t,n,i,r;this.ensureInit();var o=e.height()||0;if(this.$scrollParent){r=0,n=this.$scrollParent.height()||0;var s=e.offset();t=(i=(s?s.top:0)-this.scrollParentTop)+o}else{n=(r=jQuery(window).scrollTop()||0)+(jQuery(window).height()||0);var a=e.offset();t=(i=a?a.top:0)+o}return t<=n&&i>=r}},{key:"getScrollLeft",value:function(){return this.$scrollParent&&this.$scrollParent.scrollLeft()||0}},{key:"initScrollParent",value:function(){var e=this,t=function(){e.scrollParentTop=0,e.$scrollParent=null};"fixed"===this.treeWidget.$el.css("position")&&t();var n=function(){var t=["overflow","overflow-y"],n=function(e){for(var n=0,i=t;n0,s=n.left+i.clientWidth,a=n.left,l=e.pageX>s-20,d=e.pageX0,o=e.pageX>i-20,s=e.pageX-n<20;o?t.scrollLeft(n+20):s&&r&&t.scrollLeft(Math.max(n-20,0))}}}]),e}(),$=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),a(this,"selectedNodes",void 0),a(this,"selectedSingleNode",void 0),this.treeWidget=t,this.selectedNodes=new Set,this.clear()}return s(e,[{key:"getSelectedNode",value:function(){var e=this.getSelectedNodes();return!!e.length&&e[0]}},{key:"getSelectedNodes",value:function(){var e=this;if(this.selectedSingleNode)return[this.selectedSingleNode];var t=[];return this.selectedNodes.forEach((function(n){var i=e.treeWidget.getNodeById(n);i&&t.push(i)})),t}},{key:"getSelectedNodesUnder",value:function(e){if(this.selectedSingleNode)return e.isParentOf(this.selectedSingleNode)?[this.selectedSingleNode]:[];var t=[];for(var n in this.selectedNodes)if(Object.prototype.hasOwnProperty.call(this.selectedNodes,n)){var i=this.treeWidget.getNodeById(n);i&&e.isParentOf(i)&&t.push(i)}return t}},{key:"isNodeSelected",value:function(e){return null!=e.id?this.selectedNodes.has(e.id):!!this.selectedSingleNode&&this.selectedSingleNode.element===e.element}},{key:"clear",value:function(){this.selectedNodes.clear(),this.selectedSingleNode=null}},{key:"removeFromSelection",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];null==e.id?this.selectedSingleNode&&e.element===this.selectedSingleNode.element&&(this.selectedSingleNode=null):(this.selectedNodes.delete(e.id),n&&e.iterate((function(){return null!=e.id&&t.selectedNodes.delete(e.id),!0})))}},{key:"addToSelection",value:function(e){null!=e.id?this.selectedNodes.add(e.id):this.selectedSingleNode=e}},{key:"isFocusOnTree",value:function(){var e=document.activeElement;return Boolean(e&&"SPAN"===e.tagName&&this.treeWidget._containsElement(e))}}]),e}(),q=function(){function e(t,n){r(this,e),a(this,"node",void 0),a(this,"$element",void 0),a(this,"treeWidget",void 0),this.init(t,n)}return s(e,[{key:"init",value:function(e,t){if(this.node=e,this.treeWidget=t,!e.element){var n=this.treeWidget.element.get(0);n&&(e.element=n)}e.element&&(this.$element=jQuery(e.element))}},{key:"addDropHint",value:function(e){return this.mustShowBorderDropHint(e)?new Q(this.$element,this.treeWidget._getScrollLeft()):new U(this.node,this.$element,e)}},{key:"select",value:function(e){var t,n=this.getLi();n.addClass("jqtree-selected"),n.attr("aria-selected","true");var i=this.getSpan();i.attr("tabindex",null!==(t=this.treeWidget.options.tabIndex)&&void 0!==t?t:null),e&&i.trigger("focus")}},{key:"deselect",value:function(){var e=this.getLi();e.removeClass("jqtree-selected"),e.attr("aria-selected","false");var t=this.getSpan();t.removeAttr("tabindex"),t.blur()}},{key:"getUl",value:function(){return this.$element.children("ul:first")}},{key:"getSpan",value:function(){return this.$element.children(".jqtree-element").find("span.jqtree-title")}},{key:"getLi",value:function(){return this.$element}},{key:"mustShowBorderDropHint",value:function(e){return e===S.Inside}}]),e}(),B=function(e){l(n,e);var t=v(n);function n(){return r(this,n),t.apply(this,arguments)}return s(n,[{key:"open",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"fast";if(!this.node.is_open){this.node.is_open=!0;var r=this.getButton();r.removeClass("jqtree-closed"),r.html("");var o=r.get(0);if(o){var s=this.treeWidget.renderer.openedIconElement.cloneNode(!0);o.appendChild(s)}var a=function(){t.getLi().removeClass("jqtree-closed"),t.getSpan().attr("aria-expanded","true"),e&&e(t.node),t.treeWidget._triggerEvent("tree.open",{node:t.node})};n?this.getUl().slideDown(i,a):(this.getUl().show(),a())}}},{key:"close",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"fast";if(this.node.is_open){this.node.is_open=!1;var i=this.getButton();i.addClass("jqtree-closed"),i.html("");var r=i.get(0);if(r){var o=this.treeWidget.renderer.closedIconElement.cloneNode(!0);r.appendChild(o)}var s=function(){e.getLi().addClass("jqtree-closed"),e.getSpan().attr("aria-expanded","false"),e.treeWidget._triggerEvent("tree.close",{node:e.node})};t?this.getUl().slideUp(n,s):(this.getUl().hide(),s())}}},{key:"mustShowBorderDropHint",value:function(e){return!this.node.is_open&&e===S.Inside}},{key:"getButton",value:function(){return this.$element.children(".jqtree-element").find("a.jqtree-toggler")}}]),n}(q),Q=function(){function e(t,n){r(this,e),a(this,"$hint",void 0);var i=t.children(".jqtree-element"),o=t.width()||0,s=Math.max(o+n-4,0),l=i.outerHeight()||0,d=Math.max(l-4,0);this.$hint=jQuery(''),i.append(this.$hint),this.$hint.css({width:s,height:d})}return s(e,[{key:"remove",value:function(){this.$hint.remove()}}]),e}(),U=function(){function e(t,n,i){r(this,e),a(this,"$element",void 0),a(this,"node",void 0),a(this,"$ghost",void 0),this.$element=n,this.node=t,this.$ghost=jQuery('\n '),i===S.After?this.moveAfter():i===S.Before?this.moveBefore():i===S.Inside&&(t.isFolder()&&t.is_open?this.moveInsideOpenFolder():this.moveInside())}return s(e,[{key:"remove",value:function(){this.$ghost.remove()}},{key:"moveAfter",value:function(){this.$element.after(this.$ghost)}},{key:"moveBefore",value:function(){this.$element.before(this.$ghost)}},{key:"moveInsideOpenFolder",value:function(){var e=this.node.children[0].element;e&&jQuery(e).before(this.$ghost)}},{key:"moveInside",value:function(){this.$element.after(this.$ghost),this.$ghost.addClass("jqtree-inside")}}]),e}(),R="Node parameter is empty",X="Parameter is empty: ",Y=function(e){l(o,e);var t=v(o);function o(){var e;r(this,o);for(var n=arguments.length,i=new Array(n),s=0;s1&&void 0!==arguments[1]?arguments[1]:null;if(!e)throw Error(R);var n=null!=t?t:this.options.slide;return e.is_open?this.closeNode(e,n):this.openNode(e,n),this.element}},{key:"getTree",value:function(){return this.tree}},{key:"selectNode",value:function(e,t){return this.doSelectNode(e,t),this.element}},{key:"getSelectedNode",value:function(){return this.selectNodeHandler.getSelectedNode()}},{key:"toJson",value:function(){return JSON.stringify(this.tree.getData())}},{key:"loadData",value:function(e,t){return this.doLoadData(e,t),this.element}},{key:"loadDataFromUrl",value:function(e,t,n){return"string"==typeof e?this.doLoadDataFromUrl(e,t,null!=n?n:null):this.doLoadDataFromUrl(null,e,t),this.element}},{key:"reload",value:function(e){return this.doLoadDataFromUrl(null,null,e),this.element}},{key:"refresh",value:function(){return this._refreshElements(null),this.element}},{key:"getNodeById",value:function(e){return this.tree.getNodeById(e)}},{key:"getNodeByName",value:function(e){return this.tree.getNodeByName(e)}},{key:"getNodeByNameMustExist",value:function(e){return this.tree.getNodeByNameMustExist(e)}},{key:"getNodesByProperty",value:function(e,t){return this.tree.getNodesByProperty(e,t)}},{key:"getNodeByHtmlElement",value:function(e){return this.getNode(jQuery(e))}},{key:"getNodeByCallback",value:function(e){return this.tree.getNodeByCallback(e)}},{key:"openNode",value:function(e,t,n){var i=this;if(!e)throw Error(R);var r=function(){var e,r,o;("function"==typeof t?(e=t,r=null):(r=t,e=n),null==r)&&(r=null!==(o=i.options.slide)&&void 0!==o&&o);return[r,e]}(),o=g(r,2),s=o[0],a=o[1];return this._openNode(e,s,a),this.element}},{key:"closeNode",value:function(e,t){if(!e)throw Error(R);var n=null!=t?t:this.options.slide;return(e.isFolder()||e.isEmptyFolder)&&(new B(e,this).close(n,this.options.animationSpeed),this.saveState()),this.element}},{key:"isDragging",value:function(){return this.dndHandler.isDragging}},{key:"refreshHitAreas",value:function(){return this.dndHandler.refresh(),this.element}},{key:"addNodeAfter",value:function(e,t){var n=t.addAfter(e);return n&&this._refreshElements(t.parent),n}},{key:"addNodeBefore",value:function(e,t){if(!t)throw Error(X+"existingNode");var n=t.addBefore(e);return n&&this._refreshElements(t.parent),n}},{key:"addParentNode",value:function(e,t){if(!t)throw Error(X+"existingNode");var n=t.addParent(e);return n&&this._refreshElements(n.parent),n}},{key:"removeNode",value:function(e){if(!e)throw Error(R);if(!e.parent)throw Error("Node has no parent");this.selectNodeHandler.removeFromSelection(e,!0);var t=e.parent;return e.remove(),this._refreshElements(t),this.element}},{key:"appendNode",value:function(e,t){var n=t||this.tree,i=n.append(e);return this._refreshElements(n),i}},{key:"prependNode",value:function(e,t){var n=null!=t?t:this.tree,i=n.prepend(e);return this._refreshElements(n),i}},{key:"updateNode",value:function(e,t){if(!e)throw Error(R);var n="object"===i(t)&&t.id&&t.id!==e.id;return n&&this.tree.removeNodeFromIndex(e),e.setData(t),n&&this.tree.addNodeToIndex(e),"object"===i(t)&&t.children&&t.children instanceof Array&&(e.removeChildren(),t.children.length&&e.loadFromData(t.children)),this._refreshElements(e),this.element}},{key:"isSelectedNodeInSubtree",value:function(e){var t=this.getSelectedNode();return!!t&&(e===t||e.isParentOf(t))}},{key:"moveNode",value:function(e,t,n){if(!e)throw Error(R);if(!t)throw Error(X+"targetNode");var i=b[n];return void 0!==i&&(this.tree.moveNode(e,t,i),this._refreshElements(null)),this.element}},{key:"getStateFromStorage",value:function(){return this.saveStateHandler.getStateFromStorage()}},{key:"addToSelection",value:function(e,t){if(!e)throw Error(R);return this.selectNodeHandler.addToSelection(e),this._getNodeElementForNode(e).select(void 0===t||t),this.saveState(),this.element}},{key:"getSelectedNodes",value:function(){return this.selectNodeHandler.getSelectedNodes()}},{key:"isNodeSelected",value:function(e){if(!e)throw Error(R);return this.selectNodeHandler.isNodeSelected(e)}},{key:"removeFromSelection",value:function(e){if(!e)throw Error(R);return this.selectNodeHandler.removeFromSelection(e),this._getNodeElementForNode(e).deselect(),this.saveState(),this.element}},{key:"scrollToNode",value:function(e){if(!e)throw Error(R);var t=jQuery(e.element).offset(),n=t?t.top:0,i=this.$el.offset(),r=n-(i?i.top:0);return this.scrollHandler.scrollToY(r),this.element}},{key:"getState",value:function(){return this.saveStateHandler.getState()}},{key:"setState",value:function(e){return this.saveStateHandler.setInitialState(e),this._refreshElements(null),this.element}},{key:"setOption",value:function(e,t){return this.options[e]=t,this.element}},{key:"moveDown",value:function(){var e=this.getSelectedNode();return e&&this.keyHandler.moveDown(e),this.element}},{key:"moveUp",value:function(){var e=this.getSelectedNode();return e&&this.keyHandler.moveUp(e),this.element}},{key:"getVersion",value:function(){return"1.7.0"}},{key:"_triggerEvent",value:function(e,t){var n=jQuery.Event(e,t);return this.element.trigger(n),n}},{key:"_openNode",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2?arguments[2]:void 0,r=function(e,n,i){new B(e,t).open(i,n,t.options.animationSpeed)};if(e.isFolder()||e.isEmptyFolder)if(e.load_on_demand)this.loadFolderOnDemand(e,n,i);else{for(var o=e.parent;o;)o.parent&&r(o,!1,null),o=o.parent;r(e,n,i),this.saveState()}}},{key:"_refreshElements",value:function(e){var t=this.selectNodeHandler.isFocusOnTree(),n=!!e&&this.isSelectedNodeInSubtree(e);this.renderer.render(e),n&&this.selectCurrentNode(t),this._triggerEvent("tree.refresh")}},{key:"_getNodeElementForNode",value:function(e){return e.isFolder()?new B(e,this):new q(e,this)}},{key:"_getNodeElement",value:function(e){var t=this.getNode(e);return t?this._getNodeElementForNode(t):null}},{key:"_containsElement",value:function(e){var t=this.getNode(jQuery(e));return null!=t&&t.tree===this.tree}},{key:"_getScrollLeft",value:function(){return this.scrollHandler.getScrollLeft()}},{key:"init",value:function(){p(d(o.prototype),"init",this).call(this),this.element=this.$el,this.isInitialized=!1,this.options.rtl=this.getRtlOption(),null==this.options.closedIcon&&(this.options.closedIcon=this.getDefaultClosedIcon()),this.renderer=new F(this),this.dataLoader=new W(this),this.saveStateHandler=new M(this),this.selectNodeHandler=new $(this),this.dndHandler=new j(this),this.scrollHandler=new x(this),this.keyHandler=new T(this),this.initData(),this.element.on("click",this.handleClick),this.element.on("dblclick",this.handleDblclick),this.options.useContextMenu&&this.element.on("contextmenu",this.handleContextmenu)}},{key:"deinit",value:function(){this.element.empty(),this.element.off(),this.keyHandler.deinit(),this.tree=new I({},!0),p(d(o.prototype),"deinit",this).call(this)}},{key:"mouseCapture",value:function(e){return!!this.options.dragAndDrop&&this.dndHandler.mouseCapture(e)}},{key:"mouseStart",value:function(e){return!!this.options.dragAndDrop&&this.dndHandler.mouseStart(e)}},{key:"mouseDrag",value:function(e){if(this.options.dragAndDrop){var t=this.dndHandler.mouseDrag(e);return this.scrollHandler.checkScrolling(),t}return!1}},{key:"mouseStop",value:function(e){return!!this.options.dragAndDrop&&this.dndHandler.mouseStop(e)}},{key:"getMouseDelay",value:function(){var e;return null!==(e=this.options.startDndDelay)&&void 0!==e?e:0}},{key:"initData",value:function(){this.options.data?this.doLoadData(this.options.data,null):this.getDataUrlInfo(null)?this.doLoadDataFromUrl(null,null,null):this.doLoadData([],null)}},{key:"getDataUrlInfo",value:function(e){var t,n=this,r=this.options.dataUrl||this.element.data("url"),o=function(t){if(null!=e&&e.id){var i={node:e.id};t.data=i}else{var r=n.getNodeIdToBeSelected();if(r){var o={selected_node:r};t.data=o}}};return"function"==typeof r?r(e):"string"==typeof r?(o(t={url:r}),t):r&&"object"===i(r)?(o(r),r):null}},{key:"getNodeIdToBeSelected",value:function(){return this.options.saveState?this.saveStateHandler.getNodeIdToBeSelected():null}},{key:"initTree",value:function(e){var t=this,n=function(){t.isInitialized||(t.isInitialized=!0,t._triggerEvent("tree.init"))};if(this.options.nodeClass){this.tree=new this.options.nodeClass(null,!0,this.options.nodeClass),this.selectNodeHandler.clear(),this.tree.loadFromData(e);var i=this.setInitialState();this._refreshElements(null),i?this.setInitialStateOnDemand(n):n()}}},{key:"setInitialState",value:function(){var e=this,t=g(function(){if(e.options.saveState){var t=e.saveStateHandler.getStateFromStorage();return t?[!0,e.saveStateHandler.setInitialState(t)]:[!1,!1]}return[!1,!1]}(),2),n=t[0],i=t[1];return n||(i=function(){if(!1===e.options.autoOpen)return!1;var t=e.getAutoOpenMaxLevel(),n=!1;return e.tree.iterate((function(e,i){return e.load_on_demand?(n=!0,!1):!!e.hasChildren()&&(e.is_open=!0,i!==t)})),n}()),i}},{key:"setInitialStateOnDemand",value:function(e){var t,n,i,r,o=this;(function(){if(o.options.saveState){var t=o.saveStateHandler.getStateFromStorage();return!!t&&(o.saveStateHandler.setInitialStateOnDemand(t,e),!0)}return!1})()||(t=o.getAutoOpenMaxLevel(),n=0,i=function(e){n+=1,o._openNode(e,!1,(function(){n-=1,r()}))},(r=function(){o.tree.iterate((function(e,n){return e.load_on_demand?(e.is_loading||i(e),!1):(o._openNode(e,!1,null),n!==t)})),0===n&&e()})())}},{key:"getAutoOpenMaxLevel",value:function(){return!0===this.options.autoOpen?-1:"number"==typeof this.options.autoOpen?this.options.autoOpen:"string"==typeof this.options.autoOpen?parseInt(this.options.autoOpen,10):0}},{key:"getClickTarget",value:function(e){var t=jQuery(e),n=t.closest(".jqtree-toggler");if(n.length){var i=this.getNode(n);if(i)return{type:"button",node:i}}else{var r=t.closest(".jqtree-element");if(r.length){var o=this.getNode(r);if(o)return{type:"label",node:o}}}return null}},{key:"getNode",value:function(e){var t=e.closest("li.jqtree_common");return 0===t.length?null:t.data("node")}},{key:"saveState",value:function(){this.options.saveState&&this.saveStateHandler.saveState()}},{key:"selectCurrentNode",value:function(e){var t=this.getSelectedNode();if(t){var n=this._getNodeElementForNode(t);n&&n.select(e)}}},{key:"deselectCurrentNode",value:function(){var e=this.getSelectedNode();e&&this.removeFromSelection(e)}},{key:"getDefaultClosedIcon",value:function(){return this.options.rtl?"◀":"►"}},{key:"getRtlOption",value:function(){if(null!=this.options.rtl)return this.options.rtl;var e=this.element.data("rtl");return null!==e&&!1!==e&&void 0!==e}},{key:"doSelectNode",value:function(e,t){var i=this,r=function(){i.options.saveState&&i.saveStateHandler.saveState()};if(!e)return this.deselectCurrentNode(),void r();var o=n(n({},{mustSetFocus:!0,mustToggle:!0}),t||{});if(i.options.onCanSelectNode?!0===i.options.selectable&&i.options.onCanSelectNode(e):!0===i.options.selectable){if(this.selectNodeHandler.isNodeSelected(e))o.mustToggle&&(this.deselectCurrentNode(),this._triggerEvent("tree.select",{node:null,previous_node:e}));else{var s=this.getSelectedNode()||null;this.deselectCurrentNode(),this.addToSelection(e,o.mustSetFocus),this._triggerEvent("tree.select",{node:e,deselected_node:s}),(a=e.parent)&&a.parent&&!a.is_open&&i.openNode(a,!1)}var a;r()}}},{key:"doLoadData",value:function(e,t){e&&(t?(this.deselectNodes(t),this.loadSubtree(e,t)):this.initTree(e),this.isDragging()&&this.dndHandler.refresh()),this._triggerEvent("tree.load_data",{tree_data:e,parent_node:t})}},{key:"deselectNodes",value:function(e){var t,n=k(this.selectNodeHandler.getSelectedNodesUnder(e));try{for(n.s();!(t=n.n()).done;){var i=t.value;this.selectNodeHandler.removeFromSelection(i)}}catch(e){n.e(e)}finally{n.f()}}},{key:"loadSubtree",value:function(e,t){t.loadFromData(e),t.load_on_demand=!1,t.is_loading=!1,this._refreshElements(t)}},{key:"doLoadDataFromUrl",value:function(e,t,n){var i=e||this.getDataUrlInfo(t);this.dataLoader.loadFromUrl(i,t,n)}},{key:"loadFolderOnDemand",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2?arguments[2]:void 0;e.is_loading=!0,this.doLoadDataFromUrl(null,e,(function(){t._openNode(e,n,i)}))}}]),o}(H);return a(Y,"defaults",{animationSpeed:"fast",autoEscape:!0,autoOpen:!1,buttonLeft:!0,closedIcon:void 0,data:void 0,dataFilter:void 0,dataUrl:void 0,dragAndDrop:!1,keyboardSupport:!0,nodeClass:I,onCanMove:void 0,onCanMoveTo:void 0,onCanSelectNode:void 0,onCreateLi:void 0,onDragMove:void 0,onDragStop:void 0,onGetStateFromStorage:void 0,onIsMoveHandle:void 0,onLoadFailed:void 0,onLoading:void 0,onSetStateFromStorage:void 0,openedIcon:"▼",openFolderDelay:500,rtl:void 0,saveState:!1,selectable:!0,showEmptyFolder:!1,slide:!0,startDndDelay:300,tabIndex:0,useContextMenu:!0}),L.register(Y,"tree"),e.JqTreeWidget=Y,e}({});
+var jqtree=function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function n(e){for(var n=1;ne.length)&&(t=e.length);for(var n=0,i=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function y(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var k=function(e){return e[e.Before=1]="Before",e[e.After=2]="After",e[e.Inside=3]="Inside",e[e.None=4]="None",e}({}),N={before:k.Before,after:k.After,inside:k.Inside,none:k.None},S=function(e){for(var t in N)if(Object.prototype.hasOwnProperty.call(N,t)&&N[t]===e)return t;return""},b=function(e){return"object"===i(e)&&"children"in e&&e.children instanceof Array},_=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;r(this,e),a(this,"id",void 0),a(this,"name",void 0),a(this,"children",void 0),a(this,"parent",void 0),a(this,"idMapping",void 0),a(this,"tree",void 0),a(this,"nodeClass",void 0),a(this,"load_on_demand",void 0),a(this,"is_open",void 0),a(this,"element",void 0),a(this,"is_loading",void 0),a(this,"isEmptyFolder",void 0),this.name="",this.isEmptyFolder=!1,this.load_on_demand=!1,this.setData(t),this.children=[],this.parent=null,n&&(this.idMapping=new Map,this.tree=this,this.nodeClass=i)}return s(e,[{key:"setData",value:function(e){if(e)if("string"==typeof e)this.name=e;else if("object"===i(e))for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var n=e[t];"label"===t||"name"===t?"string"==typeof n&&(this.name=n):"children"!==t&&"parent"!==t&&(this[t]=n)}}},{key:"loadFromData",value:function(e){this.removeChildren();var t,n=m(e);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=this.createNode(i);this.addChild(r),b(i)&&(0===i.children.length?r.isEmptyFolder=!0:r.loadFromData(i.children))}}catch(e){n.e(e)}finally{n.f()}return this}},{key:"addChild",value:function(e){this.children.push(e),e.setParent(this)}},{key:"addChildAtPosition",value:function(e,t){this.children.splice(t,0,e),e.setParent(this)}},{key:"removeChild",value:function(e){e.removeChildren(),this.doRemoveChild(e)}},{key:"getChildIndex",value:function(e){return this.children.indexOf(e)}},{key:"hasChildren",value:function(){return 0!==this.children.length}},{key:"isFolder",value:function(){return this.hasChildren()||this.load_on_demand}},{key:"iterate",value:function(e){!function t(n,i){if(n.children){var r,o=m(n.children);try{for(o.s();!(r=o.n()).done;){var s=r.value;e(s,i)&&s.hasChildren()&&t(s,i+1)}}catch(e){o.e(e)}finally{o.f()}}}(this,0)}},{key:"moveNode",value:function(e,t,n){if(!e.parent||e.isParentOf(t))return!1;switch(e.parent.doRemoveChild(e),n){case k.After:return!!t.parent&&(t.parent.addChildAtPosition(e,t.parent.getChildIndex(t)+1),!0);case k.Before:return!!t.parent&&(t.parent.addChildAtPosition(e,t.parent.getChildIndex(t)),!0);case k.Inside:return t.addChildAtPosition(e,0),!0;default:return!1}}},{key:"getData",value:function(){var e=function e(t){return t.map((function(t){var n={};for(var i in t)if(-1===["parent","children","element","idMapping","load_on_demand","nodeClass","tree","isEmptyFolder"].indexOf(i)&&Object.prototype.hasOwnProperty.call(t,i)){var r=t[i];n[i]=r}return t.hasChildren()&&(n.children=e(t.children)),n}))};return e(arguments.length>0&&void 0!==arguments[0]&&arguments[0]?[this]:this.children)}},{key:"getNodeByName",value:function(e){return this.getNodeByCallback((function(t){return t.name===e}))}},{key:"getNodeByNameMustExist",value:function(e){var t=this.getNodeByCallback((function(t){return t.name===e}));if(!t)throw"Node with name ".concat(e," not found");return t}},{key:"getNodeByCallback",value:function(e){var t=null;return this.iterate((function(n){return!t&&(!e(n)||(t=n,!1))})),t}},{key:"addAfter",value:function(e){if(this.parent){var t=this.createNode(e),n=this.parent.getChildIndex(this);return this.parent.addChildAtPosition(t,n+1),b(e)&&e.children.length&&t.loadFromData(e.children),t}return null}},{key:"addBefore",value:function(e){if(this.parent){var t=this.createNode(e),n=this.parent.getChildIndex(this);return this.parent.addChildAtPosition(t,n),b(e)&&e.children.length&&t.loadFromData(e.children),t}return null}},{key:"addParent",value:function(e){if(this.parent){var t=this.createNode(e);this.tree&&t.setParent(this.tree);var n,i=this.parent,r=m(i.children);try{for(r.s();!(n=r.n()).done;){var o=n.value;t.addChild(o)}}catch(e){r.e(e)}finally{r.f()}return i.children=[],i.addChild(t),t}return null}},{key:"remove",value:function(){this.parent&&(this.parent.removeChild(this),this.parent=null)}},{key:"append",value:function(e){var t=this.createNode(e);return this.addChild(t),b(e)&&e.children.length&&t.loadFromData(e.children),t}},{key:"prepend",value:function(e){var t=this.createNode(e);return this.addChildAtPosition(t,0),b(e)&&e.children.length&&t.loadFromData(e.children),t}},{key:"isParentOf",value:function(e){for(var t=e.parent;t;){if(t===this)return!0;t=t.parent}return!1}},{key:"getLevel",value:function(){for(var e=0,t=this;t.parent;)e+=1,t=t.parent;return e}},{key:"getNodeById",value:function(e){return this.idMapping.get(e)||null}},{key:"addNodeToIndex",value:function(e){null!=e.id&&this.idMapping.set(e.id,e)}},{key:"removeNodeFromIndex",value:function(e){null!=e.id&&this.idMapping.delete(e.id)}},{key:"removeChildren",value:function(){var e=this;this.iterate((function(t){var n;return null===(n=e.tree)||void 0===n||n.removeNodeFromIndex(t),!0})),this.children=[]}},{key:"getPreviousSibling",value:function(){if(this.parent){var e=this.parent.getChildIndex(this)-1;return e>=0&&this.parent.children[e]||null}return null}},{key:"getNextSibling",value:function(){if(this.parent){var e=this.parent.getChildIndex(this)+1;return e0&&void 0!==arguments[0])||arguments[0])&&this.hasChildren())return this.children[0]||null;if(this.parent){var e=this.getNextSibling();return e||this.parent.getNextNode(!1)}return null}},{key:"getNextVisibleNode",value:function(){if(this.hasChildren()&&this.is_open)return this.children[0]||null;if(this.parent){var e=this.getNextSibling();return e||this.parent.getNextNode(!1)}return null}},{key:"getPreviousNode",value:function(){if(this.parent){var e=this.getPreviousSibling();return e?e.hasChildren()?e.getLastChild():e:this.getParent()}return null}},{key:"getPreviousVisibleNode",value:function(){if(this.parent){var e=this.getPreviousSibling();return e?e.hasChildren()&&e.is_open?e.getLastChild():e:this.getParent()}return null}},{key:"getParent",value:function(){return this.parent&&this.parent.parent?this.parent:null}},{key:"getLastChild",value:function(){if(this.hasChildren()){var e=this.children[this.children.length-1];return e?e.hasChildren()&&e.is_open?null==e?void 0:e.getLastChild():e:null}return null}},{key:"initFromData",value:function(e){var t,n=this,i=function(e){var t,i=m(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=n.createNode();o.initFromData(r),n.addChild(o)}}catch(e){i.e(e)}finally{i.f()}};t=e,n.setData(t),b(t)&&t.children.length&&i(t.children)}},{key:"setParent",value:function(e){var t;this.parent=e,this.tree=e.tree,null===(t=this.tree)||void 0===t||t.addNodeToIndex(this)}},{key:"doRemoveChild",value:function(e){var t;this.children.splice(this.getChildIndex(e),1),null===(t=this.tree)||void 0===t||t.removeNodeFromIndex(e)}},{key:"getNodeClass",value:function(){var t;return this.nodeClass||(null==this||null===(t=this.tree)||void 0===t?void 0:t.nodeClass)||e}},{key:"createNode",value:function(e){return new(this.getNodeClass())(e)}}]),e}(),D=function(){function e(t){r(this,e),a(this,"hitAreas",void 0),a(this,"isDragging",void 0),a(this,"currentItem",void 0),a(this,"hoveredArea",void 0),a(this,"positionInfo",void 0),a(this,"treeWidget",void 0),a(this,"dragElement",void 0),a(this,"previousGhost",void 0),a(this,"openFolderTimer",void 0),this.treeWidget=t,this.hoveredArea=null,this.hitAreas=[],this.isDragging=!1,this.currentItem=null,this.positionInfo=null}return s(e,[{key:"mouseCapture",value:function(e){var t=jQuery(e.target);if(!this.mustCaptureElement(t))return null;if(this.treeWidget.options.onIsMoveHandle&&!this.treeWidget.options.onIsMoveHandle(t))return null;var n=this.treeWidget._getNodeElement(t);return n&&this.treeWidget.options.onCanMove&&(this.treeWidget.options.onCanMove(n.node)||(n=null)),this.currentItem=n,null!=this.currentItem}},{key:"mouseStart",value:function(e){var t;if(!this.currentItem||void 0===e.pageX||void 0===e.pageY)return!1;this.refresh();var n=jQuery(e.target).offset(),i=n?n.left:0,r=n?n.top:0,o=this.currentItem.node;return this.dragElement=new j(o.name,e.pageX-i,e.pageY-r,this.treeWidget.element,null===(t=this.treeWidget.options.autoEscape)||void 0===t||t),this.isDragging=!0,this.positionInfo=e,this.currentItem.$element.addClass("jqtree-moving"),!0}},{key:"mouseDrag",value:function(e){if(!this.currentItem||!this.dragElement||void 0===e.pageX||void 0===e.pageY)return!1;this.dragElement.move(e.pageX,e.pageY),this.positionInfo=e;var t=this.findHoveredArea(e.pageX,e.pageY);return t&&this.canMoveToArea(t)?(t.node.isFolder()||this.stopOpenFolderTimer(),this.hoveredArea!==t&&(this.hoveredArea=t,this.mustOpenFolderTimer(t)?this.startOpenFolderTimer(t.node):this.stopOpenFolderTimer(),this.updateDropHint())):(this.removeDropHint(),this.stopOpenFolderTimer(),this.hoveredArea=t),t||this.treeWidget.options.onDragMove&&this.treeWidget.options.onDragMove(this.currentItem.node,e.originalEvent),!0}},{key:"mouseStop",value:function(e){this.moveItem(e),this.clear(),this.removeHover(),this.removeDropHint(),this.removeHitAreas();var t=this.currentItem;return this.currentItem&&(this.currentItem.$element.removeClass("jqtree-moving"),this.currentItem=null),this.isDragging=!1,this.positionInfo=null,!this.hoveredArea&&t&&this.treeWidget.options.onDragStop&&this.treeWidget.options.onDragStop(t.node,e.originalEvent),!1}},{key:"refresh",value:function(){this.removeHitAreas(),this.currentItem&&(this.generateHitAreas(),this.currentItem=this.treeWidget._getNodeElementForNode(this.currentItem.node),this.isDragging&&this.currentItem.$element.addClass("jqtree-moving"))}},{key:"generateHitAreas",value:function(){if(this.currentItem){var e=new I(this.treeWidget.tree,this.currentItem.node,this.getTreeDimensions().bottom);this.hitAreas=e.generate()}else this.hitAreas=[]}},{key:"mustCaptureElement",value:function(e){return!e.is("input,select,textarea")}},{key:"canMoveToArea",value:function(e){if(!this.treeWidget.options.onCanMoveTo)return!0;if(!this.currentItem)return!1;var t=S(e.position);return this.treeWidget.options.onCanMoveTo(this.currentItem.node,e.node,t)}},{key:"removeHitAreas",value:function(){this.hitAreas=[]}},{key:"clear",value:function(){this.dragElement&&(this.dragElement.remove(),this.dragElement=null)}},{key:"removeDropHint",value:function(){this.previousGhost&&this.previousGhost.remove()}},{key:"removeHover",value:function(){this.hoveredArea=null}},{key:"findHoveredArea",value:function(e,t){var n=this.getTreeDimensions();if(en.right||t>n.bottom)return null;for(var i=0,r=this.hitAreas.length;i>1,s=this.hitAreas[o];if(!s)return null;if(ts.bottom))return s;i=o+1}}return null}},{key:"mustOpenFolderTimer",value:function(e){var t=e.node;return t.isFolder()&&!t.is_open&&e.position===k.Inside}},{key:"updateDropHint",value:function(){if(this.hoveredArea){this.removeDropHint();var e=this.treeWidget._getNodeElementForNode(this.hoveredArea.node);this.previousGhost=e.addDropHint(this.hoveredArea.position)}}},{key:"startOpenFolderTimer",value:function(e){var t=this;this.stopOpenFolderTimer();var n=this.treeWidget.options.openFolderDelay;!1!==n&&(this.openFolderTimer=window.setTimeout((function(){t.treeWidget._openNode(e,t.treeWidget.options.slide,(function(){t.refresh(),t.updateDropHint()}))}),n))}},{key:"stopOpenFolderTimer",value:function(){this.openFolderTimer&&(clearTimeout(this.openFolderTimer),this.openFolderTimer=null)}},{key:"moveItem",value:function(e){var t=this;if(this.currentItem&&this.hoveredArea&&this.hoveredArea.position!==k.None&&this.canMoveToArea(this.hoveredArea)){var n=this.currentItem.node,i=this.hoveredArea.node,r=this.hoveredArea.position,o=n.parent;r===k.Inside&&(this.hoveredArea.node.is_open=!0);var s=function(){t.treeWidget.tree.moveNode(n,i,r),t.treeWidget.element.empty(),t.treeWidget._refreshElements(null)};this.treeWidget._triggerEvent("tree.move",{move_info:{moved_node:n,target_node:i,position:S(r),previous_parent:o,do_move:s,original_event:e.originalEvent}}).isDefaultPrevented()||s()}}},{key:"getTreeDimensions",value:function(){var e=this.treeWidget.element.offset();if(e){var t=this.treeWidget.element,n=t.width()||0,i=t.height()||0,r=e.left+this.treeWidget._getScrollLeft();return{left:r,top:e.top,right:r+n,bottom:e.top+i+16}}return{left:0,top:0,right:0,bottom:0}}}]),e}(),I=function(e){l(n,e);var t=c(n);function n(e,i,o){var s;return r(this,n),a(h(s=t.call(this,e)),"currentNode",void 0),a(h(s),"treeBottom",void 0),a(h(s),"positions",void 0),a(h(s),"lastTop",void 0),s.currentNode=i,s.treeBottom=o,s}return s(n,[{key:"generate",value:function(){return this.positions=[],this.lastTop=0,this.iterate(),this.generateHitAreas(this.positions)}},{key:"generateHitAreas",value:function(e){var t,n=-1,i=[],r=[],o=m(e);try{for(o.s();!(t=o.n()).done;){var s=t.value;s.top!==n&&i.length&&(i.length&&this.generateHitAreasForGroup(r,i,n,s.top),n=s.top,i=[]),i.push(s)}}catch(e){o.e(e)}finally{o.f()}return this.generateHitAreasForGroup(r,i,n,this.treeBottom),r}},{key:"handleOpenFolder",value:function(e,t){return e!==this.currentNode&&(e.children[0]!==this.currentNode&&this.addPosition(e,k.Inside,this.getTop(t)),!0)}},{key:"handleClosedFolder",value:function(e,t,n){var i=this.getTop(n);e===this.currentNode?this.addPosition(e,k.None,i):(this.addPosition(e,k.Inside,i),t!==this.currentNode&&this.addPosition(e,k.After,i))}},{key:"handleFirstNode",value:function(e){e!==this.currentNode&&this.addPosition(e,k.Before,this.getTop(jQuery(e.element)))}},{key:"handleAfterOpenFolder",value:function(e,t){e===this.currentNode||t===this.currentNode?this.addPosition(e,k.None,this.lastTop):this.addPosition(e,k.After,this.lastTop)}},{key:"handleNode",value:function(e,t,n){var i=this.getTop(n);e===this.currentNode?this.addPosition(e,k.None,i):this.addPosition(e,k.Inside,i),t===this.currentNode||e===this.currentNode?this.addPosition(e,k.None,i):this.addPosition(e,k.After,i)}},{key:"getTop",value:function(e){var t=e.offset();return t?t.top:0}},{key:"addPosition",value:function(e,t,n){var i={top:n,bottom:0,node:e,position:t};this.positions.push(i),this.lastTop=n}},{key:"generateHitAreasForGroup",value:function(e,t,n,i){for(var r=Math.min(t.length,4),o=Math.round((i-n)/r),s=n,a=0;a").addClass("jqtree-title jqtree-dragging"),s?this.$element.text(t):this.$element.html(t),this.$element.css("position","absolute"),o.append(this.$element)}return s(e,[{key:"move",value:function(e,t){this.$element.offset({left:e-this.offsetX,top:t-this.offsetY})}},{key:"remove",value:function(){this.$element.remove()}}]),e}(),E=function(e){return e?"true":"false"},C=function(){function e(t){r(this,e),a(this,"openedIconElement",void 0),a(this,"closedIconElement",void 0),a(this,"treeWidget",void 0),this.treeWidget=t,this.openedIconElement=this.createButtonElement(t.options.openedIcon||"+"),this.closedIconElement=this.createButtonElement(t.options.closedIcon||"-")}return s(e,[{key:"render",value:function(e){e&&e.parent?this.renderFromNode(e):this.renderFromRoot()}},{key:"renderFromRoot",value:function(){var e=this.treeWidget.element;e.empty(),e[0]&&this.createDomElements(e[0],this.treeWidget.tree.children,!0,1)}},{key:"renderFromNode",value:function(e){var t=jQuery(e.element),n=this.createLi(e,e.getLevel());this.attachNodeData(e,n),t.after(n),t.remove(),e.children&&this.createDomElements(n,e.children,!1,e.getLevel()+1)}},{key:"createDomElements",value:function(e,t,n,i){var r=this.createUl(n);e.appendChild(r);var o,s=m(t);try{for(s.s();!(o=s.n()).done;){var a=o.value,l=this.createLi(a,i);r.appendChild(l),this.attachNodeData(a,l),a.hasChildren()&&this.createDomElements(l,a.children,!1,i+1)}}catch(e){s.e(e)}finally{s.f()}}},{key:"attachNodeData",value:function(e,t){e.element=t,jQuery(t).data("node",e)}},{key:"createUl",value:function(e){var t,n;e?(t="jqtree-tree",n="tree",this.treeWidget.options.rtl&&(t+=" jqtree-rtl")):(t="",n="group"),this.treeWidget.options.dragAndDrop&&(t+=" jqtree-dnd");var i=document.createElement("ul");return i.className="jqtree_common ".concat(t),i.setAttribute("role",n),i}},{key:"createLi",value:function(e,t){var n=Boolean(this.treeWidget.selectNodeHandler.isNodeSelected(e)),i=e.isFolder()||e.isEmptyFolder&&this.treeWidget.options.showEmptyFolder?this.createFolderLi(e,t,n):this.createNodeLi(e,t,n);return this.treeWidget.options.onCreateLi&&this.treeWidget.options.onCreateLi(e,jQuery(i),n),i}},{key:"setTreeItemAriaAttributes",value:function(e,t,n,i){e.setAttribute("aria-label",t),e.setAttribute("aria-level","".concat(n)),e.setAttribute("aria-selected",E(i)),e.setAttribute("role","treeitem")}},{key:"createFolderLi",value:function(e,t,n){var i=this.getButtonClasses(e),r=this.getFolderClasses(e,n),o=e.is_open?this.openedIconElement:this.closedIconElement,s=document.createElement("li");s.className="jqtree_common ".concat(r),s.setAttribute("role","none");var a=document.createElement("div");a.className="jqtree-element jqtree_common",a.setAttribute("role","none"),s.appendChild(a);var l=document.createElement("a");l.className=i,o&&l.appendChild(o.cloneNode(!0)),this.treeWidget.options.buttonLeft&&a.appendChild(l);var d=this.createTitleSpan(e.name,n,!0,t);return d.setAttribute("aria-expanded",E(e.is_open)),a.appendChild(d),this.treeWidget.options.buttonLeft||a.appendChild(l),s}},{key:"createNodeLi",value:function(e,t,n){var i=["jqtree_common"];n&&i.push("jqtree-selected");var r=i.join(" "),o=document.createElement("li");o.className=r,o.setAttribute("role","none");var s=document.createElement("div");s.className="jqtree-element jqtree_common",s.setAttribute("role","none"),o.appendChild(s);var a=this.createTitleSpan(e.name,n,!1,t);return s.appendChild(a),o}},{key:"createTitleSpan",value:function(e,t,n,i){var r=document.createElement("span"),o="jqtree-title jqtree_common";if(n&&(o+=" jqtree-title-folder"),o+=" jqtree-title-button-".concat(this.treeWidget.options.buttonLeft?"left":"right"),r.className=o,t){var s=this.treeWidget.options.tabIndex;void 0!==s&&r.setAttribute("tabindex","".concat(s))}return this.setTreeItemAriaAttributes(r,e,i,t),this.treeWidget.options.autoEscape?r.textContent=e:r.innerHTML=e,r}},{key:"getButtonClasses",value:function(e){var t=["jqtree-toggler","jqtree_common"];return e.is_open||t.push("jqtree-closed"),this.treeWidget.options.buttonLeft?t.push("jqtree-toggler-left"):t.push("jqtree-toggler-right"),t.join(" ")}},{key:"getFolderClasses",value:function(e,t){var n=["jqtree-folder"];return e.is_open||n.push("jqtree-closed"),t&&n.push("jqtree-selected"),e.is_loading&&n.push("jqtree-loading"),n.join(" ")}},{key:"createButtonElement",value:function(e){if("string"==typeof e){var t=document.createElement("div");return t.innerHTML=e,document.createTextNode(t.innerHTML)}return jQuery(e)[0]}}]),e}(),w=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),this.treeWidget=t}return s(e,[{key:"loadFromUrl",value:function(e,t,n){var i=this;if(e){var r=this.getDomElement(t);this.addLoadingClass(r),this.notifyLoading(!0,t,r);var o=function(){i.removeLoadingClass(r),i.notifyLoading(!1,t,r)};this.submitRequest(e,(function(e){o(),i.treeWidget.loadData(i.parseData(e),t),n&&"function"==typeof n&&n()}),(function(e){o(),i.treeWidget.options.onLoadFailed&&i.treeWidget.options.onLoadFailed(e)}))}}},{key:"addLoadingClass",value:function(e){e&&e.addClass("jqtree-loading")}},{key:"removeLoadingClass",value:function(e){e&&e.removeClass("jqtree-loading")}},{key:"getDomElement",value:function(e){return e?jQuery(e.element):this.treeWidget.element}},{key:"notifyLoading",value:function(e,t,n){this.treeWidget.options.onLoading&&this.treeWidget.options.onLoading(e,t,n),this.treeWidget._triggerEvent("tree.loading_data",{isLoading:e,node:t,$el:n})}},{key:"submitRequest",value:function(e,t,i){var r,o=n({method:"GET",cache:!1,dataType:"json",success:t,error:i},"string"==typeof e?{url:e}:e);o.method=(null===(r=o.method)||void 0===r?void 0:r.toUpperCase())||"GET",jQuery.ajax(o)}},{key:"parseData",value:function(e){var t=this.treeWidget.options.dataFilter,n="string"==typeof e?JSON.parse(e):e;return t?t(n):n}}]),e}(),F=function(){function e(t){var n=this;r(this,e),a(this,"treeWidget",void 0),a(this,"handleKeyDown",(function(t){if(!n.canHandleKeyboard())return!0;var i=n.treeWidget.getSelectedNode();if(!i)return!0;switch(t.which){case e.DOWN:return n.moveDown(i);case e.UP:return n.moveUp(i);case e.RIGHT:return n.moveRight(i);case e.LEFT:return n.moveLeft(i);default:return!0}})),this.treeWidget=t,t.options.keyboardSupport&&jQuery(document).on("keydown.jqtree",this.handleKeyDown)}return s(e,[{key:"deinit",value:function(){jQuery(document).off("keydown.jqtree")}},{key:"moveDown",value:function(e){return this.selectNode(e.getNextVisibleNode())}},{key:"moveUp",value:function(e){return this.selectNode(e.getPreviousVisibleNode())}},{key:"moveRight",value:function(e){return!e.isFolder()||(e.is_open?this.selectNode(e.getNextVisibleNode()):(this.treeWidget.openNode(e),!1))}},{key:"moveLeft",value:function(e){return e.isFolder()&&e.is_open?(this.treeWidget.closeNode(e),!1):this.selectNode(e.getParent())}},{key:"selectNode",value:function(e){return!e||(this.treeWidget.selectNode(e),this.treeWidget.scrollHandler.isScrolledIntoView(jQuery(e.element).find(".jqtree-element"))||this.treeWidget.scrollToNode(e),!1)}},{key:"canHandleKeyboard",value:function(){return!!this.treeWidget.options.keyboardSupport&&this.treeWidget.selectNodeHandler.isFocusOnTree()}}]),e}();a(F,"LEFT",37),a(F,"UP",38),a(F,"RIGHT",39),a(F,"DOWN",40);var W=function(e,t){var n=function(){return"simple_widget_".concat(t)},r=function(e,t){var n=jQuery.data(e,t);return n&&n instanceof T?n:null},o=function(t,i){var o,s=n(),a=m(t.get());try{for(a.s();!(o=a.n()).done;){var l=o.value;if(!r(l,s)){var d=new e(l,i);jQuery.data(l,s)||jQuery.data(l,s,d),d.init()}}}catch(e){a.e(e)}finally{a.f()}return t};jQuery.fn[t]=function(t){if(!t)return o(this,null);if("object"===i(t))return o(this,t);if("string"==typeof t&&"_"!==t[0]){var s=t;if("destroy"===s)return function(e){var t,i=n(),o=m(e.get());try{for(o.s();!(t=o.n()).done;){var s=t.value,a=r(s,i);a&&a.destroy(),jQuery.removeData(s,i)}}catch(e){o.e(e)}finally{o.f()}}(this);if("get_widget_class"===s)return e;for(var a=arguments.length,l=new Array(a>1?a-1:0),d=1;d1)){var n=t.changedTouches[0];n&&e.handleMouseDown(A(n,t))}})),a(h(e),"touchMove",(function(t){if(t&&!(t.touches.length>1)){var n=t.changedTouches[0];n&&e.handleMouseMove(t,A(n,t))}})),a(h(e),"touchEnd",(function(t){if(t&&!(t.touches.length>1)){var n=t.changedTouches[0];n&&e.handleMouseUp(A(n,t))}})),e}return s(n,[{key:"init",value:function(){var e=this.$el.get(0);e&&(e.addEventListener("mousedown",this.mouseDown,{passive:!1}),e.addEventListener("touchstart",this.touchStart,{passive:!1})),this.isMouseStarted=!1,this.mouseDelayTimer=null,this.isMouseDelayMet=!1,this.mouseDownInfo=null}},{key:"deinit",value:function(){var e=this.$el.get(0);e&&(e.removeEventListener("mousedown",this.mouseDown,{passive:!1}),e.removeEventListener("touchstart",this.touchStart,{passive:!1})),this.removeMouseMoveEventListeners()}},{key:"handleMouseDown",value:function(e){return this.isMouseStarted&&this.handleMouseUp(e),this.mouseDownInfo=e,!!this.mouseCapture(e)&&(this.handleStartMouse(),!0)}},{key:"handleStartMouse",value:function(){document.addEventListener("mousemove",this.mouseMove,{passive:!1}),document.addEventListener("touchmove",this.touchMove,{passive:!1}),document.addEventListener("mouseup",this.mouseUp,{passive:!1}),document.addEventListener("touchend",this.touchEnd,{passive:!1});var e=this.getMouseDelay();e?this.startMouseDelayTimer(e):this.isMouseDelayMet=!0}},{key:"startMouseDelayTimer",value:function(e){var t=this;this.mouseDelayTimer&&clearTimeout(this.mouseDelayTimer),this.mouseDelayTimer=window.setTimeout((function(){t.mouseDownInfo&&(t.isMouseDelayMet=!0)}),e),this.isMouseDelayMet=!1}},{key:"handleMouseMove",value:function(e,t){if(this.isMouseStarted)return this.mouseDrag(t),void(e.cancelable&&e.preventDefault());this.isMouseDelayMet&&(this.mouseDownInfo&&(this.isMouseStarted=!1!==this.mouseStart(this.mouseDownInfo)),this.isMouseStarted?(this.mouseDrag(t),e.cancelable&&e.preventDefault()):this.handleMouseUp(t))}},{key:"handleMouseUp",value:function(e){this.removeMouseMoveEventListeners(),this.isMouseDelayMet=!1,this.mouseDownInfo=null,this.isMouseStarted&&(this.isMouseStarted=!1,this.mouseStop(e))}},{key:"removeMouseMoveEventListeners",value:function(){document.removeEventListener("mousemove",this.mouseMove,{passive:!1}),document.removeEventListener("touchmove",this.touchMove,{passive:!1}),document.removeEventListener("mouseup",this.mouseUp,{passive:!1}),document.removeEventListener("touchend",this.touchEnd,{passive:!1})}}]),n}(T),O=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),a(this,"_supportsLocalStorage",void 0),this.treeWidget=t}return s(e,[{key:"saveState",value:function(){var e=JSON.stringify(this.getState());this.treeWidget.options.onSetStateFromStorage?this.treeWidget.options.onSetStateFromStorage(e):this.supportsLocalStorage()&&localStorage.setItem(this.getKeyName(),e)}},{key:"getStateFromStorage",value:function(){var e=this.loadFromStorage();return e?this.parseState(e):null}},{key:"getState",value:function(){var e,t,n=this;return{open_nodes:(t=[],n.treeWidget.tree.iterate((function(e){return e.is_open&&e.id&&e.hasChildren()&&t.push(e.id),!0})),t),selected_node:(e=[],n.treeWidget.getSelectedNodes().forEach((function(t){null!=t.id&&e.push(t.id)})),e)}}},{key:"setInitialState",value:function(e){if(e){var t=!1;return e.open_nodes&&(t=this.openInitialNodes(e.open_nodes)),e.selected_node&&(this.resetSelection(),this.selectInitialNodes(e.selected_node)),t}return!1}},{key:"setInitialStateOnDemand",value:function(e,t){e?this.doSetInitialStateOnDemand(e.open_nodes,e.selected_node,t):t()}},{key:"getNodeIdToBeSelected",value:function(){var e=this.getStateFromStorage();return e&&e.selected_node&&e.selected_node[0]||null}},{key:"parseState",value:function(e){var t,n=JSON.parse(e);return n&&n.selected_node&&("number"==typeof(t=n.selected_node)&&t%1==0)&&(n.selected_node=[n.selected_node]),n}},{key:"loadFromStorage",value:function(){return this.treeWidget.options.onGetStateFromStorage?this.treeWidget.options.onGetStateFromStorage():this.supportsLocalStorage()?localStorage.getItem(this.getKeyName()):null}},{key:"openInitialNodes",value:function(e){var t,n=!1,i=m(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=this.treeWidget.getNodeById(r);o&&(o.load_on_demand?n=!0:o.is_open=!0)}}catch(e){i.e(e)}finally{i.f()}return n}},{key:"selectInitialNodes",value:function(e){var t,n=0,i=m(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=this.treeWidget.getNodeById(r);o&&(n+=1,this.treeWidget.selectNodeHandler.addToSelection(o))}}catch(e){i.e(e)}finally{i.f()}return 0!==n}},{key:"resetSelection",value:function(){var e=this.treeWidget.selectNodeHandler;e.getSelectedNodes().forEach((function(t){e.removeFromSelection(t)}))}},{key:"doSetInitialStateOnDemand",value:function(e,t,n){var i=this,r=0,o=e,s=function(){var e,s=[],l=m(o);try{for(l.s();!(e=l.n()).done;){var d=e.value,u=i.treeWidget.getNodeById(d);u?u.is_loading||(u.load_on_demand?a(u):i.treeWidget._openNode(u,!1,null)):s.push(d)}}catch(e){l.e(e)}finally{l.f()}o=s,i.selectInitialNodes(t)&&i.treeWidget._refreshElements(null),0===r&&n()},a=function(e){r+=1,i.treeWidget._openNode(e,!1,(function(){r-=1,s()}))};s()}},{key:"getKeyName",value:function(){return"string"==typeof this.treeWidget.options.saveState?this.treeWidget.options.saveState:"tree"}},{key:"supportsLocalStorage",value:function(){return null==this._supportsLocalStorage&&(this._supportsLocalStorage=function(){if(null==localStorage)return!1;try{var e="_storage_test";sessionStorage.setItem(e,"value"),sessionStorage.removeItem(e)}catch(e){return!1}return!0}()),this._supportsLocalStorage}}]),e}(),H=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),a(this,"previousTop",void 0),a(this,"isInitialized",void 0),a(this,"$scrollParent",void 0),a(this,"scrollParentTop",void 0),this.treeWidget=t,this.previousTop=-1,this.isInitialized=!1}return s(e,[{key:"checkScrolling",value:function(){this.ensureInit(),this.checkVerticalScrolling(),this.checkHorizontalScrolling()}},{key:"scrollToY",value:function(e){if(this.ensureInit(),this.$scrollParent&&this.$scrollParent[0])this.$scrollParent[0].scrollTop=e;else{var t=this.treeWidget.$el.offset(),n=t?t.top:0;jQuery(document).scrollTop(e+n)}}},{key:"isScrolledIntoView",value:function(e){var t,n,i,r;this.ensureInit();var o=e.height()||0;if(this.$scrollParent){r=0,n=this.$scrollParent.height()||0;var s=e.offset();t=(i=(s?s.top:0)-this.scrollParentTop)+o}else{n=(r=jQuery(window).scrollTop()||0)+(jQuery(window).height()||0);var a=e.offset();t=(i=a?a.top:0)+o}return t<=n&&i>=r}},{key:"getScrollLeft",value:function(){return this.$scrollParent&&this.$scrollParent.scrollLeft()||0}},{key:"initScrollParent",value:function(){var e,t=this,n=function(){t.scrollParentTop=0,t.$scrollParent=null};"fixed"===this.treeWidget.$el.css("position")&&n();var i=function(){var e=["overflow","overflow-y"],n=function(t){for(var n=0,i=e;n0,s=n.left+i.clientWidth,a=n.left,l=e.pageX>s-20,d=e.pageX0,o=e.pageX>i-20,s=e.pageX-n<20;o?t.scrollLeft(n+20):s&&r&&t.scrollLeft(Math.max(n-20,0))}}}]),e}(),M=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),a(this,"selectedNodes",void 0),a(this,"selectedSingleNode",void 0),this.treeWidget=t,this.selectedNodes=new Set,this.clear()}return s(e,[{key:"getSelectedNode",value:function(){var e=this.getSelectedNodes();return e.length&&e[0]||!1}},{key:"getSelectedNodes",value:function(){var e=this;if(this.selectedSingleNode)return[this.selectedSingleNode];var t=[];return this.selectedNodes.forEach((function(n){var i=e.treeWidget.getNodeById(n);i&&t.push(i)})),t}},{key:"getSelectedNodesUnder",value:function(e){if(this.selectedSingleNode)return e.isParentOf(this.selectedSingleNode)?[this.selectedSingleNode]:[];var t=[];for(var n in this.selectedNodes)if(Object.prototype.hasOwnProperty.call(this.selectedNodes,n)){var i=this.treeWidget.getNodeById(n);i&&e.isParentOf(i)&&t.push(i)}return t}},{key:"isNodeSelected",value:function(e){return null!=e.id?this.selectedNodes.has(e.id):!!this.selectedSingleNode&&this.selectedSingleNode.element===e.element}},{key:"clear",value:function(){this.selectedNodes.clear(),this.selectedSingleNode=null}},{key:"removeFromSelection",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];null==e.id?this.selectedSingleNode&&e.element===this.selectedSingleNode.element&&(this.selectedSingleNode=null):(this.selectedNodes.delete(e.id),n&&e.iterate((function(){return null!=e.id&&t.selectedNodes.delete(e.id),!0})))}},{key:"addToSelection",value:function(e){null!=e.id?this.selectedNodes.add(e.id):this.selectedSingleNode=e}},{key:"isFocusOnTree",value:function(){var e=document.activeElement;return Boolean(e&&"SPAN"===e.tagName&&this.treeWidget._containsElement(e))}}]),e}(),x=function(){function e(t,n){r(this,e),a(this,"node",void 0),a(this,"$element",void 0),a(this,"treeWidget",void 0),this.init(t,n)}return s(e,[{key:"init",value:function(e,t){if(this.node=e,this.treeWidget=t,!e.element){var n=this.treeWidget.element.get(0);n&&(e.element=n)}e.element&&(this.$element=jQuery(e.element))}},{key:"addDropHint",value:function(e){return this.mustShowBorderDropHint(e)?new q(this.$element,this.treeWidget._getScrollLeft()):new B(this.node,this.$element,e)}},{key:"select",value:function(e){var t;this.getLi().addClass("jqtree-selected");var n=this.getSpan();n.attr("tabindex",null!==(t=this.treeWidget.options.tabIndex)&&void 0!==t?t:null),n.attr("aria-selected","true"),e&&n.trigger("focus")}},{key:"deselect",value:function(){this.getLi().removeClass("jqtree-selected");var e=this.getSpan();e.removeAttr("tabindex"),e.attr("aria-selected","false"),e.trigger("blur")}},{key:"getUl",value:function(){return this.$element.children("ul:first")}},{key:"getSpan",value:function(){return this.$element.children(".jqtree-element").find("span.jqtree-title")}},{key:"getLi",value:function(){return this.$element}},{key:"mustShowBorderDropHint",value:function(e){return e===k.Inside}}]),e}(),$=function(e){l(n,e);var t=c(n);function n(){return r(this,n),t.apply(this,arguments)}return s(n,[{key:"open",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"fast";if(!this.node.is_open){this.node.is_open=!0;var r=this.getButton();r.removeClass("jqtree-closed"),r.html("");var o=r.get(0);if(o){var s=this.treeWidget.renderer.openedIconElement;if(s){var a=s.cloneNode(!0);o.appendChild(a)}}var l=function(){t.getLi().removeClass("jqtree-closed"),t.getSpan().attr("aria-expanded","true"),e&&e(t.node),t.treeWidget._triggerEvent("tree.open",{node:t.node})};n?this.getUl().slideDown(i,l):(this.getUl().show(),l())}}},{key:"close",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"fast";if(this.node.is_open){this.node.is_open=!1;var i=this.getButton();i.addClass("jqtree-closed"),i.html("");var r=i.get(0);if(r){var o=this.treeWidget.renderer.closedIconElement;if(o){var s=o.cloneNode(!0);r.appendChild(s)}}var a=function(){e.getLi().addClass("jqtree-closed"),e.getSpan().attr("aria-expanded","false"),e.treeWidget._triggerEvent("tree.close",{node:e.node})};t?this.getUl().slideUp(n,a):(this.getUl().hide(),a())}}},{key:"mustShowBorderDropHint",value:function(e){return!this.node.is_open&&e===k.Inside}},{key:"getButton",value:function(){return this.$element.children(".jqtree-element").find("a.jqtree-toggler")}}]),n}(x),q=function(){function e(t,n){r(this,e),a(this,"$hint",void 0);var i=t.children(".jqtree-element"),o=t.width()||0,s=Math.max(o+n-4,0),l=i.outerHeight()||0,d=Math.max(l-4,0);this.$hint=jQuery(''),i.append(this.$hint),this.$hint.css({width:s,height:d})}return s(e,[{key:"remove",value:function(){this.$hint.remove()}}]),e}(),B=function(){function e(t,n,i){r(this,e),a(this,"$element",void 0),a(this,"node",void 0),a(this,"$ghost",void 0),this.$element=n,this.node=t,this.$ghost=jQuery('\n '),i===k.After?this.moveAfter():i===k.Before?this.moveBefore():i===k.Inside&&(t.isFolder()&&t.is_open?this.moveInsideOpenFolder():this.moveInside())}return s(e,[{key:"remove",value:function(){this.$ghost.remove()}},{key:"moveAfter",value:function(){this.$element.after(this.$ghost)}},{key:"moveBefore",value:function(){this.$element.before(this.$ghost)}},{key:"moveInsideOpenFolder",value:function(){var e,t=null===(e=this.node.children[0])||void 0===e?void 0:e.element;t&&jQuery(t).before(this.$ghost)}},{key:"moveInside",value:function(){this.$element.after(this.$ghost),this.$ghost.addClass("jqtree-inside")}}]),e}(),Q="Node parameter is empty",U="Parameter is empty: ",R=function(e){l(o,e);var t=c(o);function o(){var e;r(this,o);for(var n=arguments.length,i=new Array(n),s=0;s1&&void 0!==arguments[1]?arguments[1]:null;if(!e)throw Error(Q);var n=null!=t?t:this.options.slide;return e.is_open?this.closeNode(e,n):this.openNode(e,n),this.element}},{key:"getTree",value:function(){return this.tree}},{key:"selectNode",value:function(e,t){return this.doSelectNode(e,t),this.element}},{key:"getSelectedNode",value:function(){return this.selectNodeHandler.getSelectedNode()}},{key:"toJson",value:function(){return JSON.stringify(this.tree.getData())}},{key:"loadData",value:function(e,t){return this.doLoadData(e,t),this.element}},{key:"loadDataFromUrl",value:function(e,t,n){return"string"==typeof e?this.doLoadDataFromUrl(e,t,null!=n?n:null):this.doLoadDataFromUrl(null,e,t),this.element}},{key:"reload",value:function(e){return this.doLoadDataFromUrl(null,null,e),this.element}},{key:"refresh",value:function(){return this._refreshElements(null),this.element}},{key:"getNodeById",value:function(e){return this.tree.getNodeById(e)}},{key:"getNodeByName",value:function(e){return this.tree.getNodeByName(e)}},{key:"getNodeByNameMustExist",value:function(e){return this.tree.getNodeByNameMustExist(e)}},{key:"getNodesByProperty",value:function(e,t){return this.tree.getNodesByProperty(e,t)}},{key:"getNodeByHtmlElement",value:function(e){return this.getNode(jQuery(e))}},{key:"getNodeByCallback",value:function(e){return this.tree.getNodeByCallback(e)}},{key:"openNode",value:function(e,t,n){var i=this;if(!e)throw Error(Q);var r=function(){var e,r,o;("function"==typeof t?(e=t,r=null):(r=t,e=n),null==r)&&(r=null!==(o=i.options.slide)&&void 0!==o&&o);return[r,e]}(),o=f(r,2),s=o[0],a=o[1];return this._openNode(e,s,a),this.element}},{key:"closeNode",value:function(e,t){if(!e)throw Error(Q);var n=null!=t?t:this.options.slide;return(e.isFolder()||e.isEmptyFolder)&&(new $(e,this).close(n,this.options.animationSpeed),this.saveState()),this.element}},{key:"isDragging",value:function(){return this.dndHandler.isDragging}},{key:"refreshHitAreas",value:function(){return this.dndHandler.refresh(),this.element}},{key:"addNodeAfter",value:function(e,t){var n=t.addAfter(e);return n&&this._refreshElements(t.parent),n}},{key:"addNodeBefore",value:function(e,t){if(!t)throw Error(U+"existingNode");var n=t.addBefore(e);return n&&this._refreshElements(t.parent),n}},{key:"addParentNode",value:function(e,t){if(!t)throw Error(U+"existingNode");var n=t.addParent(e);return n&&this._refreshElements(n.parent),n}},{key:"removeNode",value:function(e){if(!e)throw Error(Q);if(!e.parent)throw Error("Node has no parent");this.selectNodeHandler.removeFromSelection(e,!0);var t=e.parent;return e.remove(),this._refreshElements(t),this.element}},{key:"appendNode",value:function(e,t){var n=t||this.tree,i=n.append(e);return this._refreshElements(n),i}},{key:"prependNode",value:function(e,t){var n=null!=t?t:this.tree,i=n.prepend(e);return this._refreshElements(n),i}},{key:"updateNode",value:function(e,t){if(!e)throw Error(Q);var n="object"===i(t)&&t.id&&t.id!==e.id;return n&&this.tree.removeNodeFromIndex(e),e.setData(t),n&&this.tree.addNodeToIndex(e),"object"===i(t)&&t.children&&t.children instanceof Array&&(e.removeChildren(),t.children.length&&e.loadFromData(t.children)),this._refreshElements(e),this.element}},{key:"isSelectedNodeInSubtree",value:function(e){var t=this.getSelectedNode();return!!t&&(e===t||e.isParentOf(t))}},{key:"moveNode",value:function(e,t,n){if(!e)throw Error(Q);if(!t)throw Error(U+"targetNode");var i=N[n];return void 0!==i&&(this.tree.moveNode(e,t,i),this._refreshElements(null)),this.element}},{key:"getStateFromStorage",value:function(){return this.saveStateHandler.getStateFromStorage()}},{key:"addToSelection",value:function(e,t){if(!e)throw Error(Q);return this.selectNodeHandler.addToSelection(e),this._getNodeElementForNode(e).select(void 0===t||t),this.saveState(),this.element}},{key:"getSelectedNodes",value:function(){return this.selectNodeHandler.getSelectedNodes()}},{key:"isNodeSelected",value:function(e){if(!e)throw Error(Q);return this.selectNodeHandler.isNodeSelected(e)}},{key:"removeFromSelection",value:function(e){if(!e)throw Error(Q);return this.selectNodeHandler.removeFromSelection(e),this._getNodeElementForNode(e).deselect(),this.saveState(),this.element}},{key:"scrollToNode",value:function(e){if(!e)throw Error(Q);var t=jQuery(e.element).offset(),n=t?t.top:0,i=this.$el.offset(),r=n-(i?i.top:0);return this.scrollHandler.scrollToY(r),this.element}},{key:"getState",value:function(){return this.saveStateHandler.getState()}},{key:"setState",value:function(e){return this.saveStateHandler.setInitialState(e),this._refreshElements(null),this.element}},{key:"setOption",value:function(e,t){return this.options[e]=t,this.element}},{key:"moveDown",value:function(){var e=this.getSelectedNode();return e&&this.keyHandler.moveDown(e),this.element}},{key:"moveUp",value:function(){var e=this.getSelectedNode();return e&&this.keyHandler.moveUp(e),this.element}},{key:"getVersion",value:function(){return"1.7.1"}},{key:"_triggerEvent",value:function(e,t){var n=jQuery.Event(e,t);return this.element.trigger(n),n}},{key:"_openNode",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2?arguments[2]:void 0,r=function(e,n,i){new $(e,t).open(i,n,t.options.animationSpeed)};if(e.isFolder()||e.isEmptyFolder)if(e.load_on_demand)this.loadFolderOnDemand(e,n,i);else{for(var o=e.parent;o;)o.parent&&r(o,!1,null),o=o.parent;r(e,n,i),this.saveState()}}},{key:"_refreshElements",value:function(e){var t=this.selectNodeHandler.isFocusOnTree(),n=!!e&&this.isSelectedNodeInSubtree(e);this.renderer.render(e),n&&this.selectCurrentNode(t),this._triggerEvent("tree.refresh")}},{key:"_getNodeElementForNode",value:function(e){return e.isFolder()?new $(e,this):new x(e,this)}},{key:"_getNodeElement",value:function(e){var t=this.getNode(e);return t?this._getNodeElementForNode(t):null}},{key:"_containsElement",value:function(e){var t=this.getNode(jQuery(e));return null!=t&&t.tree===this.tree}},{key:"_getScrollLeft",value:function(){return this.scrollHandler.getScrollLeft()}},{key:"init",value:function(){v(d(o.prototype),"init",this).call(this),this.element=this.$el,this.isInitialized=!1,this.options.rtl=this.getRtlOption(),null==this.options.closedIcon&&(this.options.closedIcon=this.getDefaultClosedIcon()),this.renderer=new C(this),this.dataLoader=new w(this),this.saveStateHandler=new O(this),this.selectNodeHandler=new M(this),this.dndHandler=new D(this),this.scrollHandler=new H(this),this.keyHandler=new F(this),this.initData(),this.element.on("click",this.handleClick),this.element.on("dblclick",this.handleDblclick),this.options.useContextMenu&&this.element.on("contextmenu",this.handleContextmenu)}},{key:"deinit",value:function(){this.element.empty(),this.element.off(),this.keyHandler.deinit(),this.tree=new _({},!0),v(d(o.prototype),"deinit",this).call(this)}},{key:"mouseCapture",value:function(e){return!!this.options.dragAndDrop&&this.dndHandler.mouseCapture(e)}},{key:"mouseStart",value:function(e){return!!this.options.dragAndDrop&&this.dndHandler.mouseStart(e)}},{key:"mouseDrag",value:function(e){if(this.options.dragAndDrop){var t=this.dndHandler.mouseDrag(e);return this.scrollHandler.checkScrolling(),t}return!1}},{key:"mouseStop",value:function(e){return!!this.options.dragAndDrop&&this.dndHandler.mouseStop(e)}},{key:"getMouseDelay",value:function(){var e;return null!==(e=this.options.startDndDelay)&&void 0!==e?e:0}},{key:"initData",value:function(){this.options.data?this.doLoadData(this.options.data,null):this.getDataUrlInfo(null)?this.doLoadDataFromUrl(null,null,null):this.doLoadData([],null)}},{key:"getDataUrlInfo",value:function(e){var t,n=this,r=this.options.dataUrl||this.element.data("url"),o=function(t){if(null!=e&&e.id){var i={node:e.id};t.data=i}else{var r=n.getNodeIdToBeSelected();if(r){var o={selected_node:r};t.data=o}}};return"function"==typeof r?r(e):"string"==typeof r?(o(t={url:r}),t):r&&"object"===i(r)?(o(r),r):null}},{key:"getNodeIdToBeSelected",value:function(){return this.options.saveState?this.saveStateHandler.getNodeIdToBeSelected():null}},{key:"initTree",value:function(e){var t=this,n=function(){t.isInitialized||(t.isInitialized=!0,t._triggerEvent("tree.init"))};if(this.options.nodeClass){this.tree=new this.options.nodeClass(null,!0,this.options.nodeClass),this.selectNodeHandler.clear(),this.tree.loadFromData(e);var i=this.setInitialState();this._refreshElements(null),i?this.setInitialStateOnDemand(n):n()}}},{key:"setInitialState",value:function(){var e=this,t=f(function(){if(e.options.saveState){var t=e.saveStateHandler.getStateFromStorage();return t?[!0,e.saveStateHandler.setInitialState(t)]:[!1,!1]}return[!1,!1]}(),2),n=t[0],i=t[1];return n||(i=function(){if(!1===e.options.autoOpen)return!1;var t=e.getAutoOpenMaxLevel(),n=!1;return e.tree.iterate((function(e,i){return e.load_on_demand?(n=!0,!1):!!e.hasChildren()&&(e.is_open=!0,i!==t)})),n}()),i}},{key:"setInitialStateOnDemand",value:function(e){var t,n,i,r,o=this;(function(){if(o.options.saveState){var t=o.saveStateHandler.getStateFromStorage();return!!t&&(o.saveStateHandler.setInitialStateOnDemand(t,e),!0)}return!1})()||(t=o.getAutoOpenMaxLevel(),n=0,i=function(e){n+=1,o._openNode(e,!1,(function(){n-=1,r()}))},(r=function(){o.tree.iterate((function(e,n){return e.load_on_demand?(e.is_loading||i(e),!1):(o._openNode(e,!1,null),n!==t)})),0===n&&e()})())}},{key:"getAutoOpenMaxLevel",value:function(){return!0===this.options.autoOpen?-1:"number"==typeof this.options.autoOpen?this.options.autoOpen:"string"==typeof this.options.autoOpen?parseInt(this.options.autoOpen,10):0}},{key:"getClickTarget",value:function(e){var t=jQuery(e),n=t.closest(".jqtree-toggler");if(n.length){var i=this.getNode(n);if(i)return{type:"button",node:i}}else{var r=t.closest(".jqtree-element");if(r.length){var o=this.getNode(r);if(o)return{type:"label",node:o}}}return null}},{key:"getNode",value:function(e){var t=e.closest("li.jqtree_common");return 0===t.length?null:t.data("node")}},{key:"saveState",value:function(){this.options.saveState&&this.saveStateHandler.saveState()}},{key:"selectCurrentNode",value:function(e){var t=this.getSelectedNode();if(t){var n=this._getNodeElementForNode(t);n&&n.select(e)}}},{key:"deselectCurrentNode",value:function(){var e=this.getSelectedNode();e&&this.removeFromSelection(e)}},{key:"getDefaultClosedIcon",value:function(){return this.options.rtl?"◀":"►"}},{key:"getRtlOption",value:function(){if(null!=this.options.rtl)return this.options.rtl;var e=this.element.data("rtl");return null!==e&&!1!==e&&void 0!==e}},{key:"doSelectNode",value:function(e,t){var i=this,r=function(){i.options.saveState&&i.saveStateHandler.saveState()};if(!e)return this.deselectCurrentNode(),void r();var o=n(n({},{mustSetFocus:!0,mustToggle:!0}),t||{});if(i.options.onCanSelectNode?!0===i.options.selectable&&i.options.onCanSelectNode(e):!0===i.options.selectable){if(this.selectNodeHandler.isNodeSelected(e))o.mustToggle&&(this.deselectCurrentNode(),this._triggerEvent("tree.select",{node:null,previous_node:e}));else{var s=this.getSelectedNode()||null;this.deselectCurrentNode(),this.addToSelection(e,o.mustSetFocus),this._triggerEvent("tree.select",{node:e,deselected_node:s}),(a=e.parent)&&a.parent&&!a.is_open&&i.openNode(a,!1)}var a;r()}}},{key:"doLoadData",value:function(e,t){e&&(t?(this.deselectNodes(t),this.loadSubtree(e,t)):this.initTree(e),this.isDragging()&&this.dndHandler.refresh()),this._triggerEvent("tree.load_data",{tree_data:e,parent_node:t})}},{key:"deselectNodes",value:function(e){var t,n=m(this.selectNodeHandler.getSelectedNodesUnder(e));try{for(n.s();!(t=n.n()).done;){var i=t.value;this.selectNodeHandler.removeFromSelection(i)}}catch(e){n.e(e)}finally{n.f()}}},{key:"loadSubtree",value:function(e,t){t.loadFromData(e),t.load_on_demand=!1,t.is_loading=!1,this._refreshElements(t)}},{key:"doLoadDataFromUrl",value:function(e,t,n){var i=e||this.getDataUrlInfo(t);this.dataLoader.loadFromUrl(i,t,n)}},{key:"loadFolderOnDemand",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2?arguments[2]:void 0;e.is_loading=!0,this.doLoadDataFromUrl(null,e,(function(){t._openNode(e,n,i)}))}}]),o}(L);return a(R,"defaults",{animationSpeed:"fast",autoEscape:!0,autoOpen:!1,buttonLeft:!0,closedIcon:void 0,data:void 0,dataFilter:void 0,dataUrl:void 0,dragAndDrop:!1,keyboardSupport:!0,nodeClass:_,onCanMove:void 0,onCanMoveTo:void 0,onCanSelectNode:void 0,onCreateLi:void 0,onDragMove:void 0,onDragStop:void 0,onGetStateFromStorage:void 0,onIsMoveHandle:void 0,onLoadFailed:void 0,onLoading:void 0,onSetStateFromStorage:void 0,openedIcon:"▼",openFolderDelay:500,rtl:void 0,saveState:!1,selectable:!0,showEmptyFolder:!1,slide:!0,startDndDelay:300,tabIndex:0,useContextMenu:!0}),T.register(R,"tree"),e.JqTreeWidget=R,e}({});
//# sourceMappingURL=tree.jquery.js.map
diff --git a/lib/dragAndDropHandler.js b/lib/dragAndDropHandler.js
index daa92fa1..e581d3ba 100644
--- a/lib/dragAndDropHandler.js
+++ b/lib/dragAndDropHandler.js
@@ -212,6 +212,9 @@ var DragAndDropHandler = /*#__PURE__*/function () {
while (low < high) {
var mid = low + high >> 1;
var area = this.hitAreas[mid];
+ if (!area) {
+ return null;
+ }
if (y < area.top) {
high = mid;
} else if (y > area.bottom) {
@@ -364,10 +367,16 @@ var VisibleNodeIterator = /*#__PURE__*/function () {
if (mustIterateInside) {
var childrenLength = node.children.length;
node.children.forEach(function (_, i) {
- if (i === childrenLength - 1) {
- _iterateNode(node.children[i], null);
- } else {
- _iterateNode(node.children[i], node.children[i + 1]);
+ var child = node.children[i];
+ if (child) {
+ if (i === childrenLength - 1) {
+ _iterateNode(child, null);
+ } else {
+ var nextChild = node.children[i + 1];
+ if (nextChild) {
+ _iterateNode(child, nextChild);
+ }
+ }
}
});
if (node.is_open && $element) {
@@ -526,12 +535,14 @@ var HitAreasGenerator = /*#__PURE__*/function (_VisibleNodeIterator) {
var i = 0;
while (i < positionCount) {
var position = positionsInGroup[i];
- hitAreas.push({
- top: areaTop,
- bottom: areaTop + areaHeight,
- node: position.node,
- position: position.position
- });
+ if (position) {
+ hitAreas.push({
+ top: areaTop,
+ bottom: areaTop + areaHeight,
+ node: position.node,
+ position: position.position
+ });
+ }
areaTop += areaHeight;
i += 1;
}
diff --git a/lib/elementsRenderer.js b/lib/elementsRenderer.js
index 0e80ddf7..fb9f02cd 100644
--- a/lib/elementsRenderer.js
+++ b/lib/elementsRenderer.js
@@ -39,7 +39,9 @@ var ElementsRenderer = /*#__PURE__*/function () {
value: function renderFromRoot() {
var $element = this.treeWidget.element;
$element.empty();
- this.createDomElements($element[0], this.treeWidget.tree.children, true, 1);
+ if ($element[0]) {
+ this.createDomElements($element[0], this.treeWidget.tree.children, true, 1);
+ }
}
}, {
key: "renderFromNode",
@@ -125,6 +127,14 @@ var ElementsRenderer = /*#__PURE__*/function () {
}
return li;
}
+ }, {
+ key: "setTreeItemAriaAttributes",
+ value: function setTreeItemAriaAttributes(element, name, level, isSelected) {
+ element.setAttribute("aria-label", name);
+ element.setAttribute("aria-level", "".concat(level));
+ element.setAttribute("aria-selected", (0, _util.getBoolString)(isSelected));
+ element.setAttribute("role", "treeitem");
+ }
}, {
key: "createFolderLi",
value: function createFolderLi(node, level, isSelected) {
@@ -135,26 +145,28 @@ var ElementsRenderer = /*#__PURE__*/function () {
// li
var li = document.createElement("li");
li.className = "jqtree_common ".concat(folderClasses);
- li.setAttribute("role", "presentation");
+ li.setAttribute("role", "none");
// div
var div = document.createElement("div");
div.className = "jqtree-element jqtree_common";
- div.setAttribute("role", "presentation");
+ div.setAttribute("role", "none");
li.appendChild(div);
// button link
var buttonLink = document.createElement("a");
buttonLink.className = buttonClasses;
- buttonLink.appendChild(iconElement.cloneNode(true));
- buttonLink.setAttribute("role", "presentation");
- buttonLink.setAttribute("aria-hidden", "true");
+ if (iconElement) {
+ buttonLink.appendChild(iconElement.cloneNode(true));
+ }
if (this.treeWidget.options.buttonLeft) {
div.appendChild(buttonLink);
}
// title span
- div.appendChild(this.createTitleSpan(node.name, level, isSelected, node.is_open, true));
+ var titleSpan = this.createTitleSpan(node.name, isSelected, true, level);
+ titleSpan.setAttribute("aria-expanded", (0, _util.getBoolString)(node.is_open));
+ div.appendChild(titleSpan);
if (!this.treeWidget.options.buttonLeft) {
div.appendChild(buttonLink);
}
@@ -172,21 +184,22 @@ var ElementsRenderer = /*#__PURE__*/function () {
// li
var li = document.createElement("li");
li.className = classString;
- li.setAttribute("role", "presentation");
+ li.setAttribute("role", "none");
// div
var div = document.createElement("div");
div.className = "jqtree-element jqtree_common";
- div.setAttribute("role", "presentation");
+ div.setAttribute("role", "none");
li.appendChild(div);
// title span
- div.appendChild(this.createTitleSpan(node.name, level, isSelected, node.is_open, false));
+ var titleSpan = this.createTitleSpan(node.name, isSelected, false, level);
+ div.appendChild(titleSpan);
return li;
}
}, {
key: "createTitleSpan",
- value: function createTitleSpan(nodeName, level, isSelected, isOpen, isFolder) {
+ value: function createTitleSpan(nodeName, isSelected, isFolder, level) {
var titleSpan = document.createElement("span");
var classes = "jqtree-title jqtree_common";
if (isFolder) {
@@ -194,16 +207,13 @@ var ElementsRenderer = /*#__PURE__*/function () {
}
classes += " jqtree-title-button-".concat(this.treeWidget.options.buttonLeft ? "left" : "right");
titleSpan.className = classes;
- titleSpan.setAttribute("role", "treeitem");
- titleSpan.setAttribute("aria-level", "".concat(level));
- titleSpan.setAttribute("aria-selected", (0, _util.getBoolString)(isSelected));
- titleSpan.setAttribute("aria-expanded", (0, _util.getBoolString)(isOpen));
if (isSelected) {
var tabIndex = this.treeWidget.options.tabIndex;
if (tabIndex !== undefined) {
titleSpan.setAttribute("tabindex", "".concat(tabIndex));
}
}
+ this.setTreeItemAriaAttributes(titleSpan, nodeName, level, isSelected);
if (this.treeWidget.options.autoEscape) {
titleSpan.textContent = nodeName;
} else {
diff --git a/lib/mouse.widget.js b/lib/mouse.widget.js
index 76111a14..98ef968b 100644
--- a/lib/mouse.widget.js
+++ b/lib/mouse.widget.js
@@ -19,7 +19,9 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
-function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
+function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /*
+ This widget does the same a the mouse widget in jqueryui.
+ */
var getPositionInfoFromMouseEvent = function getPositionInfoFromMouseEvent(e) {
return {
pageX: e.pageX,
@@ -74,6 +76,9 @@ var MouseWidget = /*#__PURE__*/function (_SimpleWidget) {
return;
}
var touch = e.changedTouches[0];
+ if (!touch) {
+ return;
+ }
_this.handleMouseDown(getPositionInfoFromTouch(touch, e));
});
_defineProperty(_assertThisInitialized(_this), "touchMove", function (e) {
@@ -84,6 +89,9 @@ var MouseWidget = /*#__PURE__*/function (_SimpleWidget) {
return;
}
var touch = e.changedTouches[0];
+ if (!touch) {
+ return;
+ }
_this.handleMouseMove(e, getPositionInfoFromTouch(touch, e));
});
_defineProperty(_assertThisInitialized(_this), "touchEnd", function (e) {
@@ -94,6 +102,9 @@ var MouseWidget = /*#__PURE__*/function (_SimpleWidget) {
return;
}
var touch = e.changedTouches[0];
+ if (!touch) {
+ return;
+ }
_this.handleMouseUp(getPositionInfoFromTouch(touch, e));
});
return _this;
diff --git a/lib/node.js b/lib/node.js
index 203c7084..8e969bdc 100644
--- a/lib/node.js
+++ b/lib/node.js
@@ -14,14 +14,14 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
-var Position;
-exports.Position = Position;
-(function (Position) {
+var Position = /*#__PURE__*/function (Position) {
Position[Position["Before"] = 1] = "Before";
Position[Position["After"] = 2] = "After";
Position[Position["Inside"] = 3] = "Inside";
Position[Position["None"] = 4] = "None";
-})(Position || (exports.Position = Position = {}));
+ return Position;
+}({});
+exports.Position = Position;
var positionNames = {
before: Position.Before,
after: Position.After,
@@ -513,7 +513,7 @@ var Node = /*#__PURE__*/function () {
} else {
var previousIndex = this.parent.getChildIndex(this) - 1;
if (previousIndex >= 0) {
- return this.parent.children[previousIndex];
+ return this.parent.children[previousIndex] || null;
} else {
return null;
}
@@ -527,7 +527,7 @@ var Node = /*#__PURE__*/function () {
} else {
var nextIndex = this.parent.getChildIndex(this) + 1;
if (nextIndex < this.parent.children.length) {
- return this.parent.children[nextIndex];
+ return this.parent.children[nextIndex] || null;
} else {
return null;
}
@@ -557,7 +557,7 @@ var Node = /*#__PURE__*/function () {
value: function getNextNode() {
var includeChildren = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
if (includeChildren && this.hasChildren()) {
- return this.children[0];
+ return this.children[0] || null;
} else if (!this.parent) {
return null;
} else {
@@ -574,7 +574,7 @@ var Node = /*#__PURE__*/function () {
value: function getNextVisibleNode() {
if (this.hasChildren() && this.is_open) {
// First child
- return this.children[0];
+ return this.children[0] || null;
} else {
if (!this.parent) {
return null;
@@ -644,10 +644,13 @@ var Node = /*#__PURE__*/function () {
return null;
} else {
var lastChild = this.children[this.children.length - 1];
+ if (!lastChild) {
+ return null;
+ }
if (!(lastChild.hasChildren() && lastChild.is_open)) {
return lastChild;
} else {
- return lastChild.getLastChild();
+ return lastChild === null || lastChild === void 0 ? void 0 : lastChild.getLastChild();
}
}
}
@@ -700,7 +703,7 @@ var Node = /*#__PURE__*/function () {
key: "getNodeClass",
value: function getNodeClass() {
var _this$tree4;
- return this.nodeClass || (this === null || this === void 0 ? void 0 : (_this$tree4 = this.tree) === null || _this$tree4 === void 0 ? void 0 : _this$tree4.nodeClass) || Node;
+ return this.nodeClass || (this === null || this === void 0 || (_this$tree4 = this.tree) === null || _this$tree4 === void 0 ? void 0 : _this$tree4.nodeClass) || Node;
}
}, {
key: "createNode",
diff --git a/lib/nodeElement.js b/lib/nodeElement.js
index 57b306dd..461e66ce 100644
--- a/lib/nodeElement.js
+++ b/lib/nodeElement.js
@@ -57,9 +57,9 @@ var NodeElement = /*#__PURE__*/function () {
var _this$treeWidget$opti;
var $li = this.getLi();
$li.addClass("jqtree-selected");
- $li.attr("aria-selected", "true");
var $span = this.getSpan();
$span.attr("tabindex", (_this$treeWidget$opti = this.treeWidget.options.tabIndex) !== null && _this$treeWidget$opti !== void 0 ? _this$treeWidget$opti : null);
+ $span.attr("aria-selected", "true");
if (mustSetFocus) {
$span.trigger("focus");
}
@@ -69,10 +69,10 @@ var NodeElement = /*#__PURE__*/function () {
value: function deselect() {
var $li = this.getLi();
$li.removeClass("jqtree-selected");
- $li.attr("aria-selected", "false");
var $span = this.getSpan();
$span.removeAttr("tabindex");
- $span.blur();
+ $span.attr("aria-selected", "false");
+ $span.trigger("blur");
}
}, {
key: "getUl",
@@ -120,14 +120,17 @@ var FolderElement = /*#__PURE__*/function (_NodeElement) {
$button.html("");
var buttonEl = $button.get(0);
if (buttonEl) {
- var icon = this.treeWidget.renderer.openedIconElement.cloneNode(true);
- buttonEl.appendChild(icon);
+ var openedIconElement = this.treeWidget.renderer.openedIconElement;
+ if (openedIconElement) {
+ var icon = openedIconElement.cloneNode(true);
+ buttonEl.appendChild(icon);
+ }
}
var doOpen = function doOpen() {
var $li = _this.getLi();
$li.removeClass("jqtree-closed");
- var $span = _this.getSpan();
- $span.attr("aria-expanded", "true");
+ var $titleSpan = _this.getSpan();
+ $titleSpan.attr("aria-expanded", "true");
if (onFinished) {
onFinished(_this.node);
}
@@ -157,14 +160,17 @@ var FolderElement = /*#__PURE__*/function (_NodeElement) {
$button.html("");
var buttonEl = $button.get(0);
if (buttonEl) {
- var icon = this.treeWidget.renderer.closedIconElement.cloneNode(true);
- buttonEl.appendChild(icon);
+ var closedIconElement = this.treeWidget.renderer.closedIconElement;
+ if (closedIconElement) {
+ var icon = closedIconElement.cloneNode(true);
+ buttonEl.appendChild(icon);
+ }
}
var doClose = function doClose() {
var $li = _this2.getLi();
$li.addClass("jqtree-closed");
- var $span = _this2.getSpan();
- $span.attr("aria-expanded", "false");
+ var $titleSpan = _this2.getSpan();
+ $titleSpan.attr("aria-expanded", "false");
_this2.treeWidget._triggerEvent("tree.close", {
node: _this2.node
});
@@ -254,7 +260,8 @@ var GhostDropHint = /*#__PURE__*/function () {
}, {
key: "moveInsideOpenFolder",
value: function moveInsideOpenFolder() {
- var childElement = this.node.children[0].element;
+ var _this$node$children$;
+ var childElement = (_this$node$children$ = this.node.children[0]) === null || _this$node$children$ === void 0 ? void 0 : _this$node$children$.element;
if (childElement) {
jQuery(childElement).before(this.$ghost);
}
diff --git a/lib/saveStateHandler.js b/lib/saveStateHandler.js
index b566e502..ab125f01 100644
--- a/lib/saveStateHandler.js
+++ b/lib/saveStateHandler.js
@@ -107,7 +107,7 @@ var SaveStateHandler = /*#__PURE__*/function () {
value: function getNodeIdToBeSelected() {
var state = this.getStateFromStorage();
if (state && state.selected_node) {
- return state.selected_node[0];
+ return state.selected_node[0] || null;
} else {
return null;
}
diff --git a/lib/scrollHandler.js b/lib/scrollHandler.js
index f37bff7a..4b2edad1 100644
--- a/lib/scrollHandler.js
+++ b/lib/scrollHandler.js
@@ -37,7 +37,7 @@ var ScrollHandler = /*#__PURE__*/function () {
key: "scrollToY",
value: function scrollToY(top) {
this.ensureInit();
- if (this.$scrollParent) {
+ if (this.$scrollParent && this.$scrollParent[0]) {
this.$scrollParent[0].scrollTop = top;
} else {
var offset = this.treeWidget.$el.offset();
@@ -83,7 +83,8 @@ var ScrollHandler = /*#__PURE__*/function () {
}, {
key: "initScrollParent",
value: function initScrollParent() {
- var _this = this;
+ var _this = this,
+ _$scrollParent$;
var getParentWithOverflow = function getParentWithOverflow() {
var cssAttributes = ["overflow", "overflow-y"];
var hasOverFlow = function hasOverFlow($el) {
@@ -124,7 +125,7 @@ var ScrollHandler = /*#__PURE__*/function () {
setDocumentAsScrollParent();
}
var $scrollParent = getParentWithOverflow();
- if ($scrollParent && $scrollParent.length && $scrollParent[0].tagName !== "HTML") {
+ if ($scrollParent && $scrollParent.length && ((_$scrollParent$ = $scrollParent[0]) === null || _$scrollParent$ === void 0 ? void 0 : _$scrollParent$.tagName) !== "HTML") {
this.$scrollParent = $scrollParent;
var offset = this.$scrollParent.offset();
this.scrollParentTop = offset ? offset.top : 0;
@@ -210,6 +211,9 @@ var ScrollHandler = /*#__PURE__*/function () {
return;
}
var scrollParent = $scrollParent[0];
+ if (!scrollParent) {
+ return;
+ }
var canScrollRight = scrollParent.scrollLeft + scrollParent.clientWidth < scrollParent.scrollWidth;
var canScrollLeft = scrollParent.scrollLeft > 0;
var rightEdge = scrollParentOffset.left + scrollParent.clientWidth;
diff --git a/lib/selectNodeHandler.js b/lib/selectNodeHandler.js
index 3a71e9b0..03cda631 100644
--- a/lib/selectNodeHandler.js
+++ b/lib/selectNodeHandler.js
@@ -26,7 +26,7 @@ var SelectNodeHandler = /*#__PURE__*/function () {
value: function getSelectedNode() {
var selectedNodes = this.getSelectedNodes();
if (selectedNodes.length) {
- return selectedNodes[0];
+ return selectedNodes[0] || false;
} else {
return false;
}
diff --git a/lib/simple.widget.js b/lib/simple.widget.js
index 4e94f1f7..98ffea1b 100644
--- a/lib/simple.widget.js
+++ b/lib/simple.widget.js
@@ -116,6 +116,8 @@ var _register = function register(widgetClass, widgetName) {
}
return callFunction(this, functionName, args);
}
+ } else {
+ return undefined;
}
};
};
diff --git a/lib/test/jqTree/accessibility.test.js b/lib/test/jqTree/accessibility.test.js
new file mode 100644
index 00000000..bc133e07
--- /dev/null
+++ b/lib/test/jqTree/accessibility.test.js
@@ -0,0 +1,37 @@
+"use strict";
+
+function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
+var _jestAxe = require("jest-axe");
+require("../../tree.jquery");
+var _exampleData = _interopRequireDefault(require("../support/exampleData"));
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
+function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
+function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
+function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
+expect.extend(_jestAxe.toHaveNoViolations);
+beforeEach(function () {
+ $("body").append('');
+});
+afterEach(function () {
+ var $tree = $("#tree1");
+ $tree.tree("destroy");
+ $tree.remove();
+});
+it("has an accessible ui", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
+ var $tree, element;
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
+ while (1) switch (_context.prev = _context.next) {
+ case 0:
+ $tree = $("#tree1");
+ $tree.tree({
+ data: _exampleData["default"]
+ });
+ element = $tree.get()[0];
+ _context.next = 5;
+ return expect((0, _jestAxe.axe)(element)).resolves.toHaveNoViolations();
+ case 5:
+ case "end":
+ return _context.stop();
+ }
+ }, _callee);
+})));
\ No newline at end of file
diff --git a/lib/test/jqTree/events.test.js b/lib/test/jqTree/events.test.js
index f591f7e8..63cb2fe2 100644
--- a/lib/test/jqTree/events.test.js
+++ b/lib/test/jqTree/events.test.js
@@ -1,12 +1,17 @@
"use strict";
+function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
var _givens = _interopRequireDefault(require("givens"));
var _msw = require("msw");
var _node = require("msw/node");
+var _dom = require("@testing-library/dom");
require("../../tree.jquery");
var _exampleData = _interopRequireDefault(require("../support/exampleData"));
var _testUtil = require("../support/testUtil");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
+function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
+function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
+function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
var context = describe;
var server = (0, _node.setupServer)();
beforeAll(function () {
@@ -41,14 +46,12 @@ describe("tree.click", function () {
});
});
it("fires tree.click", function () {
- return new Promise(function (done) {
- given.$tree.on("tree.click", function (e) {
- var treeClickEvent = e;
- expect(treeClickEvent.node).toBe(given.node1);
- done();
- });
- given.titleSpan.trigger("click");
- });
+ var onClick = jest.fn();
+ given.$tree.on("tree.click", onClick);
+ given.titleSpan.trigger("click");
+ expect(onClick).toHaveBeenCalledWith(expect.objectContaining({
+ node: given.node1
+ }));
});
});
describe("tree.contextmenu", function () {
@@ -68,14 +71,12 @@ describe("tree.contextmenu", function () {
});
});
it("fires tree.contextmenu", function () {
- return new Promise(function (done) {
- given.$tree.on("tree.contextmenu", function (e) {
- var treeClickEvent = e;
- expect(treeClickEvent.node).toBe(given.node1);
- done();
- });
- given.titleSpan.contextmenu();
- });
+ var onContextMenu = jest.fn();
+ given.$tree.on("tree.contextmenu", onContextMenu);
+ given.titleSpan.trigger("contextmenu");
+ expect(onContextMenu).toHaveBeenCalledWith(expect.objectContaining({
+ node: given.node1
+ }));
});
});
describe("tree.dblclick", function () {
@@ -95,14 +96,12 @@ describe("tree.dblclick", function () {
});
});
it("fires tree.dblclick", function () {
- return new Promise(function (done) {
- given.$tree.on("tree.dblclick", function (e) {
- var treeClickEvent = e;
- expect(treeClickEvent.node).toBe(given.node1);
- done();
- });
- given.titleSpan.trigger("dblclick");
- });
+ var onDoubleClick = jest.fn();
+ given.$tree.on("tree.dblclick", onDoubleClick);
+ given.titleSpan.trigger("dblclick");
+ expect(onDoubleClick).toHaveBeenCalledWith(expect.objectContaining({
+ node: given.node1
+ }));
});
});
describe("tree.init", function () {
@@ -112,18 +111,14 @@ describe("tree.init", function () {
});
context("with json data", function () {
it("is called", function () {
- return new Promise(function (done) {
- given.$tree.on("tree.init", function () {
- expect(given.$tree.tree("getNodeByName", "node2")).toMatchObject({
- id: 124,
- name: "node2"
- });
- done();
- });
- given.$tree.tree({
- data: _exampleData["default"]
- });
+ var onInit = jest.fn();
+ given.$tree.on("tree.init", onInit);
+ given.$tree.tree({
+ data: _exampleData["default"]
});
+
+ // eslint-disable-next-line jest/prefer-called-with
+ expect(onInit).toHaveBeenCalled();
});
});
context("with data loaded from an url", function () {
@@ -132,20 +127,27 @@ describe("tree.init", function () {
return response(ctx.status(200), ctx.json(_exampleData["default"]));
}));
});
- it("is called", function () {
- return new Promise(function (done) {
- given.$tree.on("tree.init", function () {
- expect(given.$tree.tree("getNodeByName", "node2")).toMatchObject({
- id: 124,
- name: "node2"
- });
- done();
- });
- given.$tree.tree({
- dataUrl: "/tree/"
- });
- });
- });
+ it("is called", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
+ var onInit;
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
+ while (1) switch (_context.prev = _context.next) {
+ case 0:
+ onInit = jest.fn();
+ given.$tree.on("tree.init", onInit);
+ given.$tree.tree({
+ dataUrl: "/tree/"
+ });
+ _context.next = 5;
+ return (0, _dom.waitFor)(function () {
+ // eslint-disable-next-line jest/prefer-called-with
+ expect(onInit).toHaveBeenCalled();
+ });
+ case 5:
+ case "end":
+ return _context.stop();
+ }
+ }, _callee);
+ })));
});
});
describe("tree.load_data", function () {
@@ -155,16 +157,14 @@ describe("tree.load_data", function () {
});
context("when the tree is initialized with data", function () {
it("fires tree.load_data", function () {
- return new Promise(function (resolve) {
- given.$tree.on("tree.load_data", function (e) {
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
- expect(e.tree_data).toEqual(_exampleData["default"]);
- resolve();
- });
- given.$tree.tree({
- data: _exampleData["default"]
- });
+ var onLoadData = jest.fn();
+ given.$tree.on("tree.load_data", onLoadData);
+ given.$tree.tree({
+ data: _exampleData["default"]
});
+ expect(onLoadData).toHaveBeenCalledWith(expect.objectContaining({
+ tree_data: _exampleData["default"]
+ }));
});
});
});
@@ -184,31 +184,27 @@ describe("tree.select", function () {
data: _exampleData["default"]
});
});
- it("fires tree.click", function () {
- return new Promise(function (done) {
- given.$tree.on("tree.select", function (e) {
- var treeClickEvent = e;
- expect(treeClickEvent.node).toBe(given.node1);
- expect(treeClickEvent.deselected_node).toBeNull();
- done();
- });
- given.titleSpan.trigger("click");
- });
+ it("fires tree.select", function () {
+ var onSelect = jest.fn();
+ given.$tree.on("tree.select", onSelect);
+ given.titleSpan.trigger("click");
+ expect(onSelect).toHaveBeenCalledWith(expect.objectContaining({
+ node: given.node1,
+ deselected_node: null
+ }));
});
context("when the node was selected", function () {
beforeEach(function () {
given.$tree.tree("selectNode", given.node1);
});
it("fires tree.select with node is null", function () {
- return new Promise(function (done) {
- given.$tree.on("tree.select", function (e) {
- var treeClickEvent = e;
- expect(treeClickEvent.node).toBeNull();
- expect(treeClickEvent.previous_node).toBe(given.node1);
- done();
- });
- given.titleSpan.trigger("click");
- });
+ var onSelect = jest.fn();
+ given.$tree.on("tree.select", onSelect);
+ given.titleSpan.trigger("click");
+ expect(onSelect).toHaveBeenCalledWith(expect.objectContaining({
+ node: null,
+ previous_node: given.node1
+ }));
});
});
});
\ No newline at end of file
diff --git a/lib/test/node.test.js b/lib/test/node.test.js
index 4d8c23bf..993885f1 100644
--- a/lib/test/node.test.js
+++ b/lib/test/node.test.js
@@ -151,7 +151,8 @@ describe("addChild", function () {
})]));
});
it("sets the parent of the child", function () {
- expect(given.node.children[0].parent).toEqual(given.node);
+ var _given$node$children$;
+ expect((_given$node$children$ = given.node.children[0]) === null || _given$node$children$ === void 0 ? void 0 : _given$node$children$.parent).toEqual(given.node);
});
});
describe("addChildAtPosition", function () {
@@ -486,13 +487,15 @@ describe("getLastChild", function () {
context("when its last child is open and has children", function () {
beforeEach(function () {
var child2 = given.node.children[1];
- child2.append("child2a");
- child2.append("child2b");
+ child2 === null || child2 === void 0 ? void 0 : child2.append("child2a");
+ child2 === null || child2 === void 0 ? void 0 : child2.append("child2b");
});
context("and the last child is open", function () {
beforeEach(function () {
var child2 = given.node.children[1];
- child2.is_open = true;
+ if (child2) {
+ child2.is_open = true;
+ }
});
it("returns the last child of that child", function () {
expect(given.node.getLastChild()).toMatchObject({
diff --git a/lib/version.js b/lib/version.js
index bcedba20..b507aa23 100644
--- a/lib/version.js
+++ b/lib/version.js
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
-var version = "1.7.0";
+var version = "1.7.1";
var _default = version;
exports["default"] = _default;
\ No newline at end of file
diff --git a/package.json b/package.json
index a19d2d38..282dc89e 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "jqtree",
- "version": "1.7.0",
+ "version": "1.7.1",
"description": "Tree widget for jQuery",
"keywords": [
"jquery-plugin",
@@ -23,60 +23,56 @@
"devserver-with-coverage": "COVERAGE=true SERVE=true rollup --config config/rollup.config.mjs",
"build-with-coverage": "COVERAGE=true rollup --config config/rollup.config.mjs",
"prettier": "prettier src/*.ts --write --tab-width 4",
- "write-coverage": "nyc report --reporter=text-lcov > lcov.info",
"tsc": "tsc --noEmit --project tsconfig.json",
- "merge-coverage": "cp jest-coverage/coverage-final.json .nyc_output/coverage_jsdom.json",
- "clean-coverage": "rm -rf .nyc_output && jest --clearCache",
- "print-coverage": "nyc report",
"playwright": "pnpm build-with-coverage && playwright test --config config/playwright.config.js",
"test": "pnpm jest && pnpm playwright"
},
"dependencies": {
- "jquery": "^3.6.3"
+ "jquery": "^3.7.0"
},
"devDependencies": {
- "@babel/cli": "^7.20.7",
- "@babel/core": "^7.20.7",
- "@babel/preset-env": "^7.20.2",
- "@babel/preset-typescript": "^7.18.6",
- "@playwright/test": "^1.29.1",
+ "@babel/cli": "^7.22.9",
+ "@babel/core": "^7.22.9",
+ "@babel/preset-env": "^7.22.9",
+ "@babel/preset-typescript": "^7.22.5",
+ "@playwright/test": "^1.36.2",
"@rollup/plugin-babel": "^6.0.3",
- "@rollup/plugin-node-resolve": "^15.0.1",
- "@rollup/plugin-terser": "^0.1.0",
- "@testing-library/dom": "^8.19.0",
- "@types/debug": "^4.1.7",
- "@types/jest": "^29.2.4",
- "@types/jquery": "^3.5.14",
- "@types/node": "^18.11.17",
- "@typescript-eslint/eslint-plugin": "^5.47.0",
- "@typescript-eslint/parser": "^5.47.0",
- "autoprefixer": "^10.4.13",
- "babel-jest": "^29.3.1",
+ "@rollup/plugin-node-resolve": "^15.1.0",
+ "@rollup/plugin-terser": "^0.4.3",
+ "@testing-library/dom": "^9.3.1",
+ "@types/debug": "^4.1.8",
+ "@types/jest": "^29.5.3",
+ "@types/jest-axe": "^3.5.5",
+ "@types/jquery": "^3.5.16",
+ "@types/node": "^20.4.7",
+ "@typescript-eslint/eslint-plugin": "^6.2.1",
+ "@typescript-eslint/parser": "^6.2.1",
+ "autoprefixer": "^10.4.14",
+ "babel-jest": "^29.6.2",
"babel-plugin-istanbul": "^6.1.1",
- "eslint": "^8.30.0",
- "eslint-plugin-import": "^2.26.0",
- "eslint-plugin-jest": "^27.1.7",
- "eslint-plugin-playwright": "^0.11.2",
- "eslint-plugin-testing-library": "^5.9.1",
+ "eslint": "^8.46.0",
+ "eslint-plugin-import": "^2.28.0",
+ "eslint-plugin-jest": "^27.2.3",
+ "eslint-plugin-playwright": "^0.15.3",
+ "eslint-plugin-testing-library": "^5.11.0",
"givens": "^1.3.9",
- "graphql": "^16.6.0",
- "jest": "^29.3.1",
- "jest-environment-jsdom": "^29.3.1",
- "jest-extended": "^3.2.0",
+ "graphql": "^16.7.1",
+ "jest": "^29.6.2",
+ "jest-axe": "^8.0.0",
+ "jest-environment-jsdom": "^29.6.2",
+ "jest-extended": "^4.0.1",
"jsonfile": "^6.1.0",
"lodash.template": "^4.5.0",
- "msw": "^0.49.2",
- "nyc": "^15.1.0",
- "playwright": "^1.29.1",
- "postcss": "^8.4.20",
+ "msw": "^1.2.3",
+ "postcss": "^8.4.27",
"postcss-cli": "^10.1.0",
"postcss-import": "^15.1.0",
"postcss-load-config": "^4.0.1",
- "postcss-nested": "^6.0.0",
- "prettier": "^2.8.1",
- "rollup": "^3.8.1",
+ "postcss-nested": "^6.0.1",
+ "prettier": "^3.0.1",
+ "rollup": "^3.27.2",
"rollup-plugin-serve": "^2.0.2",
- "tslib": "^2.4.1",
- "typescript": "~4.9.4"
+ "tslib": "^2.6.1",
+ "typescript": "~5.1.6"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 65053ad1..42d11b69 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,118 +1,169 @@
-lockfileVersion: 5.4
-
-specifiers:
- '@babel/cli': ^7.20.7
- '@babel/core': ^7.20.7
- '@babel/preset-env': ^7.20.2
- '@babel/preset-typescript': ^7.18.6
- '@playwright/test': ^1.29.1
- '@rollup/plugin-babel': ^6.0.3
- '@rollup/plugin-node-resolve': ^15.0.1
- '@rollup/plugin-terser': ^0.1.0
- '@testing-library/dom': ^8.19.0
- '@types/debug': ^4.1.7
- '@types/jest': ^29.2.4
- '@types/jquery': ^3.5.14
- '@types/node': ^18.11.17
- '@typescript-eslint/eslint-plugin': ^5.47.0
- '@typescript-eslint/parser': ^5.47.0
- autoprefixer: ^10.4.13
- babel-jest: ^29.3.1
- babel-plugin-istanbul: ^6.1.1
- eslint: ^8.30.0
- eslint-plugin-import: ^2.26.0
- eslint-plugin-jest: ^27.1.7
- eslint-plugin-playwright: ^0.11.2
- eslint-plugin-testing-library: ^5.9.1
- givens: ^1.3.9
- graphql: ^16.6.0
- jest: ^29.3.1
- jest-environment-jsdom: ^29.3.1
- jest-extended: ^3.2.0
- jquery: ^3.6.3
- jsonfile: ^6.1.0
- lodash.template: ^4.5.0
- msw: ^0.49.2
- nyc: ^15.1.0
- playwright: ^1.29.1
- postcss: ^8.4.20
- postcss-cli: ^10.1.0
- postcss-import: ^15.1.0
- postcss-load-config: ^4.0.1
- postcss-nested: ^6.0.0
- prettier: ^2.8.1
- rollup: ^3.8.1
- rollup-plugin-serve: ^2.0.2
- tslib: ^2.4.1
- typescript: ~4.9.4
+lockfileVersion: '6.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
dependencies:
- jquery: 3.6.3
+ jquery:
+ specifier: ^3.7.0
+ version: 3.7.0
devDependencies:
- '@babel/cli': 7.20.7_@babel+core@7.20.7
- '@babel/core': 7.20.7
- '@babel/preset-env': 7.20.2_@babel+core@7.20.7
- '@babel/preset-typescript': 7.18.6_@babel+core@7.20.7
- '@playwright/test': 1.29.1
- '@rollup/plugin-babel': 6.0.3_dfwdex4qe3e2dx2m4b7f5c5gee
- '@rollup/plugin-node-resolve': 15.0.1_rollup@3.8.1
- '@rollup/plugin-terser': 0.1.0_rollup@3.8.1
- '@testing-library/dom': 8.19.0
- '@types/debug': 4.1.7
- '@types/jest': 29.2.4
- '@types/jquery': 3.5.14
- '@types/node': 18.11.17
- '@typescript-eslint/eslint-plugin': 5.47.0_ncmi6noazr3nzas7jxykisekym
- '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa
- autoprefixer: 10.4.13_postcss@8.4.20
- babel-jest: 29.3.1_@babel+core@7.20.7
- babel-plugin-istanbul: 6.1.1
- eslint: 8.30.0
- eslint-plugin-import: 2.26.0_tqyj5ytb5g6r5ett7xxedhk6eq
- eslint-plugin-jest: 27.1.7_ynswt5pvagzyqki5w7w75b3qvm
- eslint-plugin-playwright: 0.11.2_ttbndbdkvr6mhvx6ps5rimaowi
- eslint-plugin-testing-library: 5.9.1_lzzuuodtsqwxnvqeq4g4likcqa
- givens: 1.3.9
- graphql: 16.6.0
- jest: 29.3.1_@types+node@18.11.17
- jest-environment-jsdom: 29.3.1
- jest-extended: 3.2.0_jest@29.3.1
- jsonfile: 6.1.0
- lodash.template: 4.5.0
- msw: 0.49.2_typescript@4.9.4
- nyc: 15.1.0
- playwright: 1.29.1
- postcss: 8.4.20
- postcss-cli: 10.1.0_postcss@8.4.20
- postcss-import: 15.1.0_postcss@8.4.20
- postcss-load-config: 4.0.1_postcss@8.4.20
- postcss-nested: 6.0.0_postcss@8.4.20
- prettier: 2.8.1
- rollup: 3.8.1
- rollup-plugin-serve: 2.0.2
- tslib: 2.4.1
- typescript: 4.9.4
+ '@babel/cli':
+ specifier: ^7.22.9
+ version: 7.22.9(@babel/core@7.22.9)
+ '@babel/core':
+ specifier: ^7.22.9
+ version: 7.22.9
+ '@babel/preset-env':
+ specifier: ^7.22.9
+ version: 7.22.9(@babel/core@7.22.9)
+ '@babel/preset-typescript':
+ specifier: ^7.22.5
+ version: 7.22.5(@babel/core@7.22.9)
+ '@playwright/test':
+ specifier: ^1.36.2
+ version: 1.36.2
+ '@rollup/plugin-babel':
+ specifier: ^6.0.3
+ version: 6.0.3(@babel/core@7.22.9)(rollup@3.27.2)
+ '@rollup/plugin-node-resolve':
+ specifier: ^15.1.0
+ version: 15.1.0(rollup@3.27.2)
+ '@rollup/plugin-terser':
+ specifier: ^0.4.3
+ version: 0.4.3(rollup@3.27.2)
+ '@testing-library/dom':
+ specifier: ^9.3.1
+ version: 9.3.1
+ '@types/debug':
+ specifier: ^4.1.8
+ version: 4.1.8
+ '@types/jest':
+ specifier: ^29.5.3
+ version: 29.5.3
+ '@types/jest-axe':
+ specifier: ^3.5.5
+ version: 3.5.5
+ '@types/jquery':
+ specifier: ^3.5.16
+ version: 3.5.16
+ '@types/node':
+ specifier: ^20.4.7
+ version: 20.4.7
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^6.2.1
+ version: 6.2.1(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)(typescript@5.1.6)
+ '@typescript-eslint/parser':
+ specifier: ^6.2.1
+ version: 6.2.1(eslint@8.46.0)(typescript@5.1.6)
+ autoprefixer:
+ specifier: ^10.4.14
+ version: 10.4.14(postcss@8.4.27)
+ babel-jest:
+ specifier: ^29.6.2
+ version: 29.6.2(@babel/core@7.22.9)
+ babel-plugin-istanbul:
+ specifier: ^6.1.1
+ version: 6.1.1
+ eslint:
+ specifier: ^8.46.0
+ version: 8.46.0
+ eslint-plugin-import:
+ specifier: ^2.28.0
+ version: 2.28.0(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)
+ eslint-plugin-jest:
+ specifier: ^27.2.3
+ version: 27.2.3(@typescript-eslint/eslint-plugin@6.2.1)(eslint@8.46.0)(jest@29.6.2)(typescript@5.1.6)
+ eslint-plugin-playwright:
+ specifier: ^0.15.3
+ version: 0.15.3(eslint-plugin-jest@27.2.3)(eslint@8.46.0)
+ eslint-plugin-testing-library:
+ specifier: ^5.11.0
+ version: 5.11.0(eslint@8.46.0)(typescript@5.1.6)
+ givens:
+ specifier: ^1.3.9
+ version: 1.3.9
+ graphql:
+ specifier: ^16.7.1
+ version: 16.7.1
+ jest:
+ specifier: ^29.6.2
+ version: 29.6.2(@types/node@20.4.7)
+ jest-axe:
+ specifier: ^8.0.0
+ version: 8.0.0
+ jest-environment-jsdom:
+ specifier: ^29.6.2
+ version: 29.6.2
+ jest-extended:
+ specifier: ^4.0.1
+ version: 4.0.1(jest@29.6.2)
+ jsonfile:
+ specifier: ^6.1.0
+ version: 6.1.0
+ lodash.template:
+ specifier: ^4.5.0
+ version: 4.5.0
+ msw:
+ specifier: ^1.2.3
+ version: 1.2.3(typescript@5.1.6)
+ postcss:
+ specifier: ^8.4.27
+ version: 8.4.27
+ postcss-cli:
+ specifier: ^10.1.0
+ version: 10.1.0(postcss@8.4.27)
+ postcss-import:
+ specifier: ^15.1.0
+ version: 15.1.0(postcss@8.4.27)
+ postcss-load-config:
+ specifier: ^4.0.1
+ version: 4.0.1(postcss@8.4.27)
+ postcss-nested:
+ specifier: ^6.0.1
+ version: 6.0.1(postcss@8.4.27)
+ prettier:
+ specifier: ^3.0.1
+ version: 3.0.1
+ rollup:
+ specifier: ^3.27.2
+ version: 3.27.2
+ rollup-plugin-serve:
+ specifier: ^2.0.2
+ version: 2.0.2
+ tslib:
+ specifier: ^2.6.1
+ version: 2.6.1
+ typescript:
+ specifier: ~5.1.6
+ version: 5.1.6
packages:
- /@ampproject/remapping/2.2.0:
- resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==}
+ /@aashutoshrathi/word-wrap@1.2.6:
+ resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /@ampproject/remapping@2.2.1:
+ resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
engines: {node: '>=6.0.0'}
dependencies:
- '@jridgewell/gen-mapping': 0.1.1
- '@jridgewell/trace-mapping': 0.3.17
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.18
dev: true
- /@babel/cli/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-WylgcELHB66WwQqItxNILsMlaTd8/SO6SgTTjMp4uCI7P4QyH1r3nqgFmO3BfM4AtfniHgFMH3EpYFj/zynBkQ==}
+ /@babel/cli@7.22.9(@babel/core@7.22.9):
+ resolution: {integrity: sha512-nb2O7AThqRo7/E53EGiuAkMaRbb7J5Qp3RvN+dmua1U+kydm0oznkhqbTEG15yk26G/C3yL6OdZjzgl+DMXVVA==}
engines: {node: '>=6.9.0'}
hasBin: true
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@jridgewell/trace-mapping': 0.3.17
+ '@babel/core': 7.22.9
+ '@jridgewell/trace-mapping': 0.3.18
commander: 4.1.1
convert-source-map: 1.9.0
fs-readdir-recursive: 1.1.0
@@ -124,282 +175,322 @@ packages:
chokidar: 3.5.3
dev: true
- /@babel/code-frame/7.18.6:
- resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
+ /@babel/code-frame@7.21.4:
+ resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/highlight': 7.18.6
dev: true
- /@babel/compat-data/7.20.5:
- resolution: {integrity: sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==}
+ /@babel/code-frame@7.22.5:
+ resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/highlight': 7.22.5
+ dev: true
+
+ /@babel/compat-data@7.22.9:
+ resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/core/7.20.7:
- resolution: {integrity: sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==}
+ /@babel/core@7.22.9:
+ resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@ampproject/remapping': 2.2.0
- '@babel/code-frame': 7.18.6
- '@babel/generator': 7.20.7
- '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.7
- '@babel/helper-module-transforms': 7.20.7
- '@babel/helpers': 7.20.7
- '@babel/parser': 7.20.7
- '@babel/template': 7.20.7
- '@babel/traverse': 7.20.8
- '@babel/types': 7.20.7
+ '@ampproject/remapping': 2.2.1
+ '@babel/code-frame': 7.22.5
+ '@babel/generator': 7.22.9
+ '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9)
+ '@babel/helpers': 7.22.6
+ '@babel/parser': 7.22.7
+ '@babel/template': 7.22.5
+ '@babel/traverse': 7.22.8
+ '@babel/types': 7.22.5
convert-source-map: 1.9.0
debug: 4.3.4
gensync: 1.0.0-beta.2
- json5: 2.2.2
- semver: 6.3.0
+ json5: 2.2.3
+ semver: 6.3.1
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/generator/7.20.7:
- resolution: {integrity: sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==}
+ /@babel/generator@7.21.4:
+ resolution: {integrity: sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.4
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.18
+ jsesc: 2.5.2
+ dev: true
+
+ /@babel/generator@7.22.9:
+ resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
- '@jridgewell/gen-mapping': 0.3.2
+ '@babel/types': 7.22.5
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.18
jsesc: 2.5.2
dev: true
- /@babel/helper-annotate-as-pure/7.18.6:
+ /@babel/helper-annotate-as-pure@7.18.6:
resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
+ dev: true
+
+ /@babel/helper-annotate-as-pure@7.22.5:
+ resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9:
- resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==}
+ /@babel/helper-builder-binary-assignment-operator-visitor@7.22.5:
+ resolution: {integrity: sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-explode-assignable-expression': 7.18.6
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==}
+ /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9):
+ resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/compat-data': 7.20.5
- '@babel/core': 7.20.7
- '@babel/helper-validator-option': 7.18.6
- browserslist: 4.21.4
+ '@babel/compat-data': 7.22.9
+ '@babel/core': 7.22.9
+ '@babel/helper-validator-option': 7.22.5
+ browserslist: 4.21.10
lru-cache: 5.1.1
- semver: 6.3.0
+ semver: 6.3.1
dev: true
- /@babel/helper-create-class-features-plugin/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-LtoWbDXOaidEf50hmdDqn9g8VEzsorMexoWMQdQODbvmqYmaF23pBP5VNPAGIFHsFQCIeKokDiz3CH5Y2jlY6w==}
+ /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.22.9):
+ resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-annotate-as-pure': 7.18.6
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-function-name': 7.19.0
- '@babel/helper-member-expression-to-functions': 7.20.7
- '@babel/helper-optimise-call-expression': 7.18.6
- '@babel/helper-replace-supers': 7.20.7
- '@babel/helper-split-export-declaration': 7.18.6
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-member-expression-to-functions': 7.22.5
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ semver: 6.3.1
dev: true
- /@babel/helper-create-regexp-features-plugin/7.20.5_@babel+core@7.20.7:
- resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==}
+ /@babel/helper-create-regexp-features-plugin@7.21.4(@babel/core@7.22.9):
+ resolution: {integrity: sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.7
+ '@babel/core': 7.22.9
'@babel/helper-annotate-as-pure': 7.18.6
- regexpu-core: 5.2.2
+ regexpu-core: 5.3.2
+ dev: true
+
+ /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.22.9):
+ resolution: {integrity: sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.9
+ '@babel/helper-annotate-as-pure': 7.22.5
+ regexpu-core: 5.3.2
+ semver: 6.3.1
dev: true
- /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.20.7:
- resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==}
+ /@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.22.9):
+ resolution: {integrity: sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==}
peerDependencies:
- '@babel/core': ^7.4.0-0
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
debug: 4.3.4
lodash.debounce: 4.0.8
- resolve: 1.22.1
- semver: 6.3.0
+ resolve: 1.22.2
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/helper-environment-visitor/7.18.9:
- resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
+ /@babel/helper-environment-visitor@7.22.5:
+ resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-explode-assignable-expression/7.18.6:
- resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==}
+ /@babel/helper-function-name@7.22.5:
+ resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/template': 7.22.5
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-function-name/7.19.0:
- resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==}
+ /@babel/helper-hoist-variables@7.22.5:
+ resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/template': 7.20.7
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-hoist-variables/7.18.6:
- resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
+ /@babel/helper-member-expression-to-functions@7.22.5:
+ resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-member-expression-to-functions/7.20.7:
- resolution: {integrity: sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==}
+ /@babel/helper-module-imports@7.21.4:
+ resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.4
dev: true
- /@babel/helper-module-imports/7.18.6:
- resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
+ /@babel/helper-module-imports@7.22.5:
+ resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-module-transforms/7.20.7:
- resolution: {integrity: sha512-FNdu7r67fqMUSVuQpFQGE6BPdhJIhitoxhGzDbAXNcA07uoVG37fOiMk3OSV8rEICuyG6t8LGkd9EE64qIEoIA==}
+ /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9):
+ resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
dependencies:
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-module-imports': 7.18.6
- '@babel/helper-simple-access': 7.20.2
- '@babel/helper-split-export-declaration': 7.18.6
- '@babel/helper-validator-identifier': 7.19.1
- '@babel/template': 7.20.7
- '@babel/traverse': 7.20.8
- '@babel/types': 7.20.7
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-module-imports': 7.22.5
+ '@babel/helper-simple-access': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/helper-validator-identifier': 7.22.5
dev: true
- /@babel/helper-optimise-call-expression/7.18.6:
- resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
+ /@babel/helper-optimise-call-expression@7.22.5:
+ resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-plugin-utils/7.20.2:
+ /@babel/helper-plugin-utils@7.20.2:
resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.20.7:
- resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==}
+ /@babel/helper-plugin-utils@7.22.5:
+ resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.22.9):
+ resolution: {integrity: sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-annotate-as-pure': 7.18.6
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-wrap-function': 7.20.5
- '@babel/types': 7.20.7
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-wrap-function': 7.22.9
dev: true
- /@babel/helper-replace-supers/7.20.7:
- resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==}
+ /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.9):
+ resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
dependencies:
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-member-expression-to-functions': 7.20.7
- '@babel/helper-optimise-call-expression': 7.18.6
- '@babel/template': 7.20.7
- '@babel/traverse': 7.20.8
- '@babel/types': 7.20.7
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-member-expression-to-functions': 7.22.5
+ '@babel/helper-optimise-call-expression': 7.22.5
dev: true
- /@babel/helper-simple-access/7.20.2:
- resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
+ /@babel/helper-simple-access@7.22.5:
+ resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-skip-transparent-expression-wrappers/7.20.0:
- resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==}
+ /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
+ resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-split-export-declaration/7.18.6:
- resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
+ /@babel/helper-split-export-declaration@7.22.6:
+ resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-string-parser/7.19.4:
+ /@babel/helper-string-parser@7.19.4:
resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-validator-identifier/7.19.1:
+ /@babel/helper-string-parser@7.22.5:
+ resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-validator-identifier@7.19.1:
resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-validator-option/7.18.6:
- resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
+ /@babel/helper-validator-identifier@7.22.5:
+ resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-wrap-function/7.20.5:
- resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==}
+ /@babel/helper-validator-option@7.22.5:
+ resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-wrap-function@7.22.9:
+ resolution: {integrity: sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-function-name': 7.19.0
- '@babel/template': 7.20.7
- '@babel/traverse': 7.20.8
- '@babel/types': 7.20.7
- transitivePeerDependencies:
- - supports-color
+ '@babel/helper-function-name': 7.22.5
+ '@babel/template': 7.22.5
+ '@babel/types': 7.22.5
dev: true
- /@babel/helpers/7.20.7:
- resolution: {integrity: sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==}
+ /@babel/helpers@7.22.6:
+ resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/template': 7.20.7
- '@babel/traverse': 7.20.8
- '@babel/types': 7.20.7
+ '@babel/template': 7.22.5
+ '@babel/traverse': 7.22.8
+ '@babel/types': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/highlight/7.18.6:
+ /@babel/highlight@7.18.6:
resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
engines: {node: '>=6.9.0'}
dependencies:
@@ -408,921 +499,1003 @@ packages:
js-tokens: 4.0.0
dev: true
- /@babel/parser/7.20.7:
- resolution: {integrity: sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==}
+ /@babel/highlight@7.22.5:
+ resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.22.5
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+ dev: true
+
+ /@babel/parser@7.21.4:
+ resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.21.4
+ dev: true
+
+ /@babel/parser@7.22.7:
+ resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==}
+ /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==}
+ /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.13.0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-skip-transparent-expression-wrappers': 7.20.0
- '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.7
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9)
dev: true
- /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==}
+ /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9):
+ resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.7
- '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.7
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
dev: true
- /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
- engines: {node: '>=6.9.0'}
+ /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.9):
+ resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==}
+ engines: {node: '>=4'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-create-class-features-plugin': 7.20.7_@babel+core@7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-create-regexp-features-plugin': 7.21.4(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-proposal-class-static-block/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==}
- engines: {node: '>=6.9.0'}
+ /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.9):
+ resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
peerDependencies:
- '@babel/core': ^7.12.0
+ '@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-create-class-features-plugin': 7.20.7_@babel+core@7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.7
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==}
- engines: {node: '>=6.9.0'}
+ /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.22.9):
+ resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
+ '@babel/core': 7.22.9
'@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.7
dev: true
- /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.20.7:
- resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==}
- engines: {node: '>=6.9.0'}
+ /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.9):
+ resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.7
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==}
+ /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.7
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==}
- engines: {node: '>=6.9.0'}
+ /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.9):
+ resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.7
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
- engines: {node: '>=6.9.0'}
+ /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.9):
+ resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.7
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
+ /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.7
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==}
+ /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/compat-data': 7.20.5
- '@babel/core': 7.20.7
- '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.7
- '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.7
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==}
- engines: {node: '>=6.9.0'}
+ /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.9):
+ resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.7
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-proposal-optional-chaining/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==}
- engines: {node: '>=6.9.0'}
+ /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.9):
+ resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-skip-transparent-expression-wrappers': 7.20.0
- '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.7
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==}
+ /@babel/plugin-syntax-jsx@7.21.4(@babel/core@7.22.9):
+ resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-create-class-features-plugin': 7.20.7_@babel+core@7.20.7
+ '@babel/core': 7.22.9
'@babel/helper-plugin-utils': 7.20.2
- transitivePeerDependencies:
- - supports-color
dev: true
- /@babel/plugin-proposal-private-property-in-object/7.20.5_@babel+core@7.20.7:
- resolution: {integrity: sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==}
+ /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-annotate-as-pure': 7.18.6
- '@babel/helper-create-class-features-plugin': 7.20.7_@babel+core@7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.7
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==}
- engines: {node: '>=4'}
+ /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.9):
+ resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.7:
- resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+ /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.9):
+ resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.20.7:
- resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
+ /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.9):
+ resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.7:
- resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+ /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.9):
+ resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.7:
- resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
+ /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.9):
+ resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.9):
+ resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.20.7:
- resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
+ /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.7:
- resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
+ /@babel/plugin-syntax-typescript@7.21.4(@babel/core@7.22.9):
+ resolution: {integrity: sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
+ '@babel/core': 7.22.9
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.20.7:
- resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==}
+ /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.20.7:
- resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+ /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.9):
+ resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.9
+ '@babel/helper-create-regexp-features-plugin': 7.21.4(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.7:
- resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+ /@babel/plugin-transform-async-generator-functions@7.22.7(@babel/core@7.22.9):
+ resolution: {integrity: sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9)
dev: true
- /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
+ /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-module-imports': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9)
dev: true
- /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.7:
- resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+ /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.7:
- resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+ /@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.7:
- resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+ /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.7:
- resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+ /@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.12.0
+ dependencies:
+ '@babel/core': 7.22.9
+ '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9)
+ dev: true
+
+ /@babel/plugin-transform-classes@7.22.6(@babel/core@7.22.9):
+ resolution: {integrity: sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-split-export-declaration': 7.22.6
+ globals: 11.12.0
dev: true
- /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.7:
- resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+ /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/template': 7.22.5
dev: true
- /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.7:
- resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+ /@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.7:
- resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
+ /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.7:
- resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+ /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.7:
- resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==}
+ /@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9)
dev: true
- /@babel/plugin-transform-arrow-functions/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==}
+ /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-async-to-generator/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==}
+ /@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-module-imports': 7.18.6
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.7
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9)
dev: true
- /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==}
+ /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-block-scoping/7.20.9_@babel+core@7.20.7:
- resolution: {integrity: sha512-hwZN0kr16UkIF/kR9F9x8gd1kTkQl1vyAF2lkUmlTuCtTKOGLE5blQctuxEeKXwz0dkArQ9RYL8+HLb/75KGMA==}
+ /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-classes/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==}
+ /@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-annotate-as-pure': 7.18.6
- '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.7
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-function-name': 7.19.0
- '@babel/helper-optimise-call-expression': 7.18.6
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-replace-supers': 7.20.7
- '@babel/helper-split-export-declaration': 7.18.6
- globals: 11.12.0
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9)
dev: true
- /@babel/plugin-transform-computed-properties/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==}
+ /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/template': 7.20.7
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-destructuring/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==}
+ /@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9)
dev: true
- /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==}
+ /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.20.7:
- resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==}
+ /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==}
+ /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-simple-access': 7.22.5
dev: true
- /@babel/plugin-transform-for-of/7.18.8_@babel+core@7.20.7:
- resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
+ /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-hoist-variables': 7.22.5
+ '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-identifier': 7.22.5
dev: true
- /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.20.7:
- resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==}
+ /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.7
- '@babel/helper-function-name': 7.19.0
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-literals/7.18.9_@babel+core@7.20.7:
- resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==}
+ /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.9
+ '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==}
+ /@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9)
dev: true
- /@babel/plugin-transform-modules-amd/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-+1IVLD+dHOzRZWNFFSoyPZz4ffsVmOP+OhhjeahLKpU97v/52LcCb9RabRl5eHM1/HAuH5Dl0q9Pyzrq1v2otQ==}
+ /@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-module-transforms': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9)
dev: true
- /@babel/plugin-transform-modules-commonjs/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-76jqqFiFdCD+RJwEdtBHUG2/rEKQAmpejPbAKyQECEE3/y4U5CMPc9IXvipS990vgQhzq+ZRw6WJ+q4xJ/P24w==}
+ /@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-module-transforms': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-simple-access': 7.20.2
- transitivePeerDependencies:
- - supports-color
+ '@babel/compat-data': 7.22.9
+ '@babel/core': 7.22.9
+ '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9)
+ '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9)
dev: true
- /@babel/plugin-transform-modules-systemjs/7.19.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==}
+ /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-hoist-variables': 7.18.6
- '@babel/helper-module-transforms': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-validator-identifier': 7.19.1
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9)
dev: true
- /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==}
+ /@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-module-transforms': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9)
dev: true
- /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.20.7:
- resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==}
+ /@babel/plugin-transform-optional-chaining@7.22.6(@babel/core@7.22.9):
+ resolution: {integrity: sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.0.0
+ '@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9)
dev: true
- /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==}
+ /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==}
+ /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-replace-supers': 7.20.7
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-parameters/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==}
+ /@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9)
dev: true
- /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==}
+ /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-regenerator/7.20.5_@babel+core@7.20.7:
- resolution: {integrity: sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==}
+ /@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
regenerator-transform: 0.15.1
dev: true
- /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==}
+ /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==}
+ /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-spread/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==}
+ /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-skip-transparent-expression-wrappers': 7.20.0
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
dev: true
- /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==}
+ /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.20.7:
- resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==}
+ /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.20.7:
- resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==}
+ /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-typescript/7.20.7_@babel+core@7.20.7:
- resolution: {integrity: sha512-m3wVKEvf6SoszD8pu4NZz3PvfKRCMgk6D6d0Qi9hNnlM5M6CFS92EgF4EiHVLKbU0r/r7ty1hg7NPZwE7WRbYw==}
+ /@babel/plugin-transform-typescript@7.22.9(@babel/core@7.22.9):
+ resolution: {integrity: sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-create-class-features-plugin': 7.20.7_@babel+core@7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.7
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.9)
dev: true
- /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.20.7:
- resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==}
+ /@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==}
+ /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.7
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.9
+ '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/preset-env/7.20.2_@babel+core@7.20.7:
- resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==}
+ /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/compat-data': 7.20.5
- '@babel/core': 7.20.7
- '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-validator-option': 7.18.6
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-proposal-class-static-block': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.20.7
- '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-proposal-logical-assignment-operators': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-proposal-private-property-in-object': 7.20.5_@babel+core@7.20.7
- '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.7
- '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.7
- '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.7
- '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.7
- '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.7
- '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.20.7
- '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.7
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.7
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.7
- '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.7
- '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.7
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.7
- '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.7
- '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.7
- '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.7
- '@babel/plugin-transform-arrow-functions': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-transform-async-to-generator': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-transform-block-scoping': 7.20.9_@babel+core@7.20.7
- '@babel/plugin-transform-classes': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-transform-computed-properties': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.20.7
- '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.20.7
- '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.20.7
- '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.20.7
- '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-transform-modules-amd': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-transform-modules-commonjs': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-transform-modules-systemjs': 7.19.6_@babel+core@7.20.7
- '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5_@babel+core@7.20.7
- '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-transform-regenerator': 7.20.5_@babel+core@7.20.7
- '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.7
- '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.7
- '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.20.7
- '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.20.7
- '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.20.7
- '@babel/preset-modules': 0.1.5_@babel+core@7.20.7
- '@babel/types': 7.20.7
- babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.7
- babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.7
- babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.7
- core-js-compat: 3.26.1
- semver: 6.3.0
+ '@babel/core': 7.22.9
+ '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.9
+ '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/preset-env@7.22.9(@babel/core@7.22.9):
+ resolution: {integrity: sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/compat-data': 7.22.9
+ '@babel/core': 7.22.9
+ '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-option': 7.22.5
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.9)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9)
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9)
+ '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.9)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.9)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.9)
+ '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-async-generator-functions': 7.22.7(@babel/core@7.22.9)
+ '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.22.9)
+ '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9)
+ '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-regenerator': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-unicode-escapes': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.9)
+ '@babel/preset-modules': 0.1.5(@babel/core@7.22.9)
+ '@babel/types': 7.22.5
+ babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.22.9)
+ babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.22.9)
+ babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.22.9)
+ core-js-compat: 3.32.0
+ semver: 6.3.1
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/preset-modules/0.1.5_@babel+core@7.20.7:
+ /@babel/preset-modules@0.1.5(@babel/core@7.22.9):
resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.7
- '@babel/types': 7.20.7
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.9)
+ '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9)
+ '@babel/types': 7.22.5
esutils: 2.0.3
dev: true
- /@babel/preset-typescript/7.18.6_@babel+core@7.20.7:
- resolution: {integrity: sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==}
+ /@babel/preset-typescript@7.22.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-validator-option': 7.18.6
- '@babel/plugin-transform-typescript': 7.20.7_@babel+core@7.20.7
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.22.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-option': 7.22.5
+ '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.9)
+ '@babel/plugin-transform-typescript': 7.22.9(@babel/core@7.22.9)
+ dev: true
+
+ /@babel/regjsgen@0.8.0:
+ resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
dev: true
- /@babel/runtime/7.20.7:
- resolution: {integrity: sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==}
+ /@babel/runtime@7.21.0:
+ resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.13.11
dev: true
- /@babel/template/7.20.7:
+ /@babel/template@7.20.7:
resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/code-frame': 7.18.6
- '@babel/parser': 7.20.7
- '@babel/types': 7.20.7
+ '@babel/code-frame': 7.21.4
+ '@babel/parser': 7.21.4
+ '@babel/types': 7.21.4
dev: true
- /@babel/traverse/7.20.8:
- resolution: {integrity: sha512-/RNkaYDeCy4MjyV70+QkSHhxbvj2JO/5Ft2Pa880qJOG8tWrqcT/wXUuCCv43yogfqPzHL77Xu101KQPf4clnQ==}
+ /@babel/template@7.22.5:
+ resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/code-frame': 7.18.6
- '@babel/generator': 7.20.7
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-function-name': 7.19.0
- '@babel/helper-hoist-variables': 7.18.6
- '@babel/helper-split-export-declaration': 7.18.6
- '@babel/parser': 7.20.7
- '@babel/types': 7.20.7
+ '@babel/code-frame': 7.22.5
+ '@babel/parser': 7.22.7
+ '@babel/types': 7.22.5
+ dev: true
+
+ /@babel/traverse@7.22.8:
+ resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.22.5
+ '@babel/generator': 7.22.9
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-hoist-variables': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/parser': 7.22.7
+ '@babel/types': 7.22.5
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/types/7.20.7:
- resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==}
+ /@babel/types@7.21.4:
+ resolution: {integrity: sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-string-parser': 7.19.4
@@ -1330,18 +1503,42 @@ packages:
to-fast-properties: 2.0.0
dev: true
- /@bcoe/v8-coverage/0.2.3:
+ /@babel/types@7.22.5:
+ resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.22.5
+ '@babel/helper-validator-identifier': 7.22.5
+ to-fast-properties: 2.0.0
+ dev: true
+
+ /@bcoe/v8-coverage@0.2.3:
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
dev: true
- /@eslint/eslintrc/1.4.0:
- resolution: {integrity: sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==}
+ /@eslint-community/eslint-utils@4.4.0(eslint@8.46.0):
+ resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+ dependencies:
+ eslint: 8.46.0
+ eslint-visitor-keys: 3.4.2
+ dev: true
+
+ /@eslint-community/regexpp@4.6.2:
+ resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+ dev: true
+
+ /@eslint/eslintrc@2.1.1:
+ resolution: {integrity: sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
debug: 4.3.4
- espree: 9.4.1
- globals: 13.19.0
+ espree: 9.6.1
+ globals: 13.20.0
ignore: 5.2.4
import-fresh: 3.3.0
js-yaml: 4.1.0
@@ -1351,8 +1548,13 @@ packages:
- supports-color
dev: true
- /@humanwhocodes/config-array/0.11.8:
- resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
+ /@eslint/js@8.46.0:
+ resolution: {integrity: sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /@humanwhocodes/config-array@0.11.10:
+ resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==}
engines: {node: '>=10.10.0'}
dependencies:
'@humanwhocodes/object-schema': 1.2.1
@@ -1362,16 +1564,16 @@ packages:
- supports-color
dev: true
- /@humanwhocodes/module-importer/1.0.1:
+ /@humanwhocodes/module-importer@1.0.1:
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines: {node: '>=12.22'}
dev: true
- /@humanwhocodes/object-schema/1.2.1:
+ /@humanwhocodes/object-schema@1.2.1:
resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
dev: true
- /@istanbuljs/load-nyc-config/1.1.0:
+ /@istanbuljs/load-nyc-config@1.1.0:
resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
engines: {node: '>=8'}
dependencies:
@@ -1382,25 +1584,25 @@ packages:
resolve-from: 5.0.0
dev: true
- /@istanbuljs/schema/0.1.3:
+ /@istanbuljs/schema@0.1.3:
resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
engines: {node: '>=8'}
dev: true
- /@jest/console/29.3.1:
- resolution: {integrity: sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==}
+ /@jest/console@29.6.2:
+ resolution: {integrity: sha512-0N0yZof5hi44HAR2pPS+ikJ3nzKNoZdVu8FffRf3wy47I7Dm7etk/3KetMdRUqzVd16V4O2m2ISpNTbnIuqy1w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/types': 29.3.1
- '@types/node': 18.11.17
+ '@jest/types': 29.6.1
+ '@types/node': 20.4.7
chalk: 4.1.2
- jest-message-util: 29.3.1
- jest-util: 29.3.1
+ jest-message-util: 29.6.2
+ jest-util: 29.6.2
slash: 3.0.0
dev: true
- /@jest/core/29.3.1:
- resolution: {integrity: sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==}
+ /@jest/core@29.6.2:
+ resolution: {integrity: sha512-Oj+5B+sDMiMWLhPFF+4/DvHOf+U10rgvCLGPHP8Xlsy/7QxS51aU/eBngudHlJXnaWD5EohAgJ4js+T6pa+zOg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
@@ -1408,92 +1610,100 @@ packages:
node-notifier:
optional: true
dependencies:
- '@jest/console': 29.3.1
- '@jest/reporters': 29.3.1
- '@jest/test-result': 29.3.1
- '@jest/transform': 29.3.1
- '@jest/types': 29.3.1
- '@types/node': 18.11.17
+ '@jest/console': 29.6.2
+ '@jest/reporters': 29.6.2
+ '@jest/test-result': 29.6.2
+ '@jest/transform': 29.6.2
+ '@jest/types': 29.6.1
+ '@types/node': 20.4.7
ansi-escapes: 4.3.2
chalk: 4.1.2
- ci-info: 3.7.0
+ ci-info: 3.8.0
exit: 0.1.2
- graceful-fs: 4.2.10
- jest-changed-files: 29.2.0
- jest-config: 29.3.1_@types+node@18.11.17
- jest-haste-map: 29.3.1
- jest-message-util: 29.3.1
- jest-regex-util: 29.2.0
- jest-resolve: 29.3.1
- jest-resolve-dependencies: 29.3.1
- jest-runner: 29.3.1
- jest-runtime: 29.3.1
- jest-snapshot: 29.3.1
- jest-util: 29.3.1
- jest-validate: 29.3.1
- jest-watcher: 29.3.1
+ graceful-fs: 4.2.11
+ jest-changed-files: 29.5.0
+ jest-config: 29.6.2(@types/node@20.4.7)
+ jest-haste-map: 29.6.2
+ jest-message-util: 29.6.2
+ jest-regex-util: 29.4.3
+ jest-resolve: 29.6.2
+ jest-resolve-dependencies: 29.6.2
+ jest-runner: 29.6.2
+ jest-runtime: 29.6.2
+ jest-snapshot: 29.6.2
+ jest-util: 29.6.2
+ jest-validate: 29.6.2
+ jest-watcher: 29.6.2
micromatch: 4.0.5
- pretty-format: 29.3.1
+ pretty-format: 29.6.2
slash: 3.0.0
strip-ansi: 6.0.1
transitivePeerDependencies:
+ - babel-plugin-macros
- supports-color
- ts-node
dev: true
- /@jest/environment/29.3.1:
- resolution: {integrity: sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==}
+ /@jest/environment@29.6.2:
+ resolution: {integrity: sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/fake-timers': 29.6.2
+ '@jest/types': 29.6.1
+ '@types/node': 20.4.7
+ jest-mock: 29.6.2
+ dev: true
+
+ /@jest/expect-utils@29.5.0:
+ resolution: {integrity: sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/fake-timers': 29.3.1
- '@jest/types': 29.3.1
- '@types/node': 18.11.17
- jest-mock: 29.3.1
+ jest-get-type: 29.4.3
dev: true
- /@jest/expect-utils/29.3.1:
- resolution: {integrity: sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==}
+ /@jest/expect-utils@29.6.2:
+ resolution: {integrity: sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- jest-get-type: 29.2.0
+ jest-get-type: 29.4.3
dev: true
- /@jest/expect/29.3.1:
- resolution: {integrity: sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==}
+ /@jest/expect@29.6.2:
+ resolution: {integrity: sha512-m6DrEJxVKjkELTVAztTLyS/7C92Y2b0VYqmDROYKLLALHn8T/04yPs70NADUYPrV3ruI+H3J0iUIuhkjp7vkfg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- expect: 29.3.1
- jest-snapshot: 29.3.1
+ expect: 29.6.2
+ jest-snapshot: 29.6.2
transitivePeerDependencies:
- supports-color
dev: true
- /@jest/fake-timers/29.3.1:
- resolution: {integrity: sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==}
+ /@jest/fake-timers@29.6.2:
+ resolution: {integrity: sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/types': 29.3.1
- '@sinonjs/fake-timers': 9.1.2
- '@types/node': 18.11.17
- jest-message-util: 29.3.1
- jest-mock: 29.3.1
- jest-util: 29.3.1
+ '@jest/types': 29.6.1
+ '@sinonjs/fake-timers': 10.0.2
+ '@types/node': 20.4.7
+ jest-message-util: 29.6.2
+ jest-mock: 29.6.2
+ jest-util: 29.6.2
dev: true
- /@jest/globals/29.3.1:
- resolution: {integrity: sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==}
+ /@jest/globals@29.6.2:
+ resolution: {integrity: sha512-cjuJmNDjs6aMijCmSa1g2TNG4Lby/AeU7/02VtpW+SLcZXzOLK2GpN2nLqcFjmhy3B3AoPeQVx7BnyOf681bAw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/environment': 29.3.1
- '@jest/expect': 29.3.1
- '@jest/types': 29.3.1
- jest-mock: 29.3.1
+ '@jest/environment': 29.6.2
+ '@jest/expect': 29.6.2
+ '@jest/types': 29.6.1
+ jest-mock: 29.6.2
transitivePeerDependencies:
- supports-color
dev: true
- /@jest/reporters/29.3.1:
- resolution: {integrity: sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==}
+ /@jest/reporters@29.6.2:
+ resolution: {integrity: sha512-sWtijrvIav8LgfJZlrGCdN0nP2EWbakglJY49J1Y5QihcQLfy7ovyxxjJBRXMNltgt4uPtEcFmIMbVshEDfFWw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
@@ -1502,84 +1712,91 @@ packages:
optional: true
dependencies:
'@bcoe/v8-coverage': 0.2.3
- '@jest/console': 29.3.1
- '@jest/test-result': 29.3.1
- '@jest/transform': 29.3.1
- '@jest/types': 29.3.1
- '@jridgewell/trace-mapping': 0.3.17
- '@types/node': 18.11.17
+ '@jest/console': 29.6.2
+ '@jest/test-result': 29.6.2
+ '@jest/transform': 29.6.2
+ '@jest/types': 29.6.1
+ '@jridgewell/trace-mapping': 0.3.18
+ '@types/node': 20.4.7
chalk: 4.1.2
collect-v8-coverage: 1.0.1
exit: 0.1.2
glob: 7.2.3
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
istanbul-lib-coverage: 3.2.0
istanbul-lib-instrument: 5.2.1
istanbul-lib-report: 3.0.0
istanbul-lib-source-maps: 4.0.1
istanbul-reports: 3.1.5
- jest-message-util: 29.3.1
- jest-util: 29.3.1
- jest-worker: 29.3.1
+ jest-message-util: 29.6.2
+ jest-util: 29.6.2
+ jest-worker: 29.6.2
slash: 3.0.0
string-length: 4.0.2
strip-ansi: 6.0.1
- v8-to-istanbul: 9.0.1
+ v8-to-istanbul: 9.1.0
transitivePeerDependencies:
- supports-color
dev: true
- /@jest/schemas/29.0.0:
- resolution: {integrity: sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==}
+ /@jest/schemas@29.4.3:
+ resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@sinclair/typebox': 0.24.51
+ '@sinclair/typebox': 0.25.24
dev: true
- /@jest/source-map/29.2.0:
- resolution: {integrity: sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==}
+ /@jest/schemas@29.6.0:
+ resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jridgewell/trace-mapping': 0.3.17
+ '@sinclair/typebox': 0.27.8
+ dev: true
+
+ /@jest/source-map@29.6.0:
+ resolution: {integrity: sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.18
callsites: 3.1.0
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
dev: true
- /@jest/test-result/29.3.1:
- resolution: {integrity: sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==}
+ /@jest/test-result@29.6.2:
+ resolution: {integrity: sha512-3VKFXzcV42EYhMCsJQURptSqnyjqCGbtLuX5Xxb6Pm6gUf1wIRIl+mandIRGJyWKgNKYF9cnstti6Ls5ekduqw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/console': 29.3.1
- '@jest/types': 29.3.1
+ '@jest/console': 29.6.2
+ '@jest/types': 29.6.1
'@types/istanbul-lib-coverage': 2.0.4
collect-v8-coverage: 1.0.1
dev: true
- /@jest/test-sequencer/29.3.1:
- resolution: {integrity: sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==}
+ /@jest/test-sequencer@29.6.2:
+ resolution: {integrity: sha512-GVYi6PfPwVejO7slw6IDO0qKVum5jtrJ3KoLGbgBWyr2qr4GaxFV6su+ZAjdTX75Sr1DkMFRk09r2ZVa+wtCGw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/test-result': 29.3.1
- graceful-fs: 4.2.10
- jest-haste-map: 29.3.1
+ '@jest/test-result': 29.6.2
+ graceful-fs: 4.2.11
+ jest-haste-map: 29.6.2
slash: 3.0.0
dev: true
- /@jest/transform/29.3.1:
- resolution: {integrity: sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==}
+ /@jest/transform@29.6.2:
+ resolution: {integrity: sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@babel/core': 7.20.7
- '@jest/types': 29.3.1
- '@jridgewell/trace-mapping': 0.3.17
+ '@babel/core': 7.22.9
+ '@jest/types': 29.6.1
+ '@jridgewell/trace-mapping': 0.3.18
babel-plugin-istanbul: 6.1.1
chalk: 4.1.2
convert-source-map: 2.0.0
fast-json-stable-stringify: 2.1.0
- graceful-fs: 4.2.10
- jest-haste-map: 29.3.1
- jest-regex-util: 29.2.0
- jest-util: 29.3.1
+ graceful-fs: 4.2.11
+ jest-haste-map: 29.6.2
+ jest-regex-util: 29.4.3
+ jest-util: 29.6.2
micromatch: 4.0.5
pirates: 4.0.5
slash: 3.0.0
@@ -1588,94 +1805,102 @@ packages:
- supports-color
dev: true
- /@jest/types/29.3.1:
- resolution: {integrity: sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==}
+ /@jest/types@29.5.0:
+ resolution: {integrity: sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/schemas': 29.0.0
+ '@jest/schemas': 29.4.3
'@types/istanbul-lib-coverage': 2.0.4
'@types/istanbul-reports': 3.0.1
- '@types/node': 18.11.17
- '@types/yargs': 17.0.17
+ '@types/node': 20.4.7
+ '@types/yargs': 17.0.24
chalk: 4.1.2
dev: true
- /@jridgewell/gen-mapping/0.1.1:
- resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==}
- engines: {node: '>=6.0.0'}
+ /@jest/types@29.6.1:
+ resolution: {integrity: sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jridgewell/set-array': 1.1.2
- '@jridgewell/sourcemap-codec': 1.4.14
+ '@jest/schemas': 29.6.0
+ '@types/istanbul-lib-coverage': 2.0.4
+ '@types/istanbul-reports': 3.0.1
+ '@types/node': 20.4.7
+ '@types/yargs': 17.0.24
+ chalk: 4.1.2
dev: true
- /@jridgewell/gen-mapping/0.3.2:
- resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
+ /@jridgewell/gen-mapping@0.3.3:
+ resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
engines: {node: '>=6.0.0'}
dependencies:
'@jridgewell/set-array': 1.1.2
- '@jridgewell/sourcemap-codec': 1.4.14
- '@jridgewell/trace-mapping': 0.3.17
+ '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/trace-mapping': 0.3.18
dev: true
- /@jridgewell/resolve-uri/3.1.0:
+ /@jridgewell/resolve-uri@3.1.0:
resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
engines: {node: '>=6.0.0'}
dev: true
- /@jridgewell/set-array/1.1.2:
+ /@jridgewell/set-array@1.1.2:
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
engines: {node: '>=6.0.0'}
dev: true
- /@jridgewell/source-map/0.3.2:
- resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==}
+ /@jridgewell/source-map@0.3.3:
+ resolution: {integrity: sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==}
dependencies:
- '@jridgewell/gen-mapping': 0.3.2
- '@jridgewell/trace-mapping': 0.3.17
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.18
dev: true
- /@jridgewell/sourcemap-codec/1.4.14:
+ /@jridgewell/sourcemap-codec@1.4.14:
resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
dev: true
- /@jridgewell/trace-mapping/0.3.17:
- resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==}
+ /@jridgewell/sourcemap-codec@1.4.15:
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+ dev: true
+
+ /@jridgewell/trace-mapping@0.3.18:
+ resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==}
dependencies:
'@jridgewell/resolve-uri': 3.1.0
'@jridgewell/sourcemap-codec': 1.4.14
dev: true
- /@mswjs/cookies/0.2.2:
+ /@mswjs/cookies@0.2.2:
resolution: {integrity: sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==}
engines: {node: '>=14'}
dependencies:
'@types/set-cookie-parser': 2.4.2
- set-cookie-parser: 2.5.1
+ set-cookie-parser: 2.6.0
dev: true
- /@mswjs/interceptors/0.17.6:
- resolution: {integrity: sha512-201pBIWehTURb6q8Gheu4Zhvd3Ox1U4BJq5KiOQsYzkWyfiOG4pwcz5hPZIEryztgrf8/sdwABpvY757xMmfrQ==}
+ /@mswjs/interceptors@0.17.9:
+ resolution: {integrity: sha512-4LVGt03RobMH/7ZrbHqRxQrS9cc2uh+iNKSj8UWr8M26A2i793ju+csaB5zaqYltqJmA2jUq4VeYfKmVqvsXQg==}
engines: {node: '>=14'}
dependencies:
'@open-draft/until': 1.0.3
- '@types/debug': 4.1.7
- '@xmldom/xmldom': 0.8.6
+ '@types/debug': 4.1.8
+ '@xmldom/xmldom': 0.8.7
debug: 4.3.4
headers-polyfill: 3.1.2
- outvariant: 1.3.0
+ outvariant: 1.4.0
strict-event-emitter: 0.2.8
web-encoding: 1.1.5
transitivePeerDependencies:
- supports-color
dev: true
- /@nicolo-ribaudo/chokidar-2/2.1.8-no-fsevents.3:
+ /@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3:
resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==}
requiresBuild: true
dev: true
optional: true
- /@nodelib/fs.scandir/2.1.5:
+ /@nodelib/fs.scandir@2.1.5:
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
dependencies:
@@ -1683,33 +1908,35 @@ packages:
run-parallel: 1.2.0
dev: true
- /@nodelib/fs.stat/2.0.5:
+ /@nodelib/fs.stat@2.0.5:
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
engines: {node: '>= 8'}
dev: true
- /@nodelib/fs.walk/1.2.8:
+ /@nodelib/fs.walk@1.2.8:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
dependencies:
'@nodelib/fs.scandir': 2.1.5
- fastq: 1.14.0
+ fastq: 1.15.0
dev: true
- /@open-draft/until/1.0.3:
+ /@open-draft/until@1.0.3:
resolution: {integrity: sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==}
dev: true
- /@playwright/test/1.29.1:
- resolution: {integrity: sha512-iQxk2DX5U9wOGV3+/Jh9OHPsw5H3mleUL2S4BgQuwtlAfK3PnKvn38m4Rg9zIViGHVW24opSm99HQm/UFLEy6w==}
- engines: {node: '>=14'}
+ /@playwright/test@1.36.2:
+ resolution: {integrity: sha512-2rVZeyPRjxfPH6J0oGJqE8YxiM1IBRyM8hyrXYK7eSiAqmbNhxwcLa7dZ7fy9Kj26V7FYia5fh9XJRq4Dqme+g==}
+ engines: {node: '>=16'}
hasBin: true
dependencies:
- '@types/node': 18.11.17
- playwright-core: 1.29.1
+ '@types/node': 20.4.7
+ playwright-core: 1.36.2
+ optionalDependencies:
+ fsevents: 2.3.2
dev: true
- /@rollup/plugin-babel/6.0.3_dfwdex4qe3e2dx2m4b7f5c5gee:
+ /@rollup/plugin-babel@6.0.3(@babel/core@7.22.9)(rollup@3.27.2):
resolution: {integrity: sha512-fKImZKppa1A/gX73eg4JGo+8kQr/q1HBQaCGKECZ0v4YBBv3lFqi14+7xyApECzvkLTHCifx+7ntcrvtBIRcpg==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -1722,14 +1949,14 @@ packages:
rollup:
optional: true
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-module-imports': 7.18.6
- '@rollup/pluginutils': 5.0.2_rollup@3.8.1
- rollup: 3.8.1
+ '@babel/core': 7.22.9
+ '@babel/helper-module-imports': 7.21.4
+ '@rollup/pluginutils': 5.0.2(rollup@3.27.2)
+ rollup: 3.27.2
dev: true
- /@rollup/plugin-node-resolve/15.0.1_rollup@3.8.1:
- resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==}
+ /@rollup/plugin-node-resolve@15.1.0(rollup@3.27.2):
+ resolution: {integrity: sha512-xeZHCgsiZ9pzYVgAo9580eCGqwh/XCEUM9q6iQfGNocjgkufHAqC3exA+45URvhiYV8sBF9RlBai650eNs7AsA==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^2.78.0||^3.0.0
@@ -1737,17 +1964,17 @@ packages:
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.0.2_rollup@3.8.1
+ '@rollup/pluginutils': 5.0.2(rollup@3.27.2)
'@types/resolve': 1.20.2
- deepmerge: 4.2.2
- is-builtin-module: 3.2.0
+ deepmerge: 4.3.1
+ is-builtin-module: 3.2.1
is-module: 1.0.0
- resolve: 1.22.1
- rollup: 3.8.1
+ resolve: 1.22.2
+ rollup: 3.27.2
dev: true
- /@rollup/plugin-terser/0.1.0_rollup@3.8.1:
- resolution: {integrity: sha512-N2KK+qUfHX2hBzVzM41UWGLrEmcjVC37spC8R3c9mt3oEDFKh3N2e12/lLp9aVSt86veR0TQiCNQXrm8C6aiUQ==}
+ /@rollup/plugin-terser@0.4.3(rollup@3.27.2):
+ resolution: {integrity: sha512-EF0oejTMtkyhrkwCdg0HJ0IpkcaVg1MMSf2olHb2Jp+1mnLM04OhjpJWGma4HobiDTF0WCyViWuvadyE9ch2XA==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^2.x || ^3.x
@@ -1755,11 +1982,13 @@ packages:
rollup:
optional: true
dependencies:
- rollup: 3.8.1
- terser: 5.16.1
+ rollup: 3.27.2
+ serialize-javascript: 6.0.1
+ smob: 1.4.0
+ terser: 5.19.2
dev: true
- /@rollup/pluginutils/5.0.2_rollup@3.8.1:
+ /@rollup/pluginutils@5.0.2(rollup@3.27.2):
resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -1771,276 +2000,308 @@ packages:
'@types/estree': 1.0.0
estree-walker: 2.0.2
picomatch: 2.3.1
- rollup: 3.8.1
+ rollup: 3.27.2
+ dev: true
+
+ /@sinclair/typebox@0.25.24:
+ resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==}
dev: true
- /@sinclair/typebox/0.24.51:
- resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==}
+ /@sinclair/typebox@0.27.8:
+ resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
dev: true
- /@sinonjs/commons/1.8.6:
- resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==}
+ /@sinonjs/commons@2.0.0:
+ resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==}
dependencies:
type-detect: 4.0.8
dev: true
- /@sinonjs/fake-timers/9.1.2:
- resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==}
+ /@sinonjs/fake-timers@10.0.2:
+ resolution: {integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==}
dependencies:
- '@sinonjs/commons': 1.8.6
+ '@sinonjs/commons': 2.0.0
dev: true
- /@testing-library/dom/8.19.0:
- resolution: {integrity: sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==}
- engines: {node: '>=12'}
+ /@testing-library/dom@9.3.1:
+ resolution: {integrity: sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w==}
+ engines: {node: '>=14'}
dependencies:
- '@babel/code-frame': 7.18.6
- '@babel/runtime': 7.20.7
- '@types/aria-query': 4.2.2
+ '@babel/code-frame': 7.21.4
+ '@babel/runtime': 7.21.0
+ '@types/aria-query': 5.0.1
aria-query: 5.1.3
chalk: 4.1.2
- dom-accessibility-api: 0.5.14
- lz-string: 1.4.4
+ dom-accessibility-api: 0.5.16
+ lz-string: 1.5.0
pretty-format: 27.5.1
dev: true
- /@tootallnate/once/2.0.0:
+ /@tootallnate/once@2.0.0:
resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
engines: {node: '>= 10'}
dev: true
- /@types/aria-query/4.2.2:
- resolution: {integrity: sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==}
+ /@types/aria-query@5.0.1:
+ resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==}
dev: true
- /@types/babel__core/7.1.20:
- resolution: {integrity: sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==}
+ /@types/babel__core@7.20.0:
+ resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==}
dependencies:
- '@babel/parser': 7.20.7
- '@babel/types': 7.20.7
+ '@babel/parser': 7.21.4
+ '@babel/types': 7.21.4
'@types/babel__generator': 7.6.4
'@types/babel__template': 7.4.1
'@types/babel__traverse': 7.18.3
dev: true
- /@types/babel__generator/7.6.4:
+ /@types/babel__generator@7.6.4:
resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.4
dev: true
- /@types/babel__template/7.4.1:
+ /@types/babel__template@7.4.1:
resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==}
dependencies:
- '@babel/parser': 7.20.7
- '@babel/types': 7.20.7
+ '@babel/parser': 7.21.4
+ '@babel/types': 7.21.4
dev: true
- /@types/babel__traverse/7.18.3:
+ /@types/babel__traverse@7.18.3:
resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.21.4
dev: true
- /@types/cookie/0.4.1:
+ /@types/cookie@0.4.1:
resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==}
dev: true
- /@types/debug/4.1.7:
- resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==}
+ /@types/debug@4.1.8:
+ resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==}
dependencies:
'@types/ms': 0.7.31
dev: true
- /@types/estree/1.0.0:
+ /@types/estree@1.0.0:
resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
dev: true
- /@types/graceful-fs/4.1.5:
- resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==}
+ /@types/graceful-fs@4.1.6:
+ resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==}
dependencies:
- '@types/node': 18.11.17
+ '@types/node': 20.4.7
dev: true
- /@types/istanbul-lib-coverage/2.0.4:
+ /@types/istanbul-lib-coverage@2.0.4:
resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
dev: true
- /@types/istanbul-lib-report/3.0.0:
+ /@types/istanbul-lib-report@3.0.0:
resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==}
dependencies:
'@types/istanbul-lib-coverage': 2.0.4
dev: true
- /@types/istanbul-reports/3.0.1:
+ /@types/istanbul-reports@3.0.1:
resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==}
dependencies:
'@types/istanbul-lib-report': 3.0.0
dev: true
- /@types/jest/29.2.4:
- resolution: {integrity: sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A==}
+ /@types/jest-axe@3.5.5:
+ resolution: {integrity: sha512-b8WDIdoeKtr/JDJ2+QjFXMuS8UhfdMA6+15Z5KjjIie3jQrSXD9KZWMSQxc0nPtx7L9rIFKdiDpQk+m7s4a/8w==}
+ dependencies:
+ '@types/jest': 29.5.3
+ axe-core: 3.5.6
+ dev: true
+
+ /@types/jest@29.5.3:
+ resolution: {integrity: sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA==}
dependencies:
- expect: 29.3.1
- pretty-format: 29.3.1
+ expect: 29.5.0
+ pretty-format: 29.5.0
dev: true
- /@types/jquery/3.5.14:
- resolution: {integrity: sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==}
+ /@types/jquery@3.5.16:
+ resolution: {integrity: sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==}
dependencies:
'@types/sizzle': 2.3.3
dev: true
- /@types/js-levenshtein/1.1.1:
+ /@types/js-levenshtein@1.1.1:
resolution: {integrity: sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==}
dev: true
- /@types/jsdom/20.0.1:
+ /@types/jsdom@20.0.1:
resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
dependencies:
- '@types/node': 18.11.17
+ '@types/node': 20.4.7
'@types/tough-cookie': 4.0.2
parse5: 7.1.2
dev: true
- /@types/json-schema/7.0.11:
+ /@types/json-schema@7.0.11:
resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
dev: true
- /@types/json5/0.0.29:
- resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+ /@types/json-schema@7.0.12:
+ resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==}
dev: true
- /@types/ms/0.7.31:
- resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==}
+ /@types/json5@0.0.29:
+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
dev: true
- /@types/node/18.11.17:
- resolution: {integrity: sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==}
+ /@types/ms@0.7.31:
+ resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==}
dev: true
- /@types/prettier/2.7.2:
- resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==}
+ /@types/node@20.4.7:
+ resolution: {integrity: sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==}
dev: true
- /@types/resolve/1.20.2:
+ /@types/resolve@1.20.2:
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
dev: true
- /@types/semver/7.3.13:
+ /@types/semver@7.3.13:
resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
dev: true
- /@types/set-cookie-parser/2.4.2:
+ /@types/semver@7.5.0:
+ resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==}
+ dev: true
+
+ /@types/set-cookie-parser@2.4.2:
resolution: {integrity: sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==}
dependencies:
- '@types/node': 18.11.17
+ '@types/node': 20.4.7
dev: true
- /@types/sizzle/2.3.3:
+ /@types/sizzle@2.3.3:
resolution: {integrity: sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==}
dev: true
- /@types/stack-utils/2.0.1:
+ /@types/stack-utils@2.0.1:
resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==}
dev: true
- /@types/tough-cookie/4.0.2:
+ /@types/tough-cookie@4.0.2:
resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==}
dev: true
- /@types/yargs-parser/21.0.0:
+ /@types/yargs-parser@21.0.0:
resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
dev: true
- /@types/yargs/17.0.17:
- resolution: {integrity: sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==}
+ /@types/yargs@17.0.24:
+ resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==}
dependencies:
'@types/yargs-parser': 21.0.0
dev: true
- /@typescript-eslint/eslint-plugin/5.47.0_ncmi6noazr3nzas7jxykisekym:
- resolution: {integrity: sha512-AHZtlXAMGkDmyLuLZsRpH3p4G/1iARIwc/T0vIem2YB+xW6pZaXYXzCBnZSF/5fdM97R9QqZWZ+h3iW10XgevQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ /@typescript-eslint/eslint-plugin@6.2.1(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-iZVM/ALid9kO0+I81pnp1xmYiFyqibAHzrqX4q5YvvVEyJqY+e6rfTXSCsc2jUxGNqJqTfFSSij/NFkZBiBzLw==}
+ engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
- '@typescript-eslint/parser': ^5.0.0
- eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
+ eslint: ^7.0.0 || ^8.0.0
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
- '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa
- '@typescript-eslint/scope-manager': 5.47.0
- '@typescript-eslint/type-utils': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa
- '@typescript-eslint/utils': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa
+ '@eslint-community/regexpp': 4.6.2
+ '@typescript-eslint/parser': 6.2.1(eslint@8.46.0)(typescript@5.1.6)
+ '@typescript-eslint/scope-manager': 6.2.1
+ '@typescript-eslint/type-utils': 6.2.1(eslint@8.46.0)(typescript@5.1.6)
+ '@typescript-eslint/utils': 6.2.1(eslint@8.46.0)(typescript@5.1.6)
+ '@typescript-eslint/visitor-keys': 6.2.1
debug: 4.3.4
- eslint: 8.30.0
+ eslint: 8.46.0
+ graphemer: 1.4.0
ignore: 5.2.4
+ natural-compare: 1.4.0
natural-compare-lite: 1.4.0
- regexpp: 3.2.0
- semver: 7.3.8
- tsutils: 3.21.0_typescript@4.9.4
- typescript: 4.9.4
+ semver: 7.5.4
+ ts-api-utils: 1.0.1(typescript@5.1.6)
+ typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/parser/5.47.0_lzzuuodtsqwxnvqeq4g4likcqa:
- resolution: {integrity: sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ /@typescript-eslint/parser@6.2.1(eslint@8.46.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-Ld+uL1kYFU8e6btqBFpsHkwQ35rw30IWpdQxgOqOh4NfxSDH6uCkah1ks8R/RgQqI5hHPXMaLy9fbFseIe+dIg==}
+ engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ eslint: ^7.0.0 || ^8.0.0
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
- '@typescript-eslint/scope-manager': 5.47.0
- '@typescript-eslint/types': 5.47.0
- '@typescript-eslint/typescript-estree': 5.47.0_typescript@4.9.4
+ '@typescript-eslint/scope-manager': 6.2.1
+ '@typescript-eslint/types': 6.2.1
+ '@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.6)
+ '@typescript-eslint/visitor-keys': 6.2.1
debug: 4.3.4
- eslint: 8.30.0
- typescript: 4.9.4
+ eslint: 8.46.0
+ typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/scope-manager/5.47.0:
- resolution: {integrity: sha512-dvJab4bFf7JVvjPuh3sfBUWsiD73aiftKBpWSfi3sUkysDQ4W8x+ZcFpNp7Kgv0weldhpmMOZBjx1wKN8uWvAw==}
+ /@typescript-eslint/scope-manager@5.58.0:
+ resolution: {integrity: sha512-b+w8ypN5CFvrXWQb9Ow9T4/6LC2MikNf1viLkYTiTbkQl46CnR69w7lajz1icW0TBsYmlpg+mRzFJ4LEJ8X9NA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
- '@typescript-eslint/types': 5.47.0
- '@typescript-eslint/visitor-keys': 5.47.0
+ '@typescript-eslint/types': 5.58.0
+ '@typescript-eslint/visitor-keys': 5.58.0
dev: true
- /@typescript-eslint/type-utils/5.47.0_lzzuuodtsqwxnvqeq4g4likcqa:
- resolution: {integrity: sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ /@typescript-eslint/scope-manager@6.2.1:
+ resolution: {integrity: sha512-UCqBF9WFqv64xNsIEPfBtenbfodPXsJ3nPAr55mGPkQIkiQvgoWNo+astj9ZUfJfVKiYgAZDMnM6dIpsxUMp3Q==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dependencies:
+ '@typescript-eslint/types': 6.2.1
+ '@typescript-eslint/visitor-keys': 6.2.1
+ dev: true
+
+ /@typescript-eslint/type-utils@6.2.1(eslint@8.46.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-fTfCgomBMIgu2Dh2Or3gMYgoNAnQm3RLtRp+jP7A8fY+LJ2+9PNpi5p6QB5C4RSP+U3cjI0vDlI3mspAkpPVbQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
- eslint: '*'
+ eslint: ^7.0.0 || ^8.0.0
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 5.47.0_typescript@4.9.4
- '@typescript-eslint/utils': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa
+ '@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.6)
+ '@typescript-eslint/utils': 6.2.1(eslint@8.46.0)(typescript@5.1.6)
debug: 4.3.4
- eslint: 8.30.0
- tsutils: 3.21.0_typescript@4.9.4
- typescript: 4.9.4
+ eslint: 8.46.0
+ ts-api-utils: 1.0.1(typescript@5.1.6)
+ typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/types/5.47.0:
- resolution: {integrity: sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg==}
+ /@typescript-eslint/types@5.58.0:
+ resolution: {integrity: sha512-JYV4eITHPzVQMnHZcYJXl2ZloC7thuUHrcUmxtzvItyKPvQ50kb9QXBkgNAt90OYMqwaodQh2kHutWZl1fc+1g==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@typescript-eslint/typescript-estree/5.47.0_typescript@4.9.4:
- resolution: {integrity: sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q==}
+ /@typescript-eslint/types@6.2.1:
+ resolution: {integrity: sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dev: true
+
+ /@typescript-eslint/typescript-estree@5.58.0(typescript@5.1.6):
+ resolution: {integrity: sha512-cRACvGTodA+UxnYM2uwA2KCwRL7VAzo45syNysqlMyNyjw0Z35Icc9ihPJZjIYuA5bXJYiJ2YGUB59BqlOZT1Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
typescript: '*'
@@ -2048,88 +2309,142 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/types': 5.47.0
- '@typescript-eslint/visitor-keys': 5.47.0
+ '@typescript-eslint/types': 5.58.0
+ '@typescript-eslint/visitor-keys': 5.58.0
+ debug: 4.3.4
+ globby: 11.1.0
+ is-glob: 4.0.3
+ semver: 7.4.0
+ tsutils: 3.21.0(typescript@5.1.6)
+ typescript: 5.1.6
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/typescript-estree@6.2.1(typescript@5.1.6):
+ resolution: {integrity: sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/types': 6.2.1
+ '@typescript-eslint/visitor-keys': 6.2.1
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
- semver: 7.3.8
- tsutils: 3.21.0_typescript@4.9.4
- typescript: 4.9.4
+ semver: 7.5.4
+ ts-api-utils: 1.0.1(typescript@5.1.6)
+ typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/utils/5.47.0_lzzuuodtsqwxnvqeq4g4likcqa:
- resolution: {integrity: sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw==}
+ /@typescript-eslint/utils@5.58.0(eslint@8.46.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-gAmLOTFXMXOC+zP1fsqm3VceKSBQJNzV385Ok3+yzlavNHZoedajjS4UyS21gabJYcobuigQPs/z71A9MdJFqQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0)
'@types/json-schema': 7.0.11
'@types/semver': 7.3.13
- '@typescript-eslint/scope-manager': 5.47.0
- '@typescript-eslint/types': 5.47.0
- '@typescript-eslint/typescript-estree': 5.47.0_typescript@4.9.4
- eslint: 8.30.0
+ '@typescript-eslint/scope-manager': 5.58.0
+ '@typescript-eslint/types': 5.58.0
+ '@typescript-eslint/typescript-estree': 5.58.0(typescript@5.1.6)
+ eslint: 8.46.0
eslint-scope: 5.1.1
- eslint-utils: 3.0.0_eslint@8.30.0
- semver: 7.3.8
+ semver: 7.4.0
transitivePeerDependencies:
- supports-color
- typescript
dev: true
- /@typescript-eslint/visitor-keys/5.47.0:
- resolution: {integrity: sha512-ByPi5iMa6QqDXe/GmT/hR6MZtVPi0SqMQPDx15FczCBXJo/7M8T88xReOALAfpBLm+zxpPfmhuEvPb577JRAEg==}
+ /@typescript-eslint/utils@6.2.1(eslint@8.46.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-eBIXQeupYmxVB6S7x+B9SdBeB6qIdXKjgQBge2J+Ouv8h9Cxm5dHf/gfAZA6dkMaag+03HdbVInuXMmqFB/lKQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0)
+ '@types/json-schema': 7.0.12
+ '@types/semver': 7.5.0
+ '@typescript-eslint/scope-manager': 6.2.1
+ '@typescript-eslint/types': 6.2.1
+ '@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.6)
+ eslint: 8.46.0
+ semver: 7.5.4
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /@typescript-eslint/visitor-keys@5.58.0:
+ resolution: {integrity: sha512-/fBraTlPj0jwdyTwLyrRTxv/3lnU2H96pNTVM6z3esTWLtA5MZ9ghSMJ7Rb+TtUAdtEw9EyJzJ0EydIMKxQ9gA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
- '@typescript-eslint/types': 5.47.0
- eslint-visitor-keys: 3.3.0
+ '@typescript-eslint/types': 5.58.0
+ eslint-visitor-keys: 3.4.0
+ dev: true
+
+ /@typescript-eslint/visitor-keys@6.2.1:
+ resolution: {integrity: sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dependencies:
+ '@typescript-eslint/types': 6.2.1
+ eslint-visitor-keys: 3.4.2
dev: true
- /@xmldom/xmldom/0.8.6:
- resolution: {integrity: sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==}
+ /@xmldom/xmldom@0.8.7:
+ resolution: {integrity: sha512-sI1Ly2cODlWStkINzqGrZ8K6n+MTSbAeQnAipGyL+KZCXuHaRlj2gyyy8B/9MvsFFqN7XHryQnB2QwhzvJXovg==}
engines: {node: '>=10.0.0'}
dev: true
- /@zxing/text-encoding/0.9.0:
+ /@zxing/text-encoding@0.9.0:
resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==}
requiresBuild: true
dev: true
optional: true
- /abab/2.0.6:
+ /abab@2.0.6:
resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
dev: true
- /acorn-globals/7.0.1:
+ /acorn-globals@7.0.1:
resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
dependencies:
- acorn: 8.8.1
+ acorn: 8.8.2
acorn-walk: 8.2.0
dev: true
- /acorn-jsx/5.3.2_acorn@8.8.1:
+ /acorn-jsx@5.3.2(acorn@8.10.0):
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
- acorn: 8.8.1
+ acorn: 8.10.0
dev: true
- /acorn-walk/8.2.0:
+ /acorn-walk@8.2.0:
resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
engines: {node: '>=0.4.0'}
dev: true
- /acorn/8.8.1:
- resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==}
+ /acorn@8.10.0:
+ resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==}
engines: {node: '>=0.4.0'}
hasBin: true
dev: true
- /agent-base/6.0.2:
+ /acorn@8.8.2:
+ resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /agent-base@6.0.2:
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
engines: {node: '>= 6.0.0'}
dependencies:
@@ -2138,15 +2453,7 @@ packages:
- supports-color
dev: true
- /aggregate-error/3.1.0:
- resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
- engines: {node: '>=8'}
- dependencies:
- clean-stack: 2.2.0
- indent-string: 4.0.0
- dev: true
-
- /ajv/6.12.6:
+ /ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
fast-deep-equal: 3.1.3
@@ -2155,38 +2462,38 @@ packages:
uri-js: 4.4.1
dev: true
- /ansi-escapes/4.3.2:
+ /ansi-escapes@4.3.2:
resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
engines: {node: '>=8'}
dependencies:
type-fest: 0.21.3
dev: true
- /ansi-regex/5.0.1:
+ /ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
dev: true
- /ansi-styles/3.2.1:
+ /ansi-styles@3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
engines: {node: '>=4'}
dependencies:
color-convert: 1.9.3
dev: true
- /ansi-styles/4.3.0:
+ /ansi-styles@4.3.0:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
dependencies:
color-convert: 2.0.1
dev: true
- /ansi-styles/5.2.0:
+ /ansi-styles@5.2.0:
resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
engines: {node: '>=10'}
dev: true
- /anymatch/3.1.3:
+ /anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
dependencies:
@@ -2194,103 +2501,130 @@ packages:
picomatch: 2.3.1
dev: true
- /append-transform/2.0.0:
- resolution: {integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==}
- engines: {node: '>=8'}
- dependencies:
- default-require-extensions: 3.0.1
- dev: true
-
- /archy/1.0.0:
- resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
- dev: true
-
- /argparse/1.0.10:
+ /argparse@1.0.10:
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
dependencies:
sprintf-js: 1.0.3
dev: true
- /argparse/2.0.1:
+ /argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
dev: true
- /aria-query/5.1.3:
+ /aria-query@5.1.3:
resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
dependencies:
- deep-equal: 2.1.0
+ deep-equal: 2.2.0
+ dev: true
+
+ /array-buffer-byte-length@1.0.0:
+ resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
+ dependencies:
+ call-bind: 1.0.2
+ is-array-buffer: 3.0.2
dev: true
- /array-includes/3.1.6:
+ /array-includes@3.1.6:
resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.20.5
- get-intrinsic: 1.1.3
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ get-intrinsic: 1.2.0
is-string: 1.0.7
dev: true
- /array-union/2.1.0:
+ /array-union@2.1.0:
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
engines: {node: '>=8'}
dev: true
- /array.prototype.flat/1.3.1:
+ /array.prototype.findlastindex@1.2.2:
+ resolution: {integrity: sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ es-shim-unscopables: 1.0.0
+ get-intrinsic: 1.2.0
+ dev: true
+
+ /array.prototype.flat@1.3.1:
resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.20.5
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ es-shim-unscopables: 1.0.0
+ dev: true
+
+ /array.prototype.flatmap@1.3.1:
+ resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
es-shim-unscopables: 1.0.0
dev: true
- /asynckit/0.4.0:
+ /asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
dev: true
- /autoprefixer/10.4.13_postcss@8.4.20:
- resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==}
+ /autoprefixer@10.4.14(postcss@8.4.27):
+ resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==}
engines: {node: ^10 || ^12 || >=14}
hasBin: true
peerDependencies:
postcss: ^8.1.0
dependencies:
- browserslist: 4.21.4
- caniuse-lite: 1.0.30001441
+ browserslist: 4.21.5
+ caniuse-lite: 1.0.30001477
fraction.js: 4.2.0
normalize-range: 0.1.2
picocolors: 1.0.0
- postcss: 8.4.20
+ postcss: 8.4.27
postcss-value-parser: 4.2.0
dev: true
- /available-typed-arrays/1.0.5:
+ /available-typed-arrays@1.0.5:
resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
engines: {node: '>= 0.4'}
dev: true
- /babel-jest/29.3.1_@babel+core@7.20.7:
- resolution: {integrity: sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==}
+ /axe-core@3.5.6:
+ resolution: {integrity: sha512-LEUDjgmdJoA3LqklSTwKYqkjcZ4HKc4ddIYGSAiSkr46NTjzg2L9RNB+lekO9P7Dlpa87+hBtzc2Fzn/+GUWMQ==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /axe-core@4.7.2:
+ resolution: {integrity: sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /babel-jest@29.6.2(@babel/core@7.22.9):
+ resolution: {integrity: sha512-BYCzImLos6J3BH/+HvUCHG1dTf2MzmAB4jaVxHV+29RZLjR29XuYTmsf2sdDwkrb+FczkGo3kOhE7ga6sI0P4A==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@babel/core': ^7.8.0
dependencies:
- '@babel/core': 7.20.7
- '@jest/transform': 29.3.1
- '@types/babel__core': 7.1.20
+ '@babel/core': 7.22.9
+ '@jest/transform': 29.6.2
+ '@types/babel__core': 7.20.0
babel-plugin-istanbul: 6.1.1
- babel-preset-jest: 29.2.0_@babel+core@7.20.7
+ babel-preset-jest: 29.5.0(@babel/core@7.22.9)
chalk: 4.1.2
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
slash: 3.0.0
transitivePeerDependencies:
- supports-color
dev: true
- /babel-plugin-istanbul/6.1.1:
+ /babel-plugin-istanbul@6.1.1:
resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
engines: {node: '>=8'}
dependencies:
@@ -2303,188 +2637,193 @@ packages:
- supports-color
dev: true
- /babel-plugin-jest-hoist/29.2.0:
- resolution: {integrity: sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==}
+ /babel-plugin-jest-hoist@29.5.0:
+ resolution: {integrity: sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@babel/template': 7.20.7
- '@babel/types': 7.20.7
- '@types/babel__core': 7.1.20
+ '@babel/types': 7.21.4
+ '@types/babel__core': 7.20.0
'@types/babel__traverse': 7.18.3
dev: true
- /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.20.7:
- resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==}
+ /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.22.9):
+ resolution: {integrity: sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==}
peerDependencies:
- '@babel/core': ^7.0.0-0
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
dependencies:
- '@babel/compat-data': 7.20.5
- '@babel/core': 7.20.7
- '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.7
- semver: 6.3.0
+ '@babel/compat-data': 7.22.9
+ '@babel/core': 7.22.9
+ '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9)
+ semver: 6.3.1
transitivePeerDependencies:
- supports-color
dev: true
- /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.20.7:
- resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==}
+ /babel-plugin-polyfill-corejs3@0.8.3(@babel/core@7.22.9):
+ resolution: {integrity: sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==}
peerDependencies:
- '@babel/core': ^7.0.0-0
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.7
- core-js-compat: 3.26.1
+ '@babel/core': 7.22.9
+ '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9)
+ core-js-compat: 3.32.0
transitivePeerDependencies:
- supports-color
dev: true
- /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.20.7:
- resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==}
+ /babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.22.9):
+ resolution: {integrity: sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==}
peerDependencies:
- '@babel/core': ^7.0.0-0
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
dependencies:
- '@babel/core': 7.20.7
- '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.7
+ '@babel/core': 7.22.9
+ '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9)
transitivePeerDependencies:
- supports-color
dev: true
- /babel-preset-current-node-syntax/1.0.1_@babel+core@7.20.7:
+ /babel-preset-current-node-syntax@1.0.1(@babel/core@7.22.9):
resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.7
- '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.7
- '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.20.7
- '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.7
- '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.20.7
- '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.7
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.7
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.7
- '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.7
- '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.7
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.7
- '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.7
- '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.7
- dev: true
-
- /babel-preset-jest/29.2.0_@babel+core@7.20.7:
- resolution: {integrity: sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==}
+ '@babel/core': 7.22.9
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.22.9)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.9)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.9)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.9)
+ dev: true
+
+ /babel-preset-jest@29.5.0(@babel/core@7.22.9):
+ resolution: {integrity: sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.7
- babel-plugin-jest-hoist: 29.2.0
- babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.7
+ '@babel/core': 7.22.9
+ babel-plugin-jest-hoist: 29.5.0
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.9)
dev: true
- /balanced-match/1.0.2:
+ /balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: true
- /base64-js/1.5.1:
+ /base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
dev: true
- /binary-extensions/2.2.0:
+ /binary-extensions@2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
engines: {node: '>=8'}
dev: true
- /bl/4.1.0:
+ /bl@4.1.0:
resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
dependencies:
buffer: 5.7.1
inherits: 2.0.4
- readable-stream: 3.6.0
+ readable-stream: 3.6.2
dev: true
- /brace-expansion/1.1.11:
+ /brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
dev: true
- /braces/3.0.2:
+ /braces@3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
dependencies:
fill-range: 7.0.1
dev: true
- /browserslist/4.21.4:
- resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==}
+ /browserslist@4.21.10:
+ resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001441
- electron-to-chromium: 1.4.284
- node-releases: 2.0.8
- update-browserslist-db: 1.0.10_browserslist@4.21.4
+ caniuse-lite: 1.0.30001519
+ electron-to-chromium: 1.4.485
+ node-releases: 2.0.13
+ update-browserslist-db: 1.0.11(browserslist@4.21.10)
dev: true
- /bser/2.1.1:
+ /browserslist@4.21.5:
+ resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001477
+ electron-to-chromium: 1.4.357
+ node-releases: 2.0.10
+ update-browserslist-db: 1.0.10(browserslist@4.21.5)
+ dev: true
+
+ /bser@2.1.1:
resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
dependencies:
node-int64: 0.4.0
dev: true
- /buffer-from/1.1.2:
+ /buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
dev: true
- /buffer/5.7.1:
+ /buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
dependencies:
base64-js: 1.5.1
ieee754: 1.2.1
dev: true
- /builtin-modules/3.3.0:
+ /builtin-modules@3.3.0:
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
engines: {node: '>=6'}
dev: true
- /caching-transform/4.0.0:
- resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==}
- engines: {node: '>=8'}
- dependencies:
- hasha: 5.2.2
- make-dir: 3.1.0
- package-hash: 4.0.0
- write-file-atomic: 3.0.3
- dev: true
-
- /call-bind/1.0.2:
+ /call-bind@1.0.2:
resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
dependencies:
function-bind: 1.1.1
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.0
dev: true
- /callsites/3.1.0:
+ /callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
dev: true
- /camelcase/5.3.1:
+ /camelcase@5.3.1:
resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
engines: {node: '>=6'}
dev: true
- /camelcase/6.3.0:
+ /camelcase@6.3.0:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
dev: true
- /caniuse-lite/1.0.30001441:
- resolution: {integrity: sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==}
+ /caniuse-lite@1.0.30001477:
+ resolution: {integrity: sha512-lZim4iUHhGcy5p+Ri/G7m84hJwncj+Kz7S5aD4hoQfslKZJgt0tHc/hafVbqHC5bbhHb+mrW2JOUHkI5KH7toQ==}
+ dev: true
+
+ /caniuse-lite@1.0.30001519:
+ resolution: {integrity: sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==}
dev: true
- /chalk/2.4.2:
+ /chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
engines: {node: '>=4'}
dependencies:
@@ -2493,7 +2832,7 @@ packages:
supports-color: 5.5.0
dev: true
- /chalk/4.1.1:
+ /chalk@4.1.1:
resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==}
engines: {node: '>=10'}
dependencies:
@@ -2501,7 +2840,7 @@ packages:
supports-color: 7.2.0
dev: true
- /chalk/4.1.2:
+ /chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
dependencies:
@@ -2509,16 +2848,16 @@ packages:
supports-color: 7.2.0
dev: true
- /char-regex/1.0.2:
+ /char-regex@1.0.2:
resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
engines: {node: '>=10'}
dev: true
- /chardet/0.7.0:
+ /chardet@0.7.0:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
dev: true
- /chokidar/3.5.3:
+ /chokidar@3.5.3:
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
engines: {node: '>= 8.10.0'}
dependencies:
@@ -2533,46 +2872,33 @@ packages:
fsevents: 2.3.2
dev: true
- /ci-info/3.7.0:
- resolution: {integrity: sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==}
+ /ci-info@3.8.0:
+ resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
engines: {node: '>=8'}
dev: true
- /cjs-module-lexer/1.2.2:
+ /cjs-module-lexer@1.2.2:
resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==}
dev: true
- /clean-stack/2.2.0:
- resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
- engines: {node: '>=6'}
- dev: true
-
- /cli-cursor/3.1.0:
+ /cli-cursor@3.1.0:
resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
engines: {node: '>=8'}
dependencies:
restore-cursor: 3.1.0
dev: true
- /cli-spinners/2.7.0:
- resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==}
+ /cli-spinners@2.8.0:
+ resolution: {integrity: sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==}
engines: {node: '>=6'}
dev: true
- /cli-width/3.0.0:
+ /cli-width@3.0.0:
resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
engines: {node: '>= 10'}
dev: true
- /cliui/6.0.0:
- resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
- dependencies:
- string-width: 4.2.3
- strip-ansi: 6.0.1
- wrap-ansi: 6.2.0
- dev: true
-
- /cliui/8.0.1:
+ /cliui@8.0.1:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
dependencies:
@@ -2581,85 +2907,81 @@ packages:
wrap-ansi: 7.0.0
dev: true
- /clone/1.0.4:
+ /clone@1.0.4:
resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
engines: {node: '>=0.8'}
dev: true
- /co/4.6.0:
+ /co@4.6.0:
resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
dev: true
- /collect-v8-coverage/1.0.1:
+ /collect-v8-coverage@1.0.1:
resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==}
dev: true
- /color-convert/1.9.3:
+ /color-convert@1.9.3:
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
dependencies:
color-name: 1.1.3
dev: true
- /color-convert/2.0.1:
+ /color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
dependencies:
color-name: 1.1.4
dev: true
- /color-name/1.1.3:
+ /color-name@1.1.3:
resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
dev: true
- /color-name/1.1.4:
+ /color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
dev: true
- /combined-stream/1.0.8:
+ /combined-stream@1.0.8:
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
engines: {node: '>= 0.8'}
dependencies:
delayed-stream: 1.0.0
dev: true
- /commander/2.20.3:
+ /commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
dev: true
- /commander/4.1.1:
+ /commander@4.1.1:
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
engines: {node: '>= 6'}
dev: true
- /commondir/1.0.1:
- resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
- dev: true
-
- /concat-map/0.0.1:
+ /concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
dev: true
- /convert-source-map/1.9.0:
+ /convert-source-map@1.9.0:
resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
dev: true
- /convert-source-map/2.0.0:
+ /convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
dev: true
- /cookie/0.4.2:
+ /cookie@0.4.2:
resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==}
engines: {node: '>= 0.6'}
dev: true
- /core-js-compat/3.26.1:
- resolution: {integrity: sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==}
+ /core-js-compat@3.32.0:
+ resolution: {integrity: sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==}
dependencies:
- browserslist: 4.21.4
+ browserslist: 4.21.10
dev: true
- /cross-spawn/7.0.3:
+ /cross-spawn@7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
dependencies:
@@ -2668,28 +2990,28 @@ packages:
which: 2.0.2
dev: true
- /cssesc/3.0.0:
+ /cssesc@3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
hasBin: true
dev: true
- /cssom/0.3.8:
+ /cssom@0.3.8:
resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
dev: true
- /cssom/0.5.0:
+ /cssom@0.5.0:
resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
dev: true
- /cssstyle/2.3.0:
+ /cssstyle@2.3.0:
resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
engines: {node: '>=8'}
dependencies:
cssom: 0.3.8
dev: true
- /data-urls/3.0.2:
+ /data-urls@3.0.2:
resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
engines: {node: '>=12'}
dependencies:
@@ -2698,18 +3020,7 @@ packages:
whatwg-url: 11.0.0
dev: true
- /debug/2.6.9:
- resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
- dependencies:
- ms: 2.0.0
- dev: true
-
- /debug/3.2.7:
+ /debug@3.2.7:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
peerDependencies:
supports-color: '*'
@@ -2720,7 +3031,7 @@ packages:
ms: 2.1.3
dev: true
- /debug/4.3.4:
+ /debug@4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
peerDependencies:
@@ -2732,28 +3043,30 @@ packages:
ms: 2.1.2
dev: true
- /decamelize/1.2.0:
- resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /decimal.js/10.4.3:
+ /decimal.js@10.4.3:
resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
dev: true
- /dedent/0.7.0:
- resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
+ /dedent@1.5.1:
+ resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
+ peerDependencies:
+ babel-plugin-macros: ^3.1.0
+ peerDependenciesMeta:
+ babel-plugin-macros:
+ optional: true
dev: true
- /deep-equal/2.1.0:
- resolution: {integrity: sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==}
+ /deep-equal@2.2.0:
+ resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==}
dependencies:
call-bind: 1.0.2
- es-get-iterator: 1.1.2
- get-intrinsic: 1.1.3
+ es-get-iterator: 1.1.3
+ get-intrinsic: 1.2.0
is-arguments: 1.1.1
+ is-array-buffer: 3.0.2
is-date-object: 1.0.5
is-regex: 1.1.4
+ is-shared-array-buffer: 1.0.2
isarray: 2.0.5
object-is: 1.1.5
object-keys: 1.1.1
@@ -2765,163 +3078,179 @@ packages:
which-typed-array: 1.1.9
dev: true
- /deep-is/0.1.4:
+ /deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
dev: true
- /deepmerge/4.2.2:
- resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==}
+ /deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
dev: true
- /default-require-extensions/3.0.1:
- resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==}
- engines: {node: '>=8'}
- dependencies:
- strip-bom: 4.0.0
- dev: true
-
- /defaults/1.0.4:
+ /defaults@1.0.4:
resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
dependencies:
clone: 1.0.4
dev: true
- /define-properties/1.1.4:
- resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==}
+ /define-properties@1.2.0:
+ resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==}
engines: {node: '>= 0.4'}
dependencies:
has-property-descriptors: 1.0.0
object-keys: 1.1.1
dev: true
- /delayed-stream/1.0.0:
+ /delayed-stream@1.0.0:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
dev: true
- /dependency-graph/0.11.0:
+ /dependency-graph@0.11.0:
resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==}
engines: {node: '>= 0.6.0'}
dev: true
- /detect-newline/3.1.0:
+ /detect-newline@3.1.0:
resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
engines: {node: '>=8'}
dev: true
- /diff-sequences/29.3.1:
- resolution: {integrity: sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==}
+ /diff-sequences@29.4.3:
+ resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dev: true
- /dir-glob/3.0.1:
+ /dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
dependencies:
path-type: 4.0.0
dev: true
- /doctrine/2.1.0:
+ /doctrine@2.1.0:
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
engines: {node: '>=0.10.0'}
dependencies:
esutils: 2.0.3
dev: true
- /doctrine/3.0.0:
+ /doctrine@3.0.0:
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
engines: {node: '>=6.0.0'}
dependencies:
esutils: 2.0.3
dev: true
- /dom-accessibility-api/0.5.14:
- resolution: {integrity: sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==}
+ /dom-accessibility-api@0.5.16:
+ resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
dev: true
- /domexception/4.0.0:
+ /domexception@4.0.0:
resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
engines: {node: '>=12'}
dependencies:
webidl-conversions: 7.0.0
dev: true
- /electron-to-chromium/1.4.284:
- resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==}
+ /electron-to-chromium@1.4.357:
+ resolution: {integrity: sha512-UTkCbNTAcGXABmEnQrGcW4m3cG6fcyBfD4KDF0iyEAlbrGZiY9dmslyDAGOD1Kr5biN2F743Y30aRCOtau35Vw==}
+ dev: true
+
+ /electron-to-chromium@1.4.485:
+ resolution: {integrity: sha512-1ndQ5IBNEnFirPwvyud69GHL+31FkE09gH/CJ6m3KCbkx3i0EVOrjwz4UNxRmN9H8OVHbC6vMRZGN1yCvjSs9w==}
dev: true
- /emittery/0.13.1:
+ /emittery@0.13.1:
resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
engines: {node: '>=12'}
dev: true
- /emoji-regex/8.0.0:
+ /emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
dev: true
- /entities/4.4.0:
+ /entities@4.4.0:
resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==}
engines: {node: '>=0.12'}
dev: true
- /error-ex/1.3.2:
+ /error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
dependencies:
is-arrayish: 0.2.1
dev: true
- /es-abstract/1.20.5:
- resolution: {integrity: sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==}
+ /es-abstract@1.21.2:
+ resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==}
engines: {node: '>= 0.4'}
dependencies:
+ array-buffer-byte-length: 1.0.0
+ available-typed-arrays: 1.0.5
call-bind: 1.0.2
+ es-set-tostringtag: 2.0.1
es-to-primitive: 1.2.1
- function-bind: 1.1.1
function.prototype.name: 1.1.5
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.0
get-symbol-description: 1.0.0
+ globalthis: 1.0.3
gopd: 1.0.1
has: 1.0.3
has-property-descriptors: 1.0.0
+ has-proto: 1.0.1
has-symbols: 1.0.3
- internal-slot: 1.0.4
+ internal-slot: 1.0.5
+ is-array-buffer: 3.0.2
is-callable: 1.2.7
is-negative-zero: 2.0.2
is-regex: 1.1.4
is-shared-array-buffer: 1.0.2
is-string: 1.0.7
+ is-typed-array: 1.1.10
is-weakref: 1.0.2
- object-inspect: 1.12.2
+ object-inspect: 1.12.3
object-keys: 1.1.1
object.assign: 4.1.4
regexp.prototype.flags: 1.4.3
safe-regex-test: 1.0.0
+ string.prototype.trim: 1.2.7
string.prototype.trimend: 1.0.6
string.prototype.trimstart: 1.0.6
+ typed-array-length: 1.0.4
unbox-primitive: 1.0.2
+ which-typed-array: 1.1.9
dev: true
- /es-get-iterator/1.1.2:
- resolution: {integrity: sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==}
+ /es-get-iterator@1.1.3:
+ resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
dependencies:
call-bind: 1.0.2
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.0
has-symbols: 1.0.3
is-arguments: 1.1.1
is-map: 2.0.2
is-set: 2.0.2
is-string: 1.0.7
isarray: 2.0.5
+ stop-iteration-iterator: 1.0.0
dev: true
- /es-shim-unscopables/1.0.0:
+ /es-set-tostringtag@2.0.1:
+ resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.0
+ has: 1.0.3
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /es-shim-unscopables@1.0.0:
resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
dependencies:
has: 1.0.3
dev: true
- /es-to-primitive/1.2.1:
+ /es-to-primitive@1.2.1:
resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
engines: {node: '>= 0.4'}
dependencies:
@@ -2930,31 +3259,27 @@ packages:
is-symbol: 1.0.4
dev: true
- /es6-error/4.1.1:
- resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==}
- dev: true
-
- /escalade/3.1.1:
+ /escalade@3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
dev: true
- /escape-string-regexp/1.0.5:
+ /escape-string-regexp@1.0.5:
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
engines: {node: '>=0.8.0'}
dev: true
- /escape-string-regexp/2.0.0:
+ /escape-string-regexp@2.0.0:
resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
engines: {node: '>=8'}
dev: true
- /escape-string-regexp/4.0.0:
+ /escape-string-regexp@4.0.0:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
dev: true
- /escodegen/2.0.0:
+ /escodegen@2.0.0:
resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==}
engines: {node: '>=6.0'}
hasBin: true
@@ -2967,17 +3292,18 @@ packages:
source-map: 0.6.1
dev: true
- /eslint-import-resolver-node/0.3.6:
- resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==}
+ /eslint-import-resolver-node@0.3.7:
+ resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==}
dependencies:
debug: 3.2.7
- resolve: 1.22.1
+ is-core-module: 2.13.0
+ resolve: 1.22.4
transitivePeerDependencies:
- supports-color
dev: true
- /eslint-module-utils/2.7.4_5vuadmvmkyhbtm34phil3e6noa:
- resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.2.1)(eslint-import-resolver-node@0.3.7)(eslint@8.46.0):
+ resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
@@ -2997,16 +3323,16 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
- '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa
+ '@typescript-eslint/parser': 6.2.1(eslint@8.46.0)(typescript@5.1.6)
debug: 3.2.7
- eslint: 8.30.0
- eslint-import-resolver-node: 0.3.6
+ eslint: 8.46.0
+ eslint-import-resolver-node: 0.3.7
transitivePeerDependencies:
- supports-color
dev: true
- /eslint-plugin-import/2.26.0_tqyj5ytb5g6r5ett7xxedhk6eq:
- resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==}
+ /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.2.1)(eslint@8.46.0):
+ resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
@@ -3015,32 +3341,37 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
- '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa
+ '@typescript-eslint/parser': 6.2.1(eslint@8.46.0)(typescript@5.1.6)
array-includes: 3.1.6
+ array.prototype.findlastindex: 1.2.2
array.prototype.flat: 1.3.1
- debug: 2.6.9
+ array.prototype.flatmap: 1.3.1
+ debug: 3.2.7
doctrine: 2.1.0
- eslint: 8.30.0
- eslint-import-resolver-node: 0.3.6
- eslint-module-utils: 2.7.4_5vuadmvmkyhbtm34phil3e6noa
+ eslint: 8.46.0
+ eslint-import-resolver-node: 0.3.7
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.2.1)(eslint-import-resolver-node@0.3.7)(eslint@8.46.0)
has: 1.0.3
- is-core-module: 2.11.0
+ is-core-module: 2.13.0
is-glob: 4.0.3
minimatch: 3.1.2
+ object.fromentries: 2.0.6
+ object.groupby: 1.0.0
object.values: 1.1.6
- resolve: 1.22.1
- tsconfig-paths: 3.14.1
+ resolve: 1.22.4
+ semver: 6.3.1
+ tsconfig-paths: 3.14.2
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
dev: true
- /eslint-plugin-jest/27.1.7_ynswt5pvagzyqki5w7w75b3qvm:
- resolution: {integrity: sha512-0QVzf+og4YI1Qr3UoprkqqhezAZjFffdi62b0IurkCXMqPtRW84/UT4CKsYT80h/D82LA9avjO/80Ou1LdgbaQ==}
+ /eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@6.2.1)(eslint@8.46.0)(jest@29.6.2)(typescript@5.1.6):
+ resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
- '@typescript-eslint/eslint-plugin': ^5.0.0
+ '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0
eslint: ^7.0.0 || ^8.0.0
jest: '*'
peerDependenciesMeta:
@@ -3049,42 +3380,42 @@ packages:
jest:
optional: true
dependencies:
- '@typescript-eslint/eslint-plugin': 5.47.0_ncmi6noazr3nzas7jxykisekym
- '@typescript-eslint/utils': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa
- eslint: 8.30.0
- jest: 29.3.1_@types+node@18.11.17
+ '@typescript-eslint/eslint-plugin': 6.2.1(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)(typescript@5.1.6)
+ '@typescript-eslint/utils': 5.58.0(eslint@8.46.0)(typescript@5.1.6)
+ eslint: 8.46.0
+ jest: 29.6.2(@types/node@20.4.7)
transitivePeerDependencies:
- supports-color
- typescript
dev: true
- /eslint-plugin-playwright/0.11.2_ttbndbdkvr6mhvx6ps5rimaowi:
- resolution: {integrity: sha512-uRLRLk7uTzc8NE6t4wBU8dijQwHvC66R/h7xwdM779jsJjMUtSmeaB8ayRkkpfwi+UU5BEfwvDANwmE+ccMVDw==}
+ /eslint-plugin-playwright@0.15.3(eslint-plugin-jest@27.2.3)(eslint@8.46.0):
+ resolution: {integrity: sha512-LQMW5y0DLK5Fnpya7JR1oAYL2/7Y9wDiYw6VZqlKqcRGSgjbVKNqxraphk7ra1U3Bb5EK444xMgUlQPbMg2M1g==}
peerDependencies:
eslint: '>=7'
- eslint-plugin-jest: '>=24'
+ eslint-plugin-jest: '>=25'
peerDependenciesMeta:
eslint-plugin-jest:
optional: true
dependencies:
- eslint: 8.30.0
- eslint-plugin-jest: 27.1.7_ynswt5pvagzyqki5w7w75b3qvm
+ eslint: 8.46.0
+ eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@6.2.1)(eslint@8.46.0)(jest@29.6.2)(typescript@5.1.6)
dev: true
- /eslint-plugin-testing-library/5.9.1_lzzuuodtsqwxnvqeq4g4likcqa:
- resolution: {integrity: sha512-6BQp3tmb79jLLasPHJmy8DnxREe+2Pgf7L+7o09TSWPfdqqtQfRZmZNetr5mOs3yqZk/MRNxpN3RUpJe0wB4LQ==}
+ /eslint-plugin-testing-library@5.11.0(eslint@8.46.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-ELY7Gefo+61OfXKlQeXNIDVVLPcvKTeiQOoMZG9TeuWa7Ln4dUNRv8JdRWBQI9Mbb427XGlVB1aa1QPZxBJM8Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'}
peerDependencies:
eslint: ^7.5.0 || ^8.0.0
dependencies:
- '@typescript-eslint/utils': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa
- eslint: 8.30.0
+ '@typescript-eslint/utils': 5.58.0(eslint@8.46.0)(typescript@5.1.6)
+ eslint: 8.46.0
transitivePeerDependencies:
- supports-color
- typescript
dev: true
- /eslint-scope/5.1.1:
+ /eslint-scope@5.1.1:
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
engines: {node: '>=8.0.0'}
dependencies:
@@ -3092,41 +3423,34 @@ packages:
estraverse: 4.3.0
dev: true
- /eslint-scope/7.1.1:
- resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
+ /eslint-scope@7.2.2:
+ resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
dev: true
- /eslint-utils/3.0.0_eslint@8.30.0:
- resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
- engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
- peerDependencies:
- eslint: '>=5'
- dependencies:
- eslint: 8.30.0
- eslint-visitor-keys: 2.1.0
- dev: true
-
- /eslint-visitor-keys/2.1.0:
- resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
- engines: {node: '>=10'}
+ /eslint-visitor-keys@3.4.0:
+ resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /eslint-visitor-keys/3.3.0:
- resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
+ /eslint-visitor-keys@3.4.2:
+ resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /eslint/8.30.0:
- resolution: {integrity: sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==}
+ /eslint@8.46.0:
+ resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
- '@eslint/eslintrc': 1.4.0
- '@humanwhocodes/config-array': 0.11.8
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0)
+ '@eslint-community/regexpp': 4.6.2
+ '@eslint/eslintrc': 2.1.1
+ '@eslint/js': 8.46.0
+ '@humanwhocodes/config-array': 0.11.10
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
ajv: 6.12.6
@@ -3135,93 +3459,88 @@ packages:
debug: 4.3.4
doctrine: 3.0.0
escape-string-regexp: 4.0.0
- eslint-scope: 7.1.1
- eslint-utils: 3.0.0_eslint@8.30.0
- eslint-visitor-keys: 3.3.0
- espree: 9.4.1
- esquery: 1.4.0
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.2
+ espree: 9.6.1
+ esquery: 1.5.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
file-entry-cache: 6.0.1
find-up: 5.0.0
glob-parent: 6.0.2
- globals: 13.19.0
- grapheme-splitter: 1.0.4
+ globals: 13.20.0
+ graphemer: 1.4.0
ignore: 5.2.4
- import-fresh: 3.3.0
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
- js-sdsl: 4.2.0
js-yaml: 4.1.0
json-stable-stringify-without-jsonify: 1.0.1
levn: 0.4.1
lodash.merge: 4.6.2
minimatch: 3.1.2
natural-compare: 1.4.0
- optionator: 0.9.1
- regexpp: 3.2.0
+ optionator: 0.9.3
strip-ansi: 6.0.1
- strip-json-comments: 3.1.1
text-table: 0.2.0
transitivePeerDependencies:
- supports-color
dev: true
- /espree/9.4.1:
- resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==}
+ /espree@9.6.1:
+ resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
- acorn: 8.8.1
- acorn-jsx: 5.3.2_acorn@8.8.1
- eslint-visitor-keys: 3.3.0
+ acorn: 8.10.0
+ acorn-jsx: 5.3.2(acorn@8.10.0)
+ eslint-visitor-keys: 3.4.2
dev: true
- /esprima/4.0.1:
+ /esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
hasBin: true
dev: true
- /esquery/1.4.0:
- resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
+ /esquery@1.5.0:
+ resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
engines: {node: '>=0.10'}
dependencies:
estraverse: 5.3.0
dev: true
- /esrecurse/4.3.0:
+ /esrecurse@4.3.0:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
engines: {node: '>=4.0'}
dependencies:
estraverse: 5.3.0
dev: true
- /estraverse/4.3.0:
+ /estraverse@4.3.0:
resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
engines: {node: '>=4.0'}
dev: true
- /estraverse/5.3.0:
+ /estraverse@5.3.0:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
dev: true
- /estree-walker/2.0.2:
+ /estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
dev: true
- /esutils/2.0.3:
+ /esutils@2.0.3:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'}
dev: true
- /events/3.3.0:
+ /events@3.3.0:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines: {node: '>=0.8.x'}
dev: true
- /execa/5.1.1:
+ /execa@5.1.1:
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
engines: {node: '>=10'}
dependencies:
@@ -3236,23 +3555,35 @@ packages:
strip-final-newline: 2.0.0
dev: true
- /exit/0.1.2:
+ /exit@0.1.2:
resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
engines: {node: '>= 0.8.0'}
dev: true
- /expect/29.3.1:
- resolution: {integrity: sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==}
+ /expect@29.5.0:
+ resolution: {integrity: sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/expect-utils': 29.5.0
+ jest-get-type: 29.4.3
+ jest-matcher-utils: 29.5.0
+ jest-message-util: 29.5.0
+ jest-util: 29.5.0
+ dev: true
+
+ /expect@29.6.2:
+ resolution: {integrity: sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/expect-utils': 29.3.1
- jest-get-type: 29.2.0
- jest-matcher-utils: 29.3.1
- jest-message-util: 29.3.1
- jest-util: 29.3.1
+ '@jest/expect-utils': 29.6.2
+ '@types/node': 20.4.7
+ jest-get-type: 29.4.3
+ jest-matcher-utils: 29.6.2
+ jest-message-util: 29.6.2
+ jest-util: 29.6.2
dev: true
- /external-editor/3.1.0:
+ /external-editor@3.1.0:
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
engines: {node: '>=4'}
dependencies:
@@ -3261,11 +3592,11 @@ packages:
tmp: 0.0.33
dev: true
- /fast-deep-equal/3.1.3:
+ /fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
dev: true
- /fast-glob/3.2.12:
+ /fast-glob@3.2.12:
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
engines: {node: '>=8.6.0'}
dependencies:
@@ -3276,57 +3607,48 @@ packages:
micromatch: 4.0.5
dev: true
- /fast-json-stable-stringify/2.1.0:
+ /fast-json-stable-stringify@2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
dev: true
- /fast-levenshtein/2.0.6:
+ /fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
dev: true
- /fastq/1.14.0:
- resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==}
+ /fastq@1.15.0:
+ resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
dependencies:
reusify: 1.0.4
dev: true
- /fb-watchman/2.0.2:
+ /fb-watchman@2.0.2:
resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
dependencies:
bser: 2.1.1
dev: true
- /figures/3.2.0:
+ /figures@3.2.0:
resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
engines: {node: '>=8'}
dependencies:
escape-string-regexp: 1.0.5
dev: true
- /file-entry-cache/6.0.1:
+ /file-entry-cache@6.0.1:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
dependencies:
flat-cache: 3.0.4
dev: true
- /fill-range/7.0.1:
+ /fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
dependencies:
to-regex-range: 5.0.1
dev: true
- /find-cache-dir/3.3.2:
- resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==}
- engines: {node: '>=8'}
- dependencies:
- commondir: 1.0.1
- make-dir: 3.1.0
- pkg-dir: 4.2.0
- dev: true
-
- /find-up/4.1.0:
+ /find-up@4.1.0:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
engines: {node: '>=8'}
dependencies:
@@ -3334,7 +3656,7 @@ packages:
path-exists: 4.0.0
dev: true
- /find-up/5.0.0:
+ /find-up@5.0.0:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
dependencies:
@@ -3342,7 +3664,7 @@ packages:
path-exists: 4.0.0
dev: true
- /flat-cache/3.0.4:
+ /flat-cache@3.0.4:
resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
engines: {node: ^10.12.0 || >=12.0.0}
dependencies:
@@ -3350,25 +3672,17 @@ packages:
rimraf: 3.0.2
dev: true
- /flatted/3.2.7:
+ /flatted@3.2.7:
resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
dev: true
- /for-each/0.3.3:
+ /for-each@0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
dependencies:
is-callable: 1.2.7
dev: true
- /foreground-child/2.0.0:
- resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==}
- engines: {node: '>=8.0.0'}
- dependencies:
- cross-spawn: 7.0.3
- signal-exit: 3.0.7
- dev: true
-
- /form-data/4.0.0:
+ /form-data@4.0.0:
resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
engines: {node: '>= 6'}
dependencies:
@@ -3377,32 +3691,28 @@ packages:
mime-types: 2.1.35
dev: true
- /fraction.js/4.2.0:
+ /fraction.js@4.2.0:
resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
dev: true
- /fromentries/1.3.2:
- resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==}
- dev: true
-
- /fs-extra/11.1.0:
- resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==}
+ /fs-extra@11.1.1:
+ resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==}
engines: {node: '>=14.14'}
dependencies:
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
jsonfile: 6.1.0
universalify: 2.0.0
dev: true
- /fs-readdir-recursive/1.1.0:
+ /fs-readdir-recursive@1.1.0:
resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==}
dev: true
- /fs.realpath/1.0.0:
+ /fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
dev: true
- /fsevents/2.3.2:
+ /fsevents@2.3.2:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
@@ -3410,84 +3720,93 @@ packages:
dev: true
optional: true
- /function-bind/1.1.1:
+ /function-bind@1.1.1:
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
dev: true
- /function.prototype.name/1.1.5:
+ /function.prototype.name@1.1.5:
resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.20.5
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
functions-have-names: 1.2.3
dev: true
- /functions-have-names/1.2.3:
+ /functions-have-names@1.2.3:
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
dev: true
- /gensync/1.0.0-beta.2:
+ /gensync@1.0.0-beta.2:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
dev: true
- /get-caller-file/2.0.5:
+ /get-caller-file@2.0.5:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
dev: true
- /get-intrinsic/1.1.3:
- resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==}
+ /get-intrinsic@1.2.0:
+ resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==}
dependencies:
function-bind: 1.1.1
has: 1.0.3
has-symbols: 1.0.3
dev: true
- /get-package-type/0.1.0:
+ /get-intrinsic@1.2.1:
+ resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==}
+ dependencies:
+ function-bind: 1.1.1
+ has: 1.0.3
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ dev: true
+
+ /get-package-type@0.1.0:
resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
engines: {node: '>=8.0.0'}
dev: true
- /get-stdin/9.0.0:
+ /get-stdin@9.0.0:
resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==}
engines: {node: '>=12'}
dev: true
- /get-stream/6.0.1:
+ /get-stream@6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
dev: true
- /get-symbol-description/1.0.0:
+ /get-symbol-description@1.0.0:
resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.0
dev: true
- /givens/1.3.9:
+ /givens@1.3.9:
resolution: {integrity: sha512-4hYlStsEIaYeYvZTZwgD5yOS2WVP0dcDsOBqeImdEM8eLuclvv0IEMlQQ1kuA5DN4he7wVH1jsYtNe9uininxg==}
dev: true
- /glob-parent/5.1.2:
+ /glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
dependencies:
is-glob: 4.0.3
dev: true
- /glob-parent/6.0.2:
+ /glob-parent@6.0.2:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
dependencies:
is-glob: 4.0.3
dev: true
- /glob/7.2.3:
+ /glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
dependencies:
fs.realpath: 1.0.0
@@ -3498,19 +3817,26 @@ packages:
path-is-absolute: 1.0.1
dev: true
- /globals/11.12.0:
+ /globals@11.12.0:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'}
dev: true
- /globals/13.19.0:
- resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==}
+ /globals@13.20.0:
+ resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
engines: {node: '>=8'}
dependencies:
type-fest: 0.20.2
dev: true
- /globby/11.1.0:
+ /globalthis@1.0.3:
+ resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-properties: 1.2.0
+ dev: true
+
+ /globby@11.1.0:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: '>=10'}
dependencies:
@@ -3522,7 +3848,7 @@ packages:
slash: 3.0.0
dev: true
- /globby/13.1.3:
+ /globby@13.1.3:
resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
@@ -3533,88 +3859,85 @@ packages:
slash: 4.0.0
dev: true
- /gopd/1.0.1:
+ /gopd@1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
dependencies:
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.0
dev: true
- /graceful-fs/4.2.10:
- resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
+ /graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
dev: true
- /grapheme-splitter/1.0.4:
- resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
+ /graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
dev: true
- /graphql/16.6.0:
- resolution: {integrity: sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==}
+ /graphql@16.7.1:
+ resolution: {integrity: sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==}
engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0}
dev: true
- /has-bigints/1.0.2:
+ /has-bigints@1.0.2:
resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
dev: true
- /has-flag/3.0.0:
+ /has-flag@3.0.0:
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
engines: {node: '>=4'}
dev: true
- /has-flag/4.0.0:
+ /has-flag@4.0.0:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
engines: {node: '>=8'}
dev: true
- /has-property-descriptors/1.0.0:
+ /has-property-descriptors@1.0.0:
resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
dependencies:
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.0
+ dev: true
+
+ /has-proto@1.0.1:
+ resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
+ engines: {node: '>= 0.4'}
dev: true
- /has-symbols/1.0.3:
+ /has-symbols@1.0.3:
resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
engines: {node: '>= 0.4'}
dev: true
- /has-tostringtag/1.0.0:
+ /has-tostringtag@1.0.0:
resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
engines: {node: '>= 0.4'}
dependencies:
has-symbols: 1.0.3
dev: true
- /has/1.0.3:
+ /has@1.0.3:
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
engines: {node: '>= 0.4.0'}
dependencies:
function-bind: 1.1.1
dev: true
- /hasha/5.2.2:
- resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==}
- engines: {node: '>=8'}
- dependencies:
- is-stream: 2.0.1
- type-fest: 0.8.1
- dev: true
-
- /headers-polyfill/3.1.2:
+ /headers-polyfill@3.1.2:
resolution: {integrity: sha512-tWCK4biJ6hcLqTviLXVR9DTRfYGQMXEIUj3gwJ2rZ5wO/at3XtkI4g8mCvFdUF9l1KMBNCfmNAdnahm1cgavQA==}
dev: true
- /html-encoding-sniffer/3.0.0:
+ /html-encoding-sniffer@3.0.0:
resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
engines: {node: '>=12'}
dependencies:
whatwg-encoding: 2.0.0
dev: true
- /html-escaper/2.0.2:
+ /html-escaper@2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
dev: true
- /http-proxy-agent/5.0.0:
+ /http-proxy-agent@5.0.0:
resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
engines: {node: '>= 6'}
dependencies:
@@ -3625,7 +3948,7 @@ packages:
- supports-color
dev: true
- /https-proxy-agent/5.0.1:
+ /https-proxy-agent@5.0.1:
resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
engines: {node: '>= 6'}
dependencies:
@@ -3635,35 +3958,35 @@ packages:
- supports-color
dev: true
- /human-signals/2.1.0:
+ /human-signals@2.1.0:
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
engines: {node: '>=10.17.0'}
dev: true
- /iconv-lite/0.4.24:
+ /iconv-lite@0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
dependencies:
safer-buffer: 2.1.2
dev: true
- /iconv-lite/0.6.3:
+ /iconv-lite@0.6.3:
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
engines: {node: '>=0.10.0'}
dependencies:
safer-buffer: 2.1.2
dev: true
- /ieee754/1.2.1:
+ /ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
dev: true
- /ignore/5.2.4:
+ /ignore@5.2.4:
resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
engines: {node: '>= 4'}
dev: true
- /import-fresh/3.3.0:
+ /import-fresh@3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
engines: {node: '>=6'}
dependencies:
@@ -3671,7 +3994,7 @@ packages:
resolve-from: 4.0.0
dev: true
- /import-local/3.1.0:
+ /import-local@3.1.0:
resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
engines: {node: '>=8'}
hasBin: true
@@ -3680,33 +4003,28 @@ packages:
resolve-cwd: 3.0.0
dev: true
- /imurmurhash/0.1.4:
+ /imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
dev: true
- /indent-string/4.0.0:
- resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
- engines: {node: '>=8'}
- dev: true
-
- /inflight/1.0.6:
+ /inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
dependencies:
once: 1.4.0
wrappy: 1.0.2
dev: true
- /inherits/2.0.4:
+ /inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
dev: true
- /inquirer/8.2.5:
+ /inquirer@8.2.5:
resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==}
engines: {node: '>=12.0.0'}
dependencies:
ansi-escapes: 4.3.2
- chalk: 4.1.1
+ chalk: 4.1.2
cli-cursor: 3.1.0
cli-width: 3.0.0
external-editor: 3.1.0
@@ -3722,16 +4040,16 @@ packages:
wrap-ansi: 7.0.0
dev: true
- /internal-slot/1.0.4:
- resolution: {integrity: sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==}
+ /internal-slot@1.0.5:
+ resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==}
engines: {node: '>= 0.4'}
dependencies:
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.0
has: 1.0.3
side-channel: 1.0.4
dev: true
- /is-arguments/1.1.1:
+ /is-arguments@1.1.1:
resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
engines: {node: '>= 0.4'}
dependencies:
@@ -3739,24 +4057,32 @@ packages:
has-tostringtag: 1.0.0
dev: true
- /is-arrayish/0.2.1:
+ /is-array-buffer@3.0.2:
+ resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.0
+ is-typed-array: 1.1.10
+ dev: true
+
+ /is-arrayish@0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
dev: true
- /is-bigint/1.0.4:
+ /is-bigint@1.0.4:
resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
dependencies:
has-bigints: 1.0.2
dev: true
- /is-binary-path/2.1.0:
+ /is-binary-path@2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
dependencies:
binary-extensions: 2.2.0
dev: true
- /is-boolean-object/1.1.2:
+ /is-boolean-object@1.1.2:
resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
engines: {node: '>= 0.4'}
dependencies:
@@ -3764,104 +4090,110 @@ packages:
has-tostringtag: 1.0.0
dev: true
- /is-builtin-module/3.2.0:
- resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==}
+ /is-builtin-module@3.2.1:
+ resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
engines: {node: '>=6'}
dependencies:
builtin-modules: 3.3.0
dev: true
- /is-callable/1.2.7:
+ /is-callable@1.2.7:
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
engines: {node: '>= 0.4'}
dev: true
- /is-core-module/2.11.0:
- resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
+ /is-core-module@2.12.0:
+ resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==}
+ dependencies:
+ has: 1.0.3
+ dev: true
+
+ /is-core-module@2.13.0:
+ resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==}
dependencies:
has: 1.0.3
dev: true
- /is-date-object/1.0.5:
+ /is-date-object@1.0.5:
resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
engines: {node: '>= 0.4'}
dependencies:
has-tostringtag: 1.0.0
dev: true
- /is-extglob/2.1.1:
+ /is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
dev: true
- /is-fullwidth-code-point/3.0.0:
+ /is-fullwidth-code-point@3.0.0:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
dev: true
- /is-generator-fn/2.1.0:
+ /is-generator-fn@2.1.0:
resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
engines: {node: '>=6'}
dev: true
- /is-generator-function/1.0.10:
+ /is-generator-function@1.0.10:
resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
engines: {node: '>= 0.4'}
dependencies:
has-tostringtag: 1.0.0
dev: true
- /is-glob/4.0.3:
+ /is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
dependencies:
is-extglob: 2.1.1
dev: true
- /is-interactive/1.0.0:
+ /is-interactive@1.0.0:
resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
engines: {node: '>=8'}
dev: true
- /is-map/2.0.2:
+ /is-map@2.0.2:
resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
dev: true
- /is-module/1.0.0:
+ /is-module@1.0.0:
resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
dev: true
- /is-negative-zero/2.0.2:
+ /is-negative-zero@2.0.2:
resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
engines: {node: '>= 0.4'}
dev: true
- /is-node-process/1.0.1:
- resolution: {integrity: sha512-5IcdXuf++TTNt3oGl9EBdkvndXA8gmc4bz/Y+mdEpWh3Mcn/+kOw6hI7LD5CocqJWMzeb0I0ClndRVNdEPuJXQ==}
+ /is-node-process@1.2.0:
+ resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==}
dev: true
- /is-number-object/1.0.7:
+ /is-number-object@1.0.7:
resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
engines: {node: '>= 0.4'}
dependencies:
has-tostringtag: 1.0.0
dev: true
- /is-number/7.0.0:
+ /is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
dev: true
- /is-path-inside/3.0.3:
+ /is-path-inside@3.0.3:
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
engines: {node: '>=8'}
dev: true
- /is-potential-custom-element-name/1.0.1:
+ /is-potential-custom-element-name@1.0.1:
resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
dev: true
- /is-regex/1.1.4:
+ /is-regex@1.1.4:
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
engines: {node: '>= 0.4'}
dependencies:
@@ -3869,36 +4201,36 @@ packages:
has-tostringtag: 1.0.0
dev: true
- /is-set/2.0.2:
+ /is-set@2.0.2:
resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
dev: true
- /is-shared-array-buffer/1.0.2:
+ /is-shared-array-buffer@1.0.2:
resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
dependencies:
call-bind: 1.0.2
dev: true
- /is-stream/2.0.1:
+ /is-stream@2.0.1:
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
engines: {node: '>=8'}
dev: true
- /is-string/1.0.7:
+ /is-string@1.0.7:
resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
engines: {node: '>= 0.4'}
dependencies:
has-tostringtag: 1.0.0
dev: true
- /is-symbol/1.0.4:
+ /is-symbol@1.0.4:
resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
engines: {node: '>= 0.4'}
dependencies:
has-symbols: 1.0.3
dev: true
- /is-typed-array/1.1.10:
+ /is-typed-array@1.1.10:
resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==}
engines: {node: '>= 0.4'}
dependencies:
@@ -3909,75 +4241,47 @@ packages:
has-tostringtag: 1.0.0
dev: true
- /is-typedarray/1.0.0:
- resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
- dev: true
-
- /is-unicode-supported/0.1.0:
+ /is-unicode-supported@0.1.0:
resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
engines: {node: '>=10'}
dev: true
- /is-weakmap/2.0.1:
+ /is-weakmap@2.0.1:
resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
dev: true
- /is-weakref/1.0.2:
+ /is-weakref@1.0.2:
resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
dependencies:
call-bind: 1.0.2
dev: true
- /is-weakset/2.0.2:
+ /is-weakset@2.0.2:
resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
dependencies:
call-bind: 1.0.2
- get-intrinsic: 1.1.3
- dev: true
-
- /is-windows/1.0.2:
- resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
- engines: {node: '>=0.10.0'}
+ get-intrinsic: 1.2.0
dev: true
- /isarray/2.0.5:
+ /isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
dev: true
- /isexe/2.0.0:
+ /isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
dev: true
- /istanbul-lib-coverage/3.2.0:
+ /istanbul-lib-coverage@3.2.0:
resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
engines: {node: '>=8'}
dev: true
- /istanbul-lib-hook/3.0.0:
- resolution: {integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==}
- engines: {node: '>=8'}
- dependencies:
- append-transform: 2.0.0
- dev: true
-
- /istanbul-lib-instrument/4.0.3:
- resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==}
- engines: {node: '>=8'}
- dependencies:
- '@babel/core': 7.20.7
- '@istanbuljs/schema': 0.1.3
- istanbul-lib-coverage: 3.2.0
- semver: 6.3.0
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /istanbul-lib-instrument/5.2.1:
+ /istanbul-lib-instrument@5.2.1:
resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
engines: {node: '>=8'}
dependencies:
- '@babel/core': 7.20.7
- '@babel/parser': 7.20.7
+ '@babel/core': 7.22.9
+ '@babel/parser': 7.21.4
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.0
semver: 6.3.0
@@ -3985,19 +4289,7 @@ packages:
- supports-color
dev: true
- /istanbul-lib-processinfo/2.0.3:
- resolution: {integrity: sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==}
- engines: {node: '>=8'}
- dependencies:
- archy: 1.0.0
- cross-spawn: 7.0.3
- istanbul-lib-coverage: 3.2.0
- p-map: 3.0.0
- rimraf: 3.0.2
- uuid: 8.3.2
- dev: true
-
- /istanbul-lib-report/3.0.0:
+ /istanbul-lib-report@3.0.0:
resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==}
engines: {node: '>=8'}
dependencies:
@@ -4006,7 +4298,7 @@ packages:
supports-color: 7.2.0
dev: true
- /istanbul-lib-source-maps/4.0.1:
+ /istanbul-lib-source-maps@4.0.1:
resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
engines: {node: '>=10'}
dependencies:
@@ -4017,7 +4309,7 @@ packages:
- supports-color
dev: true
- /istanbul-reports/3.1.5:
+ /istanbul-reports@3.1.5:
resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==}
engines: {node: '>=8'}
dependencies:
@@ -4025,43 +4317,55 @@ packages:
istanbul-lib-report: 3.0.0
dev: true
- /jest-changed-files/29.2.0:
- resolution: {integrity: sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==}
+ /jest-axe@8.0.0:
+ resolution: {integrity: sha512-4kNcNn7J0jPO4jANEYZOHeQ/tSBvkXS+MxTbX1CKbXGd0+ZbRGDn/v/8IYWI/MmYX15iLVyYRnRev9X3ksePWA==}
+ engines: {node: '>= 14.0.0'}
+ dependencies:
+ axe-core: 4.7.2
+ chalk: 4.1.2
+ jest-matcher-utils: 29.2.2
+ lodash.merge: 4.6.2
+ dev: true
+
+ /jest-changed-files@29.5.0:
+ resolution: {integrity: sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
execa: 5.1.1
p-limit: 3.1.0
dev: true
- /jest-circus/29.3.1:
- resolution: {integrity: sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==}
+ /jest-circus@29.6.2:
+ resolution: {integrity: sha512-G9mN+KOYIUe2sB9kpJkO9Bk18J4dTDArNFPwoZ7WKHKel55eKIS/u2bLthxgojwlf9NLCVQfgzM/WsOVvoC6Fw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/environment': 29.3.1
- '@jest/expect': 29.3.1
- '@jest/test-result': 29.3.1
- '@jest/types': 29.3.1
- '@types/node': 18.11.17
+ '@jest/environment': 29.6.2
+ '@jest/expect': 29.6.2
+ '@jest/test-result': 29.6.2
+ '@jest/types': 29.6.1
+ '@types/node': 20.4.7
chalk: 4.1.2
co: 4.6.0
- dedent: 0.7.0
+ dedent: 1.5.1
is-generator-fn: 2.1.0
- jest-each: 29.3.1
- jest-matcher-utils: 29.3.1
- jest-message-util: 29.3.1
- jest-runtime: 29.3.1
- jest-snapshot: 29.3.1
- jest-util: 29.3.1
+ jest-each: 29.6.2
+ jest-matcher-utils: 29.6.2
+ jest-message-util: 29.6.2
+ jest-runtime: 29.6.2
+ jest-snapshot: 29.6.2
+ jest-util: 29.6.2
p-limit: 3.1.0
- pretty-format: 29.3.1
+ pretty-format: 29.6.2
+ pure-rand: 6.0.1
slash: 3.0.0
stack-utils: 2.0.6
transitivePeerDependencies:
+ - babel-plugin-macros
- supports-color
dev: true
- /jest-cli/29.3.1_@types+node@18.11.17:
- resolution: {integrity: sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==}
+ /jest-cli@29.6.2(@types/node@20.4.7):
+ resolution: {integrity: sha512-TT6O247v6dCEX2UGHGyflMpxhnrL0DNqP2fRTKYm3nJJpCTfXX3GCMQPGFjXDoj0i5/Blp3jriKXFgdfmbYB6Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
peerDependencies:
@@ -4070,26 +4374,27 @@ packages:
node-notifier:
optional: true
dependencies:
- '@jest/core': 29.3.1
- '@jest/test-result': 29.3.1
- '@jest/types': 29.3.1
+ '@jest/core': 29.6.2
+ '@jest/test-result': 29.6.2
+ '@jest/types': 29.6.1
chalk: 4.1.2
exit: 0.1.2
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
import-local: 3.1.0
- jest-config: 29.3.1_@types+node@18.11.17
- jest-util: 29.3.1
- jest-validate: 29.3.1
+ jest-config: 29.6.2(@types/node@20.4.7)
+ jest-util: 29.6.2
+ jest-validate: 29.6.2
prompts: 2.4.2
- yargs: 17.6.2
+ yargs: 17.7.1
transitivePeerDependencies:
- '@types/node'
+ - babel-plugin-macros
- supports-color
- ts-node
dev: true
- /jest-config/29.3.1_@types+node@18.11.17:
- resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==}
+ /jest-config@29.6.2(@types/node@20.4.7):
+ resolution: {integrity: sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@types/node': '*'
@@ -4100,63 +4405,74 @@ packages:
ts-node:
optional: true
dependencies:
- '@babel/core': 7.20.7
- '@jest/test-sequencer': 29.3.1
- '@jest/types': 29.3.1
- '@types/node': 18.11.17
- babel-jest: 29.3.1_@babel+core@7.20.7
+ '@babel/core': 7.22.9
+ '@jest/test-sequencer': 29.6.2
+ '@jest/types': 29.6.1
+ '@types/node': 20.4.7
+ babel-jest: 29.6.2(@babel/core@7.22.9)
chalk: 4.1.2
- ci-info: 3.7.0
- deepmerge: 4.2.2
+ ci-info: 3.8.0
+ deepmerge: 4.3.1
glob: 7.2.3
- graceful-fs: 4.2.10
- jest-circus: 29.3.1
- jest-environment-node: 29.3.1
- jest-get-type: 29.2.0
- jest-regex-util: 29.2.0
- jest-resolve: 29.3.1
- jest-runner: 29.3.1
- jest-util: 29.3.1
- jest-validate: 29.3.1
+ graceful-fs: 4.2.11
+ jest-circus: 29.6.2
+ jest-environment-node: 29.6.2
+ jest-get-type: 29.4.3
+ jest-regex-util: 29.4.3
+ jest-resolve: 29.6.2
+ jest-runner: 29.6.2
+ jest-util: 29.6.2
+ jest-validate: 29.6.2
micromatch: 4.0.5
parse-json: 5.2.0
- pretty-format: 29.3.1
+ pretty-format: 29.6.2
slash: 3.0.0
strip-json-comments: 3.1.1
transitivePeerDependencies:
+ - babel-plugin-macros
- supports-color
dev: true
- /jest-diff/29.3.1:
- resolution: {integrity: sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==}
+ /jest-diff@29.5.0:
+ resolution: {integrity: sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ chalk: 4.1.2
+ diff-sequences: 29.4.3
+ jest-get-type: 29.4.3
+ pretty-format: 29.5.0
+ dev: true
+
+ /jest-diff@29.6.2:
+ resolution: {integrity: sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
chalk: 4.1.2
- diff-sequences: 29.3.1
- jest-get-type: 29.2.0
- pretty-format: 29.3.1
+ diff-sequences: 29.4.3
+ jest-get-type: 29.4.3
+ pretty-format: 29.6.2
dev: true
- /jest-docblock/29.2.0:
- resolution: {integrity: sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==}
+ /jest-docblock@29.4.3:
+ resolution: {integrity: sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
detect-newline: 3.1.0
dev: true
- /jest-each/29.3.1:
- resolution: {integrity: sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==}
+ /jest-each@29.6.2:
+ resolution: {integrity: sha512-MsrsqA0Ia99cIpABBc3izS1ZYoYfhIy0NNWqPSE0YXbQjwchyt6B1HD2khzyPe1WiJA7hbxXy77ZoUQxn8UlSw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/types': 29.3.1
+ '@jest/types': 29.6.1
chalk: 4.1.2
- jest-get-type: 29.2.0
- jest-util: 29.3.1
- pretty-format: 29.3.1
+ jest-get-type: 29.4.3
+ jest-util: 29.6.2
+ pretty-format: 29.6.2
dev: true
- /jest-environment-jsdom/29.3.1:
- resolution: {integrity: sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA==}
+ /jest-environment-jsdom@29.6.2:
+ resolution: {integrity: sha512-7oa/+266AAEgkzae8i1awNEfTfjwawWKLpiw2XesZmaoVVj9u9t8JOYx18cG29rbPNtkUlZ8V4b5Jb36y/VxoQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
canvas: ^2.5.0
@@ -4164,13 +4480,13 @@ packages:
canvas:
optional: true
dependencies:
- '@jest/environment': 29.3.1
- '@jest/fake-timers': 29.3.1
- '@jest/types': 29.3.1
+ '@jest/environment': 29.6.2
+ '@jest/fake-timers': 29.6.2
+ '@jest/types': 29.6.1
'@types/jsdom': 20.0.1
- '@types/node': 18.11.17
- jest-mock: 29.3.1
- jest-util: 29.3.1
+ '@types/node': 20.4.7
+ jest-mock: 29.6.2
+ jest-util: 29.6.2
jsdom: 20.0.3
transitivePeerDependencies:
- bufferutil
@@ -4178,20 +4494,20 @@ packages:
- utf-8-validate
dev: true
- /jest-environment-node/29.3.1:
- resolution: {integrity: sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==}
+ /jest-environment-node@29.6.2:
+ resolution: {integrity: sha512-YGdFeZ3T9a+/612c5mTQIllvWkddPbYcN2v95ZH24oWMbGA4GGS2XdIF92QMhUhvrjjuQWYgUGW2zawOyH63MQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/environment': 29.3.1
- '@jest/fake-timers': 29.3.1
- '@jest/types': 29.3.1
- '@types/node': 18.11.17
- jest-mock: 29.3.1
- jest-util: 29.3.1
+ '@jest/environment': 29.6.2
+ '@jest/fake-timers': 29.6.2
+ '@jest/types': 29.6.1
+ '@types/node': 20.4.7
+ jest-mock: 29.6.2
+ jest-util: 29.6.2
dev: true
- /jest-extended/3.2.0_jest@29.3.1:
- resolution: {integrity: sha512-jy+1nwlPLPPR6O8O9Mn+BWCBq/jL/9OgdKEG8ekOSQoLyVvAO5nND8ll3UxoajzBu4kYyn7zUKYWRdnTfQPcVw==}
+ /jest-extended@4.0.1(jest@29.6.2):
+ resolution: {integrity: sha512-KM6dwuBUAgy6QONuR19CGubZB9Hkjqvl/d5Yc/FXsdB8+gsGxB2VQ+NEdOrr95J4GMPeLnDoPOKyi6+mKCCnZQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
jest: '>=27.2.5'
@@ -4199,78 +4515,113 @@ packages:
jest:
optional: true
dependencies:
- jest: 29.3.1_@types+node@18.11.17
- jest-diff: 29.3.1
- jest-get-type: 29.2.0
+ jest: 29.6.2(@types/node@20.4.7)
+ jest-diff: 29.5.0
+ jest-get-type: 29.4.3
dev: true
- /jest-get-type/29.2.0:
- resolution: {integrity: sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==}
+ /jest-get-type@29.4.3:
+ resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dev: true
- /jest-haste-map/29.3.1:
- resolution: {integrity: sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==}
+ /jest-haste-map@29.6.2:
+ resolution: {integrity: sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/types': 29.3.1
- '@types/graceful-fs': 4.1.5
- '@types/node': 18.11.17
+ '@jest/types': 29.6.1
+ '@types/graceful-fs': 4.1.6
+ '@types/node': 20.4.7
anymatch: 3.1.3
fb-watchman: 2.0.2
- graceful-fs: 4.2.10
- jest-regex-util: 29.2.0
- jest-util: 29.3.1
- jest-worker: 29.3.1
+ graceful-fs: 4.2.11
+ jest-regex-util: 29.4.3
+ jest-util: 29.6.2
+ jest-worker: 29.6.2
micromatch: 4.0.5
walker: 1.0.8
optionalDependencies:
fsevents: 2.3.2
dev: true
- /jest-leak-detector/29.3.1:
- resolution: {integrity: sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==}
+ /jest-leak-detector@29.6.2:
+ resolution: {integrity: sha512-aNqYhfp5uYEO3tdWMb2bfWv6f0b4I0LOxVRpnRLAeque2uqOVVMLh6khnTcE2qJ5wAKop0HcreM1btoysD6bPQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ jest-get-type: 29.4.3
+ pretty-format: 29.6.2
+ dev: true
+
+ /jest-matcher-utils@29.2.2:
+ resolution: {integrity: sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ chalk: 4.1.2
+ jest-diff: 29.5.0
+ jest-get-type: 29.4.3
+ pretty-format: 29.5.0
+ dev: true
+
+ /jest-matcher-utils@29.5.0:
+ resolution: {integrity: sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ chalk: 4.1.2
+ jest-diff: 29.5.0
+ jest-get-type: 29.4.3
+ pretty-format: 29.5.0
+ dev: true
+
+ /jest-matcher-utils@29.6.2:
+ resolution: {integrity: sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- jest-get-type: 29.2.0
- pretty-format: 29.3.1
+ chalk: 4.1.2
+ jest-diff: 29.6.2
+ jest-get-type: 29.4.3
+ pretty-format: 29.6.2
dev: true
- /jest-matcher-utils/29.3.1:
- resolution: {integrity: sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==}
+ /jest-message-util@29.5.0:
+ resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
+ '@babel/code-frame': 7.21.4
+ '@jest/types': 29.5.0
+ '@types/stack-utils': 2.0.1
chalk: 4.1.2
- jest-diff: 29.3.1
- jest-get-type: 29.2.0
- pretty-format: 29.3.1
+ graceful-fs: 4.2.11
+ micromatch: 4.0.5
+ pretty-format: 29.5.0
+ slash: 3.0.0
+ stack-utils: 2.0.6
dev: true
- /jest-message-util/29.3.1:
- resolution: {integrity: sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==}
+ /jest-message-util@29.6.2:
+ resolution: {integrity: sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@babel/code-frame': 7.18.6
- '@jest/types': 29.3.1
+ '@babel/code-frame': 7.21.4
+ '@jest/types': 29.6.1
'@types/stack-utils': 2.0.1
chalk: 4.1.2
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
micromatch: 4.0.5
- pretty-format: 29.3.1
+ pretty-format: 29.6.2
slash: 3.0.0
stack-utils: 2.0.6
dev: true
- /jest-mock/29.3.1:
- resolution: {integrity: sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==}
+ /jest-mock@29.6.2:
+ resolution: {integrity: sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/types': 29.3.1
- '@types/node': 18.11.17
- jest-util: 29.3.1
+ '@jest/types': 29.6.1
+ '@types/node': 20.4.7
+ jest-util: 29.6.2
dev: true
- /jest-pnp-resolver/1.2.3_jest-resolve@29.3.1:
+ /jest-pnp-resolver@1.2.3(jest-resolve@29.6.2):
resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
engines: {node: '>=6'}
peerDependencies:
@@ -4279,180 +4630,188 @@ packages:
jest-resolve:
optional: true
dependencies:
- jest-resolve: 29.3.1
+ jest-resolve: 29.6.2
dev: true
- /jest-regex-util/29.2.0:
- resolution: {integrity: sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==}
+ /jest-regex-util@29.4.3:
+ resolution: {integrity: sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dev: true
- /jest-resolve-dependencies/29.3.1:
- resolution: {integrity: sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==}
+ /jest-resolve-dependencies@29.6.2:
+ resolution: {integrity: sha512-LGqjDWxg2fuQQm7ypDxduLu/m4+4Lb4gczc13v51VMZbVP5tSBILqVx8qfWcsdP8f0G7aIqByIALDB0R93yL+w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- jest-regex-util: 29.2.0
- jest-snapshot: 29.3.1
+ jest-regex-util: 29.4.3
+ jest-snapshot: 29.6.2
transitivePeerDependencies:
- supports-color
dev: true
- /jest-resolve/29.3.1:
- resolution: {integrity: sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==}
+ /jest-resolve@29.6.2:
+ resolution: {integrity: sha512-G/iQUvZWI5e3SMFssc4ug4dH0aZiZpsDq9o1PtXTV1210Ztyb2+w+ZgQkB3iOiC5SmAEzJBOHWz6Hvrd+QnNPw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
chalk: 4.1.2
- graceful-fs: 4.2.10
- jest-haste-map: 29.3.1
- jest-pnp-resolver: 1.2.3_jest-resolve@29.3.1
- jest-util: 29.3.1
- jest-validate: 29.3.1
- resolve: 1.22.1
- resolve.exports: 1.1.0
+ graceful-fs: 4.2.11
+ jest-haste-map: 29.6.2
+ jest-pnp-resolver: 1.2.3(jest-resolve@29.6.2)
+ jest-util: 29.6.2
+ jest-validate: 29.6.2
+ resolve: 1.22.2
+ resolve.exports: 2.0.2
slash: 3.0.0
dev: true
- /jest-runner/29.3.1:
- resolution: {integrity: sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==}
+ /jest-runner@29.6.2:
+ resolution: {integrity: sha512-wXOT/a0EspYgfMiYHxwGLPCZfC0c38MivAlb2lMEAlwHINKemrttu1uSbcGbfDV31sFaPWnWJPmb2qXM8pqZ4w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/console': 29.3.1
- '@jest/environment': 29.3.1
- '@jest/test-result': 29.3.1
- '@jest/transform': 29.3.1
- '@jest/types': 29.3.1
- '@types/node': 18.11.17
+ '@jest/console': 29.6.2
+ '@jest/environment': 29.6.2
+ '@jest/test-result': 29.6.2
+ '@jest/transform': 29.6.2
+ '@jest/types': 29.6.1
+ '@types/node': 20.4.7
chalk: 4.1.2
emittery: 0.13.1
- graceful-fs: 4.2.10
- jest-docblock: 29.2.0
- jest-environment-node: 29.3.1
- jest-haste-map: 29.3.1
- jest-leak-detector: 29.3.1
- jest-message-util: 29.3.1
- jest-resolve: 29.3.1
- jest-runtime: 29.3.1
- jest-util: 29.3.1
- jest-watcher: 29.3.1
- jest-worker: 29.3.1
+ graceful-fs: 4.2.11
+ jest-docblock: 29.4.3
+ jest-environment-node: 29.6.2
+ jest-haste-map: 29.6.2
+ jest-leak-detector: 29.6.2
+ jest-message-util: 29.6.2
+ jest-resolve: 29.6.2
+ jest-runtime: 29.6.2
+ jest-util: 29.6.2
+ jest-watcher: 29.6.2
+ jest-worker: 29.6.2
p-limit: 3.1.0
source-map-support: 0.5.13
transitivePeerDependencies:
- supports-color
dev: true
- /jest-runtime/29.3.1:
- resolution: {integrity: sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==}
+ /jest-runtime@29.6.2:
+ resolution: {integrity: sha512-2X9dqK768KufGJyIeLmIzToDmsN0m7Iek8QNxRSI/2+iPFYHF0jTwlO3ftn7gdKd98G/VQw9XJCk77rbTGZnJg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/environment': 29.3.1
- '@jest/fake-timers': 29.3.1
- '@jest/globals': 29.3.1
- '@jest/source-map': 29.2.0
- '@jest/test-result': 29.3.1
- '@jest/transform': 29.3.1
- '@jest/types': 29.3.1
- '@types/node': 18.11.17
+ '@jest/environment': 29.6.2
+ '@jest/fake-timers': 29.6.2
+ '@jest/globals': 29.6.2
+ '@jest/source-map': 29.6.0
+ '@jest/test-result': 29.6.2
+ '@jest/transform': 29.6.2
+ '@jest/types': 29.6.1
+ '@types/node': 20.4.7
chalk: 4.1.2
cjs-module-lexer: 1.2.2
collect-v8-coverage: 1.0.1
glob: 7.2.3
- graceful-fs: 4.2.10
- jest-haste-map: 29.3.1
- jest-message-util: 29.3.1
- jest-mock: 29.3.1
- jest-regex-util: 29.2.0
- jest-resolve: 29.3.1
- jest-snapshot: 29.3.1
- jest-util: 29.3.1
+ graceful-fs: 4.2.11
+ jest-haste-map: 29.6.2
+ jest-message-util: 29.6.2
+ jest-mock: 29.6.2
+ jest-regex-util: 29.4.3
+ jest-resolve: 29.6.2
+ jest-snapshot: 29.6.2
+ jest-util: 29.6.2
slash: 3.0.0
strip-bom: 4.0.0
transitivePeerDependencies:
- supports-color
dev: true
- /jest-snapshot/29.3.1:
- resolution: {integrity: sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==}
+ /jest-snapshot@29.6.2:
+ resolution: {integrity: sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@babel/core': 7.20.7
- '@babel/generator': 7.20.7
- '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.7
- '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.7
- '@babel/traverse': 7.20.8
- '@babel/types': 7.20.7
- '@jest/expect-utils': 29.3.1
- '@jest/transform': 29.3.1
- '@jest/types': 29.3.1
- '@types/babel__traverse': 7.18.3
- '@types/prettier': 2.7.2
- babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.7
+ '@babel/core': 7.22.9
+ '@babel/generator': 7.21.4
+ '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.22.9)
+ '@babel/plugin-syntax-typescript': 7.21.4(@babel/core@7.22.9)
+ '@babel/types': 7.21.4
+ '@jest/expect-utils': 29.6.2
+ '@jest/transform': 29.6.2
+ '@jest/types': 29.6.1
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.9)
chalk: 4.1.2
- expect: 29.3.1
- graceful-fs: 4.2.10
- jest-diff: 29.3.1
- jest-get-type: 29.2.0
- jest-haste-map: 29.3.1
- jest-matcher-utils: 29.3.1
- jest-message-util: 29.3.1
- jest-util: 29.3.1
+ expect: 29.6.2
+ graceful-fs: 4.2.11
+ jest-diff: 29.6.2
+ jest-get-type: 29.4.3
+ jest-matcher-utils: 29.6.2
+ jest-message-util: 29.6.2
+ jest-util: 29.6.2
natural-compare: 1.4.0
- pretty-format: 29.3.1
- semver: 7.3.8
+ pretty-format: 29.6.2
+ semver: 7.5.4
transitivePeerDependencies:
- supports-color
dev: true
- /jest-util/29.3.1:
- resolution: {integrity: sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==}
+ /jest-util@29.5.0:
+ resolution: {integrity: sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/types': 29.5.0
+ '@types/node': 20.4.7
+ chalk: 4.1.2
+ ci-info: 3.8.0
+ graceful-fs: 4.2.11
+ picomatch: 2.3.1
+ dev: true
+
+ /jest-util@29.6.2:
+ resolution: {integrity: sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/types': 29.3.1
- '@types/node': 18.11.17
+ '@jest/types': 29.6.1
+ '@types/node': 20.4.7
chalk: 4.1.2
- ci-info: 3.7.0
- graceful-fs: 4.2.10
+ ci-info: 3.8.0
+ graceful-fs: 4.2.11
picomatch: 2.3.1
dev: true
- /jest-validate/29.3.1:
- resolution: {integrity: sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==}
+ /jest-validate@29.6.2:
+ resolution: {integrity: sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/types': 29.3.1
+ '@jest/types': 29.6.1
camelcase: 6.3.0
chalk: 4.1.2
- jest-get-type: 29.2.0
+ jest-get-type: 29.4.3
leven: 3.1.0
- pretty-format: 29.3.1
+ pretty-format: 29.6.2
dev: true
- /jest-watcher/29.3.1:
- resolution: {integrity: sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==}
+ /jest-watcher@29.6.2:
+ resolution: {integrity: sha512-GZitlqkMkhkefjfN/p3SJjrDaxPflqxEAv3/ik10OirZqJGYH5rPiIsgVcfof0Tdqg3shQGdEIxDBx+B4tuLzA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/test-result': 29.3.1
- '@jest/types': 29.3.1
- '@types/node': 18.11.17
+ '@jest/test-result': 29.6.2
+ '@jest/types': 29.6.1
+ '@types/node': 20.4.7
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
- jest-util: 29.3.1
+ jest-util: 29.6.2
string-length: 4.0.2
dev: true
- /jest-worker/29.3.1:
- resolution: {integrity: sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==}
+ /jest-worker@29.6.2:
+ resolution: {integrity: sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@types/node': 18.11.17
- jest-util: 29.3.1
+ '@types/node': 20.4.7
+ jest-util: 29.6.2
merge-stream: 2.0.0
supports-color: 8.1.1
dev: true
- /jest/29.3.1_@types+node@18.11.17:
- resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==}
+ /jest@29.6.2(@types/node@20.4.7):
+ resolution: {integrity: sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
peerDependencies:
@@ -4461,34 +4820,31 @@ packages:
node-notifier:
optional: true
dependencies:
- '@jest/core': 29.3.1
- '@jest/types': 29.3.1
+ '@jest/core': 29.6.2
+ '@jest/types': 29.6.1
import-local: 3.1.0
- jest-cli: 29.3.1_@types+node@18.11.17
+ jest-cli: 29.6.2(@types/node@20.4.7)
transitivePeerDependencies:
- '@types/node'
+ - babel-plugin-macros
- supports-color
- ts-node
dev: true
- /jquery/3.6.3:
- resolution: {integrity: sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg==}
+ /jquery@3.7.0:
+ resolution: {integrity: sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==}
dev: false
- /js-levenshtein/1.1.6:
+ /js-levenshtein@1.1.6:
resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==}
engines: {node: '>=0.10.0'}
dev: true
- /js-sdsl/4.2.0:
- resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==}
- dev: true
-
- /js-tokens/4.0.0:
+ /js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
dev: true
- /js-yaml/3.14.1:
+ /js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
hasBin: true
dependencies:
@@ -4496,14 +4852,14 @@ packages:
esprima: 4.0.1
dev: true
- /js-yaml/4.1.0:
+ /js-yaml@4.1.0:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
dependencies:
argparse: 2.0.1
dev: true
- /jsdom/20.0.3:
+ /jsdom@20.0.3:
resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
engines: {node: '>=14'}
peerDependencies:
@@ -4513,7 +4869,7 @@ packages:
optional: true
dependencies:
abab: 2.0.6
- acorn: 8.8.1
+ acorn: 8.8.2
acorn-globals: 7.0.1
cssom: 0.5.0
cssstyle: 2.3.0
@@ -4526,17 +4882,17 @@ packages:
http-proxy-agent: 5.0.0
https-proxy-agent: 5.0.1
is-potential-custom-element-name: 1.0.1
- nwsapi: 2.2.2
+ nwsapi: 2.2.3
parse5: 7.1.2
saxes: 6.0.0
symbol-tree: 3.2.4
- tough-cookie: 4.1.2
+ tough-cookie: 4.1.3
w3c-xmlserializer: 4.0.0
webidl-conversions: 7.0.0
whatwg-encoding: 2.0.0
whatwg-mimetype: 3.0.0
whatwg-url: 11.0.0
- ws: 8.11.0
+ ws: 8.13.0
xml-name-validator: 4.0.0
transitivePeerDependencies:
- bufferutil
@@ -4544,61 +4900,61 @@ packages:
- utf-8-validate
dev: true
- /jsesc/0.5.0:
+ /jsesc@0.5.0:
resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
hasBin: true
dev: true
- /jsesc/2.5.2:
+ /jsesc@2.5.2:
resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
engines: {node: '>=4'}
hasBin: true
dev: true
- /json-parse-even-better-errors/2.3.1:
+ /json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
dev: true
- /json-schema-traverse/0.4.1:
+ /json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
dev: true
- /json-stable-stringify-without-jsonify/1.0.1:
+ /json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
dev: true
- /json5/1.0.1:
- resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==}
+ /json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin: true
dependencies:
- minimist: 1.2.7
+ minimist: 1.2.8
dev: true
- /json5/2.2.2:
- resolution: {integrity: sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==}
+ /json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
hasBin: true
dev: true
- /jsonfile/6.1.0:
+ /jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
dependencies:
universalify: 2.0.0
optionalDependencies:
- graceful-fs: 4.2.10
+ graceful-fs: 4.2.11
dev: true
- /kleur/3.0.3:
+ /kleur@3.0.3:
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
engines: {node: '>=6'}
dev: true
- /leven/3.1.0:
+ /leven@3.1.0:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'}
dev: true
- /levn/0.3.0:
+ /levn@0.3.0:
resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==}
engines: {node: '>= 0.8.0'}
dependencies:
@@ -4606,7 +4962,7 @@ packages:
type-check: 0.3.2
dev: true
- /levn/0.4.1:
+ /levn@0.4.1:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
dependencies:
@@ -4614,89 +4970,85 @@ packages:
type-check: 0.4.0
dev: true
- /lilconfig/2.0.6:
- resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==}
+ /lilconfig@2.1.0:
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
engines: {node: '>=10'}
dev: true
- /lines-and-columns/1.2.4:
+ /lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
dev: true
- /locate-path/5.0.0:
+ /locate-path@5.0.0:
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
engines: {node: '>=8'}
dependencies:
p-locate: 4.1.0
dev: true
- /locate-path/6.0.0:
+ /locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
dependencies:
p-locate: 5.0.0
dev: true
- /lodash._reinterpolate/3.0.0:
+ /lodash._reinterpolate@3.0.0:
resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==}
dev: true
- /lodash.debounce/4.0.8:
+ /lodash.debounce@4.0.8:
resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
dev: true
- /lodash.flattendeep/4.4.0:
- resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==}
- dev: true
-
- /lodash.merge/4.6.2:
+ /lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
dev: true
- /lodash.template/4.5.0:
+ /lodash.template@4.5.0:
resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==}
dependencies:
lodash._reinterpolate: 3.0.0
lodash.templatesettings: 4.2.0
dev: true
- /lodash.templatesettings/4.2.0:
+ /lodash.templatesettings@4.2.0:
resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==}
dependencies:
lodash._reinterpolate: 3.0.0
dev: true
- /lodash/4.17.21:
+ /lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
dev: true
- /log-symbols/4.1.0:
+ /log-symbols@4.1.0:
resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
engines: {node: '>=10'}
dependencies:
- chalk: 4.1.1
+ chalk: 4.1.2
is-unicode-supported: 0.1.0
dev: true
- /lru-cache/5.1.1:
+ /lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
dependencies:
yallist: 3.1.1
dev: true
- /lru-cache/6.0.0:
+ /lru-cache@6.0.0:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
dependencies:
yallist: 4.0.0
dev: true
- /lz-string/1.4.4:
- resolution: {integrity: sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==}
+ /lz-string@1.5.0:
+ resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
dev: true
- /make-dir/2.1.0:
+ /make-dir@2.1.0:
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
engines: {node: '>=6'}
dependencies:
@@ -4704,29 +5056,29 @@ packages:
semver: 5.7.1
dev: true
- /make-dir/3.1.0:
+ /make-dir@3.1.0:
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
engines: {node: '>=8'}
dependencies:
semver: 6.3.0
dev: true
- /makeerror/1.0.12:
+ /makeerror@1.0.12:
resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
dependencies:
tmpl: 1.0.5
dev: true
- /merge-stream/2.0.0:
+ /merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
dev: true
- /merge2/1.4.1:
+ /merge2@1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
dev: true
- /micromatch/4.0.5:
+ /micromatch@4.0.5:
resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
engines: {node: '>=8.6'}
dependencies:
@@ -4734,107 +5086,103 @@ packages:
picomatch: 2.3.1
dev: true
- /mime-db/1.52.0:
+ /mime-db@1.52.0:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
engines: {node: '>= 0.6'}
dev: true
- /mime-types/2.1.35:
+ /mime-types@2.1.35:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
dependencies:
mime-db: 1.52.0
dev: true
- /mime/3.0.0:
+ /mime@3.0.0:
resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
engines: {node: '>=10.0.0'}
hasBin: true
dev: true
- /mimic-fn/2.1.0:
+ /mimic-fn@2.1.0:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: '>=6'}
dev: true
- /minimatch/3.1.2:
+ /minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
brace-expansion: 1.1.11
dev: true
- /minimist/1.2.7:
- resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
+ /minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
dev: true
- /ms/2.0.0:
- resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
- dev: true
-
- /ms/2.1.2:
+ /ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
dev: true
- /ms/2.1.3:
+ /ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
dev: true
- /msw/0.49.2_typescript@4.9.4:
- resolution: {integrity: sha512-70/E10f+POE2UmMw16v8PnKatpZplpkUwVRLBqiIdimpgaC3le7y2yOq9JmOrL15jpwWM5wAcPTOj0f550LI3g==}
+ /msw@1.2.3(typescript@5.1.6):
+ resolution: {integrity: sha512-Fqy/TaLKR32x4IkMwudJHJysBzVM/v/lSoMPS9f3QaHLOmb3xHN9YurSUnRt+2eEvNXLjVPij1wMBQtLmTbKsg==}
engines: {node: '>=14'}
hasBin: true
requiresBuild: true
peerDependencies:
- typescript: '>= 4.4.x <= 4.9.x'
+ typescript: '>= 4.4.x <= 5.1.x'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
'@mswjs/cookies': 0.2.2
- '@mswjs/interceptors': 0.17.6
+ '@mswjs/interceptors': 0.17.9
'@open-draft/until': 1.0.3
'@types/cookie': 0.4.1
'@types/js-levenshtein': 1.1.1
chalk: 4.1.1
chokidar: 3.5.3
cookie: 0.4.2
- graphql: 16.6.0
+ graphql: 16.7.1
headers-polyfill: 3.1.2
inquirer: 8.2.5
- is-node-process: 1.0.1
+ is-node-process: 1.2.0
js-levenshtein: 1.1.6
- node-fetch: 2.6.7
- outvariant: 1.3.0
+ node-fetch: 2.6.9
+ outvariant: 1.4.0
path-to-regexp: 6.2.1
- strict-event-emitter: 0.2.8
+ strict-event-emitter: 0.4.6
type-fest: 2.19.0
- typescript: 4.9.4
- yargs: 17.6.2
+ typescript: 5.1.6
+ yargs: 17.7.1
transitivePeerDependencies:
- encoding
- supports-color
dev: true
- /mute-stream/0.0.8:
+ /mute-stream@0.0.8:
resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
dev: true
- /nanoid/3.3.4:
- resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
+ /nanoid@3.3.6:
+ resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
dev: true
- /natural-compare-lite/1.4.0:
+ /natural-compare-lite@1.4.0:
resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
dev: true
- /natural-compare/1.4.0:
+ /natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
- /node-fetch/2.6.7:
- resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==}
+ /node-fetch@2.6.9:
+ resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==}
engines: {node: 4.x || >=6.0.0}
peerDependencies:
encoding: ^0.1.0
@@ -4845,133 +5193,112 @@ packages:
whatwg-url: 5.0.0
dev: true
- /node-int64/0.4.0:
+ /node-int64@0.4.0:
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
dev: true
- /node-preload/0.2.1:
- resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==}
- engines: {node: '>=8'}
- dependencies:
- process-on-spawn: 1.0.0
+ /node-releases@2.0.10:
+ resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==}
dev: true
- /node-releases/2.0.8:
- resolution: {integrity: sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==}
+ /node-releases@2.0.13:
+ resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
dev: true
- /normalize-path/3.0.0:
+ /normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
dev: true
- /normalize-range/0.1.2:
+ /normalize-range@0.1.2:
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
engines: {node: '>=0.10.0'}
dev: true
- /npm-run-path/4.0.1:
+ /npm-run-path@4.0.1:
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
engines: {node: '>=8'}
dependencies:
path-key: 3.1.1
dev: true
- /nwsapi/2.2.2:
- resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==}
- dev: true
-
- /nyc/15.1.0:
- resolution: {integrity: sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==}
- engines: {node: '>=8.9'}
- hasBin: true
- dependencies:
- '@istanbuljs/load-nyc-config': 1.1.0
- '@istanbuljs/schema': 0.1.3
- caching-transform: 4.0.0
- convert-source-map: 1.9.0
- decamelize: 1.2.0
- find-cache-dir: 3.3.2
- find-up: 4.1.0
- foreground-child: 2.0.0
- get-package-type: 0.1.0
- glob: 7.2.3
- istanbul-lib-coverage: 3.2.0
- istanbul-lib-hook: 3.0.0
- istanbul-lib-instrument: 4.0.3
- istanbul-lib-processinfo: 2.0.3
- istanbul-lib-report: 3.0.0
- istanbul-lib-source-maps: 4.0.1
- istanbul-reports: 3.1.5
- make-dir: 3.1.0
- node-preload: 0.2.1
- p-map: 3.0.0
- process-on-spawn: 1.0.0
- resolve-from: 5.0.0
- rimraf: 3.0.2
- signal-exit: 3.0.7
- spawn-wrap: 2.0.0
- test-exclude: 6.0.0
- yargs: 15.4.1
- transitivePeerDependencies:
- - supports-color
+ /nwsapi@2.2.3:
+ resolution: {integrity: sha512-jscxIO4/VKScHlbmFBdV1Z6LXnLO+ZR4VMtypudUdfwtKxUN3TQcNFIHLwKtrUbDyHN4/GycY9+oRGZ2XMXYPw==}
dev: true
- /object-inspect/1.12.2:
- resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==}
+ /object-inspect@1.12.3:
+ resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
dev: true
- /object-is/1.1.5:
+ /object-is@1.1.5:
resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
+ define-properties: 1.2.0
dev: true
- /object-keys/1.1.1:
+ /object-keys@1.1.1:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines: {node: '>= 0.4'}
dev: true
- /object.assign/4.1.4:
+ /object.assign@4.1.4:
resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
+ define-properties: 1.2.0
has-symbols: 1.0.3
object-keys: 1.1.1
dev: true
- /object.values/1.1.6:
+ /object.fromentries@2.0.6:
+ resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ dev: true
+
+ /object.groupby@1.0.0:
+ resolution: {integrity: sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ get-intrinsic: 1.2.1
+ dev: true
+
+ /object.values@1.1.6:
resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.20.5
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
dev: true
- /once/1.4.0:
+ /once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
dependencies:
wrappy: 1.0.2
dev: true
- /onetime/5.1.2:
+ /onetime@5.1.2:
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
engines: {node: '>=6'}
dependencies:
mimic-fn: 2.1.0
dev: true
- /opener/1.5.2:
+ /opener@1.5.2:
resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
hasBin: true
dev: true
- /optionator/0.8.3:
+ /optionator@0.8.3:
resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==}
engines: {node: '>= 0.8.0'}
dependencies:
@@ -4980,29 +5307,29 @@ packages:
levn: 0.3.0
prelude-ls: 1.1.2
type-check: 0.3.2
- word-wrap: 1.2.3
+ word-wrap: 1.2.4
dev: true
- /optionator/0.9.1:
- resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
+ /optionator@0.9.3:
+ resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
engines: {node: '>= 0.8.0'}
dependencies:
+ '@aashutoshrathi/word-wrap': 1.2.6
deep-is: 0.1.4
fast-levenshtein: 2.0.6
levn: 0.4.1
prelude-ls: 1.2.1
type-check: 0.4.0
- word-wrap: 1.2.3
dev: true
- /ora/5.4.1:
+ /ora@5.4.1:
resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
engines: {node: '>=10'}
dependencies:
bl: 4.1.0
- chalk: 4.1.1
+ chalk: 4.1.2
cli-cursor: 3.1.0
- cli-spinners: 2.7.0
+ cli-spinners: 2.8.0
is-interactive: 1.0.0
is-unicode-supported: 0.1.0
log-symbols: 4.1.0
@@ -5010,163 +5337,137 @@ packages:
wcwidth: 1.0.1
dev: true
- /os-tmpdir/1.0.2:
+ /os-tmpdir@1.0.2:
resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
engines: {node: '>=0.10.0'}
dev: true
- /outvariant/1.3.0:
- resolution: {integrity: sha512-yeWM9k6UPfG/nzxdaPlJkB2p08hCg4xP6Lx99F+vP8YF7xyZVfTmJjrrNalkmzudD4WFvNLVudQikqUmF8zhVQ==}
+ /outvariant@1.4.0:
+ resolution: {integrity: sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==}
dev: true
- /p-limit/2.3.0:
+ /p-limit@2.3.0:
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
engines: {node: '>=6'}
dependencies:
p-try: 2.2.0
dev: true
- /p-limit/3.1.0:
+ /p-limit@3.1.0:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
dependencies:
yocto-queue: 0.1.0
dev: true
- /p-locate/4.1.0:
+ /p-locate@4.1.0:
resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
engines: {node: '>=8'}
dependencies:
p-limit: 2.3.0
dev: true
- /p-locate/5.0.0:
+ /p-locate@5.0.0:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'}
dependencies:
p-limit: 3.1.0
dev: true
- /p-map/3.0.0:
- resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==}
- engines: {node: '>=8'}
- dependencies:
- aggregate-error: 3.1.0
- dev: true
-
- /p-try/2.2.0:
+ /p-try@2.2.0:
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
engines: {node: '>=6'}
dev: true
- /package-hash/4.0.0:
- resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==}
- engines: {node: '>=8'}
- dependencies:
- graceful-fs: 4.2.10
- hasha: 5.2.2
- lodash.flattendeep: 4.4.0
- release-zalgo: 1.0.0
- dev: true
-
- /parent-module/1.0.1:
+ /parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
dependencies:
callsites: 3.1.0
dev: true
- /parse-json/5.2.0:
+ /parse-json@5.2.0:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
dependencies:
- '@babel/code-frame': 7.18.6
+ '@babel/code-frame': 7.21.4
error-ex: 1.3.2
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
dev: true
- /parse5/7.1.2:
+ /parse5@7.1.2:
resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
dependencies:
entities: 4.4.0
dev: true
- /path-exists/4.0.0:
+ /path-exists@4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
dev: true
- /path-is-absolute/1.0.1:
+ /path-is-absolute@1.0.1:
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: '>=0.10.0'}
dev: true
- /path-key/3.1.1:
+ /path-key@3.1.1:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
dev: true
- /path-parse/1.0.7:
+ /path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
dev: true
- /path-to-regexp/6.2.1:
+ /path-to-regexp@6.2.1:
resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
dev: true
- /path-type/4.0.0:
+ /path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
dev: true
- /picocolors/1.0.0:
+ /picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
dev: true
- /picomatch/2.3.1:
+ /picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
dev: true
- /pify/2.3.0:
+ /pify@2.3.0:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: '>=0.10.0'}
dev: true
- /pify/4.0.1:
+ /pify@4.0.1:
resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
engines: {node: '>=6'}
dev: true
- /pirates/4.0.5:
+ /pirates@4.0.5:
resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==}
engines: {node: '>= 6'}
dev: true
- /pkg-dir/4.2.0:
+ /pkg-dir@4.2.0:
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
engines: {node: '>=8'}
dependencies:
find-up: 4.1.0
dev: true
- /playwright-core/1.29.1:
- resolution: {integrity: sha512-20Ai3d+lMkWpI9YZYlxk8gxatfgax5STW8GaMozAHwigLiyiKQrdkt7gaoT9UQR8FIVDg6qVXs9IoZUQrDjIIg==}
- engines: {node: '>=14'}
- hasBin: true
- dev: true
-
- /playwright/1.29.1:
- resolution: {integrity: sha512-lasC+pMqsQ2uWhNurt3YK3xo0gWlMjslYUylKbHcqF/NTjwp9KStRGO7S6wwz2f52GcSnop8XUK/GymJjdzrxw==}
- engines: {node: '>=14'}
+ /playwright-core@1.36.2:
+ resolution: {integrity: sha512-sQYZt31dwkqxOrP7xy2ggDfEzUxM1lodjhsQ3NMMv5uGTRDsLxU0e4xf4wwMkF2gplIxf17QMBCodSFgm6bFVQ==}
+ engines: {node: '>=16'}
hasBin: true
- requiresBuild: true
- dependencies:
- playwright-core: 1.29.1
dev: true
- /postcss-cli/10.1.0_postcss@8.4.20:
+ /postcss-cli@10.1.0(postcss@8.4.27):
resolution: {integrity: sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==}
engines: {node: '>=14'}
hasBin: true
@@ -5175,34 +5476,34 @@ packages:
dependencies:
chokidar: 3.5.3
dependency-graph: 0.11.0
- fs-extra: 11.1.0
+ fs-extra: 11.1.1
get-stdin: 9.0.0
globby: 13.1.3
picocolors: 1.0.0
- postcss: 8.4.20
- postcss-load-config: 4.0.1_postcss@8.4.20
- postcss-reporter: 7.0.5_postcss@8.4.20
+ postcss: 8.4.27
+ postcss-load-config: 4.0.1(postcss@8.4.27)
+ postcss-reporter: 7.0.5(postcss@8.4.27)
pretty-hrtime: 1.0.3
read-cache: 1.0.0
slash: 5.0.0
- yargs: 17.6.2
+ yargs: 17.7.1
transitivePeerDependencies:
- ts-node
dev: true
- /postcss-import/15.1.0_postcss@8.4.20:
+ /postcss-import@15.1.0(postcss@8.4.27):
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
engines: {node: '>=14.0.0'}
peerDependencies:
postcss: ^8.0.0
dependencies:
- postcss: 8.4.20
+ postcss: 8.4.27
postcss-value-parser: 4.2.0
read-cache: 1.0.0
- resolve: 1.22.1
+ resolve: 1.22.2
dev: true
- /postcss-load-config/4.0.1_postcss@8.4.20:
+ /postcss-load-config@4.0.1(postcss@8.4.27):
resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
engines: {node: '>= 14'}
peerDependencies:
@@ -5214,33 +5515,33 @@ packages:
ts-node:
optional: true
dependencies:
- lilconfig: 2.0.6
- postcss: 8.4.20
- yaml: 2.2.0
+ lilconfig: 2.1.0
+ postcss: 8.4.27
+ yaml: 2.2.1
dev: true
- /postcss-nested/6.0.0_postcss@8.4.20:
- resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==}
+ /postcss-nested@6.0.1(postcss@8.4.27):
+ resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.2.14
dependencies:
- postcss: 8.4.20
+ postcss: 8.4.27
postcss-selector-parser: 6.0.11
dev: true
- /postcss-reporter/7.0.5_postcss@8.4.20:
+ /postcss-reporter@7.0.5(postcss@8.4.27):
resolution: {integrity: sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==}
engines: {node: '>=10'}
peerDependencies:
postcss: ^8.1.0
dependencies:
picocolors: 1.0.0
- postcss: 8.4.20
+ postcss: 8.4.27
thenby: 1.3.4
dev: true
- /postcss-selector-parser/6.0.11:
+ /postcss-selector-parser@6.0.11:
resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==}
engines: {node: '>=4'}
dependencies:
@@ -5248,36 +5549,36 @@ packages:
util-deprecate: 1.0.2
dev: true
- /postcss-value-parser/4.2.0:
+ /postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
dev: true
- /postcss/8.4.20:
- resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==}
+ /postcss@8.4.27:
+ resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
- nanoid: 3.3.4
+ nanoid: 3.3.6
picocolors: 1.0.0
source-map-js: 1.0.2
dev: true
- /prelude-ls/1.1.2:
+ /prelude-ls@1.1.2:
resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==}
engines: {node: '>= 0.8.0'}
dev: true
- /prelude-ls/1.2.1:
+ /prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
dev: true
- /prettier/2.8.1:
- resolution: {integrity: sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==}
- engines: {node: '>=10.13.0'}
+ /prettier@3.0.1:
+ resolution: {integrity: sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==}
+ engines: {node: '>=14'}
hasBin: true
dev: true
- /pretty-format/27.5.1:
+ /pretty-format@27.5.1:
resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
dependencies:
@@ -5286,28 +5587,30 @@ packages:
react-is: 17.0.2
dev: true
- /pretty-format/29.3.1:
- resolution: {integrity: sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==}
+ /pretty-format@29.5.0:
+ resolution: {integrity: sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/schemas': 29.0.0
+ '@jest/schemas': 29.4.3
ansi-styles: 5.2.0
react-is: 18.2.0
dev: true
- /pretty-hrtime/1.0.3:
- resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==}
- engines: {node: '>= 0.8'}
+ /pretty-format@29.6.2:
+ resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/schemas': 29.6.0
+ ansi-styles: 5.2.0
+ react-is: 18.2.0
dev: true
- /process-on-spawn/1.0.0:
- resolution: {integrity: sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==}
- engines: {node: '>=8'}
- dependencies:
- fromentries: 1.3.2
+ /pretty-hrtime@1.0.3:
+ resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==}
+ engines: {node: '>= 0.8'}
dev: true
- /prompts/2.4.2:
+ /prompts@2.4.2:
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
engines: {node: '>= 6'}
dependencies:
@@ -5315,39 +5618,49 @@ packages:
sisteransi: 1.0.5
dev: true
- /psl/1.9.0:
+ /psl@1.9.0:
resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
dev: true
- /punycode/2.1.1:
- resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
+ /punycode@2.3.0:
+ resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
engines: {node: '>=6'}
dev: true
- /querystringify/2.2.0:
+ /pure-rand@6.0.1:
+ resolution: {integrity: sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==}
+ dev: true
+
+ /querystringify@2.2.0:
resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
dev: true
- /queue-microtask/1.2.3:
+ /queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
dev: true
- /react-is/17.0.2:
+ /randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+ dependencies:
+ safe-buffer: 5.2.1
+ dev: true
+
+ /react-is@17.0.2:
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
dev: true
- /react-is/18.2.0:
+ /react-is@18.2.0:
resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
dev: true
- /read-cache/1.0.0:
+ /read-cache@1.0.0:
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
dependencies:
pify: 2.3.0
dev: true
- /readable-stream/3.6.0:
- resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
+ /readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
engines: {node: '>= 6'}
dependencies:
inherits: 2.0.4
@@ -5355,123 +5668,112 @@ packages:
util-deprecate: 1.0.2
dev: true
- /readdirp/3.6.0:
+ /readdirp@3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
dependencies:
picomatch: 2.3.1
dev: true
- /regenerate-unicode-properties/10.1.0:
+ /regenerate-unicode-properties@10.1.0:
resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==}
engines: {node: '>=4'}
dependencies:
regenerate: 1.4.2
dev: true
- /regenerate/1.4.2:
+ /regenerate@1.4.2:
resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
dev: true
- /regenerator-runtime/0.13.11:
+ /regenerator-runtime@0.13.11:
resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
dev: true
- /regenerator-transform/0.15.1:
+ /regenerator-transform@0.15.1:
resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==}
dependencies:
- '@babel/runtime': 7.20.7
+ '@babel/runtime': 7.21.0
dev: true
- /regexp.prototype.flags/1.4.3:
+ /regexp.prototype.flags@1.4.3:
resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
+ define-properties: 1.2.0
functions-have-names: 1.2.3
dev: true
- /regexpp/3.2.0:
- resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
- engines: {node: '>=8'}
- dev: true
-
- /regexpu-core/5.2.2:
- resolution: {integrity: sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==}
+ /regexpu-core@5.3.2:
+ resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
engines: {node: '>=4'}
dependencies:
+ '@babel/regjsgen': 0.8.0
regenerate: 1.4.2
regenerate-unicode-properties: 10.1.0
- regjsgen: 0.7.1
regjsparser: 0.9.1
unicode-match-property-ecmascript: 2.0.0
unicode-match-property-value-ecmascript: 2.1.0
dev: true
- /regjsgen/0.7.1:
- resolution: {integrity: sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==}
- dev: true
-
- /regjsparser/0.9.1:
+ /regjsparser@0.9.1:
resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
hasBin: true
dependencies:
jsesc: 0.5.0
dev: true
- /release-zalgo/1.0.0:
- resolution: {integrity: sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==}
- engines: {node: '>=4'}
- dependencies:
- es6-error: 4.1.1
- dev: true
-
- /require-directory/2.1.1:
+ /require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
dev: true
- /require-main-filename/2.0.0:
- resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
- dev: true
-
- /requires-port/1.0.0:
+ /requires-port@1.0.0:
resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
dev: true
- /resolve-cwd/3.0.0:
+ /resolve-cwd@3.0.0:
resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
engines: {node: '>=8'}
dependencies:
resolve-from: 5.0.0
dev: true
- /resolve-from/4.0.0:
+ /resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
dev: true
- /resolve-from/5.0.0:
+ /resolve-from@5.0.0:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines: {node: '>=8'}
dev: true
- /resolve.exports/1.1.0:
- resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==}
+ /resolve.exports@2.0.2:
+ resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
engines: {node: '>=10'}
dev: true
- /resolve/1.22.1:
- resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
+ /resolve@1.22.2:
+ resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.12.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: true
+
+ /resolve@1.22.4:
+ resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==}
hasBin: true
dependencies:
- is-core-module: 2.11.0
+ is-core-module: 2.13.0
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
dev: true
- /restore-cursor/3.1.0:
+ /restore-cursor@3.1.0:
resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
engines: {node: '>=8'}
dependencies:
@@ -5479,201 +5781,219 @@ packages:
signal-exit: 3.0.7
dev: true
- /reusify/1.0.4:
+ /reusify@1.0.4:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
dev: true
- /rimraf/3.0.2:
+ /rimraf@3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
hasBin: true
dependencies:
glob: 7.2.3
dev: true
- /rollup-plugin-serve/2.0.2:
+ /rollup-plugin-serve@2.0.2:
resolution: {integrity: sha512-ALqyTbPhlf7FZ5RzlbDvMYvbKuCHWginJkTo6dMsbgji/a78IbsXox+pC83HENdkTRz8OXrTj+aShp3+3ratpg==}
dependencies:
mime: 3.0.0
opener: 1.5.2
dev: true
- /rollup/3.8.1:
- resolution: {integrity: sha512-4yh9eMW7byOroYcN8DlF9P/2jCpu6txVIHjEqquQVSx7DI0RgyCCN3tjrcy4ra6yVtV336aLBB3v2AarYAxePQ==}
+ /rollup@3.27.2:
+ resolution: {integrity: sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==}
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
hasBin: true
optionalDependencies:
fsevents: 2.3.2
dev: true
- /run-async/2.4.1:
+ /run-async@2.4.1:
resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
engines: {node: '>=0.12.0'}
dev: true
- /run-parallel/1.2.0:
+ /run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
dependencies:
queue-microtask: 1.2.3
dev: true
- /rxjs/7.8.0:
+ /rxjs@7.8.0:
resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==}
dependencies:
- tslib: 2.4.1
+ tslib: 2.6.1
dev: true
- /safe-buffer/5.2.1:
+ /safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
dev: true
- /safe-regex-test/1.0.0:
+ /safe-regex-test@1.0.0:
resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
dependencies:
call-bind: 1.0.2
- get-intrinsic: 1.1.3
+ get-intrinsic: 1.2.0
is-regex: 1.1.4
dev: true
- /safer-buffer/2.1.2:
+ /safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
dev: true
- /saxes/6.0.0:
+ /saxes@6.0.0:
resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
engines: {node: '>=v12.22.7'}
dependencies:
xmlchars: 2.2.0
dev: true
- /semver/5.7.1:
+ /semver@5.7.1:
resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
hasBin: true
dev: true
- /semver/6.3.0:
+ /semver@6.3.0:
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
hasBin: true
dev: true
- /semver/7.3.8:
- resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
+ /semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+ dev: true
+
+ /semver@7.4.0:
+ resolution: {integrity: sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+ dev: true
+
+ /semver@7.5.4:
+ resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
engines: {node: '>=10'}
hasBin: true
dependencies:
lru-cache: 6.0.0
dev: true
- /set-blocking/2.0.0:
- resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
+ /serialize-javascript@6.0.1:
+ resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==}
+ dependencies:
+ randombytes: 2.1.0
dev: true
- /set-cookie-parser/2.5.1:
- resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==}
+ /set-cookie-parser@2.6.0:
+ resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
dev: true
- /shebang-command/2.0.0:
+ /shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
dependencies:
shebang-regex: 3.0.0
dev: true
- /shebang-regex/3.0.0:
+ /shebang-regex@3.0.0:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
dev: true
- /side-channel/1.0.4:
+ /side-channel@1.0.4:
resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
dependencies:
call-bind: 1.0.2
- get-intrinsic: 1.1.3
- object-inspect: 1.12.2
+ get-intrinsic: 1.2.0
+ object-inspect: 1.12.3
dev: true
- /signal-exit/3.0.7:
+ /signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: true
- /sisteransi/1.0.5:
+ /sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
dev: true
- /slash/2.0.0:
+ /slash@2.0.0:
resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==}
engines: {node: '>=6'}
dev: true
- /slash/3.0.0:
+ /slash@3.0.0:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
dev: true
- /slash/4.0.0:
+ /slash@4.0.0:
resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
engines: {node: '>=12'}
dev: true
- /slash/5.0.0:
+ /slash@5.0.0:
resolution: {integrity: sha512-n6KkmvKS0623igEVj3FF0OZs1gYYJ0o0Hj939yc1fyxl2xt+xYpLnzJB6xBSqOfV9ZFLEWodBBN/heZJahuIJQ==}
engines: {node: '>=14.16'}
dev: true
- /source-map-js/1.0.2:
+ /smob@1.4.0:
+ resolution: {integrity: sha512-MqR3fVulhjWuRNSMydnTlweu38UhQ0HXM4buStD/S3mc/BzX3CuM9OmhyQpmtYCvoYdl5ris6TI0ZqH355Ymqg==}
+ dev: true
+
+ /source-map-js@1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
dev: true
- /source-map-support/0.5.13:
+ /source-map-support@0.5.13:
resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
dev: true
- /source-map-support/0.5.21:
+ /source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
dev: true
- /source-map/0.6.1:
+ /source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
dev: true
- /spawn-wrap/2.0.0:
- resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==}
- engines: {node: '>=8'}
- dependencies:
- foreground-child: 2.0.0
- is-windows: 1.0.2
- make-dir: 3.1.0
- rimraf: 3.0.2
- signal-exit: 3.0.7
- which: 2.0.2
- dev: true
-
- /sprintf-js/1.0.3:
+ /sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
dev: true
- /stack-utils/2.0.6:
+ /stack-utils@2.0.6:
resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
engines: {node: '>=10'}
dependencies:
escape-string-regexp: 2.0.0
dev: true
- /strict-event-emitter/0.2.8:
+ /stop-iteration-iterator@1.0.0:
+ resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ internal-slot: 1.0.5
+ dev: true
+
+ /strict-event-emitter@0.2.8:
resolution: {integrity: sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==}
dependencies:
events: 3.3.0
dev: true
- /string-length/4.0.2:
+ /strict-event-emitter@0.4.6:
+ resolution: {integrity: sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==}
+ dev: true
+
+ /string-length@4.0.2:
resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
engines: {node: '>=10'}
dependencies:
@@ -5681,7 +6001,7 @@ packages:
strip-ansi: 6.0.1
dev: true
- /string-width/4.2.3:
+ /string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
dependencies:
@@ -5690,97 +6010,106 @@ packages:
strip-ansi: 6.0.1
dev: true
- /string.prototype.trimend/1.0.6:
+ /string.prototype.trim@1.2.7:
+ resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ dev: true
+
+ /string.prototype.trimend@1.0.6:
resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.20.5
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
dev: true
- /string.prototype.trimstart/1.0.6:
+ /string.prototype.trimstart@1.0.6:
resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==}
dependencies:
call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.20.5
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
dev: true
- /string_decoder/1.3.0:
+ /string_decoder@1.3.0:
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
dependencies:
safe-buffer: 5.2.1
dev: true
- /strip-ansi/6.0.1:
+ /strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
dependencies:
ansi-regex: 5.0.1
dev: true
- /strip-bom/3.0.0:
+ /strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
dev: true
- /strip-bom/4.0.0:
+ /strip-bom@4.0.0:
resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
engines: {node: '>=8'}
dev: true
- /strip-final-newline/2.0.0:
+ /strip-final-newline@2.0.0:
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
engines: {node: '>=6'}
dev: true
- /strip-json-comments/3.1.1:
+ /strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
dev: true
- /supports-color/5.5.0:
+ /supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'}
dependencies:
has-flag: 3.0.0
dev: true
- /supports-color/7.2.0:
+ /supports-color@7.2.0:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
dependencies:
has-flag: 4.0.0
dev: true
- /supports-color/8.1.1:
+ /supports-color@8.1.1:
resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
engines: {node: '>=10'}
dependencies:
has-flag: 4.0.0
dev: true
- /supports-preserve-symlinks-flag/1.0.0:
+ /supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
dev: true
- /symbol-tree/3.2.4:
+ /symbol-tree@3.2.4:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
dev: true
- /terser/5.16.1:
- resolution: {integrity: sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==}
+ /terser@5.19.2:
+ resolution: {integrity: sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==}
engines: {node: '>=10'}
hasBin: true
dependencies:
- '@jridgewell/source-map': 0.3.2
- acorn: 8.8.1
+ '@jridgewell/source-map': 0.3.3
+ acorn: 8.8.2
commander: 2.20.3
source-map-support: 0.5.21
dev: true
- /test-exclude/6.0.0:
+ /test-exclude@6.0.0:
resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
engines: {node: '>=8'}
dependencies:
@@ -5789,141 +6118,147 @@ packages:
minimatch: 3.1.2
dev: true
- /text-table/0.2.0:
+ /text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
dev: true
- /thenby/1.3.4:
+ /thenby@1.3.4:
resolution: {integrity: sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==}
dev: true
- /through/2.3.8:
+ /through@2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
dev: true
- /tmp/0.0.33:
+ /tmp@0.0.33:
resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
engines: {node: '>=0.6.0'}
dependencies:
os-tmpdir: 1.0.2
dev: true
- /tmpl/1.0.5:
+ /tmpl@1.0.5:
resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
dev: true
- /to-fast-properties/2.0.0:
+ /to-fast-properties@2.0.0:
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
engines: {node: '>=4'}
dev: true
- /to-regex-range/5.0.1:
+ /to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
dependencies:
is-number: 7.0.0
dev: true
- /tough-cookie/4.1.2:
- resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==}
+ /tough-cookie@4.1.3:
+ resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
engines: {node: '>=6'}
dependencies:
psl: 1.9.0
- punycode: 2.1.1
+ punycode: 2.3.0
universalify: 0.2.0
url-parse: 1.5.10
dev: true
- /tr46/0.0.3:
+ /tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
dev: true
- /tr46/3.0.0:
+ /tr46@3.0.0:
resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
engines: {node: '>=12'}
dependencies:
- punycode: 2.1.1
+ punycode: 2.3.0
+ dev: true
+
+ /ts-api-utils@1.0.1(typescript@5.1.6):
+ resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==}
+ engines: {node: '>=16.13.0'}
+ peerDependencies:
+ typescript: '>=4.2.0'
+ dependencies:
+ typescript: 5.1.6
dev: true
- /tsconfig-paths/3.14.1:
- resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==}
+ /tsconfig-paths@3.14.2:
+ resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==}
dependencies:
'@types/json5': 0.0.29
- json5: 1.0.1
- minimist: 1.2.7
+ json5: 1.0.2
+ minimist: 1.2.8
strip-bom: 3.0.0
dev: true
- /tslib/1.14.1:
+ /tslib@1.14.1:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
dev: true
- /tslib/2.4.1:
- resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
+ /tslib@2.6.1:
+ resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==}
dev: true
- /tsutils/3.21.0_typescript@4.9.4:
+ /tsutils@3.21.0(typescript@5.1.6):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
peerDependencies:
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
dependencies:
tslib: 1.14.1
- typescript: 4.9.4
+ typescript: 5.1.6
dev: true
- /type-check/0.3.2:
+ /type-check@0.3.2:
resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==}
engines: {node: '>= 0.8.0'}
dependencies:
prelude-ls: 1.1.2
dev: true
- /type-check/0.4.0:
+ /type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
dependencies:
prelude-ls: 1.2.1
dev: true
- /type-detect/4.0.8:
+ /type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
dev: true
- /type-fest/0.20.2:
+ /type-fest@0.20.2:
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
engines: {node: '>=10'}
dev: true
- /type-fest/0.21.3:
+ /type-fest@0.21.3:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines: {node: '>=10'}
dev: true
- /type-fest/0.8.1:
- resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
- engines: {node: '>=8'}
- dev: true
-
- /type-fest/2.19.0:
+ /type-fest@2.19.0:
resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
engines: {node: '>=12.20'}
dev: true
- /typedarray-to-buffer/3.1.5:
- resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
+ /typed-array-length@1.0.4:
+ resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
dependencies:
- is-typedarray: 1.0.0
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ is-typed-array: 1.1.10
dev: true
- /typescript/4.9.4:
- resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==}
- engines: {node: '>=4.2.0'}
+ /typescript@5.1.6:
+ resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==}
+ engines: {node: '>=14.17'}
hasBin: true
dev: true
- /unbox-primitive/1.0.2:
+ /unbox-primitive@1.0.2:
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
dependencies:
call-bind: 1.0.2
@@ -5932,12 +6267,12 @@ packages:
which-boxed-primitive: 1.0.2
dev: true
- /unicode-canonical-property-names-ecmascript/2.0.0:
+ /unicode-canonical-property-names-ecmascript@2.0.0:
resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
engines: {node: '>=4'}
dev: true
- /unicode-match-property-ecmascript/2.0.0:
+ /unicode-match-property-ecmascript@2.0.0:
resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
engines: {node: '>=4'}
dependencies:
@@ -5945,55 +6280,66 @@ packages:
unicode-property-aliases-ecmascript: 2.1.0
dev: true
- /unicode-match-property-value-ecmascript/2.1.0:
+ /unicode-match-property-value-ecmascript@2.1.0:
resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
engines: {node: '>=4'}
dev: true
- /unicode-property-aliases-ecmascript/2.1.0:
+ /unicode-property-aliases-ecmascript@2.1.0:
resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
engines: {node: '>=4'}
dev: true
- /universalify/0.2.0:
+ /universalify@0.2.0:
resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
engines: {node: '>= 4.0.0'}
dev: true
- /universalify/2.0.0:
+ /universalify@2.0.0:
resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
engines: {node: '>= 10.0.0'}
dev: true
- /update-browserslist-db/1.0.10_browserslist@4.21.4:
+ /update-browserslist-db@1.0.10(browserslist@4.21.5):
resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
dependencies:
- browserslist: 4.21.4
+ browserslist: 4.21.5
+ escalade: 3.1.1
+ picocolors: 1.0.0
+ dev: true
+
+ /update-browserslist-db@1.0.11(browserslist@4.21.10):
+ resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+ dependencies:
+ browserslist: 4.21.10
escalade: 3.1.1
picocolors: 1.0.0
dev: true
- /uri-js/4.4.1:
+ /uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
- punycode: 2.1.1
+ punycode: 2.3.0
dev: true
- /url-parse/1.5.10:
+ /url-parse@1.5.10:
resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
dependencies:
querystringify: 2.2.0
requires-port: 1.0.0
dev: true
- /util-deprecate/1.0.2:
+ /util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true
- /util/0.12.5:
+ /util@0.12.5:
resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
dependencies:
inherits: 2.0.4
@@ -6003,40 +6349,35 @@ packages:
which-typed-array: 1.1.9
dev: true
- /uuid/8.3.2:
- resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
- hasBin: true
- dev: true
-
- /v8-to-istanbul/9.0.1:
- resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==}
+ /v8-to-istanbul@9.1.0:
+ resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==}
engines: {node: '>=10.12.0'}
dependencies:
- '@jridgewell/trace-mapping': 0.3.17
+ '@jridgewell/trace-mapping': 0.3.18
'@types/istanbul-lib-coverage': 2.0.4
convert-source-map: 1.9.0
dev: true
- /w3c-xmlserializer/4.0.0:
+ /w3c-xmlserializer@4.0.0:
resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
engines: {node: '>=14'}
dependencies:
xml-name-validator: 4.0.0
dev: true
- /walker/1.0.8:
+ /walker@1.0.8:
resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
dependencies:
makeerror: 1.0.12
dev: true
- /wcwidth/1.0.1:
+ /wcwidth@1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
dependencies:
defaults: 1.0.4
dev: true
- /web-encoding/1.1.5:
+ /web-encoding@1.1.5:
resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==}
dependencies:
util: 0.12.5
@@ -6044,28 +6385,28 @@ packages:
'@zxing/text-encoding': 0.9.0
dev: true
- /webidl-conversions/3.0.1:
+ /webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
dev: true
- /webidl-conversions/7.0.0:
+ /webidl-conversions@7.0.0:
resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
engines: {node: '>=12'}
dev: true
- /whatwg-encoding/2.0.0:
+ /whatwg-encoding@2.0.0:
resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
engines: {node: '>=12'}
dependencies:
iconv-lite: 0.6.3
dev: true
- /whatwg-mimetype/3.0.0:
+ /whatwg-mimetype@3.0.0:
resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
engines: {node: '>=12'}
dev: true
- /whatwg-url/11.0.0:
+ /whatwg-url@11.0.0:
resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
engines: {node: '>=12'}
dependencies:
@@ -6073,14 +6414,14 @@ packages:
webidl-conversions: 7.0.0
dev: true
- /whatwg-url/5.0.0:
+ /whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
dependencies:
tr46: 0.0.3
webidl-conversions: 3.0.1
dev: true
- /which-boxed-primitive/1.0.2:
+ /which-boxed-primitive@1.0.2:
resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
dependencies:
is-bigint: 1.0.4
@@ -6090,7 +6431,7 @@ packages:
is-symbol: 1.0.4
dev: true
- /which-collection/1.0.1:
+ /which-collection@1.0.1:
resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
dependencies:
is-map: 2.0.2
@@ -6099,11 +6440,7 @@ packages:
is-weakset: 2.0.2
dev: true
- /which-module/2.0.0:
- resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==}
- dev: true
-
- /which-typed-array/1.1.9:
+ /which-typed-array@1.1.9:
resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==}
engines: {node: '>= 0.4'}
dependencies:
@@ -6115,7 +6452,7 @@ packages:
is-typed-array: 1.1.10
dev: true
- /which/2.0.2:
+ /which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
hasBin: true
@@ -6123,21 +6460,12 @@ packages:
isexe: 2.0.0
dev: true
- /word-wrap/1.2.3:
- resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
+ /word-wrap@1.2.4:
+ resolution: {integrity: sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==}
engines: {node: '>=0.10.0'}
dev: true
- /wrap-ansi/6.2.0:
- resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
- engines: {node: '>=8'}
- dependencies:
- ansi-styles: 4.3.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
- dev: true
-
- /wrap-ansi/7.0.0:
+ /wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
dependencies:
@@ -6146,20 +6474,11 @@ packages:
strip-ansi: 6.0.1
dev: true
- /wrappy/1.0.2:
+ /wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: true
- /write-file-atomic/3.0.3:
- resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
- dependencies:
- imurmurhash: 0.1.4
- is-typedarray: 1.0.0
- signal-exit: 3.0.7
- typedarray-to-buffer: 3.1.5
- dev: true
-
- /write-file-atomic/4.0.2:
+ /write-file-atomic@4.0.2:
resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
dependencies:
@@ -6167,12 +6486,12 @@ packages:
signal-exit: 3.0.7
dev: true
- /ws/8.11.0:
- resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==}
+ /ws@8.13.0:
+ resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==}
engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
- utf-8-validate: ^5.0.2
+ utf-8-validate: '>=5.0.2'
peerDependenciesMeta:
bufferutil:
optional: true
@@ -6180,69 +6499,40 @@ packages:
optional: true
dev: true
- /xml-name-validator/4.0.0:
+ /xml-name-validator@4.0.0:
resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
engines: {node: '>=12'}
dev: true
- /xmlchars/2.2.0:
+ /xmlchars@2.2.0:
resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
dev: true
- /y18n/4.0.3:
- resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
- dev: true
-
- /y18n/5.0.8:
+ /y18n@5.0.8:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}
dev: true
- /yallist/3.1.1:
+ /yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
dev: true
- /yallist/4.0.0:
+ /yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
dev: true
- /yaml/2.2.0:
- resolution: {integrity: sha512-auf7Gi6QwO7HW//GA9seGvTXVGWl1CM/ADWh1+RxtXr6XOxnT65ovDl9fTi4e0monEyJxCHqDpF6QnFDXmJE4g==}
+ /yaml@2.2.1:
+ resolution: {integrity: sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==}
engines: {node: '>= 14'}
dev: true
- /yargs-parser/18.1.3:
- resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}
- engines: {node: '>=6'}
- dependencies:
- camelcase: 5.3.1
- decamelize: 1.2.0
- dev: true
-
- /yargs-parser/21.1.1:
+ /yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
dev: true
- /yargs/15.4.1:
- resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
- engines: {node: '>=8'}
- dependencies:
- cliui: 6.0.0
- decamelize: 1.2.0
- find-up: 4.1.0
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- require-main-filename: 2.0.0
- set-blocking: 2.0.0
- string-width: 4.2.3
- which-module: 2.0.0
- y18n: 4.0.3
- yargs-parser: 18.1.3
- dev: true
-
- /yargs/17.6.2:
- resolution: {integrity: sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==}
+ /yargs@17.7.1:
+ resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==}
engines: {node: '>=12'}
dependencies:
cliui: 8.0.1
@@ -6254,7 +6544,7 @@ packages:
yargs-parser: 21.1.1
dev: true
- /yocto-queue/0.1.0:
+ /yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
dev: true
diff --git a/src/dragAndDropHandler.ts b/src/dragAndDropHandler.ts
index 4a0afb54..a491c196 100644
--- a/src/dragAndDropHandler.ts
+++ b/src/dragAndDropHandler.ts
@@ -261,6 +261,10 @@ export class DragAndDropHandler {
const mid = (low + high) >> 1;
const area = this.hitAreas[mid];
+ if (!area) {
+ return null;
+ }
+
if (y < area.top) {
high = mid;
} else if (y > area.bottom) {
@@ -433,10 +437,18 @@ abstract class VisibleNodeIterator {
if (mustIterateInside) {
const childrenLength = node.children.length;
node.children.forEach((_, i) => {
- if (i === childrenLength - 1) {
- _iterateNode(node.children[i], null);
- } else {
- _iterateNode(node.children[i], node.children[i + 1]);
+ const child = node.children[i];
+
+ if (child) {
+ if (i === childrenLength - 1) {
+ _iterateNode(child, null);
+ } else {
+ const nextChild = node.children[i + 1];
+
+ if (nextChild) {
+ _iterateNode(child, nextChild);
+ }
+ }
}
});
@@ -639,12 +651,14 @@ export class HitAreasGenerator extends VisibleNodeIterator {
while (i < positionCount) {
const position = positionsInGroup[i];
- hitAreas.push({
- top: areaTop,
- bottom: areaTop + areaHeight,
- node: position.node,
- position: position.position,
- });
+ if (position) {
+ hitAreas.push({
+ top: areaTop,
+ bottom: areaTop + areaHeight,
+ node: position.node,
+ position: position.position,
+ });
+ }
areaTop += areaHeight;
i += 1;
diff --git a/src/elementsRenderer.ts b/src/elementsRenderer.ts
index b3fc036c..aaef91b3 100644
--- a/src/elementsRenderer.ts
+++ b/src/elementsRenderer.ts
@@ -5,8 +5,8 @@ import { JqTreeWidget } from "./tree.jquery";
type IconElement = Text | Element;
export default class ElementsRenderer {
- public openedIconElement: IconElement;
- public closedIconElement: IconElement;
+ public openedIconElement?: IconElement;
+ public closedIconElement?: IconElement;
private treeWidget: JqTreeWidget;
constructor(treeWidget: JqTreeWidget) {
@@ -32,12 +32,14 @@ export default class ElementsRenderer {
const $element = this.treeWidget.element;
$element.empty();
- this.createDomElements(
- $element[0],
- this.treeWidget.tree.children,
- true,
- 1
- );
+ if ($element[0]) {
+ this.createDomElements(
+ $element[0],
+ this.treeWidget.tree.children,
+ true,
+ 1
+ );
+ }
}
public renderFromNode(node: Node): void {
@@ -139,6 +141,18 @@ export default class ElementsRenderer {
return li;
}
+ private setTreeItemAriaAttributes(
+ element: HTMLElement,
+ name: string,
+ level: number,
+ isSelected: boolean
+ ) {
+ element.setAttribute("aria-label", name);
+ element.setAttribute("aria-level", `${level}`);
+ element.setAttribute("aria-selected", getBoolString(isSelected));
+ element.setAttribute("role", "treeitem");
+ }
+
private createFolderLi(
node: Node,
level: number,
@@ -154,12 +168,12 @@ export default class ElementsRenderer {
// li
const li = document.createElement("li");
li.className = `jqtree_common ${folderClasses}`;
- li.setAttribute("role", "presentation");
+ li.setAttribute("role", "none");
// div
const div = document.createElement("div");
div.className = "jqtree-element jqtree_common";
- div.setAttribute("role", "presentation");
+ div.setAttribute("role", "none");
li.appendChild(div);
@@ -167,25 +181,23 @@ export default class ElementsRenderer {
const buttonLink = document.createElement("a");
buttonLink.className = buttonClasses;
- buttonLink.appendChild(iconElement.cloneNode(true));
-
- buttonLink.setAttribute("role", "presentation");
- buttonLink.setAttribute("aria-hidden", "true");
+ if (iconElement) {
+ buttonLink.appendChild(iconElement.cloneNode(true));
+ }
if (this.treeWidget.options.buttonLeft) {
div.appendChild(buttonLink);
}
// title span
- div.appendChild(
- this.createTitleSpan(
- node.name,
- level,
- isSelected,
- node.is_open,
- true
- )
+ const titleSpan = this.createTitleSpan(
+ node.name,
+ isSelected,
+ true,
+ level
);
+ titleSpan.setAttribute("aria-expanded", getBoolString(node.is_open));
+ div.appendChild(titleSpan);
if (!this.treeWidget.options.buttonLeft) {
div.appendChild(buttonLink);
@@ -210,35 +222,32 @@ export default class ElementsRenderer {
// li
const li = document.createElement("li");
li.className = classString;
- li.setAttribute("role", "presentation");
+ li.setAttribute("role", "none");
// div
const div = document.createElement("div");
div.className = "jqtree-element jqtree_common";
- div.setAttribute("role", "presentation");
+ div.setAttribute("role", "none");
li.appendChild(div);
// title span
- div.appendChild(
- this.createTitleSpan(
- node.name,
- level,
- isSelected,
- node.is_open,
- false
- )
+ const titleSpan = this.createTitleSpan(
+ node.name,
+ isSelected,
+ false,
+ level
);
+ div.appendChild(titleSpan);
return li;
}
private createTitleSpan(
nodeName: string,
- level: number,
isSelected: boolean,
- isOpen: boolean,
- isFolder: boolean
+ isFolder: boolean,
+ level: number
): HTMLSpanElement {
const titleSpan = document.createElement("span");
@@ -254,12 +263,6 @@ export default class ElementsRenderer {
titleSpan.className = classes;
- titleSpan.setAttribute("role", "treeitem");
- titleSpan.setAttribute("aria-level", `${level}`);
-
- titleSpan.setAttribute("aria-selected", getBoolString(isSelected));
- titleSpan.setAttribute("aria-expanded", getBoolString(isOpen));
-
if (isSelected) {
const tabIndex = this.treeWidget.options.tabIndex;
@@ -268,6 +271,8 @@ export default class ElementsRenderer {
}
}
+ this.setTreeItemAriaAttributes(titleSpan, nodeName, level, isSelected);
+
if (this.treeWidget.options.autoEscape) {
titleSpan.textContent = nodeName;
} else {
@@ -311,7 +316,9 @@ export default class ElementsRenderer {
return classes.join(" ");
}
- private createButtonElement(value: string | Element): IconElement {
+ private createButtonElement(
+ value: string | Element
+ ): IconElement | undefined {
if (typeof value === "string") {
// convert value to html
const div = document.createElement("div");
diff --git a/src/jqtreeOptions.ts b/src/jqtreeOptions.ts
index eb2a2787..dd8f7f5f 100644
--- a/src/jqtreeOptions.ts
+++ b/src/jqtreeOptions.ts
@@ -3,7 +3,7 @@ import { Node } from "./node";
type CanMoveNodeTo = (
node: Node,
targetNode: Node,
- positionName: string
+ positionName: string,
) => boolean;
type CreateLi = (node: Node, el: JQuery, isSelected: boolean) => void;
type DataFilter = (data: unknown) => NodeData[];
@@ -13,11 +13,11 @@ type DragMethod = (node: Node, event: Event | Touch) => void;
type HandleLoadingMethod = (
isLoading: boolean,
node: Node | null,
- $el: JQuery
+ $el: JQuery,
) => void;
export interface JQTreeOptions {
- animationSpeed: string | number;
+ animationSpeed: JQuery.Duration;
autoEscape: boolean;
autoOpen: boolean | number;
buttonLeft: boolean;
diff --git a/src/mouse.widget.ts b/src/mouse.widget.ts
index 51d552da..505e0a9e 100644
--- a/src/mouse.widget.ts
+++ b/src/mouse.widget.ts
@@ -219,6 +219,10 @@ abstract class MouseWidget extends SimpleWidget {
const touch = e.changedTouches[0];
+ if (!touch) {
+ return;
+ }
+
this.handleMouseDown(getPositionInfoFromTouch(touch, e));
};
@@ -233,6 +237,10 @@ abstract class MouseWidget extends SimpleWidget {
const touch = e.changedTouches[0];
+ if (!touch) {
+ return;
+ }
+
this.handleMouseMove(e, getPositionInfoFromTouch(touch, e));
};
@@ -247,6 +255,10 @@ abstract class MouseWidget extends SimpleWidget {
const touch = e.changedTouches[0];
+ if (!touch) {
+ return;
+ }
+
this.handleMouseUp(getPositionInfoFromTouch(touch, e));
};
}
diff --git a/src/node.ts b/src/node.ts
index 90d2859a..97e4312b 100644
--- a/src/node.ts
+++ b/src/node.ts
@@ -518,7 +518,7 @@ export class Node implements INode {
} else {
const previousIndex = this.parent.getChildIndex(this) - 1;
if (previousIndex >= 0) {
- return this.parent.children[previousIndex];
+ return this.parent.children[previousIndex] || null;
} else {
return null;
}
@@ -531,7 +531,7 @@ export class Node implements INode {
} else {
const nextIndex = this.parent.getChildIndex(this) + 1;
if (nextIndex < this.parent.children.length) {
- return this.parent.children[nextIndex];
+ return this.parent.children[nextIndex] || null;
} else {
return null;
}
@@ -558,7 +558,7 @@ export class Node implements INode {
public getNextNode(includeChildren = true): Node | null {
if (includeChildren && this.hasChildren()) {
- return this.children[0];
+ return this.children[0] || null;
} else if (!this.parent) {
return null;
} else {
@@ -575,7 +575,7 @@ export class Node implements INode {
public getNextVisibleNode(): Node | null {
if (this.hasChildren() && this.is_open) {
// First child
- return this.children[0];
+ return this.children[0] || null;
} else {
if (!this.parent) {
return null;
@@ -646,10 +646,15 @@ export class Node implements INode {
return null;
} else {
const lastChild = this.children[this.children.length - 1];
+
+ if (!lastChild) {
+ return null;
+ }
+
if (!(lastChild.hasChildren() && lastChild.is_open)) {
return lastChild;
} else {
- return lastChild.getLastChild();
+ return lastChild?.getLastChild();
}
}
}
diff --git a/src/nodeElement.ts b/src/nodeElement.ts
index c7b698c6..36d2a007 100644
--- a/src/nodeElement.ts
+++ b/src/nodeElement.ts
@@ -34,7 +34,7 @@ export class NodeElement {
if (this.mustShowBorderDropHint(position)) {
return new BorderDropHint(
this.$element,
- this.treeWidget._getScrollLeft()
+ this.treeWidget._getScrollLeft(),
);
} else {
return new GhostDropHint(this.node, this.$element, position);
@@ -45,10 +45,10 @@ export class NodeElement {
const $li = this.getLi();
$li.addClass("jqtree-selected");
- $li.attr("aria-selected", "true");
const $span = this.getSpan();
$span.attr("tabindex", this.treeWidget.options.tabIndex ?? null);
+ $span.attr("aria-selected", "true");
if (mustSetFocus) {
$span.trigger("focus");
@@ -59,12 +59,12 @@ export class NodeElement {
const $li = this.getLi();
$li.removeClass("jqtree-selected");
- $li.attr("aria-selected", "false");
const $span = this.getSpan();
$span.removeAttr("tabindex");
+ $span.attr("aria-selected", "false");
- $span.blur();
+ $span.trigger("blur");
}
protected getUl(): JQuery {
@@ -81,7 +81,7 @@ export class NodeElement {
return this.$element;
}
- protected mustShowBorderDropHint(position: number): boolean {
+ protected mustShowBorderDropHint(position: Position): boolean {
return position === Position.Inside;
}
}
@@ -90,7 +90,7 @@ export class FolderElement extends NodeElement {
public open(
onFinished: OnFinishOpenNode | null,
slide = true,
- animationSpeed: JQuery.Duration | string = "fast"
+ animationSpeed: JQuery.Duration = "fast",
): void {
if (this.node.is_open) {
return;
@@ -105,18 +105,21 @@ export class FolderElement extends NodeElement {
const buttonEl = $button.get(0);
if (buttonEl) {
- const icon =
- this.treeWidget.renderer.openedIconElement.cloneNode(true);
+ const openedIconElement =
+ this.treeWidget.renderer.openedIconElement;
- buttonEl.appendChild(icon);
+ if (openedIconElement) {
+ const icon = openedIconElement.cloneNode(true);
+ buttonEl.appendChild(icon);
+ }
}
const doOpen = (): void => {
const $li = this.getLi();
$li.removeClass("jqtree-closed");
- const $span = this.getSpan();
- $span.attr("aria-expanded", "true");
+ const $titleSpan = this.getSpan();
+ $titleSpan.attr("aria-expanded", "true");
if (onFinished) {
onFinished(this.node);
@@ -137,7 +140,7 @@ export class FolderElement extends NodeElement {
public close(
slide = true,
- animationSpeed: JQuery.Duration | string = "fast"
+ animationSpeed: JQuery.Duration | undefined = "fast",
): void {
if (!this.node.is_open) {
return;
@@ -152,18 +155,21 @@ export class FolderElement extends NodeElement {
const buttonEl = $button.get(0);
if (buttonEl) {
- const icon =
- this.treeWidget.renderer.closedIconElement.cloneNode(true);
+ const closedIconElement =
+ this.treeWidget.renderer.closedIconElement;
- buttonEl.appendChild(icon);
+ if (closedIconElement) {
+ const icon = closedIconElement.cloneNode(true);
+ buttonEl.appendChild(icon);
+ }
}
const doClose = (): void => {
const $li = this.getLi();
$li.addClass("jqtree-closed");
- const $span = this.getSpan();
- $span.attr("aria-expanded", "false");
+ const $titleSpan = this.getSpan();
+ $titleSpan.attr("aria-expanded", "false");
this.treeWidget._triggerEvent("tree.close", {
node: this.node,
@@ -178,7 +184,7 @@ export class FolderElement extends NodeElement {
}
}
- protected mustShowBorderDropHint(position: number): boolean {
+ protected mustShowBorderDropHint(position: Position): boolean {
return !this.node.is_open && position === Position.Inside;
}
@@ -217,13 +223,13 @@ class GhostDropHint implements DropHint {
private node: Node;
private $ghost: JQuery;
- constructor(node: Node, $element: JQuery, position: number) {
+ constructor(node: Node, $element: JQuery, position: Position) {
this.$element = $element;
this.node = node;
this.$ghost = jQuery(
`
- `
+ `,
);
if (position === Position.After) {
@@ -252,7 +258,7 @@ class GhostDropHint implements DropHint {
}
public moveInsideOpenFolder(): void {
- const childElement = this.node.children[0].element;
+ const childElement = this.node.children[0]?.element;
if (childElement) {
jQuery(childElement).before(this.$ghost);
diff --git a/src/saveStateHandler.ts b/src/saveStateHandler.ts
index 0c920a73..71ba733a 100644
--- a/src/saveStateHandler.ts
+++ b/src/saveStateHandler.ts
@@ -111,7 +111,7 @@ export default class SaveStateHandler {
const state = this.getStateFromStorage();
if (state && state.selected_node) {
- return state.selected_node[0];
+ return state.selected_node[0] || null;
} else {
return null;
}
diff --git a/src/scrollHandler.ts b/src/scrollHandler.ts
index 24d21d77..e2aa7701 100644
--- a/src/scrollHandler.ts
+++ b/src/scrollHandler.ts
@@ -23,7 +23,7 @@ export default class ScrollHandler {
public scrollToY(top: number): void {
this.ensureInit();
- if (this.$scrollParent) {
+ if (this.$scrollParent && this.$scrollParent[0]) {
this.$scrollParent[0].scrollTop = top;
} else {
const offset = this.treeWidget.$el.offset();
@@ -121,7 +121,7 @@ export default class ScrollHandler {
if (
$scrollParent &&
$scrollParent.length &&
- $scrollParent[0].tagName !== "HTML"
+ $scrollParent[0]?.tagName !== "HTML"
) {
this.$scrollParent = $scrollParent;
@@ -223,6 +223,10 @@ export default class ScrollHandler {
const scrollParent = $scrollParent[0];
+ if (!scrollParent) {
+ return;
+ }
+
const canScrollRight =
scrollParent.scrollLeft + scrollParent.clientWidth <
scrollParent.scrollWidth;
diff --git a/src/selectNodeHandler.ts b/src/selectNodeHandler.ts
index 0ba9405c..08072715 100644
--- a/src/selectNodeHandler.ts
+++ b/src/selectNodeHandler.ts
@@ -16,7 +16,7 @@ export default class SelectNodeHandler {
const selectedNodes = this.getSelectedNodes();
if (selectedNodes.length) {
- return selectedNodes[0];
+ return selectedNodes[0] || false;
} else {
return false;
}
diff --git a/src/simple.widget.ts b/src/simple.widget.ts
index 5e9bc3d8..15523dc3 100644
--- a/src/simple.widget.ts
+++ b/src/simple.widget.ts
@@ -94,6 +94,8 @@ const register = (widgetClass: unknown, widgetName: string): void => {
} else {
return callFunction(this, functionName, args);
}
+ } else {
+ return undefined;
}
};
};
diff --git a/src/test/jqTree/accessibility.test.ts b/src/test/jqTree/accessibility.test.ts
new file mode 100644
index 00000000..01bc35db
--- /dev/null
+++ b/src/test/jqTree/accessibility.test.ts
@@ -0,0 +1,25 @@
+import { axe, toHaveNoViolations } from "jest-axe";
+import "../../tree.jquery";
+import exampleData from "../support/exampleData";
+
+expect.extend(toHaveNoViolations);
+
+beforeEach(() => {
+ $("body").append('');
+});
+
+afterEach(() => {
+ const $tree = $("#tree1");
+ $tree.tree("destroy");
+ $tree.remove();
+});
+
+it("has an accessible ui", async () => {
+ const $tree = $("#tree1");
+ $tree.tree({
+ data: exampleData,
+ });
+ const element = $tree.get()[0] as HTMLElement;
+
+ await expect(axe(element)).resolves.toHaveNoViolations();
+});
diff --git a/src/test/jqTree/events.test.ts b/src/test/jqTree/events.test.ts
index 850abfd3..534ae38c 100644
--- a/src/test/jqTree/events.test.ts
+++ b/src/test/jqTree/events.test.ts
@@ -1,6 +1,7 @@
import getGiven from "givens";
import { rest } from "msw";
import { setupServer } from "msw/node";
+import { waitFor } from "@testing-library/dom";
import "../../tree.jquery";
import exampleData from "../support/exampleData";
import { titleSpan } from "../support/testUtil";
@@ -41,17 +42,15 @@ describe("tree.click", () => {
given.$tree.tree({ data: exampleData });
});
- it("fires tree.click", () =>
- new Promise((done) => {
- given.$tree.on("tree.click", (e: unknown) => {
- const treeClickEvent = e as ClickNodeEvent;
+ it("fires tree.click", () => {
+ const onClick = jest.fn();
+ given.$tree.on("tree.click", onClick);
- expect(treeClickEvent.node).toBe(given.node1);
- done();
- });
-
- given.titleSpan.trigger("click");
- }));
+ given.titleSpan.trigger("click");
+ expect(onClick).toHaveBeenCalledWith(
+ expect.objectContaining({ node: given.node1 })
+ );
+ });
});
describe("tree.contextmenu", () => {
@@ -70,17 +69,15 @@ describe("tree.contextmenu", () => {
given.$tree.tree({ data: exampleData });
});
- it("fires tree.contextmenu", () =>
- new Promise((done) => {
- given.$tree.on("tree.contextmenu", (e: unknown) => {
- const treeClickEvent = e as ClickNodeEvent;
+ it("fires tree.contextmenu", () => {
+ const onContextMenu = jest.fn();
+ given.$tree.on("tree.contextmenu", onContextMenu);
- expect(treeClickEvent.node).toBe(given.node1);
- done();
- });
-
- given.titleSpan.contextmenu();
- }));
+ given.titleSpan.trigger("contextmenu");
+ expect(onContextMenu).toHaveBeenCalledWith(
+ expect.objectContaining({ node: given.node1 })
+ );
+ });
});
describe("tree.dblclick", () => {
@@ -99,17 +96,15 @@ describe("tree.dblclick", () => {
given.$tree.tree({ data: exampleData });
});
- it("fires tree.dblclick", () =>
- new Promise((done) => {
- given.$tree.on("tree.dblclick", (e: unknown) => {
- const treeClickEvent = e as ClickNodeEvent;
+ it("fires tree.dblclick", () => {
+ const onDoubleClick = jest.fn();
+ given.$tree.on("tree.dblclick", onDoubleClick);
- expect(treeClickEvent.node).toBe(given.node1);
- done();
- });
-
- given.titleSpan.trigger("dblclick");
- }));
+ given.titleSpan.trigger("dblclick");
+ expect(onDoubleClick).toHaveBeenCalledWith(
+ expect.objectContaining({ node: given.node1 })
+ );
+ });
});
describe("tree.init", () => {
@@ -120,22 +115,17 @@ describe("tree.init", () => {
given("$tree", () => $("#tree1"));
context("with json data", () => {
- it("is called", () =>
- new Promise((done) => {
- given.$tree.on("tree.init", () => {
- expect(
- given.$tree.tree("getNodeByName", "node2")
- ).toMatchObject({
- id: 124,
- name: "node2",
- });
- done();
- });
-
- given.$tree.tree({
- data: exampleData,
- });
- }));
+ it("is called", () => {
+ const onInit = jest.fn();
+ given.$tree.on("tree.init", onInit);
+
+ given.$tree.tree({
+ data: exampleData,
+ });
+
+ // eslint-disable-next-line jest/prefer-called-with
+ expect(onInit).toHaveBeenCalled();
+ });
});
context("with data loaded from an url", () => {
@@ -147,20 +137,17 @@ describe("tree.init", () => {
);
});
- it("is called", () =>
- new Promise((done) => {
- given.$tree.on("tree.init", () => {
- expect(
- given.$tree.tree("getNodeByName", "node2")
- ).toMatchObject({
- id: 124,
- name: "node2",
- });
- done();
- });
-
- given.$tree.tree({ dataUrl: "/tree/" });
- }));
+ it("is called", async () => {
+ const onInit = jest.fn();
+ given.$tree.on("tree.init", onInit);
+
+ given.$tree.tree({ dataUrl: "/tree/" });
+
+ await waitFor(() => {
+ // eslint-disable-next-line jest/prefer-called-with
+ expect(onInit).toHaveBeenCalled();
+ });
+ });
});
});
@@ -172,16 +159,15 @@ describe("tree.load_data", () => {
given("$tree", () => $("#tree1"));
context("when the tree is initialized with data", () => {
- it("fires tree.load_data", () =>
- new Promise((resolve) => {
- given.$tree.on("tree.load_data", (e: any) => {
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
- expect(e.tree_data).toEqual(exampleData);
- resolve();
- });
-
- given.$tree.tree({ data: exampleData });
- }));
+ it("fires tree.load_data", () => {
+ const onLoadData = jest.fn();
+ given.$tree.on("tree.load_data", onLoadData);
+
+ given.$tree.tree({ data: exampleData });
+ expect(onLoadData).toHaveBeenCalledWith(
+ expect.objectContaining({ tree_data: exampleData })
+ );
+ });
});
});
@@ -203,35 +189,35 @@ describe("tree.select", () => {
});
});
- it("fires tree.click", () =>
- new Promise((done) => {
- given.$tree.on("tree.select", (e: unknown) => {
- const treeClickEvent = e as ClickNodeEvent;
-
- expect(treeClickEvent.node).toBe(given.node1);
- expect(treeClickEvent.deselected_node).toBeNull();
- done();
- });
-
- given.titleSpan.trigger("click");
- }));
+ it("fires tree.select", () => {
+ const onSelect = jest.fn();
+ given.$tree.on("tree.select", onSelect);
+
+ given.titleSpan.trigger("click");
+ expect(onSelect).toHaveBeenCalledWith(
+ expect.objectContaining({
+ node: given.node1,
+ deselected_node: null,
+ })
+ );
+ });
context("when the node was selected", () => {
beforeEach(() => {
given.$tree.tree("selectNode", given.node1);
});
- it("fires tree.select with node is null", () =>
- new Promise((done) => {
- given.$tree.on("tree.select", (e: unknown) => {
- const treeClickEvent = e as ClickNodeEvent;
-
- expect(treeClickEvent.node).toBeNull();
- expect(treeClickEvent.previous_node).toBe(given.node1);
- done();
- });
+ it("fires tree.select with node is null", () => {
+ const onSelect = jest.fn();
+ given.$tree.on("tree.select", onSelect);
- given.titleSpan.trigger("click");
- }));
+ given.titleSpan.trigger("click");
+ expect(onSelect).toHaveBeenCalledWith(
+ expect.objectContaining({
+ node: null,
+ previous_node: given.node1,
+ })
+ );
+ });
});
});
diff --git a/src/test/jqTree/methods.test.ts b/src/test/jqTree/methods.test.ts
index 2bcdb49e..f2decca9 100644
--- a/src/test/jqTree/methods.test.ts
+++ b/src/test/jqTree/methods.test.ts
@@ -984,7 +984,7 @@ describe("refresh", () => {
it("rerenders the tree", () => {
const tree = given.$tree.tree("getTree");
- tree.children[0].name = "node1a";
+ (tree.children[0] as INode).name = "node1a";
expect(given.$tree).toHaveTreeStructure([
expect.objectContaining({ name: "node1" }),
diff --git a/src/test/node.test.ts b/src/test/node.test.ts
index 2e00ed02..e60db9f4 100644
--- a/src/test/node.test.ts
+++ b/src/test/node.test.ts
@@ -164,7 +164,7 @@ describe("addChild", () => {
});
it("sets the parent of the child", () => {
- expect(given.node.children[0].parent).toEqual(given.node);
+ expect(given.node.children[0]?.parent).toEqual(given.node);
});
});
@@ -538,14 +538,16 @@ describe("getLastChild", () => {
context("when its last child is open and has children", () => {
beforeEach(() => {
const child2 = given.node.children[1];
- child2.append("child2a");
- child2.append("child2b");
+ child2?.append("child2a");
+ child2?.append("child2b");
});
context("and the last child is open", () => {
beforeEach(() => {
const child2 = given.node.children[1];
- child2.is_open = true;
+ if (child2) {
+ child2.is_open = true;
+ }
});
it("returns the last child of that child", () => {
diff --git a/src/test/nodeUtil.test.ts b/src/test/nodeUtil.test.ts
index 7c708fa1..6291c565 100644
--- a/src/test/nodeUtil.test.ts
+++ b/src/test/nodeUtil.test.ts
@@ -24,7 +24,7 @@ describe("getPositionName", () => {
context("with an unknown position", () => {
it("returns an empty string", () => {
- expect(getPositionName(10)).toBe("");
+ expect(getPositionName(10 as Position)).toBe("");
});
});
});
diff --git a/src/tree.jquery.ts b/src/tree.jquery.ts
index 54f3bb53..add1762a 100644
--- a/src/tree.jquery.ts
+++ b/src/tree.jquery.ts
@@ -777,7 +777,7 @@ export class JqTreeWidget extends MouseWidget {
// Set initial state, either by restoring the state or auto-opening nodes
// result: must load nodes on demand?
private setInitialState(): boolean {
- const restoreState = (): boolean[] => {
+ const restoreState = (): [boolean, boolean] => {
// result: is state restored, must load on demand?
if (!this.options.saveState) {
return [false, false];
diff --git a/src/version.ts b/src/version.ts
index 711d151d..d89b647e 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1,3 +1,3 @@
-const version = "1.7.0";
+const version = "1.7.1";
export default version;
diff --git a/tree.jquery.debug.js b/tree.jquery.debug.js
index 0c1e0ab6..c80de550 100644
--- a/tree.jquery.debug.js
+++ b/tree.jquery.debug.js
@@ -1,7 +1,7 @@
/*
-JqTree 1.7.0
+JqTree 1.7.1
-Copyright 2022 Marco Braak
+Copyright 2023 Marco Braak
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -292,15 +292,15 @@ var jqtree = (function (exports) {
return typeof key === "symbol" ? key : String(key);
}
- var version = "1.7.0";
+ var version = "1.7.1";
- var Position;
- (function (Position) {
+ var Position = /*#__PURE__*/function (Position) {
Position[Position["Before"] = 1] = "Before";
Position[Position["After"] = 2] = "After";
Position[Position["Inside"] = 3] = "Inside";
Position[Position["None"] = 4] = "None";
- })(Position || (Position = {}));
+ return Position;
+ }({});
var positionNames = {
before: Position.Before,
after: Position.After,
@@ -790,7 +790,7 @@ var jqtree = (function (exports) {
} else {
var previousIndex = this.parent.getChildIndex(this) - 1;
if (previousIndex >= 0) {
- return this.parent.children[previousIndex];
+ return this.parent.children[previousIndex] || null;
} else {
return null;
}
@@ -804,7 +804,7 @@ var jqtree = (function (exports) {
} else {
var nextIndex = this.parent.getChildIndex(this) + 1;
if (nextIndex < this.parent.children.length) {
- return this.parent.children[nextIndex];
+ return this.parent.children[nextIndex] || null;
} else {
return null;
}
@@ -834,7 +834,7 @@ var jqtree = (function (exports) {
value: function getNextNode() {
var includeChildren = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
if (includeChildren && this.hasChildren()) {
- return this.children[0];
+ return this.children[0] || null;
} else if (!this.parent) {
return null;
} else {
@@ -851,7 +851,7 @@ var jqtree = (function (exports) {
value: function getNextVisibleNode() {
if (this.hasChildren() && this.is_open) {
// First child
- return this.children[0];
+ return this.children[0] || null;
} else {
if (!this.parent) {
return null;
@@ -921,10 +921,13 @@ var jqtree = (function (exports) {
return null;
} else {
var lastChild = this.children[this.children.length - 1];
+ if (!lastChild) {
+ return null;
+ }
if (!(lastChild.hasChildren() && lastChild.is_open)) {
return lastChild;
} else {
- return lastChild.getLastChild();
+ return lastChild === null || lastChild === void 0 ? void 0 : lastChild.getLastChild();
}
}
}
@@ -977,7 +980,7 @@ var jqtree = (function (exports) {
key: "getNodeClass",
value: function getNodeClass() {
var _this$tree4;
- return this.nodeClass || (this === null || this === void 0 ? void 0 : (_this$tree4 = this.tree) === null || _this$tree4 === void 0 ? void 0 : _this$tree4.nodeClass) || Node;
+ return this.nodeClass || (this === null || this === void 0 || (_this$tree4 = this.tree) === null || _this$tree4 === void 0 ? void 0 : _this$tree4.nodeClass) || Node;
}
}, {
key: "createNode",
@@ -1179,6 +1182,9 @@ var jqtree = (function (exports) {
while (low < high) {
var mid = low + high >> 1;
var area = this.hitAreas[mid];
+ if (!area) {
+ return null;
+ }
if (y < area.top) {
high = mid;
} else if (y > area.bottom) {
@@ -1330,10 +1336,16 @@ var jqtree = (function (exports) {
if (mustIterateInside) {
var childrenLength = node.children.length;
node.children.forEach(function (_, i) {
- if (i === childrenLength - 1) {
- _iterateNode(node.children[i], null);
- } else {
- _iterateNode(node.children[i], node.children[i + 1]);
+ var child = node.children[i];
+ if (child) {
+ if (i === childrenLength - 1) {
+ _iterateNode(child, null);
+ } else {
+ var nextChild = node.children[i + 1];
+ if (nextChild) {
+ _iterateNode(child, nextChild);
+ }
+ }
}
});
if (node.is_open && $element) {
@@ -1492,12 +1504,14 @@ var jqtree = (function (exports) {
var i = 0;
while (i < positionCount) {
var position = positionsInGroup[i];
- hitAreas.push({
- top: areaTop,
- bottom: areaTop + areaHeight,
- node: position.node,
- position: position.position
- });
+ if (position) {
+ hitAreas.push({
+ top: areaTop,
+ bottom: areaTop + areaHeight,
+ node: position.node,
+ position: position.position
+ });
+ }
areaTop += areaHeight;
i += 1;
}
@@ -1573,7 +1587,9 @@ var jqtree = (function (exports) {
value: function renderFromRoot() {
var $element = this.treeWidget.element;
$element.empty();
- this.createDomElements($element[0], this.treeWidget.tree.children, true, 1);
+ if ($element[0]) {
+ this.createDomElements($element[0], this.treeWidget.tree.children, true, 1);
+ }
}
}, {
key: "renderFromNode",
@@ -1659,6 +1675,14 @@ var jqtree = (function (exports) {
}
return li;
}
+ }, {
+ key: "setTreeItemAriaAttributes",
+ value: function setTreeItemAriaAttributes(element, name, level, isSelected) {
+ element.setAttribute("aria-label", name);
+ element.setAttribute("aria-level", "".concat(level));
+ element.setAttribute("aria-selected", getBoolString(isSelected));
+ element.setAttribute("role", "treeitem");
+ }
}, {
key: "createFolderLi",
value: function createFolderLi(node, level, isSelected) {
@@ -1669,26 +1693,28 @@ var jqtree = (function (exports) {
// li
var li = document.createElement("li");
li.className = "jqtree_common ".concat(folderClasses);
- li.setAttribute("role", "presentation");
+ li.setAttribute("role", "none");
// div
var div = document.createElement("div");
div.className = "jqtree-element jqtree_common";
- div.setAttribute("role", "presentation");
+ div.setAttribute("role", "none");
li.appendChild(div);
// button link
var buttonLink = document.createElement("a");
buttonLink.className = buttonClasses;
- buttonLink.appendChild(iconElement.cloneNode(true));
- buttonLink.setAttribute("role", "presentation");
- buttonLink.setAttribute("aria-hidden", "true");
+ if (iconElement) {
+ buttonLink.appendChild(iconElement.cloneNode(true));
+ }
if (this.treeWidget.options.buttonLeft) {
div.appendChild(buttonLink);
}
// title span
- div.appendChild(this.createTitleSpan(node.name, level, isSelected, node.is_open, true));
+ var titleSpan = this.createTitleSpan(node.name, isSelected, true, level);
+ titleSpan.setAttribute("aria-expanded", getBoolString(node.is_open));
+ div.appendChild(titleSpan);
if (!this.treeWidget.options.buttonLeft) {
div.appendChild(buttonLink);
}
@@ -1706,21 +1732,22 @@ var jqtree = (function (exports) {
// li
var li = document.createElement("li");
li.className = classString;
- li.setAttribute("role", "presentation");
+ li.setAttribute("role", "none");
// div
var div = document.createElement("div");
div.className = "jqtree-element jqtree_common";
- div.setAttribute("role", "presentation");
+ div.setAttribute("role", "none");
li.appendChild(div);
// title span
- div.appendChild(this.createTitleSpan(node.name, level, isSelected, node.is_open, false));
+ var titleSpan = this.createTitleSpan(node.name, isSelected, false, level);
+ div.appendChild(titleSpan);
return li;
}
}, {
key: "createTitleSpan",
- value: function createTitleSpan(nodeName, level, isSelected, isOpen, isFolder) {
+ value: function createTitleSpan(nodeName, isSelected, isFolder, level) {
var titleSpan = document.createElement("span");
var classes = "jqtree-title jqtree_common";
if (isFolder) {
@@ -1728,16 +1755,13 @@ var jqtree = (function (exports) {
}
classes += " jqtree-title-button-".concat(this.treeWidget.options.buttonLeft ? "left" : "right");
titleSpan.className = classes;
- titleSpan.setAttribute("role", "treeitem");
- titleSpan.setAttribute("aria-level", "".concat(level));
- titleSpan.setAttribute("aria-selected", getBoolString(isSelected));
- titleSpan.setAttribute("aria-expanded", getBoolString(isOpen));
if (isSelected) {
var tabIndex = this.treeWidget.options.tabIndex;
if (tabIndex !== undefined) {
titleSpan.setAttribute("tabindex", "".concat(tabIndex));
}
}
+ this.setTreeItemAriaAttributes(titleSpan, nodeName, level, isSelected);
if (this.treeWidget.options.autoEscape) {
titleSpan.textContent = nodeName;
} else {
@@ -2101,6 +2125,8 @@ var jqtree = (function (exports) {
}
return callFunction(this, functionName, args);
}
+ } else {
+ return undefined;
}
};
};
@@ -2194,6 +2220,9 @@ var jqtree = (function (exports) {
return;
}
var touch = e.changedTouches[0];
+ if (!touch) {
+ return;
+ }
_this.handleMouseDown(getPositionInfoFromTouch(touch, e));
});
_defineProperty(_assertThisInitialized(_this), "touchMove", function (e) {
@@ -2204,6 +2233,9 @@ var jqtree = (function (exports) {
return;
}
var touch = e.changedTouches[0];
+ if (!touch) {
+ return;
+ }
_this.handleMouseMove(e, getPositionInfoFromTouch(touch, e));
});
_defineProperty(_assertThisInitialized(_this), "touchEnd", function (e) {
@@ -2214,6 +2246,9 @@ var jqtree = (function (exports) {
return;
}
var touch = e.changedTouches[0];
+ if (!touch) {
+ return;
+ }
_this.handleMouseUp(getPositionInfoFromTouch(touch, e));
});
return _this;
@@ -2454,7 +2489,7 @@ var jqtree = (function (exports) {
value: function getNodeIdToBeSelected() {
var state = this.getStateFromStorage();
if (state && state.selected_node) {
- return state.selected_node[0];
+ return state.selected_node[0] || null;
} else {
return null;
}
@@ -2646,7 +2681,7 @@ var jqtree = (function (exports) {
key: "scrollToY",
value: function scrollToY(top) {
this.ensureInit();
- if (this.$scrollParent) {
+ if (this.$scrollParent && this.$scrollParent[0]) {
this.$scrollParent[0].scrollTop = top;
} else {
var offset = this.treeWidget.$el.offset();
@@ -2692,7 +2727,8 @@ var jqtree = (function (exports) {
}, {
key: "initScrollParent",
value: function initScrollParent() {
- var _this = this;
+ var _this = this,
+ _$scrollParent$;
var getParentWithOverflow = function getParentWithOverflow() {
var cssAttributes = ["overflow", "overflow-y"];
var hasOverFlow = function hasOverFlow($el) {
@@ -2733,7 +2769,7 @@ var jqtree = (function (exports) {
setDocumentAsScrollParent();
}
var $scrollParent = getParentWithOverflow();
- if ($scrollParent && $scrollParent.length && $scrollParent[0].tagName !== "HTML") {
+ if ($scrollParent && $scrollParent.length && ((_$scrollParent$ = $scrollParent[0]) === null || _$scrollParent$ === void 0 ? void 0 : _$scrollParent$.tagName) !== "HTML") {
this.$scrollParent = $scrollParent;
var offset = this.$scrollParent.offset();
this.scrollParentTop = offset ? offset.top : 0;
@@ -2819,6 +2855,9 @@ var jqtree = (function (exports) {
return;
}
var scrollParent = $scrollParent[0];
+ if (!scrollParent) {
+ return;
+ }
var canScrollRight = scrollParent.scrollLeft + scrollParent.clientWidth < scrollParent.scrollWidth;
var canScrollLeft = scrollParent.scrollLeft > 0;
var rightEdge = scrollParentOffset.left + scrollParent.clientWidth;
@@ -2868,7 +2907,7 @@ var jqtree = (function (exports) {
value: function getSelectedNode() {
var selectedNodes = this.getSelectedNodes();
if (selectedNodes.length) {
- return selectedNodes[0];
+ return selectedNodes[0] || false;
} else {
return false;
}
@@ -3007,9 +3046,9 @@ var jqtree = (function (exports) {
var _this$treeWidget$opti;
var $li = this.getLi();
$li.addClass("jqtree-selected");
- $li.attr("aria-selected", "true");
var $span = this.getSpan();
$span.attr("tabindex", (_this$treeWidget$opti = this.treeWidget.options.tabIndex) !== null && _this$treeWidget$opti !== void 0 ? _this$treeWidget$opti : null);
+ $span.attr("aria-selected", "true");
if (mustSetFocus) {
$span.trigger("focus");
}
@@ -3019,10 +3058,10 @@ var jqtree = (function (exports) {
value: function deselect() {
var $li = this.getLi();
$li.removeClass("jqtree-selected");
- $li.attr("aria-selected", "false");
var $span = this.getSpan();
$span.removeAttr("tabindex");
- $span.blur();
+ $span.attr("aria-selected", "false");
+ $span.trigger("blur");
}
}, {
key: "getUl",
@@ -3069,14 +3108,17 @@ var jqtree = (function (exports) {
$button.html("");
var buttonEl = $button.get(0);
if (buttonEl) {
- var icon = this.treeWidget.renderer.openedIconElement.cloneNode(true);
- buttonEl.appendChild(icon);
+ var openedIconElement = this.treeWidget.renderer.openedIconElement;
+ if (openedIconElement) {
+ var icon = openedIconElement.cloneNode(true);
+ buttonEl.appendChild(icon);
+ }
}
var doOpen = function doOpen() {
var $li = _this.getLi();
$li.removeClass("jqtree-closed");
- var $span = _this.getSpan();
- $span.attr("aria-expanded", "true");
+ var $titleSpan = _this.getSpan();
+ $titleSpan.attr("aria-expanded", "true");
if (onFinished) {
onFinished(_this.node);
}
@@ -3106,14 +3148,17 @@ var jqtree = (function (exports) {
$button.html("");
var buttonEl = $button.get(0);
if (buttonEl) {
- var icon = this.treeWidget.renderer.closedIconElement.cloneNode(true);
- buttonEl.appendChild(icon);
+ var closedIconElement = this.treeWidget.renderer.closedIconElement;
+ if (closedIconElement) {
+ var icon = closedIconElement.cloneNode(true);
+ buttonEl.appendChild(icon);
+ }
}
var doClose = function doClose() {
var $li = _this2.getLi();
$li.addClass("jqtree-closed");
- var $span = _this2.getSpan();
- $span.attr("aria-expanded", "false");
+ var $titleSpan = _this2.getSpan();
+ $titleSpan.attr("aria-expanded", "false");
_this2.treeWidget._triggerEvent("tree.close", {
node: _this2.node
});
@@ -3201,7 +3246,8 @@ var jqtree = (function (exports) {
}, {
key: "moveInsideOpenFolder",
value: function moveInsideOpenFolder() {
- var childElement = this.node.children[0].element;
+ var _this$node$children$;
+ var childElement = (_this$node$children$ = this.node.children[0]) === null || _this$node$children$ === void 0 ? void 0 : _this$node$children$.element;
if (childElement) {
jQuery(childElement).before(this.$ghost);
}
diff --git a/tree.jquery.debug.js.map b/tree.jquery.debug.js.map
index 6ec1e3a5..7e059228 100644
--- a/tree.jquery.debug.js.map
+++ b/tree.jquery.debug.js.map
@@ -1 +1 @@
-{"version":3,"file":"tree.jquery.debug.js","sources":["src/version.ts","src/node.ts","src/dragAndDropHandler.ts","src/util.ts","src/elementsRenderer.ts","src/dataLoader.ts","src/keyHandler.ts","src/simple.widget.ts","src/mouse.widget.ts","src/saveStateHandler.ts","src/scrollHandler.ts","src/selectNodeHandler.ts","src/nodeElement.ts","src/tree.jquery.ts"],"sourcesContent":["const version = \"1.7.0\";\n\nexport default version;\n","interface NodeRecordWithChildren extends NodeRecord {\n children: NodeData[];\n}\n\nexport enum Position {\n Before = 1,\n After,\n Inside,\n None,\n}\n\nconst positionNames: Record = {\n before: Position.Before,\n after: Position.After,\n inside: Position.Inside,\n none: Position.None,\n};\n\ntype IterateCallback = (node: Node, level: number) => boolean;\n\nexport const getPositionName = (position: Position): string => {\n for (const name in positionNames) {\n if (Object.prototype.hasOwnProperty.call(positionNames, name)) {\n if (positionNames[name] === position) {\n return name;\n }\n }\n }\n\n return \"\";\n};\n\nexport const getPosition = (name: string): Position | undefined =>\n positionNames[name];\n\nconst isNodeRecordWithChildren = (\n data: NodeData\n): data is NodeRecordWithChildren =>\n typeof data === \"object\" &&\n \"children\" in data &&\n data[\"children\"] instanceof Array;\n\nexport class Node implements INode {\n public id?: NodeId;\n public name: string;\n public children: Node[];\n public parent: Node | null;\n public idMapping: Map;\n public tree?: Node;\n public nodeClass?: typeof Node;\n public load_on_demand: boolean;\n public is_open: boolean;\n public element: HTMLElement;\n public is_loading: boolean;\n public isEmptyFolder: boolean;\n\n [key: string]: unknown;\n\n constructor(o: NodeData | null = null, isRoot = false, nodeClass = Node) {\n this.name = \"\";\n this.isEmptyFolder = false;\n this.load_on_demand = false;\n\n this.setData(o);\n\n this.children = [];\n this.parent = null;\n\n if (isRoot) {\n this.idMapping = new Map();\n this.tree = this;\n this.nodeClass = nodeClass;\n }\n }\n\n /*\n Set the data of this node.\n\n setData(string): set the name of the node\n setdata(object): set attributes of the node\n\n Examples:\n setdata('node1')\n\n setData({ name: 'node1', id: 1});\n\n setData({ name: 'node2', id: 2, color: 'green'});\n\n * This is an internal function; it is not in the docs\n * Does not remove existing node values\n */\n public setData(o: NodeData | null): void {\n if (!o) {\n return;\n } else if (typeof o === \"string\") {\n this.name = o;\n } else if (typeof o === \"object\") {\n for (const key in o) {\n if (Object.prototype.hasOwnProperty.call(o, key)) {\n const value = o[key];\n\n if (key === \"label\" || key === \"name\") {\n // You can use the 'label' key instead of 'name'; this is a legacy feature\n if (typeof value === \"string\") {\n this.name = value;\n }\n } else if (key !== \"children\" && key !== \"parent\") {\n // You can't update the children or the parent using this function\n this[key] = value;\n }\n }\n }\n }\n }\n\n /*\n Create tree from data.\n\n Structure of data is:\n [\n {\n name: 'node1',\n children: [\n { name: 'child1' },\n { name: 'child2' }\n ]\n },\n {\n name: 'node2'\n }\n ]\n */\n public loadFromData(data: NodeData[]): Node {\n this.removeChildren();\n\n for (const o of data) {\n const node = this.createNode(o);\n this.addChild(node);\n\n if (isNodeRecordWithChildren(o)) {\n if (o.children.length === 0) {\n node.isEmptyFolder = true;\n } else {\n node.loadFromData(o.children);\n }\n }\n }\n\n return this;\n }\n\n /*\n Add child.\n\n tree.addChild(\n new Node('child1')\n );\n */\n public addChild(node: Node): void {\n this.children.push(node);\n node.setParent(this);\n }\n\n /*\n Add child at position. Index starts at 0.\n\n tree.addChildAtPosition(\n new Node('abc'),\n 1\n );\n */\n public addChildAtPosition(node: Node, index: number): void {\n this.children.splice(index, 0, node);\n node.setParent(this);\n }\n\n /*\n Remove child. This also removes the children of the node.\n\n tree.removeChild(tree.children[0]);\n */\n public removeChild(node: Node): void {\n // remove children from the index\n node.removeChildren();\n\n this.doRemoveChild(node);\n }\n\n /*\n Get child index.\n\n var index = getChildIndex(node);\n */\n public getChildIndex(node: Node): number {\n return this.children.indexOf(node);\n }\n\n /*\n Does the tree have children?\n\n if (tree.hasChildren()) {\n //\n }\n */\n public hasChildren(): boolean {\n return this.children.length !== 0;\n }\n\n public isFolder(): boolean {\n return this.hasChildren() || this.load_on_demand;\n }\n\n /*\n Iterate over all the nodes in the tree.\n\n Calls callback with (node, level).\n\n The callback must return true to continue the iteration on current node.\n\n tree.iterate(\n function(node, level) {\n console.log(node.name);\n\n // stop iteration after level 2\n return (level <= 2);\n }\n );\n\n */\n public iterate(callback: IterateCallback): void {\n const _iterate = (node: Node, level: number): void => {\n if (node.children) {\n for (const child of node.children) {\n const result = callback(child, level);\n\n if (result && child.hasChildren()) {\n _iterate(child, level + 1);\n }\n }\n }\n };\n\n _iterate(this, 0);\n }\n\n /*\n Move node relative to another node.\n\n Argument position: Position.BEFORE, Position.AFTER or Position.Inside\n\n // move node1 after node2\n tree.moveNode(node1, node2, Position.AFTER);\n */\n public moveNode(\n movedNode: Node,\n targetNode: Node,\n position: Position\n ): boolean {\n if (!movedNode.parent || movedNode.isParentOf(targetNode)) {\n // - Node is parent of target node\n // - Or, parent is empty\n return false;\n } else {\n movedNode.parent.doRemoveChild(movedNode);\n\n switch (position) {\n case Position.After: {\n if (targetNode.parent) {\n targetNode.parent.addChildAtPosition(\n movedNode,\n targetNode.parent.getChildIndex(targetNode) + 1\n );\n return true;\n }\n return false;\n }\n\n case Position.Before: {\n if (targetNode.parent) {\n targetNode.parent.addChildAtPosition(\n movedNode,\n targetNode.parent.getChildIndex(targetNode)\n );\n return true;\n }\n return false;\n }\n\n case Position.Inside: {\n // move inside as first child\n targetNode.addChildAtPosition(movedNode, 0);\n return true;\n }\n\n default:\n return false;\n }\n }\n }\n\n /*\n Get the tree as data.\n */\n public getData(includeParent = false): NodeRecord[] {\n const getDataFromNodes = (nodes: Node[]): Record[] => {\n return nodes.map((node) => {\n const tmpNode: Record = {};\n\n for (const k in node) {\n if (\n [\n \"parent\",\n \"children\",\n \"element\",\n \"idMapping\",\n \"load_on_demand\",\n \"nodeClass\",\n \"tree\",\n \"isEmptyFolder\",\n ].indexOf(k) === -1 &&\n Object.prototype.hasOwnProperty.call(node, k)\n ) {\n const v = node[k];\n tmpNode[k] = v;\n }\n }\n\n if (node.hasChildren()) {\n tmpNode[\"children\"] = getDataFromNodes(node.children);\n }\n\n return tmpNode;\n });\n };\n\n if (includeParent) {\n return getDataFromNodes([this]);\n } else {\n return getDataFromNodes(this.children);\n }\n }\n\n public getNodeByName(name: string): Node | null {\n return this.getNodeByCallback((node: Node) => node.name === name);\n }\n\n public getNodeByNameMustExist(name: string): Node {\n const node = this.getNodeByCallback((n: Node) => n.name === name);\n\n if (!node) {\n throw `Node with name ${name} not found`;\n }\n\n return node;\n }\n\n public getNodeByCallback(callback: (node: Node) => boolean): Node | null {\n let result: Node | null = null;\n\n this.iterate((node: Node) => {\n if (result) {\n return false;\n } else if (callback(node)) {\n result = node;\n return false;\n } else {\n return true;\n }\n });\n\n return result;\n }\n\n public addAfter(nodeInfo: NodeData): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const node = this.createNode(nodeInfo);\n\n const childIndex = this.parent.getChildIndex(this);\n this.parent.addChildAtPosition(node, childIndex + 1);\n\n if (\n isNodeRecordWithChildren(nodeInfo) &&\n nodeInfo.children.length\n ) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n }\n\n public addBefore(nodeInfo: NodeData): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const node = this.createNode(nodeInfo);\n\n const childIndex = this.parent.getChildIndex(this);\n this.parent.addChildAtPosition(node, childIndex);\n\n if (\n isNodeRecordWithChildren(nodeInfo) &&\n nodeInfo.children.length\n ) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n }\n\n public addParent(nodeInfo: NodeData): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const newParent = this.createNode(nodeInfo);\n\n if (this.tree) {\n newParent.setParent(this.tree);\n }\n const originalParent = this.parent;\n\n for (const child of originalParent.children) {\n newParent.addChild(child);\n }\n\n originalParent.children = [];\n originalParent.addChild(newParent);\n return newParent;\n }\n }\n\n public remove(): void {\n if (this.parent) {\n this.parent.removeChild(this);\n this.parent = null;\n }\n }\n\n public append(nodeInfo: NodeData): Node {\n const node = this.createNode(nodeInfo);\n this.addChild(node);\n\n if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n\n public prepend(nodeInfo: NodeData): Node {\n const node = this.createNode(nodeInfo);\n this.addChildAtPosition(node, 0);\n\n if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n\n public isParentOf(node: Node): boolean {\n let parent = node.parent;\n\n while (parent) {\n if (parent === this) {\n return true;\n }\n\n parent = parent.parent;\n }\n\n return false;\n }\n\n public getLevel(): number {\n let level = 0;\n let node: Node = this; // eslint-disable-line @typescript-eslint/no-this-alias\n\n while (node.parent) {\n level += 1;\n node = node.parent;\n }\n\n return level;\n }\n\n public getNodeById(nodeId: NodeId): Node | null {\n return this.idMapping.get(nodeId) || null;\n }\n\n public addNodeToIndex(node: Node): void {\n if (node.id != null) {\n this.idMapping.set(node.id, node);\n }\n }\n\n public removeNodeFromIndex(node: Node): void {\n if (node.id != null) {\n this.idMapping.delete(node.id);\n }\n }\n\n public removeChildren(): void {\n this.iterate((child: Node) => {\n this.tree?.removeNodeFromIndex(child);\n return true;\n });\n\n this.children = [];\n }\n\n public getPreviousSibling(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const previousIndex = this.parent.getChildIndex(this) - 1;\n if (previousIndex >= 0) {\n return this.parent.children[previousIndex];\n } else {\n return null;\n }\n }\n }\n\n public getNextSibling(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const nextIndex = this.parent.getChildIndex(this) + 1;\n if (nextIndex < this.parent.children.length) {\n return this.parent.children[nextIndex];\n } else {\n return null;\n }\n }\n }\n\n public getNodesByProperty(key: string, value: unknown): Node[] {\n return this.filter((node: Node) => node[key] === value);\n }\n\n public filter(f: (node: Node) => boolean): Node[] {\n const result: Node[] = [];\n\n this.iterate((node: Node) => {\n if (f(node)) {\n result.push(node);\n }\n\n return true;\n });\n\n return result;\n }\n\n public getNextNode(includeChildren = true): Node | null {\n if (includeChildren && this.hasChildren()) {\n return this.children[0];\n } else if (!this.parent) {\n return null;\n } else {\n const nextSibling = this.getNextSibling();\n\n if (nextSibling) {\n return nextSibling;\n } else {\n return this.parent.getNextNode(false);\n }\n }\n }\n\n public getNextVisibleNode(): Node | null {\n if (this.hasChildren() && this.is_open) {\n // First child\n return this.children[0];\n } else {\n if (!this.parent) {\n return null;\n } else {\n const nextSibling = this.getNextSibling();\n if (nextSibling) {\n // Next sibling\n return nextSibling;\n } else {\n // Next node of parent\n return this.parent.getNextNode(false);\n }\n }\n }\n }\n\n public getPreviousNode(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const previousSibling = this.getPreviousSibling();\n\n if (!previousSibling) {\n return this.getParent();\n } else if (previousSibling.hasChildren()) {\n return previousSibling.getLastChild();\n } else {\n return previousSibling;\n }\n }\n }\n\n public getPreviousVisibleNode(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const previousSibling = this.getPreviousSibling();\n\n if (!previousSibling) {\n return this.getParent();\n } else if (\n !previousSibling.hasChildren() ||\n !previousSibling.is_open\n ) {\n // Previous sibling\n return previousSibling;\n } else {\n // Last child of previous sibling\n return previousSibling.getLastChild();\n }\n }\n }\n\n public getParent(): Node | null {\n // Return parent except if it is the root node\n if (!this.parent) {\n return null;\n } else if (!this.parent.parent) {\n // Root node -> null\n return null;\n } else {\n return this.parent;\n }\n }\n\n public getLastChild(): Node | null {\n if (!this.hasChildren()) {\n return null;\n } else {\n const lastChild = this.children[this.children.length - 1];\n if (!(lastChild.hasChildren() && lastChild.is_open)) {\n return lastChild;\n } else {\n return lastChild.getLastChild();\n }\n }\n }\n\n // Init Node from data without making it the root of the tree\n public initFromData(data: NodeData): void {\n const addNode = (nodeData: NodeData): void => {\n this.setData(nodeData);\n\n if (\n isNodeRecordWithChildren(nodeData) &&\n nodeData.children.length\n ) {\n addChildren(nodeData.children);\n }\n };\n\n const addChildren = (childrenData: NodeData[]): void => {\n for (const child of childrenData) {\n const node = this.createNode();\n node.initFromData(child);\n this.addChild(node);\n }\n };\n\n addNode(data);\n }\n\n private setParent(parent: Node): void {\n this.parent = parent;\n this.tree = parent.tree;\n this.tree?.addNodeToIndex(this);\n }\n\n private doRemoveChild(node: Node): void {\n this.children.splice(this.getChildIndex(node), 1);\n this.tree?.removeNodeFromIndex(node);\n }\n\n private getNodeClass(): typeof Node {\n return this.nodeClass || this?.tree?.nodeClass || Node;\n }\n\n private createNode(nodeData?: NodeData): Node {\n const nodeClass = this.getNodeClass();\n return new nodeClass(nodeData);\n }\n}\n","import { getPositionName, Node, Position } from \"./node\";\nimport { DropHint, HitArea, PositionInfo } from \"./types\";\nimport { NodeElement } from \"./nodeElement\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\ninterface Dimensions {\n left: number;\n top: number;\n right: number;\n bottom: number;\n}\n\nexport class DragAndDropHandler {\n public hitAreas: HitArea[];\n public isDragging: boolean;\n public currentItem: NodeElement | null;\n public hoveredArea: HitArea | null;\n public positionInfo: PositionInfo | null;\n\n private treeWidget: JqTreeWidget;\n private dragElement: DragElement | null;\n private previousGhost: DropHint | null;\n private openFolderTimer: number | null;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n\n this.hoveredArea = null;\n this.hitAreas = [];\n this.isDragging = false;\n this.currentItem = null;\n this.positionInfo = null;\n }\n\n public mouseCapture(positionInfo: PositionInfo): boolean | null {\n const $element = jQuery(positionInfo.target);\n\n if (!this.mustCaptureElement($element)) {\n return null;\n }\n\n if (\n this.treeWidget.options.onIsMoveHandle &&\n !this.treeWidget.options.onIsMoveHandle($element)\n ) {\n return null;\n }\n\n let nodeElement = this.treeWidget._getNodeElement($element);\n\n if (nodeElement && this.treeWidget.options.onCanMove) {\n if (!this.treeWidget.options.onCanMove(nodeElement.node)) {\n nodeElement = null;\n }\n }\n\n this.currentItem = nodeElement;\n return this.currentItem != null;\n }\n\n public mouseStart(positionInfo: PositionInfo): boolean {\n if (\n !this.currentItem ||\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return false;\n }\n\n this.refresh();\n\n const offset = jQuery(positionInfo.target).offset();\n const left = offset ? offset.left : 0;\n const top = offset ? offset.top : 0;\n\n const node = this.currentItem.node;\n\n this.dragElement = new DragElement(\n node.name,\n positionInfo.pageX - left,\n positionInfo.pageY - top,\n this.treeWidget.element,\n this.treeWidget.options.autoEscape ?? true\n );\n\n this.isDragging = true;\n this.positionInfo = positionInfo;\n this.currentItem.$element.addClass(\"jqtree-moving\");\n return true;\n }\n\n public mouseDrag(positionInfo: PositionInfo): boolean {\n if (\n !this.currentItem ||\n !this.dragElement ||\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return false;\n }\n\n this.dragElement.move(positionInfo.pageX, positionInfo.pageY);\n this.positionInfo = positionInfo;\n\n const area = this.findHoveredArea(\n positionInfo.pageX,\n positionInfo.pageY\n );\n\n if (area && this.canMoveToArea(area)) {\n if (!area.node.isFolder()) {\n this.stopOpenFolderTimer();\n }\n\n if (this.hoveredArea !== area) {\n this.hoveredArea = area;\n\n // If this is a closed folder, start timer to open it\n if (this.mustOpenFolderTimer(area)) {\n this.startOpenFolderTimer(area.node);\n } else {\n this.stopOpenFolderTimer();\n }\n\n this.updateDropHint();\n }\n } else {\n this.removeDropHint();\n this.stopOpenFolderTimer();\n this.hoveredArea = area;\n }\n\n if (!area) {\n if (this.treeWidget.options.onDragMove) {\n this.treeWidget.options.onDragMove(\n this.currentItem.node,\n positionInfo.originalEvent\n );\n }\n }\n\n return true;\n }\n\n public mouseStop(positionInfo: PositionInfo): boolean {\n this.moveItem(positionInfo);\n this.clear();\n this.removeHover();\n this.removeDropHint();\n this.removeHitAreas();\n\n const currentItem = this.currentItem;\n\n if (this.currentItem) {\n this.currentItem.$element.removeClass(\"jqtree-moving\");\n this.currentItem = null;\n }\n\n this.isDragging = false;\n this.positionInfo = null;\n\n if (!this.hoveredArea && currentItem) {\n if (this.treeWidget.options.onDragStop) {\n this.treeWidget.options.onDragStop(\n currentItem.node,\n positionInfo.originalEvent\n );\n }\n }\n\n return false;\n }\n\n public refresh(): void {\n this.removeHitAreas();\n\n if (this.currentItem) {\n this.generateHitAreas();\n\n this.currentItem = this.treeWidget._getNodeElementForNode(\n this.currentItem.node\n );\n\n if (this.isDragging) {\n this.currentItem.$element.addClass(\"jqtree-moving\");\n }\n }\n }\n\n private generateHitAreas(): void {\n if (!this.currentItem) {\n this.hitAreas = [];\n } else {\n const hitAreasGenerator = new HitAreasGenerator(\n this.treeWidget.tree,\n this.currentItem.node,\n this.getTreeDimensions().bottom\n );\n this.hitAreas = hitAreasGenerator.generate();\n }\n }\n\n private mustCaptureElement($element: JQuery): boolean {\n return !$element.is(\"input,select,textarea\");\n }\n\n private canMoveToArea(area: HitArea): boolean {\n if (!this.treeWidget.options.onCanMoveTo) {\n return true;\n }\n\n if (!this.currentItem) {\n return false;\n }\n\n const positionName = getPositionName(area.position);\n\n return this.treeWidget.options.onCanMoveTo(\n this.currentItem.node,\n area.node,\n positionName\n );\n }\n\n private removeHitAreas(): void {\n this.hitAreas = [];\n }\n\n private clear(): void {\n if (this.dragElement) {\n this.dragElement.remove();\n this.dragElement = null;\n }\n }\n\n private removeDropHint(): void {\n if (this.previousGhost) {\n this.previousGhost.remove();\n }\n }\n\n private removeHover(): void {\n this.hoveredArea = null;\n }\n\n private findHoveredArea(x: number, y: number): HitArea | null {\n const dimensions = this.getTreeDimensions();\n\n if (\n x < dimensions.left ||\n y < dimensions.top ||\n x > dimensions.right ||\n y > dimensions.bottom\n ) {\n return null;\n }\n\n let low = 0;\n let high = this.hitAreas.length;\n while (low < high) {\n const mid = (low + high) >> 1;\n const area = this.hitAreas[mid];\n\n if (y < area.top) {\n high = mid;\n } else if (y > area.bottom) {\n low = mid + 1;\n } else {\n return area;\n }\n }\n\n return null;\n }\n\n private mustOpenFolderTimer(area: HitArea): boolean {\n const node = area.node;\n\n return (\n node.isFolder() &&\n !node.is_open &&\n area.position === Position.Inside\n );\n }\n\n private updateDropHint(): void {\n if (!this.hoveredArea) {\n return;\n }\n\n // remove previous drop hint\n this.removeDropHint();\n\n // add new drop hint\n const nodeElement = this.treeWidget._getNodeElementForNode(\n this.hoveredArea.node\n );\n this.previousGhost = nodeElement.addDropHint(this.hoveredArea.position);\n }\n\n private startOpenFolderTimer(folder: Node): void {\n const openFolder = (): void => {\n this.treeWidget._openNode(\n folder,\n this.treeWidget.options.slide,\n () => {\n this.refresh();\n this.updateDropHint();\n }\n );\n };\n\n this.stopOpenFolderTimer();\n\n const openFolderDelay = this.treeWidget.options.openFolderDelay;\n\n if (openFolderDelay !== false) {\n this.openFolderTimer = window.setTimeout(\n openFolder,\n openFolderDelay\n );\n }\n }\n\n private stopOpenFolderTimer(): void {\n if (this.openFolderTimer) {\n clearTimeout(this.openFolderTimer);\n this.openFolderTimer = null;\n }\n }\n\n private moveItem(positionInfo: PositionInfo): void {\n if (\n this.currentItem &&\n this.hoveredArea &&\n this.hoveredArea.position !== Position.None &&\n this.canMoveToArea(this.hoveredArea)\n ) {\n const movedNode = this.currentItem.node;\n const targetNode = this.hoveredArea.node;\n const position = this.hoveredArea.position;\n const previousParent = movedNode.parent;\n\n if (position === Position.Inside) {\n this.hoveredArea.node.is_open = true;\n }\n\n const doMove = (): void => {\n this.treeWidget.tree.moveNode(movedNode, targetNode, position);\n this.treeWidget.element.empty();\n this.treeWidget._refreshElements(null);\n };\n\n const event = this.treeWidget._triggerEvent(\"tree.move\", {\n move_info: {\n moved_node: movedNode,\n target_node: targetNode,\n position: getPositionName(position),\n previous_parent: previousParent,\n do_move: doMove,\n original_event: positionInfo.originalEvent,\n },\n });\n\n if (!event.isDefaultPrevented()) {\n doMove();\n }\n }\n }\n\n private getTreeDimensions(): Dimensions {\n // Return the dimensions of the tree. Add a margin to the bottom to allow\n // to drag-and-drop after the last element.\n const offset = this.treeWidget.element.offset();\n\n if (!offset) {\n return { left: 0, top: 0, right: 0, bottom: 0 };\n } else {\n const el = this.treeWidget.element;\n const width = el.width() || 0;\n const height = el.height() || 0;\n const left = offset.left + this.treeWidget._getScrollLeft();\n\n return {\n left,\n top: offset.top,\n right: left + width,\n bottom: offset.top + height + 16,\n };\n }\n }\n}\n\nabstract class VisibleNodeIterator {\n private tree: Node;\n\n constructor(tree: Node) {\n this.tree = tree;\n }\n\n protected iterate(): void {\n let isFirstNode = true;\n\n const _iterateNode = (node: Node, nextNode: Node | null): void => {\n let mustIterateInside =\n (node.is_open || !node.element) && node.hasChildren();\n\n let $element: JQuery | null = null;\n\n if (node.element) {\n $element = jQuery(node.element);\n\n if (!$element.is(\":visible\")) {\n return;\n }\n\n if (isFirstNode) {\n this.handleFirstNode(node);\n isFirstNode = false;\n }\n\n if (!node.hasChildren()) {\n this.handleNode(node, nextNode, $element);\n } else if (node.is_open) {\n if (!this.handleOpenFolder(node, $element)) {\n mustIterateInside = false;\n }\n } else {\n this.handleClosedFolder(node, nextNode, $element);\n }\n }\n\n if (mustIterateInside) {\n const childrenLength = node.children.length;\n node.children.forEach((_, i) => {\n if (i === childrenLength - 1) {\n _iterateNode(node.children[i], null);\n } else {\n _iterateNode(node.children[i], node.children[i + 1]);\n }\n });\n\n if (node.is_open && $element) {\n this.handleAfterOpenFolder(node, nextNode);\n }\n }\n };\n\n _iterateNode(this.tree, null);\n }\n\n protected abstract handleNode(\n node: Node,\n nextNode: Node | null,\n $element: JQuery\n ): void;\n\n /*\n override\n return\n - true: continue iterating\n - false: stop iterating\n */\n protected abstract handleOpenFolder(node: Node, $element: JQuery): boolean;\n\n protected abstract handleClosedFolder(\n node: Node,\n nextNode: Node | null,\n $element: JQuery\n ): void;\n\n protected abstract handleAfterOpenFolder(\n node: Node,\n nextNode: Node | null\n ): void;\n\n protected abstract handleFirstNode(node: Node): void;\n}\n\nexport class HitAreasGenerator extends VisibleNodeIterator {\n private currentNode: Node;\n private treeBottom: number;\n private positions: HitArea[];\n private lastTop: number;\n\n constructor(tree: Node, currentNode: Node, treeBottom: number) {\n super(tree);\n\n this.currentNode = currentNode;\n this.treeBottom = treeBottom;\n }\n\n public generate(): HitArea[] {\n this.positions = [];\n this.lastTop = 0;\n\n this.iterate();\n\n return this.generateHitAreas(this.positions);\n }\n\n protected generateHitAreas(positions: HitArea[]): HitArea[] {\n let previousTop = -1;\n let group = [];\n const hitAreas: HitArea[] = [];\n\n for (const position of positions) {\n if (position.top !== previousTop && group.length) {\n if (group.length) {\n this.generateHitAreasForGroup(\n hitAreas,\n group,\n previousTop,\n position.top\n );\n }\n\n previousTop = position.top;\n group = [];\n }\n\n group.push(position);\n }\n\n this.generateHitAreasForGroup(\n hitAreas,\n group,\n previousTop,\n this.treeBottom\n );\n\n return hitAreas;\n }\n\n protected handleOpenFolder(node: Node, $element: JQuery): boolean {\n if (node === this.currentNode) {\n // Cannot move inside current item\n // Stop iterating\n return false;\n }\n\n // Cannot move before current item\n if (node.children[0] !== this.currentNode) {\n this.addPosition(node, Position.Inside, this.getTop($element));\n }\n\n // Continue iterating\n return true;\n }\n\n protected handleClosedFolder(\n node: Node,\n nextNode: Node,\n $element: JQuery\n ): void {\n const top = this.getTop($element);\n\n if (node === this.currentNode) {\n // Cannot move after current item\n this.addPosition(node, Position.None, top);\n } else {\n this.addPosition(node, Position.Inside, top);\n\n // Cannot move before current item\n if (nextNode !== this.currentNode) {\n this.addPosition(node, Position.After, top);\n }\n }\n }\n\n protected handleFirstNode(node: Node): void {\n if (node !== this.currentNode) {\n this.addPosition(\n node,\n Position.Before,\n this.getTop(jQuery(node.element))\n );\n }\n }\n\n protected handleAfterOpenFolder(node: Node, nextNode: Node): void {\n if (node === this.currentNode || nextNode === this.currentNode) {\n // Cannot move before or after current item\n this.addPosition(node, Position.None, this.lastTop);\n } else {\n this.addPosition(node, Position.After, this.lastTop);\n }\n }\n\n protected handleNode(node: Node, nextNode: Node, $element: JQuery): void {\n const top = this.getTop($element);\n\n if (node === this.currentNode) {\n // Cannot move inside current item\n this.addPosition(node, Position.None, top);\n } else {\n this.addPosition(node, Position.Inside, top);\n }\n\n if (nextNode === this.currentNode || node === this.currentNode) {\n // Cannot move before or after current item\n this.addPosition(node, Position.None, top);\n } else {\n this.addPosition(node, Position.After, top);\n }\n }\n\n private getTop($element: JQuery): number {\n const offset = $element.offset();\n\n return offset ? offset.top : 0;\n }\n\n private addPosition(node: Node, position: number, top: number): void {\n const area = {\n top,\n bottom: 0,\n node,\n position,\n };\n\n this.positions.push(area);\n this.lastTop = top;\n }\n\n private generateHitAreasForGroup(\n hitAreas: HitArea[],\n positionsInGroup: HitArea[],\n top: number,\n bottom: number\n ): void {\n // limit positions in group\n const positionCount = Math.min(positionsInGroup.length, 4);\n\n const areaHeight = Math.round((bottom - top) / positionCount);\n let areaTop = top;\n\n let i = 0;\n while (i < positionCount) {\n const position = positionsInGroup[i];\n\n hitAreas.push({\n top: areaTop,\n bottom: areaTop + areaHeight,\n node: position.node,\n position: position.position,\n });\n\n areaTop += areaHeight;\n i += 1;\n }\n }\n}\n\nclass DragElement {\n private offsetX: number;\n private offsetY: number;\n private $element: JQuery;\n\n constructor(\n nodeName: string,\n offsetX: number,\n offsetY: number,\n $tree: JQuery,\n autoEscape: boolean\n ) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n\n this.$element = jQuery(\"\").addClass(\n \"jqtree-title jqtree-dragging\"\n );\n\n if (autoEscape) {\n this.$element.text(nodeName);\n } else {\n this.$element.html(nodeName);\n }\n\n this.$element.css(\"position\", \"absolute\");\n $tree.append(this.$element);\n }\n\n public move(pageX: number, pageY: number): void {\n this.$element.offset({\n left: pageX - this.offsetX,\n top: pageY - this.offsetY,\n });\n }\n\n public remove(): void {\n this.$element.remove();\n }\n}\n","export const isInt = (n: unknown): boolean =>\n typeof n === \"number\" && n % 1 === 0;\n\nexport const isFunction = (v: unknown): boolean => typeof v === \"function\";\n\nexport const getBoolString = (value: unknown): string =>\n value ? \"true\" : \"false\";\n","import { getBoolString } from \"./util\";\nimport { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\ntype IconElement = Text | Element;\n\nexport default class ElementsRenderer {\n public openedIconElement: IconElement;\n public closedIconElement: IconElement;\n private treeWidget: JqTreeWidget;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n\n this.openedIconElement = this.createButtonElement(\n treeWidget.options.openedIcon || \"+\"\n );\n this.closedIconElement = this.createButtonElement(\n treeWidget.options.closedIcon || \"-\"\n );\n }\n\n public render(fromNode: Node | null): void {\n if (fromNode && fromNode.parent) {\n this.renderFromNode(fromNode);\n } else {\n this.renderFromRoot();\n }\n }\n\n public renderFromRoot(): void {\n const $element = this.treeWidget.element;\n $element.empty();\n\n this.createDomElements(\n $element[0],\n this.treeWidget.tree.children,\n true,\n 1\n );\n }\n\n public renderFromNode(node: Node): void {\n // remember current li\n const $previousLi = jQuery(node.element);\n\n // create element\n const li = this.createLi(node, node.getLevel());\n this.attachNodeData(node, li);\n\n // add element to dom\n $previousLi.after(li);\n\n // remove previous li\n $previousLi.remove();\n\n // create children\n if (node.children) {\n this.createDomElements(\n li,\n node.children,\n false,\n node.getLevel() + 1\n );\n }\n }\n\n private createDomElements(\n element: Element,\n children: Node[],\n isRootNode: boolean,\n level: number\n ): void {\n const ul = this.createUl(isRootNode);\n element.appendChild(ul);\n\n for (const child of children) {\n const li = this.createLi(child, level);\n ul.appendChild(li);\n\n this.attachNodeData(child, li);\n\n if (child.hasChildren()) {\n this.createDomElements(li, child.children, false, level + 1);\n }\n }\n }\n\n private attachNodeData(node: Node, li: HTMLElement): void {\n node.element = li;\n jQuery(li).data(\"node\", node);\n }\n\n private createUl(isRootNode: boolean): HTMLUListElement {\n let classString;\n let role;\n\n if (!isRootNode) {\n classString = \"\";\n role = \"group\";\n } else {\n classString = \"jqtree-tree\";\n role = \"tree\";\n\n if (this.treeWidget.options.rtl) {\n classString += \" jqtree-rtl\";\n }\n }\n\n if (this.treeWidget.options.dragAndDrop) {\n classString += \" jqtree-dnd\";\n }\n\n const ul = document.createElement(\"ul\");\n ul.className = `jqtree_common ${classString}`;\n\n ul.setAttribute(\"role\", role);\n\n return ul;\n }\n\n private createLi(node: Node, level: number): HTMLLIElement {\n const isSelected = Boolean(\n this.treeWidget.selectNodeHandler.isNodeSelected(node)\n );\n\n const mustShowFolder =\n node.isFolder() ||\n (node.isEmptyFolder && this.treeWidget.options.showEmptyFolder);\n\n const li = mustShowFolder\n ? this.createFolderLi(node, level, isSelected)\n : this.createNodeLi(node, level, isSelected);\n\n if (this.treeWidget.options.onCreateLi) {\n this.treeWidget.options.onCreateLi(node, jQuery(li), isSelected);\n }\n\n return li;\n }\n\n private createFolderLi(\n node: Node,\n level: number,\n isSelected: boolean\n ): HTMLLIElement {\n const buttonClasses = this.getButtonClasses(node);\n const folderClasses = this.getFolderClasses(node, isSelected);\n\n const iconElement = node.is_open\n ? this.openedIconElement\n : this.closedIconElement;\n\n // li\n const li = document.createElement(\"li\");\n li.className = `jqtree_common ${folderClasses}`;\n li.setAttribute(\"role\", \"presentation\");\n\n // div\n const div = document.createElement(\"div\");\n div.className = \"jqtree-element jqtree_common\";\n div.setAttribute(\"role\", \"presentation\");\n\n li.appendChild(div);\n\n // button link\n const buttonLink = document.createElement(\"a\");\n buttonLink.className = buttonClasses;\n\n buttonLink.appendChild(iconElement.cloneNode(true));\n\n buttonLink.setAttribute(\"role\", \"presentation\");\n buttonLink.setAttribute(\"aria-hidden\", \"true\");\n\n if (this.treeWidget.options.buttonLeft) {\n div.appendChild(buttonLink);\n }\n\n // title span\n div.appendChild(\n this.createTitleSpan(\n node.name,\n level,\n isSelected,\n node.is_open,\n true\n )\n );\n\n if (!this.treeWidget.options.buttonLeft) {\n div.appendChild(buttonLink);\n }\n\n return li;\n }\n\n private createNodeLi(\n node: Node,\n level: number,\n isSelected: boolean\n ): HTMLLIElement {\n const liClasses = [\"jqtree_common\"];\n\n if (isSelected) {\n liClasses.push(\"jqtree-selected\");\n }\n\n const classString = liClasses.join(\" \");\n\n // li\n const li = document.createElement(\"li\");\n li.className = classString;\n li.setAttribute(\"role\", \"presentation\");\n\n // div\n const div = document.createElement(\"div\");\n div.className = \"jqtree-element jqtree_common\";\n div.setAttribute(\"role\", \"presentation\");\n\n li.appendChild(div);\n\n // title span\n div.appendChild(\n this.createTitleSpan(\n node.name,\n level,\n isSelected,\n node.is_open,\n false\n )\n );\n\n return li;\n }\n\n private createTitleSpan(\n nodeName: string,\n level: number,\n isSelected: boolean,\n isOpen: boolean,\n isFolder: boolean\n ): HTMLSpanElement {\n const titleSpan = document.createElement(\"span\");\n\n let classes = \"jqtree-title jqtree_common\";\n\n if (isFolder) {\n classes += \" jqtree-title-folder\";\n }\n\n classes += ` jqtree-title-button-${\n this.treeWidget.options.buttonLeft ? \"left\" : \"right\"\n }`;\n\n titleSpan.className = classes;\n\n titleSpan.setAttribute(\"role\", \"treeitem\");\n titleSpan.setAttribute(\"aria-level\", `${level}`);\n\n titleSpan.setAttribute(\"aria-selected\", getBoolString(isSelected));\n titleSpan.setAttribute(\"aria-expanded\", getBoolString(isOpen));\n\n if (isSelected) {\n const tabIndex = this.treeWidget.options.tabIndex;\n\n if (tabIndex !== undefined) {\n titleSpan.setAttribute(\"tabindex\", `${tabIndex}`);\n }\n }\n\n if (this.treeWidget.options.autoEscape) {\n titleSpan.textContent = nodeName;\n } else {\n titleSpan.innerHTML = nodeName;\n }\n\n return titleSpan;\n }\n\n private getButtonClasses(node: Node): string {\n const classes = [\"jqtree-toggler\", \"jqtree_common\"];\n\n if (!node.is_open) {\n classes.push(\"jqtree-closed\");\n }\n\n if (this.treeWidget.options.buttonLeft) {\n classes.push(\"jqtree-toggler-left\");\n } else {\n classes.push(\"jqtree-toggler-right\");\n }\n\n return classes.join(\" \");\n }\n\n private getFolderClasses(node: Node, isSelected: boolean): string {\n const classes = [\"jqtree-folder\"];\n\n if (!node.is_open) {\n classes.push(\"jqtree-closed\");\n }\n\n if (isSelected) {\n classes.push(\"jqtree-selected\");\n }\n\n if (node.is_loading) {\n classes.push(\"jqtree-loading\");\n }\n\n return classes.join(\" \");\n }\n\n private createButtonElement(value: string | Element): IconElement {\n if (typeof value === \"string\") {\n // convert value to html\n const div = document.createElement(\"div\");\n div.innerHTML = value;\n\n return document.createTextNode(div.innerHTML);\n } else {\n return jQuery(value)[0];\n }\n }\n}\n","import { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\nexport type HandleFinishedLoading = () => void;\n\nexport default class DataLoader {\n private treeWidget: JqTreeWidget;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n }\n\n public loadFromUrl(\n urlInfo: string | JQuery.AjaxSettings | null,\n parentNode: Node | null,\n onFinished: HandleFinishedLoading | null\n ): void {\n if (!urlInfo) {\n return;\n }\n\n const $el = this.getDomElement(parentNode);\n this.addLoadingClass($el);\n this.notifyLoading(true, parentNode, $el);\n\n const stopLoading = (): void => {\n this.removeLoadingClass($el);\n this.notifyLoading(false, parentNode, $el);\n };\n\n const handleSuccess = (data: string | NodeData[]): void => {\n stopLoading();\n this.treeWidget.loadData(this.parseData(data), parentNode);\n\n if (onFinished && typeof onFinished === \"function\") {\n onFinished();\n }\n };\n\n const handleError = (jqXHR: JQuery.jqXHR): void => {\n stopLoading();\n\n if (this.treeWidget.options.onLoadFailed) {\n this.treeWidget.options.onLoadFailed(jqXHR);\n }\n };\n\n this.submitRequest(urlInfo, handleSuccess, handleError);\n }\n\n private addLoadingClass($el: JQuery): void {\n if ($el) {\n $el.addClass(\"jqtree-loading\");\n }\n }\n\n private removeLoadingClass($el: JQuery): void {\n if ($el) {\n $el.removeClass(\"jqtree-loading\");\n }\n }\n\n private getDomElement(parentNode: Node | null): JQuery {\n if (parentNode) {\n return jQuery(parentNode.element);\n } else {\n return this.treeWidget.element;\n }\n }\n\n private notifyLoading(\n isLoading: boolean,\n node: Node | null,\n $el: JQuery\n ): void {\n if (this.treeWidget.options.onLoading) {\n this.treeWidget.options.onLoading(isLoading, node, $el);\n }\n\n this.treeWidget._triggerEvent(\"tree.loading_data\", {\n isLoading,\n node,\n $el,\n });\n }\n\n private submitRequest(\n urlInfoInput: string | JQuery.AjaxSettings,\n handleSuccess: JQuery.Ajax.SuccessCallback,\n handleError: JQuery.Ajax.ErrorCallback\n ): void {\n const urlInfo =\n typeof urlInfoInput === \"string\"\n ? { url: urlInfoInput }\n : urlInfoInput;\n\n const ajaxSettings: JQuery.AjaxSettings = {\n method: \"GET\",\n cache: false,\n dataType: \"json\",\n success: handleSuccess,\n error: handleError,\n ...urlInfo,\n };\n\n ajaxSettings.method = ajaxSettings.method?.toUpperCase() || \"GET\";\n\n void jQuery.ajax(ajaxSettings);\n }\n\n private parseData(data: string | NodeData[]): NodeData[] {\n const { dataFilter } = this.treeWidget.options;\n\n const getParsedData = () => {\n if (typeof data === \"string\") {\n return JSON.parse(data) as NodeData[];\n } else {\n return data;\n }\n };\n\n const parsedData = getParsedData();\n\n if (dataFilter) {\n return dataFilter(parsedData);\n } else {\n return parsedData;\n }\n }\n}\n","import { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\nexport default class KeyHandler {\n private static LEFT = 37;\n private static UP = 38;\n private static RIGHT = 39;\n private static DOWN = 40;\n\n private treeWidget: JqTreeWidget;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n\n if (treeWidget.options.keyboardSupport) {\n jQuery(document).on(\"keydown.jqtree\", this.handleKeyDown);\n }\n }\n\n public deinit(): void {\n jQuery(document).off(\"keydown.jqtree\");\n }\n\n public moveDown(selectedNode: Node): boolean {\n return this.selectNode(selectedNode.getNextVisibleNode());\n }\n\n public moveUp(selectedNode: Node): boolean {\n return this.selectNode(selectedNode.getPreviousVisibleNode());\n }\n\n public moveRight(selectedNode: Node): boolean {\n if (!selectedNode.isFolder()) {\n return true;\n } else {\n // folder node\n if (selectedNode.is_open) {\n // Right moves to the first child of an open node\n return this.selectNode(selectedNode.getNextVisibleNode());\n } else {\n // Right expands a closed node\n this.treeWidget.openNode(selectedNode);\n return false;\n }\n }\n }\n\n public moveLeft(selectedNode: Node): boolean {\n if (selectedNode.isFolder() && selectedNode.is_open) {\n // Left on an open node closes the node\n this.treeWidget.closeNode(selectedNode);\n return false;\n } else {\n // Left on a closed or end node moves focus to the node's parent\n return this.selectNode(selectedNode.getParent());\n }\n }\n\n public selectNode(node: Node | null): boolean {\n if (!node) {\n return true;\n } else {\n this.treeWidget.selectNode(node);\n\n if (\n !this.treeWidget.scrollHandler.isScrolledIntoView(\n jQuery(node.element).find(\".jqtree-element\")\n )\n ) {\n this.treeWidget.scrollToNode(node);\n }\n\n return false;\n }\n }\n\n private handleKeyDown = (e: JQuery.Event): boolean => {\n if (!this.canHandleKeyboard()) {\n return true;\n }\n\n const selectedNode = this.treeWidget.getSelectedNode();\n if (!selectedNode) {\n return true;\n }\n\n const key = e.which;\n\n switch (key) {\n case KeyHandler.DOWN:\n return this.moveDown(selectedNode);\n\n case KeyHandler.UP:\n return this.moveUp(selectedNode);\n\n case KeyHandler.RIGHT:\n return this.moveRight(selectedNode);\n\n case KeyHandler.LEFT:\n return this.moveLeft(selectedNode);\n\n default:\n return true;\n }\n };\n\n private canHandleKeyboard(): boolean {\n return (\n (this.treeWidget.options.keyboardSupport || false) &&\n this.treeWidget.selectNodeHandler.isFocusOnTree()\n );\n }\n}\n","const register = (widgetClass: unknown, widgetName: string): void => {\n const getDataKey = (): string => `simple_widget_${widgetName}`;\n\n const getWidgetData = (\n el: HTMLElement,\n dataKey: string\n ): SimpleWidget | null => {\n const widget = jQuery.data(el, dataKey) as unknown;\n\n if (widget && widget instanceof SimpleWidget) {\n return widget;\n } else {\n return null;\n }\n };\n\n const createWidget = ($el: JQuery, options: unknown): JQuery => {\n const dataKey = getDataKey();\n\n for (const el of $el.get()) {\n const existingWidget = getWidgetData(el, dataKey);\n\n if (!existingWidget) {\n const simpleWidgetClass = widgetClass as typeof SimpleWidget;\n const widget = new simpleWidgetClass(el, options);\n\n if (!jQuery.data(el, dataKey)) {\n jQuery.data(el, dataKey, widget);\n }\n\n // Call init after setting data, so we can call methods\n widget.init();\n }\n }\n\n return $el;\n };\n\n const destroyWidget = ($el: JQuery): void => {\n const dataKey = getDataKey();\n\n for (const el of $el.get()) {\n const widget = getWidgetData(el, dataKey);\n\n if (widget) {\n widget.destroy();\n }\n\n jQuery.removeData(el, dataKey);\n }\n };\n\n const callFunction = (\n $el: JQuery,\n functionName: string,\n args: unknown[]\n ): unknown => {\n let result = null;\n\n for (const el of $el.get()) {\n const widget = jQuery.data(el, getDataKey()) as unknown;\n\n if (widget && widget instanceof SimpleWidget) {\n const simpleWidget = widget as SimpleWidget;\n const widgetFunction = simpleWidget[functionName];\n\n if (widgetFunction && typeof widgetFunction === \"function\") {\n result = widgetFunction.apply(widget, args) as unknown;\n }\n }\n }\n\n return result;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (jQuery.fn as any)[widgetName] = function (\n this: JQuery,\n argument1: unknown,\n ...args: unknown[]\n ) {\n if (!argument1) {\n return createWidget(this, null);\n } else if (typeof argument1 === \"object\") {\n const options = argument1 as unknown;\n return createWidget(this, options);\n } else if (typeof argument1 === \"string\" && argument1[0] !== \"_\") {\n const functionName = argument1;\n\n if (functionName === \"destroy\") {\n return destroyWidget(this);\n } else if (functionName === \"get_widget_class\") {\n return widgetClass;\n } else {\n return callFunction(this, functionName, args);\n }\n }\n };\n};\n\nexport default class SimpleWidget {\n public static register(widgetClass: unknown, widgetName: string): void {\n register(widgetClass, widgetName);\n }\n\n [key: string]: unknown;\n\n protected static defaults: unknown = {};\n\n public options: WidgetOptions;\n\n public $el: JQuery;\n\n constructor(el: HTMLElement, options: WidgetOptions) {\n this.$el = jQuery(el);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const defaults = (this.constructor as any)[\"defaults\"] as WidgetOptions;\n this.options = { ...defaults, ...options };\n }\n\n public destroy(): void {\n this.deinit();\n }\n\n public init(): void {\n //\n }\n\n public deinit(): void {\n //\n }\n}\n","/*\nThis widget does the same a the mouse widget in jqueryui.\n*/\nimport SimpleWidget from \"./simple.widget\";\nimport { PositionInfo } from \"./types\";\n\nconst getPositionInfoFromMouseEvent = (e: MouseEvent): PositionInfo => ({\n pageX: e.pageX,\n pageY: e.pageY,\n target: e.target as HTMLElement,\n originalEvent: e,\n});\n\nconst getPositionInfoFromTouch = (\n touch: Touch,\n e: TouchEvent\n): PositionInfo => ({\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target as HTMLElement,\n originalEvent: e,\n});\n\nabstract class MouseWidget extends SimpleWidget {\n protected isMouseStarted: boolean;\n protected mouseDownInfo: PositionInfo | null;\n private mouseDelayTimer: number | null;\n private isMouseDelayMet: boolean;\n\n public init(): void {\n const element = this.$el.get(0);\n\n if (element) {\n element.addEventListener(\"mousedown\", this.mouseDown, {\n passive: false,\n });\n element.addEventListener(\"touchstart\", this.touchStart, {\n passive: false,\n });\n }\n\n this.isMouseStarted = false;\n this.mouseDelayTimer = null;\n this.isMouseDelayMet = false;\n this.mouseDownInfo = null;\n }\n\n public deinit(): void {\n const el = this.$el.get(0);\n\n if (el) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (el as any).removeEventListener(\"mousedown\", this.mouseDown, {\n passive: false,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (el as any).removeEventListener(\"touchstart\", this.touchStart, {\n passive: false,\n });\n }\n\n this.removeMouseMoveEventListeners();\n }\n\n protected abstract mouseCapture(positionInfo: PositionInfo): boolean | null;\n\n protected abstract mouseStart(positionInfo: PositionInfo): boolean;\n\n protected abstract mouseDrag(positionInfo: PositionInfo): void;\n\n protected abstract mouseStop(positionInfo: PositionInfo): void;\n\n protected abstract getMouseDelay(): number;\n\n private mouseDown = (e: MouseEvent): void => {\n // Left mouse button?\n if (e.button !== 0) {\n return;\n }\n\n const result = this.handleMouseDown(getPositionInfoFromMouseEvent(e));\n\n if (result && e.cancelable) {\n e.preventDefault();\n }\n };\n\n private handleMouseDown(positionInfo: PositionInfo): boolean {\n // We may have missed mouseup (out of window)\n if (this.isMouseStarted) {\n this.handleMouseUp(positionInfo);\n }\n\n this.mouseDownInfo = positionInfo;\n\n if (!this.mouseCapture(positionInfo)) {\n return false;\n }\n\n this.handleStartMouse();\n\n return true;\n }\n\n private handleStartMouse(): void {\n document.addEventListener(\"mousemove\", this.mouseMove, {\n passive: false,\n });\n document.addEventListener(\"touchmove\", this.touchMove, {\n passive: false,\n });\n document.addEventListener(\"mouseup\", this.mouseUp, { passive: false });\n document.addEventListener(\"touchend\", this.touchEnd, {\n passive: false,\n });\n\n const mouseDelay = this.getMouseDelay();\n\n if (mouseDelay) {\n this.startMouseDelayTimer(mouseDelay);\n } else {\n this.isMouseDelayMet = true;\n }\n }\n\n private startMouseDelayTimer(mouseDelay: number): void {\n if (this.mouseDelayTimer) {\n clearTimeout(this.mouseDelayTimer);\n }\n\n this.mouseDelayTimer = window.setTimeout(() => {\n if (this.mouseDownInfo) {\n this.isMouseDelayMet = true;\n }\n }, mouseDelay);\n\n this.isMouseDelayMet = false;\n }\n\n private mouseMove = (e: MouseEvent): void => {\n this.handleMouseMove(e, getPositionInfoFromMouseEvent(e));\n };\n\n private handleMouseMove(\n e: MouseEvent | TouchEvent,\n positionInfo: PositionInfo\n ): void {\n if (this.isMouseStarted) {\n this.mouseDrag(positionInfo);\n\n if (e.cancelable) {\n e.preventDefault();\n }\n return;\n }\n\n if (!this.isMouseDelayMet) {\n return;\n }\n\n if (this.mouseDownInfo) {\n this.isMouseStarted = this.mouseStart(this.mouseDownInfo) !== false;\n }\n\n if (this.isMouseStarted) {\n this.mouseDrag(positionInfo);\n\n if (e.cancelable) {\n e.preventDefault();\n }\n } else {\n this.handleMouseUp(positionInfo);\n }\n }\n\n private mouseUp = (e: MouseEvent): void => {\n this.handleMouseUp(getPositionInfoFromMouseEvent(e));\n };\n\n private handleMouseUp(positionInfo: PositionInfo): void {\n this.removeMouseMoveEventListeners();\n this.isMouseDelayMet = false;\n this.mouseDownInfo = null;\n\n if (this.isMouseStarted) {\n this.isMouseStarted = false;\n this.mouseStop(positionInfo);\n }\n }\n\n private removeMouseMoveEventListeners() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"mousemove\", this.mouseMove, {\n passive: false,\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"touchmove\", this.touchMove, {\n passive: false,\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"mouseup\", this.mouseUp, {\n passive: false,\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"touchend\", this.touchEnd, {\n passive: false,\n });\n }\n\n private touchStart = (e: TouchEvent): void => {\n if (!e) {\n return;\n }\n\n if (e.touches.length > 1) {\n return;\n }\n\n const touch = e.changedTouches[0];\n\n this.handleMouseDown(getPositionInfoFromTouch(touch, e));\n };\n\n private touchMove = (e: TouchEvent): void => {\n if (!e) {\n return;\n }\n\n if (e.touches.length > 1) {\n return;\n }\n\n const touch = e.changedTouches[0];\n\n this.handleMouseMove(e, getPositionInfoFromTouch(touch, e));\n };\n\n private touchEnd = (e: TouchEvent): void => {\n if (!e) {\n return;\n }\n\n if (e.touches.length > 1) {\n return;\n }\n\n const touch = e.changedTouches[0];\n\n this.handleMouseUp(getPositionInfoFromTouch(touch, e));\n };\n}\n\nexport default MouseWidget;\n","import { isInt } from \"./util\";\nimport { JqTreeWidget } from \"./tree.jquery\";\nimport { Node } from \"./node\";\n\nexport interface SavedState {\n open_nodes: NodeId[];\n selected_node: NodeId[];\n}\n\nexport default class SaveStateHandler {\n private treeWidget: JqTreeWidget;\n private _supportsLocalStorage: boolean | null;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n }\n\n public saveState(): void {\n const state = JSON.stringify(this.getState());\n\n if (this.treeWidget.options.onSetStateFromStorage) {\n this.treeWidget.options.onSetStateFromStorage(state);\n } else if (this.supportsLocalStorage()) {\n localStorage.setItem(this.getKeyName(), state);\n }\n }\n\n public getStateFromStorage(): SavedState | null {\n const jsonData = this.loadFromStorage();\n\n if (jsonData) {\n return this.parseState(jsonData) as unknown as SavedState;\n } else {\n return null;\n }\n }\n\n public getState(): SavedState {\n const getOpenNodeIds = (): NodeId[] => {\n const openNodes: NodeId[] = [];\n\n this.treeWidget.tree.iterate((node: Node) => {\n if (node.is_open && node.id && node.hasChildren()) {\n openNodes.push(node.id);\n }\n return true;\n });\n\n return openNodes;\n };\n\n const getSelectedNodeIds = (): NodeId[] => {\n const selectedNodeIds: NodeId[] = [];\n\n this.treeWidget.getSelectedNodes().forEach((node) => {\n if (node.id != null) {\n selectedNodeIds.push(node.id);\n }\n });\n\n return selectedNodeIds;\n };\n\n return {\n open_nodes: getOpenNodeIds(),\n selected_node: getSelectedNodeIds(),\n };\n }\n\n /*\n Set initial state\n Don't handle nodes that are loaded on demand\n\n result: must load on demand\n */\n public setInitialState(state: SavedState): boolean {\n if (!state) {\n return false;\n } else {\n let mustLoadOnDemand = false;\n\n if (state.open_nodes) {\n mustLoadOnDemand = this.openInitialNodes(state.open_nodes);\n }\n\n if (state.selected_node) {\n this.resetSelection();\n this.selectInitialNodes(state.selected_node);\n }\n\n return mustLoadOnDemand;\n }\n }\n\n public setInitialStateOnDemand(\n state: SavedState,\n cbFinished: () => void\n ): void {\n if (state) {\n this.doSetInitialStateOnDemand(\n state.open_nodes,\n state.selected_node,\n cbFinished\n );\n } else {\n cbFinished();\n }\n }\n\n public getNodeIdToBeSelected(): NodeId | null {\n const state = this.getStateFromStorage();\n\n if (state && state.selected_node) {\n return state.selected_node[0];\n } else {\n return null;\n }\n }\n\n private parseState(jsonData: string): SavedState {\n const state = JSON.parse(jsonData) as Record;\n\n // Check if selected_node is an int (instead of an array)\n if (state && state.selected_node && isInt(state.selected_node)) {\n // Convert to array\n state.selected_node = [state.selected_node];\n }\n\n return state as unknown as SavedState;\n }\n\n private loadFromStorage(): string | null {\n if (this.treeWidget.options.onGetStateFromStorage) {\n return this.treeWidget.options.onGetStateFromStorage();\n } else if (this.supportsLocalStorage()) {\n return localStorage.getItem(this.getKeyName());\n } else {\n return null;\n }\n }\n\n private openInitialNodes(nodeIds: NodeId[]): boolean {\n let mustLoadOnDemand = false;\n\n for (const nodeId of nodeIds) {\n const node = this.treeWidget.getNodeById(nodeId);\n\n if (node) {\n if (!node.load_on_demand) {\n node.is_open = true;\n } else {\n mustLoadOnDemand = true;\n }\n }\n }\n\n return mustLoadOnDemand;\n }\n\n private selectInitialNodes(nodeIds: NodeId[]): boolean {\n let selectCount = 0;\n\n for (const nodeId of nodeIds) {\n const node = this.treeWidget.getNodeById(nodeId);\n\n if (node) {\n selectCount += 1;\n\n this.treeWidget.selectNodeHandler.addToSelection(node);\n }\n }\n\n return selectCount !== 0;\n }\n\n private resetSelection(): void {\n const selectNodeHandler = this.treeWidget.selectNodeHandler;\n\n const selectedNodes = selectNodeHandler.getSelectedNodes();\n\n selectedNodes.forEach((node) => {\n selectNodeHandler.removeFromSelection(node);\n });\n }\n\n private doSetInitialStateOnDemand(\n nodeIdsParam: NodeId[],\n selectedNodes: NodeId[],\n cbFinished: () => void\n ): void {\n let loadingCount = 0;\n let nodeIds = nodeIdsParam;\n\n const openNodes = (): void => {\n const newNodesIds = [];\n\n for (const nodeId of nodeIds) {\n const node = this.treeWidget.getNodeById(nodeId);\n\n if (!node) {\n newNodesIds.push(nodeId);\n } else {\n if (!node.is_loading) {\n if (node.load_on_demand) {\n loadAndOpenNode(node);\n } else {\n this.treeWidget._openNode(node, false, null);\n }\n }\n }\n }\n\n nodeIds = newNodesIds;\n\n if (this.selectInitialNodes(selectedNodes)) {\n this.treeWidget._refreshElements(null);\n }\n\n if (loadingCount === 0) {\n cbFinished();\n }\n };\n\n const loadAndOpenNode = (node: Node): void => {\n loadingCount += 1;\n this.treeWidget._openNode(node, false, () => {\n loadingCount -= 1;\n openNodes();\n });\n };\n\n openNodes();\n }\n\n private getKeyName(): string {\n if (typeof this.treeWidget.options.saveState === \"string\") {\n return this.treeWidget.options.saveState;\n } else {\n return \"tree\";\n }\n }\n\n private supportsLocalStorage(): boolean {\n const testSupport = (): boolean => {\n // Is local storage supported?\n if (localStorage == null) {\n return false;\n } else {\n // Check if it's possible to store an item. Safari does not allow this in private browsing mode.\n try {\n const key = \"_storage_test\";\n sessionStorage.setItem(key, \"value\");\n sessionStorage.removeItem(key);\n } catch (error) {\n return false;\n }\n\n return true;\n }\n };\n\n if (this._supportsLocalStorage == null) {\n this._supportsLocalStorage = testSupport();\n }\n\n return this._supportsLocalStorage;\n }\n}\n","import { JqTreeWidget } from \"./tree.jquery\";\nimport { HitArea, PositionInfo } from \"./types\";\n\nexport default class ScrollHandler {\n private treeWidget: JqTreeWidget;\n private previousTop: number;\n private isInitialized: boolean;\n private $scrollParent: JQuery | null;\n private scrollParentTop: number;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n this.previousTop = -1;\n this.isInitialized = false;\n }\n\n public checkScrolling(): void {\n this.ensureInit();\n this.checkVerticalScrolling();\n this.checkHorizontalScrolling();\n }\n\n public scrollToY(top: number): void {\n this.ensureInit();\n\n if (this.$scrollParent) {\n this.$scrollParent[0].scrollTop = top;\n } else {\n const offset = this.treeWidget.$el.offset();\n const treeTop = offset ? offset.top : 0;\n\n jQuery(document).scrollTop(top + treeTop);\n }\n }\n\n public isScrolledIntoView($element: JQuery): boolean {\n this.ensureInit();\n\n let elementBottom: number;\n let viewBottom: number;\n let elementTop: number;\n let viewTop: number;\n\n const elHeight = $element.height() || 0;\n\n if (this.$scrollParent) {\n viewTop = 0;\n viewBottom = this.$scrollParent.height() || 0;\n\n const offset = $element.offset();\n const originalTop = offset ? offset.top : 0;\n\n elementTop = originalTop - this.scrollParentTop;\n elementBottom = elementTop + elHeight;\n } else {\n viewTop = jQuery(window).scrollTop() || 0;\n\n const windowHeight = jQuery(window).height() || 0;\n viewBottom = viewTop + windowHeight;\n\n const offset = $element.offset();\n\n elementTop = offset ? offset.top : 0;\n elementBottom = elementTop + elHeight;\n }\n\n return elementBottom <= viewBottom && elementTop >= viewTop;\n }\n\n public getScrollLeft(): number {\n if (!this.$scrollParent) {\n return 0;\n } else {\n return this.$scrollParent.scrollLeft() || 0;\n }\n }\n\n private initScrollParent(): void {\n const getParentWithOverflow = (): JQuery | null => {\n const cssAttributes = [\"overflow\", \"overflow-y\"];\n\n const hasOverFlow = ($el: JQuery): boolean => {\n for (const attr of cssAttributes) {\n const overflowValue = $el.css(attr);\n if (\n overflowValue === \"auto\" ||\n overflowValue === \"scroll\"\n ) {\n return true;\n }\n }\n\n return false;\n };\n\n if (hasOverFlow(this.treeWidget.$el)) {\n return this.treeWidget.$el;\n }\n\n for (const el of this.treeWidget.$el.parents().get()) {\n const $el = jQuery(el);\n if (hasOverFlow($el)) {\n return $el;\n }\n }\n\n return null;\n };\n\n const setDocumentAsScrollParent = (): void => {\n this.scrollParentTop = 0;\n this.$scrollParent = null;\n };\n\n if (this.treeWidget.$el.css(\"position\") === \"fixed\") {\n setDocumentAsScrollParent();\n }\n\n const $scrollParent = getParentWithOverflow();\n\n if (\n $scrollParent &&\n $scrollParent.length &&\n $scrollParent[0].tagName !== \"HTML\"\n ) {\n this.$scrollParent = $scrollParent;\n\n const offset = this.$scrollParent.offset();\n this.scrollParentTop = offset ? offset.top : 0;\n } else {\n setDocumentAsScrollParent();\n }\n\n this.isInitialized = true;\n }\n\n private ensureInit(): void {\n if (!this.isInitialized) {\n this.initScrollParent();\n }\n }\n\n private handleVerticalScrollingWithScrollParent(area: HitArea): void {\n const scrollParent = this.$scrollParent && this.$scrollParent[0];\n\n if (!scrollParent) {\n return;\n }\n\n const distanceBottom =\n this.scrollParentTop + scrollParent.offsetHeight - area.bottom;\n\n if (distanceBottom < 20) {\n scrollParent.scrollTop += 20;\n this.treeWidget.refreshHitAreas();\n this.previousTop = -1;\n } else if (area.top - this.scrollParentTop < 20) {\n scrollParent.scrollTop -= 20;\n this.treeWidget.refreshHitAreas();\n this.previousTop = -1;\n }\n }\n\n private handleVerticalScrollingWithDocument(area: HitArea): void {\n const scrollTop = jQuery(document).scrollTop() || 0;\n const distanceTop = area.top - scrollTop;\n\n if (distanceTop < 20) {\n jQuery(document).scrollTop(scrollTop - 20);\n } else {\n const windowHeight = jQuery(window).height() || 0;\n\n if (windowHeight - (area.bottom - scrollTop) < 20) {\n jQuery(document).scrollTop(scrollTop + 20);\n }\n }\n }\n\n private checkVerticalScrolling(): void {\n const hoveredArea = this.treeWidget.dndHandler.hoveredArea;\n\n if (hoveredArea && hoveredArea.top !== this.previousTop) {\n this.previousTop = hoveredArea.top;\n\n if (this.$scrollParent) {\n this.handleVerticalScrollingWithScrollParent(hoveredArea);\n } else {\n this.handleVerticalScrollingWithDocument(hoveredArea);\n }\n }\n }\n\n private checkHorizontalScrolling(): void {\n const positionInfo = this.treeWidget.dndHandler.positionInfo;\n\n if (!positionInfo) {\n return;\n }\n\n if (this.$scrollParent) {\n this.handleHorizontalScrollingWithParent(positionInfo);\n } else {\n this.handleHorizontalScrollingWithDocument(positionInfo);\n }\n }\n\n private handleHorizontalScrollingWithParent(\n positionInfo: PositionInfo\n ): void {\n if (\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return;\n }\n\n const $scrollParent = this.$scrollParent;\n const scrollParentOffset = $scrollParent && $scrollParent.offset();\n\n if (!($scrollParent && scrollParentOffset)) {\n return;\n }\n\n const scrollParent = $scrollParent[0];\n\n const canScrollRight =\n scrollParent.scrollLeft + scrollParent.clientWidth <\n scrollParent.scrollWidth;\n const canScrollLeft = scrollParent.scrollLeft > 0;\n\n const rightEdge = scrollParentOffset.left + scrollParent.clientWidth;\n const leftEdge = scrollParentOffset.left;\n const isNearRightEdge = positionInfo.pageX > rightEdge - 20;\n const isNearLeftEdge = positionInfo.pageX < leftEdge + 20;\n\n if (isNearRightEdge && canScrollRight) {\n scrollParent.scrollLeft = Math.min(\n scrollParent.scrollLeft + 20,\n scrollParent.scrollWidth\n );\n } else if (isNearLeftEdge && canScrollLeft) {\n scrollParent.scrollLeft = Math.max(scrollParent.scrollLeft - 20, 0);\n }\n }\n\n private handleHorizontalScrollingWithDocument(\n positionInfo: PositionInfo\n ): void {\n if (\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return;\n }\n\n const $document = jQuery(document);\n\n const scrollLeft = $document.scrollLeft() || 0;\n const windowWidth = jQuery(window).width() || 0;\n\n const canScrollLeft = scrollLeft > 0;\n\n const isNearRightEdge = positionInfo.pageX > windowWidth - 20;\n const isNearLeftEdge = positionInfo.pageX - scrollLeft < 20;\n\n if (isNearRightEdge) {\n $document.scrollLeft(scrollLeft + 20);\n } else if (isNearLeftEdge && canScrollLeft) {\n $document.scrollLeft(Math.max(scrollLeft - 20, 0));\n }\n }\n}\n","import { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\nexport default class SelectNodeHandler {\n private treeWidget: JqTreeWidget;\n private selectedNodes: Set;\n private selectedSingleNode: Node | null;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n this.selectedNodes = new Set();\n this.clear();\n }\n\n public getSelectedNode(): Node | false {\n const selectedNodes = this.getSelectedNodes();\n\n if (selectedNodes.length) {\n return selectedNodes[0];\n } else {\n return false;\n }\n }\n\n public getSelectedNodes(): Node[] {\n if (this.selectedSingleNode) {\n return [this.selectedSingleNode];\n } else {\n const selectedNodes: Node[] = [];\n\n this.selectedNodes.forEach((id) => {\n const node = this.treeWidget.getNodeById(id);\n if (node) {\n selectedNodes.push(node);\n }\n });\n\n return selectedNodes;\n }\n }\n\n public getSelectedNodesUnder(parent: Node): Node[] {\n if (this.selectedSingleNode) {\n if (parent.isParentOf(this.selectedSingleNode)) {\n return [this.selectedSingleNode];\n } else {\n return [];\n }\n } else {\n const selectedNodes = [];\n\n for (const id in this.selectedNodes) {\n if (\n Object.prototype.hasOwnProperty.call(this.selectedNodes, id)\n ) {\n const node = this.treeWidget.getNodeById(id);\n if (node && parent.isParentOf(node)) {\n selectedNodes.push(node);\n }\n }\n }\n\n return selectedNodes;\n }\n }\n\n public isNodeSelected(node: Node): boolean {\n if (node.id != null) {\n return this.selectedNodes.has(node.id);\n } else if (this.selectedSingleNode) {\n return this.selectedSingleNode.element === node.element;\n } else {\n return false;\n }\n }\n\n public clear(): void {\n this.selectedNodes.clear();\n this.selectedSingleNode = null;\n }\n\n public removeFromSelection(node: Node, includeChildren = false): void {\n if (node.id == null) {\n if (\n this.selectedSingleNode &&\n node.element === this.selectedSingleNode.element\n ) {\n this.selectedSingleNode = null;\n }\n } else {\n this.selectedNodes.delete(node.id);\n\n if (includeChildren) {\n node.iterate(() => {\n if (node.id != null) {\n this.selectedNodes.delete(node.id);\n }\n return true;\n });\n }\n }\n }\n\n public addToSelection(node: Node): void {\n if (node.id != null) {\n this.selectedNodes.add(node.id);\n } else {\n this.selectedSingleNode = node;\n }\n }\n\n public isFocusOnTree(): boolean {\n const activeElement = document.activeElement;\n\n return Boolean(\n activeElement &&\n activeElement.tagName === \"SPAN\" &&\n this.treeWidget._containsElement(activeElement as HTMLElement)\n );\n }\n}\n","import { Position, Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\nimport { DropHint } from \"./types\";\n\nexport type OnFinishOpenNode = (node: Node) => void;\n\nexport class NodeElement {\n public node: Node;\n public $element: JQuery;\n protected treeWidget: JqTreeWidget;\n\n constructor(node: Node, treeWidget: JqTreeWidget) {\n this.init(node, treeWidget);\n }\n\n public init(node: Node, treeWidget: JqTreeWidget): void {\n this.node = node;\n this.treeWidget = treeWidget;\n\n if (!node.element) {\n const element = this.treeWidget.element.get(0);\n\n if (element) {\n node.element = element;\n }\n }\n\n if (node.element) {\n this.$element = jQuery(node.element);\n }\n }\n\n public addDropHint(position: number): DropHint {\n if (this.mustShowBorderDropHint(position)) {\n return new BorderDropHint(\n this.$element,\n this.treeWidget._getScrollLeft()\n );\n } else {\n return new GhostDropHint(this.node, this.$element, position);\n }\n }\n\n public select(mustSetFocus: boolean): void {\n const $li = this.getLi();\n\n $li.addClass(\"jqtree-selected\");\n $li.attr(\"aria-selected\", \"true\");\n\n const $span = this.getSpan();\n $span.attr(\"tabindex\", this.treeWidget.options.tabIndex ?? null);\n\n if (mustSetFocus) {\n $span.trigger(\"focus\");\n }\n }\n\n public deselect(): void {\n const $li = this.getLi();\n\n $li.removeClass(\"jqtree-selected\");\n $li.attr(\"aria-selected\", \"false\");\n\n const $span = this.getSpan();\n $span.removeAttr(\"tabindex\");\n\n $span.blur();\n }\n\n protected getUl(): JQuery {\n return this.$element.children(\"ul:first\");\n }\n\n protected getSpan(): JQuery {\n return this.$element\n .children(\".jqtree-element\")\n .find(\"span.jqtree-title\");\n }\n\n protected getLi(): JQuery {\n return this.$element;\n }\n\n protected mustShowBorderDropHint(position: number): boolean {\n return position === Position.Inside;\n }\n}\n\nexport class FolderElement extends NodeElement {\n public open(\n onFinished: OnFinishOpenNode | null,\n slide = true,\n animationSpeed: JQuery.Duration | string = \"fast\"\n ): void {\n if (this.node.is_open) {\n return;\n }\n\n this.node.is_open = true;\n\n const $button = this.getButton();\n $button.removeClass(\"jqtree-closed\");\n $button.html(\"\");\n\n const buttonEl = $button.get(0);\n\n if (buttonEl) {\n const icon =\n this.treeWidget.renderer.openedIconElement.cloneNode(true);\n\n buttonEl.appendChild(icon);\n }\n\n const doOpen = (): void => {\n const $li = this.getLi();\n $li.removeClass(\"jqtree-closed\");\n\n const $span = this.getSpan();\n $span.attr(\"aria-expanded\", \"true\");\n\n if (onFinished) {\n onFinished(this.node);\n }\n\n this.treeWidget._triggerEvent(\"tree.open\", {\n node: this.node,\n });\n };\n\n if (slide) {\n this.getUl().slideDown(animationSpeed, doOpen);\n } else {\n this.getUl().show();\n doOpen();\n }\n }\n\n public close(\n slide = true,\n animationSpeed: JQuery.Duration | string = \"fast\"\n ): void {\n if (!this.node.is_open) {\n return;\n }\n\n this.node.is_open = false;\n\n const $button = this.getButton();\n $button.addClass(\"jqtree-closed\");\n $button.html(\"\");\n\n const buttonEl = $button.get(0);\n\n if (buttonEl) {\n const icon =\n this.treeWidget.renderer.closedIconElement.cloneNode(true);\n\n buttonEl.appendChild(icon);\n }\n\n const doClose = (): void => {\n const $li = this.getLi();\n $li.addClass(\"jqtree-closed\");\n\n const $span = this.getSpan();\n $span.attr(\"aria-expanded\", \"false\");\n\n this.treeWidget._triggerEvent(\"tree.close\", {\n node: this.node,\n });\n };\n\n if (slide) {\n this.getUl().slideUp(animationSpeed, doClose);\n } else {\n this.getUl().hide();\n doClose();\n }\n }\n\n protected mustShowBorderDropHint(position: number): boolean {\n return !this.node.is_open && position === Position.Inside;\n }\n\n private getButton(): JQuery {\n return this.$element\n .children(\".jqtree-element\")\n .find(\"a.jqtree-toggler\");\n }\n}\n\nexport class BorderDropHint implements DropHint {\n private $hint: JQuery;\n\n constructor($element: JQuery, scrollLeft: number) {\n const $div = $element.children(\".jqtree-element\");\n\n const elWidth = $element.width() || 0;\n const width = Math.max(elWidth + scrollLeft - 4, 0);\n\n const elHeight = $div.outerHeight() || 0;\n const height = Math.max(elHeight - 4, 0);\n\n this.$hint = jQuery('');\n $div.append(this.$hint);\n\n this.$hint.css({ width, height });\n }\n\n public remove(): void {\n this.$hint.remove();\n }\n}\n\nclass GhostDropHint implements DropHint {\n private $element: JQuery;\n private node: Node;\n private $ghost: JQuery;\n\n constructor(node: Node, $element: JQuery, position: number) {\n this.$element = $element;\n\n this.node = node;\n this.$ghost = jQuery(\n `\n `\n );\n\n if (position === Position.After) {\n this.moveAfter();\n } else if (position === Position.Before) {\n this.moveBefore();\n } else if (position === Position.Inside) {\n if (node.isFolder() && node.is_open) {\n this.moveInsideOpenFolder();\n } else {\n this.moveInside();\n }\n }\n }\n\n public remove(): void {\n this.$ghost.remove();\n }\n\n public moveAfter(): void {\n this.$element.after(this.$ghost);\n }\n\n public moveBefore(): void {\n this.$element.before(this.$ghost);\n }\n\n public moveInsideOpenFolder(): void {\n const childElement = this.node.children[0].element;\n\n if (childElement) {\n jQuery(childElement).before(this.$ghost);\n }\n }\n\n public moveInside(): void {\n this.$element.after(this.$ghost);\n this.$ghost.addClass(\"jqtree-inside\");\n }\n}\n","import __version__ from \"./version\";\nimport { DragAndDropHandler } from \"./dragAndDropHandler\";\nimport ElementsRenderer from \"./elementsRenderer\";\nimport DataLoader, { HandleFinishedLoading } from \"./dataLoader\";\nimport KeyHandler from \"./keyHandler\";\nimport MouseWidget from \"./mouse.widget\";\nimport { PositionInfo } from \"./types\";\nimport SaveStateHandler, { SavedState } from \"./saveStateHandler\";\nimport ScrollHandler from \"./scrollHandler\";\nimport SelectNodeHandler from \"./selectNodeHandler\";\nimport SimpleWidget from \"./simple.widget\";\nimport { Node, getPosition } from \"./node\";\nimport { isFunction } from \"./util\";\nimport { FolderElement, NodeElement, OnFinishOpenNode } from \"./nodeElement\";\nimport { JQTreeOptions } from \"./jqtreeOptions\";\n\ninterface ClickTarget {\n node: Node;\n type: \"button\" | \"label\";\n}\n\ninterface SelectNodeOptions {\n mustToggle?: boolean;\n mustSetFocus?: boolean;\n}\n\nconst NODE_PARAM_IS_EMPTY = \"Node parameter is empty\";\nconst PARAM_IS_EMPTY = \"Parameter is empty: \";\n\nexport class JqTreeWidget extends MouseWidget {\n protected static defaults: JQTreeOptions = {\n animationSpeed: \"fast\",\n autoEscape: true,\n autoOpen: false, // true / false / int (open n levels starting at 0)\n buttonLeft: true,\n // The symbol to use for a closed node - â–º BLACK RIGHT-POINTING POINTER\n // http://www.fileformat.info/info/unicode/char/25ba/index.htm\n closedIcon: undefined,\n data: undefined,\n dataFilter: undefined,\n dataUrl: undefined,\n dragAndDrop: false,\n keyboardSupport: true,\n nodeClass: Node,\n onCanMove: undefined, // Can this node be moved?\n onCanMoveTo: undefined, // Can this node be moved to this position? function(moved_node, target_node, position)\n onCanSelectNode: undefined,\n onCreateLi: undefined,\n onDragMove: undefined,\n onDragStop: undefined,\n onGetStateFromStorage: undefined,\n onIsMoveHandle: undefined,\n onLoadFailed: undefined,\n onLoading: undefined,\n onSetStateFromStorage: undefined,\n openedIcon: \"▼\",\n openFolderDelay: 500, // The delay for opening a folder during drag and drop; the value is in milliseconds\n // The symbol to use for an open node - â–¼ BLACK DOWN-POINTING TRIANGLE\n // http://www.fileformat.info/info/unicode/char/25bc/index.htm\n rtl: undefined, // right-to-left support; true / false (default)\n saveState: false, // true / false / string (cookie name)\n selectable: true,\n showEmptyFolder: false,\n slide: true, // must display slide animation?\n startDndDelay: 300, // The delay for starting dnd (in milliseconds)\n tabIndex: 0,\n useContextMenu: true,\n };\n\n public element: JQuery;\n public tree: Node;\n public dndHandler: DragAndDropHandler;\n public renderer: ElementsRenderer;\n public dataLoader: DataLoader;\n public scrollHandler: ScrollHandler;\n public selectNodeHandler: SelectNodeHandler;\n\n private isInitialized: boolean;\n private saveStateHandler: SaveStateHandler;\n private keyHandler: KeyHandler;\n\n public toggle(node: Node, slideParam: null | boolean = null): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const slide = slideParam ?? this.options.slide;\n\n if (node.is_open) {\n this.closeNode(node, slide);\n } else {\n this.openNode(node, slide);\n }\n\n return this.element;\n }\n\n public getTree(): Node {\n return this.tree;\n }\n\n public selectNode(\n node: Node | null,\n optionsParam?: SelectNodeOptions\n ): JQuery {\n this.doSelectNode(node, optionsParam);\n return this.element;\n }\n\n public getSelectedNode(): Node | false {\n return this.selectNodeHandler.getSelectedNode();\n }\n\n public toJson(): string {\n return JSON.stringify(this.tree.getData());\n }\n\n public loadData(data: NodeData[], parentNode: Node | null): JQuery {\n this.doLoadData(data, parentNode);\n return this.element;\n }\n\n /*\n signatures:\n - loadDataFromUrl(url, parent_node=null, on_finished=null)\n loadDataFromUrl('/my_data');\n loadDataFromUrl('/my_data', node1);\n loadDataFromUrl('/my_data', node1, function() { console.log('finished'); });\n loadDataFromUrl('/my_data', null, function() { console.log('finished'); });\n\n - loadDataFromUrl(parent_node=null, on_finished=null)\n loadDataFromUrl();\n loadDataFromUrl(node1);\n loadDataFromUrl(null, function() { console.log('finished'); });\n loadDataFromUrl(node1, function() { console.log('finished'); });\n */\n public loadDataFromUrl(\n param1: string | null | Node,\n param2?: Node | null | HandleFinishedLoading,\n param3?: HandleFinishedLoading\n ): JQuery {\n if (typeof param1 === \"string\") {\n // first parameter is url\n this.doLoadDataFromUrl(\n param1,\n param2 as Node | null,\n param3 ?? null\n );\n } else {\n // first parameter is not url\n this.doLoadDataFromUrl(\n null,\n param1,\n param2 as HandleFinishedLoading | null\n );\n }\n\n return this.element;\n }\n\n public reload(onFinished: HandleFinishedLoading | null): JQuery {\n this.doLoadDataFromUrl(null, null, onFinished);\n return this.element;\n }\n\n public refresh(): JQuery {\n this._refreshElements(null);\n return this.element;\n }\n\n public getNodeById(nodeId: NodeId): Node | null {\n return this.tree.getNodeById(nodeId);\n }\n\n public getNodeByName(name: string): Node | null {\n return this.tree.getNodeByName(name);\n }\n\n public getNodeByNameMustExist(name: string): Node {\n return this.tree.getNodeByNameMustExist(name);\n }\n\n public getNodesByProperty(key: string, value: unknown): Node[] {\n return this.tree.getNodesByProperty(key, value);\n }\n\n public getNodeByHtmlElement(\n element: HTMLElement | JQuery\n ): Node | null {\n return this.getNode(jQuery(element));\n }\n\n public getNodeByCallback(callback: (node: Node) => boolean): Node | null {\n return this.tree.getNodeByCallback(callback);\n }\n\n public openNode(\n node: Node,\n param1?: boolean | OnFinishOpenNode,\n param2?: OnFinishOpenNode\n ): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const parseParams = (): [boolean, OnFinishOpenNode | null] => {\n let onFinished: OnFinishOpenNode | null;\n let slide: boolean | null;\n\n if (isFunction(param1)) {\n onFinished = param1 as OnFinishOpenNode | null;\n slide = null;\n } else {\n slide = param1 as boolean;\n onFinished = param2 as OnFinishOpenNode;\n }\n\n if (slide == null) {\n slide = this.options.slide ?? false;\n }\n\n return [slide, onFinished];\n };\n\n const [slide, onFinished] = parseParams();\n\n this._openNode(node, slide, onFinished);\n return this.element;\n }\n\n public closeNode(node: Node, slideParam?: null | boolean): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const slide = slideParam ?? this.options.slide;\n\n if (node.isFolder() || node.isEmptyFolder) {\n new FolderElement(node, this).close(\n slide,\n this.options.animationSpeed\n );\n\n this.saveState();\n }\n\n return this.element;\n }\n\n public isDragging(): boolean {\n return this.dndHandler.isDragging;\n }\n\n public refreshHitAreas(): JQuery {\n this.dndHandler.refresh();\n return this.element;\n }\n\n public addNodeAfter(\n newNodeInfo: NodeData,\n existingNode: Node\n ): Node | null {\n const newNode = existingNode.addAfter(newNodeInfo);\n\n if (newNode) {\n this._refreshElements(existingNode.parent);\n }\n\n return newNode;\n }\n\n public addNodeBefore(\n newNodeInfo: NodeData,\n existingNode: Node\n ): Node | null {\n if (!existingNode) {\n throw Error(PARAM_IS_EMPTY + \"existingNode\");\n }\n\n const newNode = existingNode.addBefore(newNodeInfo);\n\n if (newNode) {\n this._refreshElements(existingNode.parent);\n }\n\n return newNode;\n }\n\n public addParentNode(\n newNodeInfo: NodeData,\n existingNode: Node\n ): Node | null {\n if (!existingNode) {\n throw Error(PARAM_IS_EMPTY + \"existingNode\");\n }\n\n const newNode = existingNode.addParent(newNodeInfo);\n\n if (newNode) {\n this._refreshElements(newNode.parent);\n }\n\n return newNode;\n }\n\n public removeNode(node: Node): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n if (!node.parent) {\n throw Error(\"Node has no parent\");\n }\n\n this.selectNodeHandler.removeFromSelection(node, true); // including children\n\n const parent = node.parent;\n node.remove();\n this._refreshElements(parent);\n\n return this.element;\n }\n\n public appendNode(newNodeInfo: NodeData, parentNodeParam?: Node): Node {\n const parentNode = parentNodeParam || this.tree;\n\n const node = parentNode.append(newNodeInfo);\n\n this._refreshElements(parentNode);\n\n return node;\n }\n\n public prependNode(newNodeInfo: NodeData, parentNodeParam?: Node): Node {\n const parentNode = parentNodeParam ?? this.tree;\n\n const node = parentNode.prepend(newNodeInfo);\n\n this._refreshElements(parentNode);\n\n return node;\n }\n\n public updateNode(node: Node, data: NodeData): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const idIsChanged =\n typeof data === \"object\" && data.id && data.id !== node.id;\n\n if (idIsChanged) {\n this.tree.removeNodeFromIndex(node);\n }\n\n node.setData(data);\n\n if (idIsChanged) {\n this.tree.addNodeToIndex(node);\n }\n\n if (\n typeof data === \"object\" &&\n data[\"children\"] &&\n data[\"children\"] instanceof Array\n ) {\n node.removeChildren();\n\n if (data.children.length) {\n node.loadFromData(data.children as Node[]);\n }\n }\n\n this._refreshElements(node);\n\n return this.element;\n }\n\n private isSelectedNodeInSubtree(subtree: Node): boolean {\n const selectedNode = this.getSelectedNode();\n\n if (!selectedNode) {\n return false;\n } else {\n return subtree === selectedNode || subtree.isParentOf(selectedNode);\n }\n }\n\n public moveNode(node: Node, targetNode: Node, position: string): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n if (!targetNode) {\n throw Error(PARAM_IS_EMPTY + \"targetNode\");\n }\n\n const positionIndex = getPosition(position);\n\n if (positionIndex !== undefined) {\n this.tree.moveNode(node, targetNode, positionIndex);\n this._refreshElements(null);\n }\n\n return this.element;\n }\n\n public getStateFromStorage(): SavedState | null {\n return this.saveStateHandler.getStateFromStorage();\n }\n\n public addToSelection(node: Node, mustSetFocus?: boolean): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n this.selectNodeHandler.addToSelection(node);\n\n this._getNodeElementForNode(node).select(\n mustSetFocus === undefined ? true : mustSetFocus\n );\n\n this.saveState();\n\n return this.element;\n }\n\n public getSelectedNodes(): Node[] {\n return this.selectNodeHandler.getSelectedNodes();\n }\n\n public isNodeSelected(node: Node): boolean {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n return this.selectNodeHandler.isNodeSelected(node);\n }\n\n public removeFromSelection(node: Node): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n this.selectNodeHandler.removeFromSelection(node);\n\n this._getNodeElementForNode(node).deselect();\n this.saveState();\n\n return this.element;\n }\n\n public scrollToNode(node: Node): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const nodeOffset = jQuery(node.element).offset();\n const nodeTop = nodeOffset ? nodeOffset.top : 0;\n\n const treeOffset = this.$el.offset();\n const treeTop = treeOffset ? treeOffset.top : 0;\n\n const top = nodeTop - treeTop;\n\n this.scrollHandler.scrollToY(top);\n\n return this.element;\n }\n\n public getState(): SavedState | null {\n return this.saveStateHandler.getState();\n }\n\n public setState(state: SavedState): JQuery {\n this.saveStateHandler.setInitialState(state);\n this._refreshElements(null);\n\n return this.element;\n }\n\n public setOption(option: string, value: unknown): JQuery {\n (this.options as unknown as Record)[option] = value;\n return this.element;\n }\n\n public moveDown(): JQuery {\n const selectedNode = this.getSelectedNode();\n if (selectedNode) {\n this.keyHandler.moveDown(selectedNode);\n }\n\n return this.element;\n }\n\n public moveUp(): JQuery {\n const selectedNode = this.getSelectedNode();\n if (selectedNode) {\n this.keyHandler.moveUp(selectedNode);\n }\n\n return this.element;\n }\n\n public getVersion(): string {\n return __version__;\n }\n\n public _triggerEvent(\n eventName: string,\n values?: Record\n ): JQuery.Event {\n const event = jQuery.Event(eventName, values);\n this.element.trigger(event);\n return event;\n }\n\n public _openNode(\n node: Node,\n slide = true,\n onFinished: OnFinishOpenNode | null\n ): void {\n const doOpenNode = (\n _node: Node,\n _slide: boolean,\n _onFinished: OnFinishOpenNode | null\n ): void => {\n const folderElement = new FolderElement(_node, this);\n folderElement.open(\n _onFinished,\n _slide,\n this.options.animationSpeed\n );\n };\n\n if (node.isFolder() || node.isEmptyFolder) {\n if (node.load_on_demand) {\n this.loadFolderOnDemand(node, slide, onFinished);\n } else {\n let parent = node.parent;\n\n while (parent) {\n // nb: do not open root element\n if (parent.parent) {\n doOpenNode(parent, false, null);\n }\n parent = parent.parent;\n }\n\n doOpenNode(node, slide, onFinished);\n this.saveState();\n }\n }\n }\n\n /*\n Redraw the tree or part of the tree.\n from_node: redraw this subtree\n */\n public _refreshElements(fromNode: Node | null): void {\n const mustSetFocus = this.selectNodeHandler.isFocusOnTree();\n const mustSelect = fromNode\n ? this.isSelectedNodeInSubtree(fromNode)\n : false;\n\n this.renderer.render(fromNode);\n\n if (mustSelect) {\n this.selectCurrentNode(mustSetFocus);\n }\n\n this._triggerEvent(\"tree.refresh\");\n }\n\n public _getNodeElementForNode(node: Node): NodeElement {\n if (node.isFolder()) {\n return new FolderElement(node, this);\n } else {\n return new NodeElement(node, this);\n }\n }\n\n public _getNodeElement($element: JQuery): NodeElement | null {\n const node = this.getNode($element);\n if (node) {\n return this._getNodeElementForNode(node);\n } else {\n return null;\n }\n }\n\n public _containsElement(element: HTMLElement): boolean {\n const node = this.getNode(jQuery(element));\n\n return node != null && node.tree === this.tree;\n }\n\n public _getScrollLeft(): number {\n return this.scrollHandler.getScrollLeft();\n }\n\n public init(): void {\n super.init();\n\n this.element = this.$el;\n this.isInitialized = false;\n\n this.options.rtl = this.getRtlOption();\n\n if (this.options.closedIcon == null) {\n this.options.closedIcon = this.getDefaultClosedIcon();\n }\n\n this.renderer = new ElementsRenderer(this);\n this.dataLoader = new DataLoader(this);\n this.saveStateHandler = new SaveStateHandler(this);\n this.selectNodeHandler = new SelectNodeHandler(this);\n this.dndHandler = new DragAndDropHandler(this);\n this.scrollHandler = new ScrollHandler(this);\n this.keyHandler = new KeyHandler(this);\n\n this.initData();\n\n this.element.on(\"click\", this.handleClick);\n this.element.on(\"dblclick\", this.handleDblclick);\n\n if (this.options.useContextMenu) {\n this.element.on(\"contextmenu\", this.handleContextmenu);\n }\n }\n\n public deinit(): void {\n this.element.empty();\n this.element.off();\n\n this.keyHandler.deinit();\n\n this.tree = new Node({}, true);\n\n super.deinit();\n }\n\n protected mouseCapture(positionInfo: PositionInfo): boolean | null {\n if (this.options.dragAndDrop) {\n return this.dndHandler.mouseCapture(positionInfo);\n } else {\n return false;\n }\n }\n\n protected mouseStart(positionInfo: PositionInfo): boolean {\n if (this.options.dragAndDrop) {\n return this.dndHandler.mouseStart(positionInfo);\n } else {\n return false;\n }\n }\n\n protected mouseDrag(positionInfo: PositionInfo): boolean {\n if (this.options.dragAndDrop) {\n const result = this.dndHandler.mouseDrag(positionInfo);\n\n this.scrollHandler.checkScrolling();\n return result;\n } else {\n return false;\n }\n }\n\n protected mouseStop(positionInfo: PositionInfo): boolean {\n if (this.options.dragAndDrop) {\n return this.dndHandler.mouseStop(positionInfo);\n } else {\n return false;\n }\n }\n\n protected getMouseDelay(): number {\n return this.options.startDndDelay ?? 0;\n }\n\n private initData(): void {\n if (this.options.data) {\n this.doLoadData(this.options.data, null);\n } else {\n const dataUrl = this.getDataUrlInfo(null);\n\n if (dataUrl) {\n this.doLoadDataFromUrl(null, null, null);\n } else {\n this.doLoadData([], null);\n }\n }\n }\n\n private getDataUrlInfo(node: Node | null): JQuery.AjaxSettings | null {\n const dataUrl =\n this.options.dataUrl || (this.element.data(\"url\") as string | null);\n\n const getUrlFromString = (url: string): JQuery.AjaxSettings => {\n const urlInfo: JQuery.AjaxSettings = { url };\n\n setUrlInfoData(urlInfo);\n\n return urlInfo;\n };\n\n const setUrlInfoData = (urlInfo: JQuery.AjaxSettings): void => {\n if (node?.id) {\n // Load on demand of a subtree; add node parameter\n const data = { node: node.id };\n urlInfo[\"data\"] = data;\n } else {\n // Add selected_node parameter\n const selectedNodeId = this.getNodeIdToBeSelected();\n if (selectedNodeId) {\n const data = { selected_node: selectedNodeId };\n urlInfo[\"data\"] = data;\n }\n }\n };\n\n if (typeof dataUrl === \"function\") {\n return dataUrl(node);\n } else if (typeof dataUrl === \"string\") {\n return getUrlFromString(dataUrl);\n } else if (dataUrl && typeof dataUrl === \"object\") {\n setUrlInfoData(dataUrl);\n return dataUrl;\n } else {\n return null;\n }\n }\n\n private getNodeIdToBeSelected(): NodeId | null {\n if (this.options.saveState) {\n return this.saveStateHandler.getNodeIdToBeSelected();\n } else {\n return null;\n }\n }\n\n private initTree(data: NodeData[]): void {\n const doInit = (): void => {\n if (!this.isInitialized) {\n this.isInitialized = true;\n this._triggerEvent(\"tree.init\");\n }\n };\n\n if (!this.options.nodeClass) {\n return;\n }\n\n this.tree = new this.options.nodeClass(\n null,\n true,\n this.options.nodeClass\n );\n\n this.selectNodeHandler.clear();\n\n this.tree.loadFromData(data);\n\n const mustLoadOnDemand = this.setInitialState();\n\n this._refreshElements(null);\n\n if (!mustLoadOnDemand) {\n doInit();\n } else {\n // Load data on demand and then init the tree\n this.setInitialStateOnDemand(doInit);\n }\n }\n\n // Set initial state, either by restoring the state or auto-opening nodes\n // result: must load nodes on demand?\n private setInitialState(): boolean {\n const restoreState = (): boolean[] => {\n // result: is state restored, must load on demand?\n if (!this.options.saveState) {\n return [false, false];\n } else {\n const state = this.saveStateHandler.getStateFromStorage();\n\n if (!state) {\n return [false, false];\n } else {\n const mustLoadOnDemand =\n this.saveStateHandler.setInitialState(state);\n\n // return true: the state is restored\n return [true, mustLoadOnDemand];\n }\n }\n };\n\n const autoOpenNodes = (): boolean => {\n // result: must load on demand?\n if (this.options.autoOpen === false) {\n return false;\n }\n\n const maxLevel = this.getAutoOpenMaxLevel();\n let mustLoadOnDemand = false;\n\n this.tree.iterate((node: Node, level: number) => {\n if (node.load_on_demand) {\n mustLoadOnDemand = true;\n return false;\n } else if (!node.hasChildren()) {\n return false;\n } else {\n node.is_open = true;\n return level !== maxLevel;\n }\n });\n\n return mustLoadOnDemand;\n };\n\n let [isRestored, mustLoadOnDemand] = restoreState(); // eslint-disable-line prefer-const\n\n if (!isRestored) {\n mustLoadOnDemand = autoOpenNodes();\n }\n\n return mustLoadOnDemand;\n }\n\n // Set the initial state for nodes that are loaded on demand\n // Call cb_finished when done\n private setInitialStateOnDemand(cbFinished: () => void): void {\n const restoreState = (): boolean => {\n if (!this.options.saveState) {\n return false;\n } else {\n const state = this.saveStateHandler.getStateFromStorage();\n\n if (!state) {\n return false;\n } else {\n this.saveStateHandler.setInitialStateOnDemand(\n state,\n cbFinished\n );\n\n return true;\n }\n }\n };\n\n const autoOpenNodes = (): void => {\n const maxLevel = this.getAutoOpenMaxLevel();\n let loadingCount = 0;\n\n const loadAndOpenNode = (node: Node): void => {\n loadingCount += 1;\n this._openNode(node, false, () => {\n loadingCount -= 1;\n openNodes();\n });\n };\n\n const openNodes = (): void => {\n this.tree.iterate((node: Node, level: number) => {\n if (node.load_on_demand) {\n if (!node.is_loading) {\n loadAndOpenNode(node);\n }\n\n return false;\n } else {\n this._openNode(node, false, null);\n\n return level !== maxLevel;\n }\n });\n\n if (loadingCount === 0) {\n cbFinished();\n }\n };\n\n openNodes();\n };\n\n if (!restoreState()) {\n autoOpenNodes();\n }\n }\n\n private getAutoOpenMaxLevel(): number {\n if (this.options.autoOpen === true) {\n return -1;\n } else if (typeof this.options.autoOpen === \"number\") {\n return this.options.autoOpen;\n } else if (typeof this.options.autoOpen === \"string\") {\n return parseInt(this.options.autoOpen, 10);\n } else {\n return 0;\n }\n }\n\n private handleClick = (\n e: JQuery.ClickEvent\n ): void => {\n const clickTarget = this.getClickTarget(e.target);\n\n if (clickTarget) {\n if (clickTarget.type === \"button\") {\n this.toggle(clickTarget.node, this.options.slide);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (clickTarget.type === \"label\") {\n const node = clickTarget.node;\n const event = this._triggerEvent(\"tree.click\", {\n node,\n click_event: e,\n });\n\n if (!event.isDefaultPrevented()) {\n this.doSelectNode(node);\n }\n }\n }\n };\n\n private handleDblclick = (\n e: JQuery.DoubleClickEvent\n ): void => {\n const clickTarget = this.getClickTarget(e.target);\n\n if (clickTarget?.type === \"label\") {\n this._triggerEvent(\"tree.dblclick\", {\n node: clickTarget.node,\n click_event: e,\n });\n }\n };\n\n private getClickTarget(element: EventTarget): ClickTarget | null {\n const $target = jQuery(element);\n\n const $button = $target.closest(\".jqtree-toggler\");\n\n if ($button.length) {\n const node = this.getNode($button as JQuery);\n\n if (node) {\n return {\n type: \"button\",\n node,\n };\n }\n } else {\n const $el = $target.closest(\".jqtree-element\");\n if ($el.length) {\n const node = this.getNode($el as JQuery);\n if (node) {\n return {\n type: \"label\",\n node,\n };\n }\n }\n }\n\n return null;\n }\n\n private getNode($element: JQuery): null | Node {\n const $li = $element.closest(\"li.jqtree_common\");\n if ($li.length === 0) {\n return null;\n } else {\n return $li.data(\"node\") as Node;\n }\n }\n\n private handleContextmenu = (\n e: JQuery.ContextMenuEvent\n ) => {\n const $div = jQuery(e.target).closest(\"ul.jqtree-tree .jqtree-element\");\n if ($div.length) {\n const node = this.getNode($div);\n if (node) {\n e.preventDefault();\n e.stopPropagation();\n\n this._triggerEvent(\"tree.contextmenu\", {\n node,\n click_event: e,\n });\n return false;\n }\n }\n\n return null;\n };\n\n private saveState(): void {\n if (this.options.saveState) {\n this.saveStateHandler.saveState();\n }\n }\n\n private selectCurrentNode(mustSetFocus: boolean): void {\n const node = this.getSelectedNode();\n if (node) {\n const nodeElement = this._getNodeElementForNode(node);\n if (nodeElement) {\n nodeElement.select(mustSetFocus);\n }\n }\n }\n\n private deselectCurrentNode(): void {\n const node = this.getSelectedNode();\n if (node) {\n this.removeFromSelection(node);\n }\n }\n\n private getDefaultClosedIcon(): string {\n if (this.options.rtl) {\n // triangle to the left\n return \"◀\";\n } else {\n // triangle to the right\n return \"►\";\n }\n }\n\n private getRtlOption(): boolean {\n if (this.options.rtl != null) {\n return this.options.rtl;\n } else {\n const dataRtl = this.element.data(\"rtl\") as unknown;\n\n if (\n dataRtl !== null &&\n dataRtl !== false &&\n dataRtl !== undefined\n ) {\n return true;\n } else {\n return false;\n }\n }\n }\n\n private doSelectNode(\n node: Node | null,\n optionsParam?: SelectNodeOptions\n ): void {\n const saveState = (): void => {\n if (this.options.saveState) {\n this.saveStateHandler.saveState();\n }\n };\n\n if (!node) {\n // Called with empty node -> deselect current node\n this.deselectCurrentNode();\n saveState();\n return;\n }\n const defaultOptions = { mustSetFocus: true, mustToggle: true };\n const selectOptions = { ...defaultOptions, ...(optionsParam || {}) };\n\n const canSelect = (): boolean => {\n if (this.options.onCanSelectNode) {\n return (\n this.options.selectable === true &&\n this.options.onCanSelectNode(node)\n );\n } else {\n return this.options.selectable === true;\n }\n };\n\n const openParents = (): void => {\n const parent = node.parent;\n\n if (parent && parent.parent && !parent.is_open) {\n this.openNode(parent, false);\n }\n };\n\n if (!canSelect()) {\n return;\n }\n\n if (this.selectNodeHandler.isNodeSelected(node)) {\n if (selectOptions.mustToggle) {\n this.deselectCurrentNode();\n this._triggerEvent(\"tree.select\", {\n node: null,\n previous_node: node,\n });\n }\n } else {\n const deselectedNode = this.getSelectedNode() || null;\n this.deselectCurrentNode();\n this.addToSelection(node, selectOptions.mustSetFocus);\n\n this._triggerEvent(\"tree.select\", {\n node,\n deselected_node: deselectedNode,\n });\n openParents();\n }\n\n saveState();\n }\n\n private doLoadData(data: NodeData[] | null, parentNode: Node | null): void {\n if (data) {\n if (parentNode) {\n this.deselectNodes(parentNode);\n this.loadSubtree(data, parentNode);\n } else {\n this.initTree(data);\n }\n\n if (this.isDragging()) {\n this.dndHandler.refresh();\n }\n }\n\n this._triggerEvent(\"tree.load_data\", {\n tree_data: data,\n parent_node: parentNode,\n });\n }\n\n private deselectNodes(parentNode: Node): void {\n const selectedNodesUnderParent =\n this.selectNodeHandler.getSelectedNodesUnder(parentNode);\n for (const n of selectedNodesUnderParent) {\n this.selectNodeHandler.removeFromSelection(n);\n }\n }\n\n private loadSubtree(data: NodeData[], parentNode: Node): void {\n parentNode.loadFromData(data);\n\n parentNode.load_on_demand = false;\n parentNode.is_loading = false;\n\n this._refreshElements(parentNode);\n }\n\n private doLoadDataFromUrl(\n urlInfoParam: string | JQuery.AjaxSettings | null,\n parentNode: Node | null,\n onFinished: HandleFinishedLoading | null\n ): void {\n const urlInfo = urlInfoParam || this.getDataUrlInfo(parentNode);\n\n this.dataLoader.loadFromUrl(urlInfo, parentNode, onFinished);\n }\n\n private loadFolderOnDemand(\n node: Node,\n slide = true,\n onFinished: OnFinishOpenNode | null\n ): void {\n node.is_loading = true;\n\n this.doLoadDataFromUrl(null, node, () => {\n this._openNode(node, slide, onFinished);\n });\n }\n}\n\nSimpleWidget.register(JqTreeWidget, \"tree\");\n"],"names":["version","Position","positionNames","before","Before","after","After","inside","Inside","none","None","getPositionName","position","name","Object","prototype","hasOwnProperty","call","getPosition","isNodeRecordWithChildren","data","Array","Node","o","isRoot","nodeClass","isEmptyFolder","load_on_demand","setData","children","parent","idMapping","Map","tree","key","value","removeChildren","node","createNode","addChild","length","loadFromData","push","setParent","index","splice","doRemoveChild","indexOf","hasChildren","callback","_iterate","level","child","result","movedNode","targetNode","isParentOf","addChildAtPosition","getChildIndex","includeParent","getDataFromNodes","nodes","map","tmpNode","k","v","getNodeByCallback","n","iterate","nodeInfo","childIndex","newParent","originalParent","removeChild","nodeId","get","id","set","removeNodeFromIndex","previousIndex","nextIndex","filter","f","includeChildren","nextSibling","getNextSibling","getNextNode","is_open","previousSibling","getPreviousSibling","getParent","getLastChild","lastChild","addNode","nodeData","addChildren","childrenData","initFromData","addNodeToIndex","getNodeClass","DragAndDropHandler","treeWidget","hoveredArea","hitAreas","isDragging","currentItem","positionInfo","$element","jQuery","target","mustCaptureElement","options","onIsMoveHandle","nodeElement","_getNodeElement","onCanMove","pageX","undefined","pageY","refresh","offset","left","top","dragElement","DragElement","element","autoEscape","addClass","move","area","findHoveredArea","canMoveToArea","isFolder","stopOpenFolderTimer","mustOpenFolderTimer","startOpenFolderTimer","updateDropHint","removeDropHint","onDragMove","originalEvent","moveItem","clear","removeHover","removeHitAreas","removeClass","onDragStop","generateHitAreas","_getNodeElementForNode","hitAreasGenerator","HitAreasGenerator","getTreeDimensions","bottom","generate","is","onCanMoveTo","positionName","remove","previousGhost","x","y","dimensions","right","low","high","mid","addDropHint","folder","openFolder","_openNode","slide","openFolderDelay","openFolderTimer","window","setTimeout","clearTimeout","previousParent","doMove","moveNode","empty","_refreshElements","event","_triggerEvent","move_info","moved_node","target_node","previous_parent","do_move","original_event","isDefaultPrevented","el","width","height","_getScrollLeft","VisibleNodeIterator","isFirstNode","_iterateNode","nextNode","mustIterateInside","handleFirstNode","handleNode","handleOpenFolder","handleClosedFolder","childrenLength","forEach","_","i","handleAfterOpenFolder","currentNode","treeBottom","positions","lastTop","previousTop","group","generateHitAreasForGroup","addPosition","getTop","positionsInGroup","positionCount","Math","min","areaHeight","round","areaTop","nodeName","offsetX","offsetY","$tree","text","html","css","append","isInt","isFunction","getBoolString","ElementsRenderer","openedIconElement","createButtonElement","openedIcon","closedIconElement","closedIcon","fromNode","renderFromNode","renderFromRoot","createDomElements","$previousLi","li","createLi","getLevel","attachNodeData","isRootNode","ul","createUl","appendChild","classString","role","rtl","dragAndDrop","document","createElement","className","setAttribute","isSelected","Boolean","selectNodeHandler","isNodeSelected","mustShowFolder","showEmptyFolder","createFolderLi","createNodeLi","onCreateLi","buttonClasses","getButtonClasses","folderClasses","getFolderClasses","iconElement","div","buttonLink","cloneNode","buttonLeft","createTitleSpan","liClasses","join","isOpen","titleSpan","classes","tabIndex","textContent","innerHTML","is_loading","createTextNode","DataLoader","urlInfo","parentNode","onFinished","$el","getDomElement","addLoadingClass","notifyLoading","stopLoading","removeLoadingClass","handleSuccess","loadData","parseData","handleError","jqXHR","onLoadFailed","submitRequest","isLoading","onLoading","urlInfoInput","url","ajaxSettings","_objectSpread","method","cache","dataType","success","error","toUpperCase","ajax","dataFilter","getParsedData","JSON","parse","parsedData","KeyHandler","e","canHandleKeyboard","selectedNode","getSelectedNode","which","DOWN","moveDown","UP","moveUp","RIGHT","moveRight","LEFT","moveLeft","keyboardSupport","on","handleKeyDown","off","selectNode","getNextVisibleNode","getPreviousVisibleNode","openNode","closeNode","scrollHandler","isScrolledIntoView","find","scrollToNode","isFocusOnTree","register","widgetClass","widgetName","getDataKey","getWidgetData","dataKey","widget","SimpleWidget","createWidget","existingWidget","simpleWidgetClass","init","destroyWidget","destroy","removeData","callFunction","functionName","args","simpleWidget","widgetFunction","apply","fn","argument1","defaults","constructor","deinit","getPositionInfoFromMouseEvent","getPositionInfoFromTouch","touch","MouseWidget","button","handleMouseDown","cancelable","preventDefault","handleMouseMove","handleMouseUp","touches","changedTouches","addEventListener","mouseDown","passive","touchStart","isMouseStarted","mouseDelayTimer","isMouseDelayMet","mouseDownInfo","removeEventListener","removeMouseMoveEventListeners","mouseCapture","handleStartMouse","mouseMove","touchMove","mouseUp","touchEnd","mouseDelay","getMouseDelay","startMouseDelayTimer","mouseDrag","mouseStart","mouseStop","SaveStateHandler","state","stringify","getState","onSetStateFromStorage","supportsLocalStorage","localStorage","setItem","getKeyName","jsonData","loadFromStorage","parseState","getOpenNodeIds","openNodes","getSelectedNodeIds","selectedNodeIds","getSelectedNodes","open_nodes","selected_node","mustLoadOnDemand","openInitialNodes","resetSelection","selectInitialNodes","cbFinished","doSetInitialStateOnDemand","getStateFromStorage","onGetStateFromStorage","getItem","nodeIds","getNodeById","selectCount","addToSelection","selectedNodes","removeFromSelection","nodeIdsParam","loadingCount","newNodesIds","loadAndOpenNode","saveState","testSupport","sessionStorage","removeItem","_supportsLocalStorage","ScrollHandler","isInitialized","ensureInit","checkVerticalScrolling","checkHorizontalScrolling","$scrollParent","scrollTop","treeTop","elementBottom","viewBottom","elementTop","viewTop","elHeight","originalTop","scrollParentTop","windowHeight","scrollLeft","getParentWithOverflow","cssAttributes","hasOverFlow","attr","overflowValue","parents","setDocumentAsScrollParent","tagName","initScrollParent","scrollParent","distanceBottom","offsetHeight","refreshHitAreas","distanceTop","dndHandler","handleVerticalScrollingWithScrollParent","handleVerticalScrollingWithDocument","handleHorizontalScrollingWithParent","handleHorizontalScrollingWithDocument","scrollParentOffset","canScrollRight","clientWidth","scrollWidth","canScrollLeft","rightEdge","leftEdge","isNearRightEdge","isNearLeftEdge","max","$document","windowWidth","SelectNodeHandler","Set","selectedSingleNode","has","add","activeElement","_containsElement","NodeElement","mustShowBorderDropHint","BorderDropHint","GhostDropHint","mustSetFocus","$li","getLi","$span","getSpan","trigger","removeAttr","blur","FolderElement","animationSpeed","$button","getButton","buttonEl","icon","renderer","doOpen","getUl","slideDown","show","doClose","slideUp","hide","$div","elWidth","outerHeight","$hint","$ghost","moveAfter","moveBefore","moveInsideOpenFolder","moveInside","childElement","NODE_PARAM_IS_EMPTY","PARAM_IS_EMPTY","JqTreeWidget","clickTarget","getClickTarget","type","toggle","stopPropagation","click_event","doSelectNode","closest","getNode","slideParam","Error","optionsParam","getData","doLoadData","param1","param2","param3","doLoadDataFromUrl","getNodeByName","getNodeByNameMustExist","getNodesByProperty","parseParams","close","newNodeInfo","existingNode","newNode","addAfter","addBefore","addParent","parentNodeParam","prepend","idIsChanged","subtree","positionIndex","saveStateHandler","select","deselect","nodeOffset","nodeTop","treeOffset","scrollToY","setInitialState","option","keyHandler","__version__","eventName","values","Event","doOpenNode","_node","_slide","_onFinished","folderElement","open","loadFolderOnDemand","mustSelect","isSelectedNodeInSubtree","render","selectCurrentNode","getScrollLeft","getRtlOption","getDefaultClosedIcon","dataLoader","initData","handleClick","handleDblclick","useContextMenu","handleContextmenu","checkScrolling","startDndDelay","dataUrl","getDataUrlInfo","getUrlFromString","setUrlInfoData","selectedNodeId","getNodeIdToBeSelected","doInit","setInitialStateOnDemand","restoreState","autoOpenNodes","autoOpen","maxLevel","getAutoOpenMaxLevel","isRestored","parseInt","$target","dataRtl","deselectCurrentNode","defaultOptions","mustToggle","selectOptions","canSelect","onCanSelectNode","selectable","openParents","previous_node","deselectedNode","deselected_node","deselectNodes","loadSubtree","initTree","tree_data","parent_node","selectedNodesUnderParent","getSelectedNodesUnder","urlInfoParam","loadFromUrl"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"tree.jquery.debug.js","sources":["src/version.ts","src/node.ts","src/dragAndDropHandler.ts","src/util.ts","src/elementsRenderer.ts","src/dataLoader.ts","src/keyHandler.ts","src/simple.widget.ts","src/mouse.widget.ts","src/saveStateHandler.ts","src/scrollHandler.ts","src/selectNodeHandler.ts","src/nodeElement.ts","src/tree.jquery.ts"],"sourcesContent":["const version = \"1.7.1\";\n\nexport default version;\n","interface NodeRecordWithChildren extends NodeRecord {\n children: NodeData[];\n}\n\nexport enum Position {\n Before = 1,\n After,\n Inside,\n None,\n}\n\nconst positionNames: Record = {\n before: Position.Before,\n after: Position.After,\n inside: Position.Inside,\n none: Position.None,\n};\n\ntype IterateCallback = (node: Node, level: number) => boolean;\n\nexport const getPositionName = (position: Position): string => {\n for (const name in positionNames) {\n if (Object.prototype.hasOwnProperty.call(positionNames, name)) {\n if (positionNames[name] === position) {\n return name;\n }\n }\n }\n\n return \"\";\n};\n\nexport const getPosition = (name: string): Position | undefined =>\n positionNames[name];\n\nconst isNodeRecordWithChildren = (\n data: NodeData\n): data is NodeRecordWithChildren =>\n typeof data === \"object\" &&\n \"children\" in data &&\n data[\"children\"] instanceof Array;\n\nexport class Node implements INode {\n public id?: NodeId;\n public name: string;\n public children: Node[];\n public parent: Node | null;\n public idMapping: Map;\n public tree?: Node;\n public nodeClass?: typeof Node;\n public load_on_demand: boolean;\n public is_open: boolean;\n public element: HTMLElement;\n public is_loading: boolean;\n public isEmptyFolder: boolean;\n\n [key: string]: unknown;\n\n constructor(o: NodeData | null = null, isRoot = false, nodeClass = Node) {\n this.name = \"\";\n this.isEmptyFolder = false;\n this.load_on_demand = false;\n\n this.setData(o);\n\n this.children = [];\n this.parent = null;\n\n if (isRoot) {\n this.idMapping = new Map();\n this.tree = this;\n this.nodeClass = nodeClass;\n }\n }\n\n /*\n Set the data of this node.\n\n setData(string): set the name of the node\n setdata(object): set attributes of the node\n\n Examples:\n setdata('node1')\n\n setData({ name: 'node1', id: 1});\n\n setData({ name: 'node2', id: 2, color: 'green'});\n\n * This is an internal function; it is not in the docs\n * Does not remove existing node values\n */\n public setData(o: NodeData | null): void {\n if (!o) {\n return;\n } else if (typeof o === \"string\") {\n this.name = o;\n } else if (typeof o === \"object\") {\n for (const key in o) {\n if (Object.prototype.hasOwnProperty.call(o, key)) {\n const value = o[key];\n\n if (key === \"label\" || key === \"name\") {\n // You can use the 'label' key instead of 'name'; this is a legacy feature\n if (typeof value === \"string\") {\n this.name = value;\n }\n } else if (key !== \"children\" && key !== \"parent\") {\n // You can't update the children or the parent using this function\n this[key] = value;\n }\n }\n }\n }\n }\n\n /*\n Create tree from data.\n\n Structure of data is:\n [\n {\n name: 'node1',\n children: [\n { name: 'child1' },\n { name: 'child2' }\n ]\n },\n {\n name: 'node2'\n }\n ]\n */\n public loadFromData(data: NodeData[]): Node {\n this.removeChildren();\n\n for (const o of data) {\n const node = this.createNode(o);\n this.addChild(node);\n\n if (isNodeRecordWithChildren(o)) {\n if (o.children.length === 0) {\n node.isEmptyFolder = true;\n } else {\n node.loadFromData(o.children);\n }\n }\n }\n\n return this;\n }\n\n /*\n Add child.\n\n tree.addChild(\n new Node('child1')\n );\n */\n public addChild(node: Node): void {\n this.children.push(node);\n node.setParent(this);\n }\n\n /*\n Add child at position. Index starts at 0.\n\n tree.addChildAtPosition(\n new Node('abc'),\n 1\n );\n */\n public addChildAtPosition(node: Node, index: number): void {\n this.children.splice(index, 0, node);\n node.setParent(this);\n }\n\n /*\n Remove child. This also removes the children of the node.\n\n tree.removeChild(tree.children[0]);\n */\n public removeChild(node: Node): void {\n // remove children from the index\n node.removeChildren();\n\n this.doRemoveChild(node);\n }\n\n /*\n Get child index.\n\n var index = getChildIndex(node);\n */\n public getChildIndex(node: Node): number {\n return this.children.indexOf(node);\n }\n\n /*\n Does the tree have children?\n\n if (tree.hasChildren()) {\n //\n }\n */\n public hasChildren(): boolean {\n return this.children.length !== 0;\n }\n\n public isFolder(): boolean {\n return this.hasChildren() || this.load_on_demand;\n }\n\n /*\n Iterate over all the nodes in the tree.\n\n Calls callback with (node, level).\n\n The callback must return true to continue the iteration on current node.\n\n tree.iterate(\n function(node, level) {\n console.log(node.name);\n\n // stop iteration after level 2\n return (level <= 2);\n }\n );\n\n */\n public iterate(callback: IterateCallback): void {\n const _iterate = (node: Node, level: number): void => {\n if (node.children) {\n for (const child of node.children) {\n const result = callback(child, level);\n\n if (result && child.hasChildren()) {\n _iterate(child, level + 1);\n }\n }\n }\n };\n\n _iterate(this, 0);\n }\n\n /*\n Move node relative to another node.\n\n Argument position: Position.BEFORE, Position.AFTER or Position.Inside\n\n // move node1 after node2\n tree.moveNode(node1, node2, Position.AFTER);\n */\n public moveNode(\n movedNode: Node,\n targetNode: Node,\n position: Position\n ): boolean {\n if (!movedNode.parent || movedNode.isParentOf(targetNode)) {\n // - Node is parent of target node\n // - Or, parent is empty\n return false;\n } else {\n movedNode.parent.doRemoveChild(movedNode);\n\n switch (position) {\n case Position.After: {\n if (targetNode.parent) {\n targetNode.parent.addChildAtPosition(\n movedNode,\n targetNode.parent.getChildIndex(targetNode) + 1\n );\n return true;\n }\n return false;\n }\n\n case Position.Before: {\n if (targetNode.parent) {\n targetNode.parent.addChildAtPosition(\n movedNode,\n targetNode.parent.getChildIndex(targetNode)\n );\n return true;\n }\n return false;\n }\n\n case Position.Inside: {\n // move inside as first child\n targetNode.addChildAtPosition(movedNode, 0);\n return true;\n }\n\n default:\n return false;\n }\n }\n }\n\n /*\n Get the tree as data.\n */\n public getData(includeParent = false): NodeRecord[] {\n const getDataFromNodes = (nodes: Node[]): Record[] => {\n return nodes.map((node) => {\n const tmpNode: Record = {};\n\n for (const k in node) {\n if (\n [\n \"parent\",\n \"children\",\n \"element\",\n \"idMapping\",\n \"load_on_demand\",\n \"nodeClass\",\n \"tree\",\n \"isEmptyFolder\",\n ].indexOf(k) === -1 &&\n Object.prototype.hasOwnProperty.call(node, k)\n ) {\n const v = node[k];\n tmpNode[k] = v;\n }\n }\n\n if (node.hasChildren()) {\n tmpNode[\"children\"] = getDataFromNodes(node.children);\n }\n\n return tmpNode;\n });\n };\n\n if (includeParent) {\n return getDataFromNodes([this]);\n } else {\n return getDataFromNodes(this.children);\n }\n }\n\n public getNodeByName(name: string): Node | null {\n return this.getNodeByCallback((node: Node) => node.name === name);\n }\n\n public getNodeByNameMustExist(name: string): Node {\n const node = this.getNodeByCallback((n: Node) => n.name === name);\n\n if (!node) {\n throw `Node with name ${name} not found`;\n }\n\n return node;\n }\n\n public getNodeByCallback(callback: (node: Node) => boolean): Node | null {\n let result: Node | null = null;\n\n this.iterate((node: Node) => {\n if (result) {\n return false;\n } else if (callback(node)) {\n result = node;\n return false;\n } else {\n return true;\n }\n });\n\n return result;\n }\n\n public addAfter(nodeInfo: NodeData): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const node = this.createNode(nodeInfo);\n\n const childIndex = this.parent.getChildIndex(this);\n this.parent.addChildAtPosition(node, childIndex + 1);\n\n if (\n isNodeRecordWithChildren(nodeInfo) &&\n nodeInfo.children.length\n ) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n }\n\n public addBefore(nodeInfo: NodeData): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const node = this.createNode(nodeInfo);\n\n const childIndex = this.parent.getChildIndex(this);\n this.parent.addChildAtPosition(node, childIndex);\n\n if (\n isNodeRecordWithChildren(nodeInfo) &&\n nodeInfo.children.length\n ) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n }\n\n public addParent(nodeInfo: NodeData): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const newParent = this.createNode(nodeInfo);\n\n if (this.tree) {\n newParent.setParent(this.tree);\n }\n const originalParent = this.parent;\n\n for (const child of originalParent.children) {\n newParent.addChild(child);\n }\n\n originalParent.children = [];\n originalParent.addChild(newParent);\n return newParent;\n }\n }\n\n public remove(): void {\n if (this.parent) {\n this.parent.removeChild(this);\n this.parent = null;\n }\n }\n\n public append(nodeInfo: NodeData): Node {\n const node = this.createNode(nodeInfo);\n this.addChild(node);\n\n if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n\n public prepend(nodeInfo: NodeData): Node {\n const node = this.createNode(nodeInfo);\n this.addChildAtPosition(node, 0);\n\n if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n\n public isParentOf(node: Node): boolean {\n let parent = node.parent;\n\n while (parent) {\n if (parent === this) {\n return true;\n }\n\n parent = parent.parent;\n }\n\n return false;\n }\n\n public getLevel(): number {\n let level = 0;\n let node: Node = this; // eslint-disable-line @typescript-eslint/no-this-alias\n\n while (node.parent) {\n level += 1;\n node = node.parent;\n }\n\n return level;\n }\n\n public getNodeById(nodeId: NodeId): Node | null {\n return this.idMapping.get(nodeId) || null;\n }\n\n public addNodeToIndex(node: Node): void {\n if (node.id != null) {\n this.idMapping.set(node.id, node);\n }\n }\n\n public removeNodeFromIndex(node: Node): void {\n if (node.id != null) {\n this.idMapping.delete(node.id);\n }\n }\n\n public removeChildren(): void {\n this.iterate((child: Node) => {\n this.tree?.removeNodeFromIndex(child);\n return true;\n });\n\n this.children = [];\n }\n\n public getPreviousSibling(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const previousIndex = this.parent.getChildIndex(this) - 1;\n if (previousIndex >= 0) {\n return this.parent.children[previousIndex] || null;\n } else {\n return null;\n }\n }\n }\n\n public getNextSibling(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const nextIndex = this.parent.getChildIndex(this) + 1;\n if (nextIndex < this.parent.children.length) {\n return this.parent.children[nextIndex] || null;\n } else {\n return null;\n }\n }\n }\n\n public getNodesByProperty(key: string, value: unknown): Node[] {\n return this.filter((node: Node) => node[key] === value);\n }\n\n public filter(f: (node: Node) => boolean): Node[] {\n const result: Node[] = [];\n\n this.iterate((node: Node) => {\n if (f(node)) {\n result.push(node);\n }\n\n return true;\n });\n\n return result;\n }\n\n public getNextNode(includeChildren = true): Node | null {\n if (includeChildren && this.hasChildren()) {\n return this.children[0] || null;\n } else if (!this.parent) {\n return null;\n } else {\n const nextSibling = this.getNextSibling();\n\n if (nextSibling) {\n return nextSibling;\n } else {\n return this.parent.getNextNode(false);\n }\n }\n }\n\n public getNextVisibleNode(): Node | null {\n if (this.hasChildren() && this.is_open) {\n // First child\n return this.children[0] || null;\n } else {\n if (!this.parent) {\n return null;\n } else {\n const nextSibling = this.getNextSibling();\n if (nextSibling) {\n // Next sibling\n return nextSibling;\n } else {\n // Next node of parent\n return this.parent.getNextNode(false);\n }\n }\n }\n }\n\n public getPreviousNode(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const previousSibling = this.getPreviousSibling();\n\n if (!previousSibling) {\n return this.getParent();\n } else if (previousSibling.hasChildren()) {\n return previousSibling.getLastChild();\n } else {\n return previousSibling;\n }\n }\n }\n\n public getPreviousVisibleNode(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const previousSibling = this.getPreviousSibling();\n\n if (!previousSibling) {\n return this.getParent();\n } else if (\n !previousSibling.hasChildren() ||\n !previousSibling.is_open\n ) {\n // Previous sibling\n return previousSibling;\n } else {\n // Last child of previous sibling\n return previousSibling.getLastChild();\n }\n }\n }\n\n public getParent(): Node | null {\n // Return parent except if it is the root node\n if (!this.parent) {\n return null;\n } else if (!this.parent.parent) {\n // Root node -> null\n return null;\n } else {\n return this.parent;\n }\n }\n\n public getLastChild(): Node | null {\n if (!this.hasChildren()) {\n return null;\n } else {\n const lastChild = this.children[this.children.length - 1];\n\n if (!lastChild) {\n return null;\n }\n\n if (!(lastChild.hasChildren() && lastChild.is_open)) {\n return lastChild;\n } else {\n return lastChild?.getLastChild();\n }\n }\n }\n\n // Init Node from data without making it the root of the tree\n public initFromData(data: NodeData): void {\n const addNode = (nodeData: NodeData): void => {\n this.setData(nodeData);\n\n if (\n isNodeRecordWithChildren(nodeData) &&\n nodeData.children.length\n ) {\n addChildren(nodeData.children);\n }\n };\n\n const addChildren = (childrenData: NodeData[]): void => {\n for (const child of childrenData) {\n const node = this.createNode();\n node.initFromData(child);\n this.addChild(node);\n }\n };\n\n addNode(data);\n }\n\n private setParent(parent: Node): void {\n this.parent = parent;\n this.tree = parent.tree;\n this.tree?.addNodeToIndex(this);\n }\n\n private doRemoveChild(node: Node): void {\n this.children.splice(this.getChildIndex(node), 1);\n this.tree?.removeNodeFromIndex(node);\n }\n\n private getNodeClass(): typeof Node {\n return this.nodeClass || this?.tree?.nodeClass || Node;\n }\n\n private createNode(nodeData?: NodeData): Node {\n const nodeClass = this.getNodeClass();\n return new nodeClass(nodeData);\n }\n}\n","import { getPositionName, Node, Position } from \"./node\";\nimport { DropHint, HitArea, PositionInfo } from \"./types\";\nimport { NodeElement } from \"./nodeElement\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\ninterface Dimensions {\n left: number;\n top: number;\n right: number;\n bottom: number;\n}\n\nexport class DragAndDropHandler {\n public hitAreas: HitArea[];\n public isDragging: boolean;\n public currentItem: NodeElement | null;\n public hoveredArea: HitArea | null;\n public positionInfo: PositionInfo | null;\n\n private treeWidget: JqTreeWidget;\n private dragElement: DragElement | null;\n private previousGhost: DropHint | null;\n private openFolderTimer: number | null;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n\n this.hoveredArea = null;\n this.hitAreas = [];\n this.isDragging = false;\n this.currentItem = null;\n this.positionInfo = null;\n }\n\n public mouseCapture(positionInfo: PositionInfo): boolean | null {\n const $element = jQuery(positionInfo.target);\n\n if (!this.mustCaptureElement($element)) {\n return null;\n }\n\n if (\n this.treeWidget.options.onIsMoveHandle &&\n !this.treeWidget.options.onIsMoveHandle($element)\n ) {\n return null;\n }\n\n let nodeElement = this.treeWidget._getNodeElement($element);\n\n if (nodeElement && this.treeWidget.options.onCanMove) {\n if (!this.treeWidget.options.onCanMove(nodeElement.node)) {\n nodeElement = null;\n }\n }\n\n this.currentItem = nodeElement;\n return this.currentItem != null;\n }\n\n public mouseStart(positionInfo: PositionInfo): boolean {\n if (\n !this.currentItem ||\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return false;\n }\n\n this.refresh();\n\n const offset = jQuery(positionInfo.target).offset();\n const left = offset ? offset.left : 0;\n const top = offset ? offset.top : 0;\n\n const node = this.currentItem.node;\n\n this.dragElement = new DragElement(\n node.name,\n positionInfo.pageX - left,\n positionInfo.pageY - top,\n this.treeWidget.element,\n this.treeWidget.options.autoEscape ?? true\n );\n\n this.isDragging = true;\n this.positionInfo = positionInfo;\n this.currentItem.$element.addClass(\"jqtree-moving\");\n return true;\n }\n\n public mouseDrag(positionInfo: PositionInfo): boolean {\n if (\n !this.currentItem ||\n !this.dragElement ||\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return false;\n }\n\n this.dragElement.move(positionInfo.pageX, positionInfo.pageY);\n this.positionInfo = positionInfo;\n\n const area = this.findHoveredArea(\n positionInfo.pageX,\n positionInfo.pageY\n );\n\n if (area && this.canMoveToArea(area)) {\n if (!area.node.isFolder()) {\n this.stopOpenFolderTimer();\n }\n\n if (this.hoveredArea !== area) {\n this.hoveredArea = area;\n\n // If this is a closed folder, start timer to open it\n if (this.mustOpenFolderTimer(area)) {\n this.startOpenFolderTimer(area.node);\n } else {\n this.stopOpenFolderTimer();\n }\n\n this.updateDropHint();\n }\n } else {\n this.removeDropHint();\n this.stopOpenFolderTimer();\n this.hoveredArea = area;\n }\n\n if (!area) {\n if (this.treeWidget.options.onDragMove) {\n this.treeWidget.options.onDragMove(\n this.currentItem.node,\n positionInfo.originalEvent\n );\n }\n }\n\n return true;\n }\n\n public mouseStop(positionInfo: PositionInfo): boolean {\n this.moveItem(positionInfo);\n this.clear();\n this.removeHover();\n this.removeDropHint();\n this.removeHitAreas();\n\n const currentItem = this.currentItem;\n\n if (this.currentItem) {\n this.currentItem.$element.removeClass(\"jqtree-moving\");\n this.currentItem = null;\n }\n\n this.isDragging = false;\n this.positionInfo = null;\n\n if (!this.hoveredArea && currentItem) {\n if (this.treeWidget.options.onDragStop) {\n this.treeWidget.options.onDragStop(\n currentItem.node,\n positionInfo.originalEvent\n );\n }\n }\n\n return false;\n }\n\n public refresh(): void {\n this.removeHitAreas();\n\n if (this.currentItem) {\n this.generateHitAreas();\n\n this.currentItem = this.treeWidget._getNodeElementForNode(\n this.currentItem.node\n );\n\n if (this.isDragging) {\n this.currentItem.$element.addClass(\"jqtree-moving\");\n }\n }\n }\n\n private generateHitAreas(): void {\n if (!this.currentItem) {\n this.hitAreas = [];\n } else {\n const hitAreasGenerator = new HitAreasGenerator(\n this.treeWidget.tree,\n this.currentItem.node,\n this.getTreeDimensions().bottom\n );\n this.hitAreas = hitAreasGenerator.generate();\n }\n }\n\n private mustCaptureElement($element: JQuery): boolean {\n return !$element.is(\"input,select,textarea\");\n }\n\n private canMoveToArea(area: HitArea): boolean {\n if (!this.treeWidget.options.onCanMoveTo) {\n return true;\n }\n\n if (!this.currentItem) {\n return false;\n }\n\n const positionName = getPositionName(area.position);\n\n return this.treeWidget.options.onCanMoveTo(\n this.currentItem.node,\n area.node,\n positionName\n );\n }\n\n private removeHitAreas(): void {\n this.hitAreas = [];\n }\n\n private clear(): void {\n if (this.dragElement) {\n this.dragElement.remove();\n this.dragElement = null;\n }\n }\n\n private removeDropHint(): void {\n if (this.previousGhost) {\n this.previousGhost.remove();\n }\n }\n\n private removeHover(): void {\n this.hoveredArea = null;\n }\n\n private findHoveredArea(x: number, y: number): HitArea | null {\n const dimensions = this.getTreeDimensions();\n\n if (\n x < dimensions.left ||\n y < dimensions.top ||\n x > dimensions.right ||\n y > dimensions.bottom\n ) {\n return null;\n }\n\n let low = 0;\n let high = this.hitAreas.length;\n while (low < high) {\n const mid = (low + high) >> 1;\n const area = this.hitAreas[mid];\n\n if (!area) {\n return null;\n }\n\n if (y < area.top) {\n high = mid;\n } else if (y > area.bottom) {\n low = mid + 1;\n } else {\n return area;\n }\n }\n\n return null;\n }\n\n private mustOpenFolderTimer(area: HitArea): boolean {\n const node = area.node;\n\n return (\n node.isFolder() &&\n !node.is_open &&\n area.position === Position.Inside\n );\n }\n\n private updateDropHint(): void {\n if (!this.hoveredArea) {\n return;\n }\n\n // remove previous drop hint\n this.removeDropHint();\n\n // add new drop hint\n const nodeElement = this.treeWidget._getNodeElementForNode(\n this.hoveredArea.node\n );\n this.previousGhost = nodeElement.addDropHint(this.hoveredArea.position);\n }\n\n private startOpenFolderTimer(folder: Node): void {\n const openFolder = (): void => {\n this.treeWidget._openNode(\n folder,\n this.treeWidget.options.slide,\n () => {\n this.refresh();\n this.updateDropHint();\n }\n );\n };\n\n this.stopOpenFolderTimer();\n\n const openFolderDelay = this.treeWidget.options.openFolderDelay;\n\n if (openFolderDelay !== false) {\n this.openFolderTimer = window.setTimeout(\n openFolder,\n openFolderDelay\n );\n }\n }\n\n private stopOpenFolderTimer(): void {\n if (this.openFolderTimer) {\n clearTimeout(this.openFolderTimer);\n this.openFolderTimer = null;\n }\n }\n\n private moveItem(positionInfo: PositionInfo): void {\n if (\n this.currentItem &&\n this.hoveredArea &&\n this.hoveredArea.position !== Position.None &&\n this.canMoveToArea(this.hoveredArea)\n ) {\n const movedNode = this.currentItem.node;\n const targetNode = this.hoveredArea.node;\n const position = this.hoveredArea.position;\n const previousParent = movedNode.parent;\n\n if (position === Position.Inside) {\n this.hoveredArea.node.is_open = true;\n }\n\n const doMove = (): void => {\n this.treeWidget.tree.moveNode(movedNode, targetNode, position);\n this.treeWidget.element.empty();\n this.treeWidget._refreshElements(null);\n };\n\n const event = this.treeWidget._triggerEvent(\"tree.move\", {\n move_info: {\n moved_node: movedNode,\n target_node: targetNode,\n position: getPositionName(position),\n previous_parent: previousParent,\n do_move: doMove,\n original_event: positionInfo.originalEvent,\n },\n });\n\n if (!event.isDefaultPrevented()) {\n doMove();\n }\n }\n }\n\n private getTreeDimensions(): Dimensions {\n // Return the dimensions of the tree. Add a margin to the bottom to allow\n // to drag-and-drop after the last element.\n const offset = this.treeWidget.element.offset();\n\n if (!offset) {\n return { left: 0, top: 0, right: 0, bottom: 0 };\n } else {\n const el = this.treeWidget.element;\n const width = el.width() || 0;\n const height = el.height() || 0;\n const left = offset.left + this.treeWidget._getScrollLeft();\n\n return {\n left,\n top: offset.top,\n right: left + width,\n bottom: offset.top + height + 16,\n };\n }\n }\n}\n\nabstract class VisibleNodeIterator {\n private tree: Node;\n\n constructor(tree: Node) {\n this.tree = tree;\n }\n\n protected iterate(): void {\n let isFirstNode = true;\n\n const _iterateNode = (node: Node, nextNode: Node | null): void => {\n let mustIterateInside =\n (node.is_open || !node.element) && node.hasChildren();\n\n let $element: JQuery | null = null;\n\n if (node.element) {\n $element = jQuery(node.element);\n\n if (!$element.is(\":visible\")) {\n return;\n }\n\n if (isFirstNode) {\n this.handleFirstNode(node);\n isFirstNode = false;\n }\n\n if (!node.hasChildren()) {\n this.handleNode(node, nextNode, $element);\n } else if (node.is_open) {\n if (!this.handleOpenFolder(node, $element)) {\n mustIterateInside = false;\n }\n } else {\n this.handleClosedFolder(node, nextNode, $element);\n }\n }\n\n if (mustIterateInside) {\n const childrenLength = node.children.length;\n node.children.forEach((_, i) => {\n const child = node.children[i];\n\n if (child) {\n if (i === childrenLength - 1) {\n _iterateNode(child, null);\n } else {\n const nextChild = node.children[i + 1];\n\n if (nextChild) {\n _iterateNode(child, nextChild);\n }\n }\n }\n });\n\n if (node.is_open && $element) {\n this.handleAfterOpenFolder(node, nextNode);\n }\n }\n };\n\n _iterateNode(this.tree, null);\n }\n\n protected abstract handleNode(\n node: Node,\n nextNode: Node | null,\n $element: JQuery\n ): void;\n\n /*\n override\n return\n - true: continue iterating\n - false: stop iterating\n */\n protected abstract handleOpenFolder(node: Node, $element: JQuery): boolean;\n\n protected abstract handleClosedFolder(\n node: Node,\n nextNode: Node | null,\n $element: JQuery\n ): void;\n\n protected abstract handleAfterOpenFolder(\n node: Node,\n nextNode: Node | null\n ): void;\n\n protected abstract handleFirstNode(node: Node): void;\n}\n\nexport class HitAreasGenerator extends VisibleNodeIterator {\n private currentNode: Node;\n private treeBottom: number;\n private positions: HitArea[];\n private lastTop: number;\n\n constructor(tree: Node, currentNode: Node, treeBottom: number) {\n super(tree);\n\n this.currentNode = currentNode;\n this.treeBottom = treeBottom;\n }\n\n public generate(): HitArea[] {\n this.positions = [];\n this.lastTop = 0;\n\n this.iterate();\n\n return this.generateHitAreas(this.positions);\n }\n\n protected generateHitAreas(positions: HitArea[]): HitArea[] {\n let previousTop = -1;\n let group = [];\n const hitAreas: HitArea[] = [];\n\n for (const position of positions) {\n if (position.top !== previousTop && group.length) {\n if (group.length) {\n this.generateHitAreasForGroup(\n hitAreas,\n group,\n previousTop,\n position.top\n );\n }\n\n previousTop = position.top;\n group = [];\n }\n\n group.push(position);\n }\n\n this.generateHitAreasForGroup(\n hitAreas,\n group,\n previousTop,\n this.treeBottom\n );\n\n return hitAreas;\n }\n\n protected handleOpenFolder(node: Node, $element: JQuery): boolean {\n if (node === this.currentNode) {\n // Cannot move inside current item\n // Stop iterating\n return false;\n }\n\n // Cannot move before current item\n if (node.children[0] !== this.currentNode) {\n this.addPosition(node, Position.Inside, this.getTop($element));\n }\n\n // Continue iterating\n return true;\n }\n\n protected handleClosedFolder(\n node: Node,\n nextNode: Node,\n $element: JQuery\n ): void {\n const top = this.getTop($element);\n\n if (node === this.currentNode) {\n // Cannot move after current item\n this.addPosition(node, Position.None, top);\n } else {\n this.addPosition(node, Position.Inside, top);\n\n // Cannot move before current item\n if (nextNode !== this.currentNode) {\n this.addPosition(node, Position.After, top);\n }\n }\n }\n\n protected handleFirstNode(node: Node): void {\n if (node !== this.currentNode) {\n this.addPosition(\n node,\n Position.Before,\n this.getTop(jQuery(node.element))\n );\n }\n }\n\n protected handleAfterOpenFolder(node: Node, nextNode: Node): void {\n if (node === this.currentNode || nextNode === this.currentNode) {\n // Cannot move before or after current item\n this.addPosition(node, Position.None, this.lastTop);\n } else {\n this.addPosition(node, Position.After, this.lastTop);\n }\n }\n\n protected handleNode(node: Node, nextNode: Node, $element: JQuery): void {\n const top = this.getTop($element);\n\n if (node === this.currentNode) {\n // Cannot move inside current item\n this.addPosition(node, Position.None, top);\n } else {\n this.addPosition(node, Position.Inside, top);\n }\n\n if (nextNode === this.currentNode || node === this.currentNode) {\n // Cannot move before or after current item\n this.addPosition(node, Position.None, top);\n } else {\n this.addPosition(node, Position.After, top);\n }\n }\n\n private getTop($element: JQuery): number {\n const offset = $element.offset();\n\n return offset ? offset.top : 0;\n }\n\n private addPosition(node: Node, position: number, top: number): void {\n const area = {\n top,\n bottom: 0,\n node,\n position,\n };\n\n this.positions.push(area);\n this.lastTop = top;\n }\n\n private generateHitAreasForGroup(\n hitAreas: HitArea[],\n positionsInGroup: HitArea[],\n top: number,\n bottom: number\n ): void {\n // limit positions in group\n const positionCount = Math.min(positionsInGroup.length, 4);\n\n const areaHeight = Math.round((bottom - top) / positionCount);\n let areaTop = top;\n\n let i = 0;\n while (i < positionCount) {\n const position = positionsInGroup[i];\n\n if (position) {\n hitAreas.push({\n top: areaTop,\n bottom: areaTop + areaHeight,\n node: position.node,\n position: position.position,\n });\n }\n\n areaTop += areaHeight;\n i += 1;\n }\n }\n}\n\nclass DragElement {\n private offsetX: number;\n private offsetY: number;\n private $element: JQuery;\n\n constructor(\n nodeName: string,\n offsetX: number,\n offsetY: number,\n $tree: JQuery,\n autoEscape: boolean\n ) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n\n this.$element = jQuery(\"\").addClass(\n \"jqtree-title jqtree-dragging\"\n );\n\n if (autoEscape) {\n this.$element.text(nodeName);\n } else {\n this.$element.html(nodeName);\n }\n\n this.$element.css(\"position\", \"absolute\");\n $tree.append(this.$element);\n }\n\n public move(pageX: number, pageY: number): void {\n this.$element.offset({\n left: pageX - this.offsetX,\n top: pageY - this.offsetY,\n });\n }\n\n public remove(): void {\n this.$element.remove();\n }\n}\n","export const isInt = (n: unknown): boolean =>\n typeof n === \"number\" && n % 1 === 0;\n\nexport const isFunction = (v: unknown): boolean => typeof v === \"function\";\n\nexport const getBoolString = (value: unknown): string =>\n value ? \"true\" : \"false\";\n","import { getBoolString } from \"./util\";\nimport { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\ntype IconElement = Text | Element;\n\nexport default class ElementsRenderer {\n public openedIconElement?: IconElement;\n public closedIconElement?: IconElement;\n private treeWidget: JqTreeWidget;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n\n this.openedIconElement = this.createButtonElement(\n treeWidget.options.openedIcon || \"+\"\n );\n this.closedIconElement = this.createButtonElement(\n treeWidget.options.closedIcon || \"-\"\n );\n }\n\n public render(fromNode: Node | null): void {\n if (fromNode && fromNode.parent) {\n this.renderFromNode(fromNode);\n } else {\n this.renderFromRoot();\n }\n }\n\n public renderFromRoot(): void {\n const $element = this.treeWidget.element;\n $element.empty();\n\n if ($element[0]) {\n this.createDomElements(\n $element[0],\n this.treeWidget.tree.children,\n true,\n 1\n );\n }\n }\n\n public renderFromNode(node: Node): void {\n // remember current li\n const $previousLi = jQuery(node.element);\n\n // create element\n const li = this.createLi(node, node.getLevel());\n this.attachNodeData(node, li);\n\n // add element to dom\n $previousLi.after(li);\n\n // remove previous li\n $previousLi.remove();\n\n // create children\n if (node.children) {\n this.createDomElements(\n li,\n node.children,\n false,\n node.getLevel() + 1\n );\n }\n }\n\n private createDomElements(\n element: Element,\n children: Node[],\n isRootNode: boolean,\n level: number\n ): void {\n const ul = this.createUl(isRootNode);\n element.appendChild(ul);\n\n for (const child of children) {\n const li = this.createLi(child, level);\n ul.appendChild(li);\n\n this.attachNodeData(child, li);\n\n if (child.hasChildren()) {\n this.createDomElements(li, child.children, false, level + 1);\n }\n }\n }\n\n private attachNodeData(node: Node, li: HTMLElement): void {\n node.element = li;\n jQuery(li).data(\"node\", node);\n }\n\n private createUl(isRootNode: boolean): HTMLUListElement {\n let classString;\n let role;\n\n if (!isRootNode) {\n classString = \"\";\n role = \"group\";\n } else {\n classString = \"jqtree-tree\";\n role = \"tree\";\n\n if (this.treeWidget.options.rtl) {\n classString += \" jqtree-rtl\";\n }\n }\n\n if (this.treeWidget.options.dragAndDrop) {\n classString += \" jqtree-dnd\";\n }\n\n const ul = document.createElement(\"ul\");\n ul.className = `jqtree_common ${classString}`;\n\n ul.setAttribute(\"role\", role);\n\n return ul;\n }\n\n private createLi(node: Node, level: number): HTMLLIElement {\n const isSelected = Boolean(\n this.treeWidget.selectNodeHandler.isNodeSelected(node)\n );\n\n const mustShowFolder =\n node.isFolder() ||\n (node.isEmptyFolder && this.treeWidget.options.showEmptyFolder);\n\n const li = mustShowFolder\n ? this.createFolderLi(node, level, isSelected)\n : this.createNodeLi(node, level, isSelected);\n\n if (this.treeWidget.options.onCreateLi) {\n this.treeWidget.options.onCreateLi(node, jQuery(li), isSelected);\n }\n\n return li;\n }\n\n private setTreeItemAriaAttributes(\n element: HTMLElement,\n name: string,\n level: number,\n isSelected: boolean\n ) {\n element.setAttribute(\"aria-label\", name);\n element.setAttribute(\"aria-level\", `${level}`);\n element.setAttribute(\"aria-selected\", getBoolString(isSelected));\n element.setAttribute(\"role\", \"treeitem\");\n }\n\n private createFolderLi(\n node: Node,\n level: number,\n isSelected: boolean\n ): HTMLLIElement {\n const buttonClasses = this.getButtonClasses(node);\n const folderClasses = this.getFolderClasses(node, isSelected);\n\n const iconElement = node.is_open\n ? this.openedIconElement\n : this.closedIconElement;\n\n // li\n const li = document.createElement(\"li\");\n li.className = `jqtree_common ${folderClasses}`;\n li.setAttribute(\"role\", \"none\");\n\n // div\n const div = document.createElement(\"div\");\n div.className = \"jqtree-element jqtree_common\";\n div.setAttribute(\"role\", \"none\");\n\n li.appendChild(div);\n\n // button link\n const buttonLink = document.createElement(\"a\");\n buttonLink.className = buttonClasses;\n\n if (iconElement) {\n buttonLink.appendChild(iconElement.cloneNode(true));\n }\n\n if (this.treeWidget.options.buttonLeft) {\n div.appendChild(buttonLink);\n }\n\n // title span\n const titleSpan = this.createTitleSpan(\n node.name,\n isSelected,\n true,\n level\n );\n titleSpan.setAttribute(\"aria-expanded\", getBoolString(node.is_open));\n div.appendChild(titleSpan);\n\n if (!this.treeWidget.options.buttonLeft) {\n div.appendChild(buttonLink);\n }\n\n return li;\n }\n\n private createNodeLi(\n node: Node,\n level: number,\n isSelected: boolean\n ): HTMLLIElement {\n const liClasses = [\"jqtree_common\"];\n\n if (isSelected) {\n liClasses.push(\"jqtree-selected\");\n }\n\n const classString = liClasses.join(\" \");\n\n // li\n const li = document.createElement(\"li\");\n li.className = classString;\n li.setAttribute(\"role\", \"none\");\n\n // div\n const div = document.createElement(\"div\");\n div.className = \"jqtree-element jqtree_common\";\n div.setAttribute(\"role\", \"none\");\n\n li.appendChild(div);\n\n // title span\n const titleSpan = this.createTitleSpan(\n node.name,\n isSelected,\n false,\n level\n );\n div.appendChild(titleSpan);\n\n return li;\n }\n\n private createTitleSpan(\n nodeName: string,\n isSelected: boolean,\n isFolder: boolean,\n level: number\n ): HTMLSpanElement {\n const titleSpan = document.createElement(\"span\");\n\n let classes = \"jqtree-title jqtree_common\";\n\n if (isFolder) {\n classes += \" jqtree-title-folder\";\n }\n\n classes += ` jqtree-title-button-${\n this.treeWidget.options.buttonLeft ? \"left\" : \"right\"\n }`;\n\n titleSpan.className = classes;\n\n if (isSelected) {\n const tabIndex = this.treeWidget.options.tabIndex;\n\n if (tabIndex !== undefined) {\n titleSpan.setAttribute(\"tabindex\", `${tabIndex}`);\n }\n }\n\n this.setTreeItemAriaAttributes(titleSpan, nodeName, level, isSelected);\n\n if (this.treeWidget.options.autoEscape) {\n titleSpan.textContent = nodeName;\n } else {\n titleSpan.innerHTML = nodeName;\n }\n\n return titleSpan;\n }\n\n private getButtonClasses(node: Node): string {\n const classes = [\"jqtree-toggler\", \"jqtree_common\"];\n\n if (!node.is_open) {\n classes.push(\"jqtree-closed\");\n }\n\n if (this.treeWidget.options.buttonLeft) {\n classes.push(\"jqtree-toggler-left\");\n } else {\n classes.push(\"jqtree-toggler-right\");\n }\n\n return classes.join(\" \");\n }\n\n private getFolderClasses(node: Node, isSelected: boolean): string {\n const classes = [\"jqtree-folder\"];\n\n if (!node.is_open) {\n classes.push(\"jqtree-closed\");\n }\n\n if (isSelected) {\n classes.push(\"jqtree-selected\");\n }\n\n if (node.is_loading) {\n classes.push(\"jqtree-loading\");\n }\n\n return classes.join(\" \");\n }\n\n private createButtonElement(\n value: string | Element\n ): IconElement | undefined {\n if (typeof value === \"string\") {\n // convert value to html\n const div = document.createElement(\"div\");\n div.innerHTML = value;\n\n return document.createTextNode(div.innerHTML);\n } else {\n return jQuery(value)[0];\n }\n }\n}\n","import { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\nexport type HandleFinishedLoading = () => void;\n\nexport default class DataLoader {\n private treeWidget: JqTreeWidget;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n }\n\n public loadFromUrl(\n urlInfo: string | JQuery.AjaxSettings | null,\n parentNode: Node | null,\n onFinished: HandleFinishedLoading | null\n ): void {\n if (!urlInfo) {\n return;\n }\n\n const $el = this.getDomElement(parentNode);\n this.addLoadingClass($el);\n this.notifyLoading(true, parentNode, $el);\n\n const stopLoading = (): void => {\n this.removeLoadingClass($el);\n this.notifyLoading(false, parentNode, $el);\n };\n\n const handleSuccess = (data: string | NodeData[]): void => {\n stopLoading();\n this.treeWidget.loadData(this.parseData(data), parentNode);\n\n if (onFinished && typeof onFinished === \"function\") {\n onFinished();\n }\n };\n\n const handleError = (jqXHR: JQuery.jqXHR): void => {\n stopLoading();\n\n if (this.treeWidget.options.onLoadFailed) {\n this.treeWidget.options.onLoadFailed(jqXHR);\n }\n };\n\n this.submitRequest(urlInfo, handleSuccess, handleError);\n }\n\n private addLoadingClass($el: JQuery): void {\n if ($el) {\n $el.addClass(\"jqtree-loading\");\n }\n }\n\n private removeLoadingClass($el: JQuery): void {\n if ($el) {\n $el.removeClass(\"jqtree-loading\");\n }\n }\n\n private getDomElement(parentNode: Node | null): JQuery {\n if (parentNode) {\n return jQuery(parentNode.element);\n } else {\n return this.treeWidget.element;\n }\n }\n\n private notifyLoading(\n isLoading: boolean,\n node: Node | null,\n $el: JQuery\n ): void {\n if (this.treeWidget.options.onLoading) {\n this.treeWidget.options.onLoading(isLoading, node, $el);\n }\n\n this.treeWidget._triggerEvent(\"tree.loading_data\", {\n isLoading,\n node,\n $el,\n });\n }\n\n private submitRequest(\n urlInfoInput: string | JQuery.AjaxSettings,\n handleSuccess: JQuery.Ajax.SuccessCallback,\n handleError: JQuery.Ajax.ErrorCallback\n ): void {\n const urlInfo =\n typeof urlInfoInput === \"string\"\n ? { url: urlInfoInput }\n : urlInfoInput;\n\n const ajaxSettings: JQuery.AjaxSettings = {\n method: \"GET\",\n cache: false,\n dataType: \"json\",\n success: handleSuccess,\n error: handleError,\n ...urlInfo,\n };\n\n ajaxSettings.method = ajaxSettings.method?.toUpperCase() || \"GET\";\n\n void jQuery.ajax(ajaxSettings);\n }\n\n private parseData(data: string | NodeData[]): NodeData[] {\n const { dataFilter } = this.treeWidget.options;\n\n const getParsedData = () => {\n if (typeof data === \"string\") {\n return JSON.parse(data) as NodeData[];\n } else {\n return data;\n }\n };\n\n const parsedData = getParsedData();\n\n if (dataFilter) {\n return dataFilter(parsedData);\n } else {\n return parsedData;\n }\n }\n}\n","import { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\nexport default class KeyHandler {\n private static LEFT = 37;\n private static UP = 38;\n private static RIGHT = 39;\n private static DOWN = 40;\n\n private treeWidget: JqTreeWidget;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n\n if (treeWidget.options.keyboardSupport) {\n jQuery(document).on(\"keydown.jqtree\", this.handleKeyDown);\n }\n }\n\n public deinit(): void {\n jQuery(document).off(\"keydown.jqtree\");\n }\n\n public moveDown(selectedNode: Node): boolean {\n return this.selectNode(selectedNode.getNextVisibleNode());\n }\n\n public moveUp(selectedNode: Node): boolean {\n return this.selectNode(selectedNode.getPreviousVisibleNode());\n }\n\n public moveRight(selectedNode: Node): boolean {\n if (!selectedNode.isFolder()) {\n return true;\n } else {\n // folder node\n if (selectedNode.is_open) {\n // Right moves to the first child of an open node\n return this.selectNode(selectedNode.getNextVisibleNode());\n } else {\n // Right expands a closed node\n this.treeWidget.openNode(selectedNode);\n return false;\n }\n }\n }\n\n public moveLeft(selectedNode: Node): boolean {\n if (selectedNode.isFolder() && selectedNode.is_open) {\n // Left on an open node closes the node\n this.treeWidget.closeNode(selectedNode);\n return false;\n } else {\n // Left on a closed or end node moves focus to the node's parent\n return this.selectNode(selectedNode.getParent());\n }\n }\n\n public selectNode(node: Node | null): boolean {\n if (!node) {\n return true;\n } else {\n this.treeWidget.selectNode(node);\n\n if (\n !this.treeWidget.scrollHandler.isScrolledIntoView(\n jQuery(node.element).find(\".jqtree-element\")\n )\n ) {\n this.treeWidget.scrollToNode(node);\n }\n\n return false;\n }\n }\n\n private handleKeyDown = (e: JQuery.Event): boolean => {\n if (!this.canHandleKeyboard()) {\n return true;\n }\n\n const selectedNode = this.treeWidget.getSelectedNode();\n if (!selectedNode) {\n return true;\n }\n\n const key = e.which;\n\n switch (key) {\n case KeyHandler.DOWN:\n return this.moveDown(selectedNode);\n\n case KeyHandler.UP:\n return this.moveUp(selectedNode);\n\n case KeyHandler.RIGHT:\n return this.moveRight(selectedNode);\n\n case KeyHandler.LEFT:\n return this.moveLeft(selectedNode);\n\n default:\n return true;\n }\n };\n\n private canHandleKeyboard(): boolean {\n return (\n (this.treeWidget.options.keyboardSupport || false) &&\n this.treeWidget.selectNodeHandler.isFocusOnTree()\n );\n }\n}\n","const register = (widgetClass: unknown, widgetName: string): void => {\n const getDataKey = (): string => `simple_widget_${widgetName}`;\n\n const getWidgetData = (\n el: HTMLElement,\n dataKey: string\n ): SimpleWidget | null => {\n const widget = jQuery.data(el, dataKey) as unknown;\n\n if (widget && widget instanceof SimpleWidget) {\n return widget;\n } else {\n return null;\n }\n };\n\n const createWidget = ($el: JQuery, options: unknown): JQuery => {\n const dataKey = getDataKey();\n\n for (const el of $el.get()) {\n const existingWidget = getWidgetData(el, dataKey);\n\n if (!existingWidget) {\n const simpleWidgetClass = widgetClass as typeof SimpleWidget;\n const widget = new simpleWidgetClass(el, options);\n\n if (!jQuery.data(el, dataKey)) {\n jQuery.data(el, dataKey, widget);\n }\n\n // Call init after setting data, so we can call methods\n widget.init();\n }\n }\n\n return $el;\n };\n\n const destroyWidget = ($el: JQuery): void => {\n const dataKey = getDataKey();\n\n for (const el of $el.get()) {\n const widget = getWidgetData(el, dataKey);\n\n if (widget) {\n widget.destroy();\n }\n\n jQuery.removeData(el, dataKey);\n }\n };\n\n const callFunction = (\n $el: JQuery,\n functionName: string,\n args: unknown[]\n ): unknown => {\n let result = null;\n\n for (const el of $el.get()) {\n const widget = jQuery.data(el, getDataKey()) as unknown;\n\n if (widget && widget instanceof SimpleWidget) {\n const simpleWidget = widget as SimpleWidget;\n const widgetFunction = simpleWidget[functionName];\n\n if (widgetFunction && typeof widgetFunction === \"function\") {\n result = widgetFunction.apply(widget, args) as unknown;\n }\n }\n }\n\n return result;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (jQuery.fn as any)[widgetName] = function (\n this: JQuery,\n argument1: unknown,\n ...args: unknown[]\n ) {\n if (!argument1) {\n return createWidget(this, null);\n } else if (typeof argument1 === \"object\") {\n const options = argument1 as unknown;\n return createWidget(this, options);\n } else if (typeof argument1 === \"string\" && argument1[0] !== \"_\") {\n const functionName = argument1;\n\n if (functionName === \"destroy\") {\n return destroyWidget(this);\n } else if (functionName === \"get_widget_class\") {\n return widgetClass;\n } else {\n return callFunction(this, functionName, args);\n }\n } else {\n return undefined;\n }\n };\n};\n\nexport default class SimpleWidget {\n public static register(widgetClass: unknown, widgetName: string): void {\n register(widgetClass, widgetName);\n }\n\n [key: string]: unknown;\n\n protected static defaults: unknown = {};\n\n public options: WidgetOptions;\n\n public $el: JQuery;\n\n constructor(el: HTMLElement, options: WidgetOptions) {\n this.$el = jQuery(el);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const defaults = (this.constructor as any)[\"defaults\"] as WidgetOptions;\n this.options = { ...defaults, ...options };\n }\n\n public destroy(): void {\n this.deinit();\n }\n\n public init(): void {\n //\n }\n\n public deinit(): void {\n //\n }\n}\n","/*\nThis widget does the same a the mouse widget in jqueryui.\n*/\nimport SimpleWidget from \"./simple.widget\";\nimport { PositionInfo } from \"./types\";\n\nconst getPositionInfoFromMouseEvent = (e: MouseEvent): PositionInfo => ({\n pageX: e.pageX,\n pageY: e.pageY,\n target: e.target as HTMLElement,\n originalEvent: e,\n});\n\nconst getPositionInfoFromTouch = (\n touch: Touch,\n e: TouchEvent\n): PositionInfo => ({\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target as HTMLElement,\n originalEvent: e,\n});\n\nabstract class MouseWidget extends SimpleWidget {\n protected isMouseStarted: boolean;\n protected mouseDownInfo: PositionInfo | null;\n private mouseDelayTimer: number | null;\n private isMouseDelayMet: boolean;\n\n public init(): void {\n const element = this.$el.get(0);\n\n if (element) {\n element.addEventListener(\"mousedown\", this.mouseDown, {\n passive: false,\n });\n element.addEventListener(\"touchstart\", this.touchStart, {\n passive: false,\n });\n }\n\n this.isMouseStarted = false;\n this.mouseDelayTimer = null;\n this.isMouseDelayMet = false;\n this.mouseDownInfo = null;\n }\n\n public deinit(): void {\n const el = this.$el.get(0);\n\n if (el) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (el as any).removeEventListener(\"mousedown\", this.mouseDown, {\n passive: false,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (el as any).removeEventListener(\"touchstart\", this.touchStart, {\n passive: false,\n });\n }\n\n this.removeMouseMoveEventListeners();\n }\n\n protected abstract mouseCapture(positionInfo: PositionInfo): boolean | null;\n\n protected abstract mouseStart(positionInfo: PositionInfo): boolean;\n\n protected abstract mouseDrag(positionInfo: PositionInfo): void;\n\n protected abstract mouseStop(positionInfo: PositionInfo): void;\n\n protected abstract getMouseDelay(): number;\n\n private mouseDown = (e: MouseEvent): void => {\n // Left mouse button?\n if (e.button !== 0) {\n return;\n }\n\n const result = this.handleMouseDown(getPositionInfoFromMouseEvent(e));\n\n if (result && e.cancelable) {\n e.preventDefault();\n }\n };\n\n private handleMouseDown(positionInfo: PositionInfo): boolean {\n // We may have missed mouseup (out of window)\n if (this.isMouseStarted) {\n this.handleMouseUp(positionInfo);\n }\n\n this.mouseDownInfo = positionInfo;\n\n if (!this.mouseCapture(positionInfo)) {\n return false;\n }\n\n this.handleStartMouse();\n\n return true;\n }\n\n private handleStartMouse(): void {\n document.addEventListener(\"mousemove\", this.mouseMove, {\n passive: false,\n });\n document.addEventListener(\"touchmove\", this.touchMove, {\n passive: false,\n });\n document.addEventListener(\"mouseup\", this.mouseUp, { passive: false });\n document.addEventListener(\"touchend\", this.touchEnd, {\n passive: false,\n });\n\n const mouseDelay = this.getMouseDelay();\n\n if (mouseDelay) {\n this.startMouseDelayTimer(mouseDelay);\n } else {\n this.isMouseDelayMet = true;\n }\n }\n\n private startMouseDelayTimer(mouseDelay: number): void {\n if (this.mouseDelayTimer) {\n clearTimeout(this.mouseDelayTimer);\n }\n\n this.mouseDelayTimer = window.setTimeout(() => {\n if (this.mouseDownInfo) {\n this.isMouseDelayMet = true;\n }\n }, mouseDelay);\n\n this.isMouseDelayMet = false;\n }\n\n private mouseMove = (e: MouseEvent): void => {\n this.handleMouseMove(e, getPositionInfoFromMouseEvent(e));\n };\n\n private handleMouseMove(\n e: MouseEvent | TouchEvent,\n positionInfo: PositionInfo\n ): void {\n if (this.isMouseStarted) {\n this.mouseDrag(positionInfo);\n\n if (e.cancelable) {\n e.preventDefault();\n }\n return;\n }\n\n if (!this.isMouseDelayMet) {\n return;\n }\n\n if (this.mouseDownInfo) {\n this.isMouseStarted = this.mouseStart(this.mouseDownInfo) !== false;\n }\n\n if (this.isMouseStarted) {\n this.mouseDrag(positionInfo);\n\n if (e.cancelable) {\n e.preventDefault();\n }\n } else {\n this.handleMouseUp(positionInfo);\n }\n }\n\n private mouseUp = (e: MouseEvent): void => {\n this.handleMouseUp(getPositionInfoFromMouseEvent(e));\n };\n\n private handleMouseUp(positionInfo: PositionInfo): void {\n this.removeMouseMoveEventListeners();\n this.isMouseDelayMet = false;\n this.mouseDownInfo = null;\n\n if (this.isMouseStarted) {\n this.isMouseStarted = false;\n this.mouseStop(positionInfo);\n }\n }\n\n private removeMouseMoveEventListeners() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"mousemove\", this.mouseMove, {\n passive: false,\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"touchmove\", this.touchMove, {\n passive: false,\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"mouseup\", this.mouseUp, {\n passive: false,\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"touchend\", this.touchEnd, {\n passive: false,\n });\n }\n\n private touchStart = (e: TouchEvent): void => {\n if (!e) {\n return;\n }\n\n if (e.touches.length > 1) {\n return;\n }\n\n const touch = e.changedTouches[0];\n\n if (!touch) {\n return;\n }\n\n this.handleMouseDown(getPositionInfoFromTouch(touch, e));\n };\n\n private touchMove = (e: TouchEvent): void => {\n if (!e) {\n return;\n }\n\n if (e.touches.length > 1) {\n return;\n }\n\n const touch = e.changedTouches[0];\n\n if (!touch) {\n return;\n }\n\n this.handleMouseMove(e, getPositionInfoFromTouch(touch, e));\n };\n\n private touchEnd = (e: TouchEvent): void => {\n if (!e) {\n return;\n }\n\n if (e.touches.length > 1) {\n return;\n }\n\n const touch = e.changedTouches[0];\n\n if (!touch) {\n return;\n }\n\n this.handleMouseUp(getPositionInfoFromTouch(touch, e));\n };\n}\n\nexport default MouseWidget;\n","import { isInt } from \"./util\";\nimport { JqTreeWidget } from \"./tree.jquery\";\nimport { Node } from \"./node\";\n\nexport interface SavedState {\n open_nodes: NodeId[];\n selected_node: NodeId[];\n}\n\nexport default class SaveStateHandler {\n private treeWidget: JqTreeWidget;\n private _supportsLocalStorage: boolean | null;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n }\n\n public saveState(): void {\n const state = JSON.stringify(this.getState());\n\n if (this.treeWidget.options.onSetStateFromStorage) {\n this.treeWidget.options.onSetStateFromStorage(state);\n } else if (this.supportsLocalStorage()) {\n localStorage.setItem(this.getKeyName(), state);\n }\n }\n\n public getStateFromStorage(): SavedState | null {\n const jsonData = this.loadFromStorage();\n\n if (jsonData) {\n return this.parseState(jsonData) as unknown as SavedState;\n } else {\n return null;\n }\n }\n\n public getState(): SavedState {\n const getOpenNodeIds = (): NodeId[] => {\n const openNodes: NodeId[] = [];\n\n this.treeWidget.tree.iterate((node: Node) => {\n if (node.is_open && node.id && node.hasChildren()) {\n openNodes.push(node.id);\n }\n return true;\n });\n\n return openNodes;\n };\n\n const getSelectedNodeIds = (): NodeId[] => {\n const selectedNodeIds: NodeId[] = [];\n\n this.treeWidget.getSelectedNodes().forEach((node) => {\n if (node.id != null) {\n selectedNodeIds.push(node.id);\n }\n });\n\n return selectedNodeIds;\n };\n\n return {\n open_nodes: getOpenNodeIds(),\n selected_node: getSelectedNodeIds(),\n };\n }\n\n /*\n Set initial state\n Don't handle nodes that are loaded on demand\n\n result: must load on demand\n */\n public setInitialState(state: SavedState): boolean {\n if (!state) {\n return false;\n } else {\n let mustLoadOnDemand = false;\n\n if (state.open_nodes) {\n mustLoadOnDemand = this.openInitialNodes(state.open_nodes);\n }\n\n if (state.selected_node) {\n this.resetSelection();\n this.selectInitialNodes(state.selected_node);\n }\n\n return mustLoadOnDemand;\n }\n }\n\n public setInitialStateOnDemand(\n state: SavedState,\n cbFinished: () => void\n ): void {\n if (state) {\n this.doSetInitialStateOnDemand(\n state.open_nodes,\n state.selected_node,\n cbFinished\n );\n } else {\n cbFinished();\n }\n }\n\n public getNodeIdToBeSelected(): NodeId | null {\n const state = this.getStateFromStorage();\n\n if (state && state.selected_node) {\n return state.selected_node[0] || null;\n } else {\n return null;\n }\n }\n\n private parseState(jsonData: string): SavedState {\n const state = JSON.parse(jsonData) as Record;\n\n // Check if selected_node is an int (instead of an array)\n if (state && state.selected_node && isInt(state.selected_node)) {\n // Convert to array\n state.selected_node = [state.selected_node];\n }\n\n return state as unknown as SavedState;\n }\n\n private loadFromStorage(): string | null {\n if (this.treeWidget.options.onGetStateFromStorage) {\n return this.treeWidget.options.onGetStateFromStorage();\n } else if (this.supportsLocalStorage()) {\n return localStorage.getItem(this.getKeyName());\n } else {\n return null;\n }\n }\n\n private openInitialNodes(nodeIds: NodeId[]): boolean {\n let mustLoadOnDemand = false;\n\n for (const nodeId of nodeIds) {\n const node = this.treeWidget.getNodeById(nodeId);\n\n if (node) {\n if (!node.load_on_demand) {\n node.is_open = true;\n } else {\n mustLoadOnDemand = true;\n }\n }\n }\n\n return mustLoadOnDemand;\n }\n\n private selectInitialNodes(nodeIds: NodeId[]): boolean {\n let selectCount = 0;\n\n for (const nodeId of nodeIds) {\n const node = this.treeWidget.getNodeById(nodeId);\n\n if (node) {\n selectCount += 1;\n\n this.treeWidget.selectNodeHandler.addToSelection(node);\n }\n }\n\n return selectCount !== 0;\n }\n\n private resetSelection(): void {\n const selectNodeHandler = this.treeWidget.selectNodeHandler;\n\n const selectedNodes = selectNodeHandler.getSelectedNodes();\n\n selectedNodes.forEach((node) => {\n selectNodeHandler.removeFromSelection(node);\n });\n }\n\n private doSetInitialStateOnDemand(\n nodeIdsParam: NodeId[],\n selectedNodes: NodeId[],\n cbFinished: () => void\n ): void {\n let loadingCount = 0;\n let nodeIds = nodeIdsParam;\n\n const openNodes = (): void => {\n const newNodesIds = [];\n\n for (const nodeId of nodeIds) {\n const node = this.treeWidget.getNodeById(nodeId);\n\n if (!node) {\n newNodesIds.push(nodeId);\n } else {\n if (!node.is_loading) {\n if (node.load_on_demand) {\n loadAndOpenNode(node);\n } else {\n this.treeWidget._openNode(node, false, null);\n }\n }\n }\n }\n\n nodeIds = newNodesIds;\n\n if (this.selectInitialNodes(selectedNodes)) {\n this.treeWidget._refreshElements(null);\n }\n\n if (loadingCount === 0) {\n cbFinished();\n }\n };\n\n const loadAndOpenNode = (node: Node): void => {\n loadingCount += 1;\n this.treeWidget._openNode(node, false, () => {\n loadingCount -= 1;\n openNodes();\n });\n };\n\n openNodes();\n }\n\n private getKeyName(): string {\n if (typeof this.treeWidget.options.saveState === \"string\") {\n return this.treeWidget.options.saveState;\n } else {\n return \"tree\";\n }\n }\n\n private supportsLocalStorage(): boolean {\n const testSupport = (): boolean => {\n // Is local storage supported?\n if (localStorage == null) {\n return false;\n } else {\n // Check if it's possible to store an item. Safari does not allow this in private browsing mode.\n try {\n const key = \"_storage_test\";\n sessionStorage.setItem(key, \"value\");\n sessionStorage.removeItem(key);\n } catch (error) {\n return false;\n }\n\n return true;\n }\n };\n\n if (this._supportsLocalStorage == null) {\n this._supportsLocalStorage = testSupport();\n }\n\n return this._supportsLocalStorage;\n }\n}\n","import { JqTreeWidget } from \"./tree.jquery\";\nimport { HitArea, PositionInfo } from \"./types\";\n\nexport default class ScrollHandler {\n private treeWidget: JqTreeWidget;\n private previousTop: number;\n private isInitialized: boolean;\n private $scrollParent: JQuery | null;\n private scrollParentTop: number;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n this.previousTop = -1;\n this.isInitialized = false;\n }\n\n public checkScrolling(): void {\n this.ensureInit();\n this.checkVerticalScrolling();\n this.checkHorizontalScrolling();\n }\n\n public scrollToY(top: number): void {\n this.ensureInit();\n\n if (this.$scrollParent && this.$scrollParent[0]) {\n this.$scrollParent[0].scrollTop = top;\n } else {\n const offset = this.treeWidget.$el.offset();\n const treeTop = offset ? offset.top : 0;\n\n jQuery(document).scrollTop(top + treeTop);\n }\n }\n\n public isScrolledIntoView($element: JQuery): boolean {\n this.ensureInit();\n\n let elementBottom: number;\n let viewBottom: number;\n let elementTop: number;\n let viewTop: number;\n\n const elHeight = $element.height() || 0;\n\n if (this.$scrollParent) {\n viewTop = 0;\n viewBottom = this.$scrollParent.height() || 0;\n\n const offset = $element.offset();\n const originalTop = offset ? offset.top : 0;\n\n elementTop = originalTop - this.scrollParentTop;\n elementBottom = elementTop + elHeight;\n } else {\n viewTop = jQuery(window).scrollTop() || 0;\n\n const windowHeight = jQuery(window).height() || 0;\n viewBottom = viewTop + windowHeight;\n\n const offset = $element.offset();\n\n elementTop = offset ? offset.top : 0;\n elementBottom = elementTop + elHeight;\n }\n\n return elementBottom <= viewBottom && elementTop >= viewTop;\n }\n\n public getScrollLeft(): number {\n if (!this.$scrollParent) {\n return 0;\n } else {\n return this.$scrollParent.scrollLeft() || 0;\n }\n }\n\n private initScrollParent(): void {\n const getParentWithOverflow = (): JQuery | null => {\n const cssAttributes = [\"overflow\", \"overflow-y\"];\n\n const hasOverFlow = ($el: JQuery): boolean => {\n for (const attr of cssAttributes) {\n const overflowValue = $el.css(attr);\n if (\n overflowValue === \"auto\" ||\n overflowValue === \"scroll\"\n ) {\n return true;\n }\n }\n\n return false;\n };\n\n if (hasOverFlow(this.treeWidget.$el)) {\n return this.treeWidget.$el;\n }\n\n for (const el of this.treeWidget.$el.parents().get()) {\n const $el = jQuery(el);\n if (hasOverFlow($el)) {\n return $el;\n }\n }\n\n return null;\n };\n\n const setDocumentAsScrollParent = (): void => {\n this.scrollParentTop = 0;\n this.$scrollParent = null;\n };\n\n if (this.treeWidget.$el.css(\"position\") === \"fixed\") {\n setDocumentAsScrollParent();\n }\n\n const $scrollParent = getParentWithOverflow();\n\n if (\n $scrollParent &&\n $scrollParent.length &&\n $scrollParent[0]?.tagName !== \"HTML\"\n ) {\n this.$scrollParent = $scrollParent;\n\n const offset = this.$scrollParent.offset();\n this.scrollParentTop = offset ? offset.top : 0;\n } else {\n setDocumentAsScrollParent();\n }\n\n this.isInitialized = true;\n }\n\n private ensureInit(): void {\n if (!this.isInitialized) {\n this.initScrollParent();\n }\n }\n\n private handleVerticalScrollingWithScrollParent(area: HitArea): void {\n const scrollParent = this.$scrollParent && this.$scrollParent[0];\n\n if (!scrollParent) {\n return;\n }\n\n const distanceBottom =\n this.scrollParentTop + scrollParent.offsetHeight - area.bottom;\n\n if (distanceBottom < 20) {\n scrollParent.scrollTop += 20;\n this.treeWidget.refreshHitAreas();\n this.previousTop = -1;\n } else if (area.top - this.scrollParentTop < 20) {\n scrollParent.scrollTop -= 20;\n this.treeWidget.refreshHitAreas();\n this.previousTop = -1;\n }\n }\n\n private handleVerticalScrollingWithDocument(area: HitArea): void {\n const scrollTop = jQuery(document).scrollTop() || 0;\n const distanceTop = area.top - scrollTop;\n\n if (distanceTop < 20) {\n jQuery(document).scrollTop(scrollTop - 20);\n } else {\n const windowHeight = jQuery(window).height() || 0;\n\n if (windowHeight - (area.bottom - scrollTop) < 20) {\n jQuery(document).scrollTop(scrollTop + 20);\n }\n }\n }\n\n private checkVerticalScrolling(): void {\n const hoveredArea = this.treeWidget.dndHandler.hoveredArea;\n\n if (hoveredArea && hoveredArea.top !== this.previousTop) {\n this.previousTop = hoveredArea.top;\n\n if (this.$scrollParent) {\n this.handleVerticalScrollingWithScrollParent(hoveredArea);\n } else {\n this.handleVerticalScrollingWithDocument(hoveredArea);\n }\n }\n }\n\n private checkHorizontalScrolling(): void {\n const positionInfo = this.treeWidget.dndHandler.positionInfo;\n\n if (!positionInfo) {\n return;\n }\n\n if (this.$scrollParent) {\n this.handleHorizontalScrollingWithParent(positionInfo);\n } else {\n this.handleHorizontalScrollingWithDocument(positionInfo);\n }\n }\n\n private handleHorizontalScrollingWithParent(\n positionInfo: PositionInfo\n ): void {\n if (\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return;\n }\n\n const $scrollParent = this.$scrollParent;\n const scrollParentOffset = $scrollParent && $scrollParent.offset();\n\n if (!($scrollParent && scrollParentOffset)) {\n return;\n }\n\n const scrollParent = $scrollParent[0];\n\n if (!scrollParent) {\n return;\n }\n\n const canScrollRight =\n scrollParent.scrollLeft + scrollParent.clientWidth <\n scrollParent.scrollWidth;\n const canScrollLeft = scrollParent.scrollLeft > 0;\n\n const rightEdge = scrollParentOffset.left + scrollParent.clientWidth;\n const leftEdge = scrollParentOffset.left;\n const isNearRightEdge = positionInfo.pageX > rightEdge - 20;\n const isNearLeftEdge = positionInfo.pageX < leftEdge + 20;\n\n if (isNearRightEdge && canScrollRight) {\n scrollParent.scrollLeft = Math.min(\n scrollParent.scrollLeft + 20,\n scrollParent.scrollWidth\n );\n } else if (isNearLeftEdge && canScrollLeft) {\n scrollParent.scrollLeft = Math.max(scrollParent.scrollLeft - 20, 0);\n }\n }\n\n private handleHorizontalScrollingWithDocument(\n positionInfo: PositionInfo\n ): void {\n if (\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return;\n }\n\n const $document = jQuery(document);\n\n const scrollLeft = $document.scrollLeft() || 0;\n const windowWidth = jQuery(window).width() || 0;\n\n const canScrollLeft = scrollLeft > 0;\n\n const isNearRightEdge = positionInfo.pageX > windowWidth - 20;\n const isNearLeftEdge = positionInfo.pageX - scrollLeft < 20;\n\n if (isNearRightEdge) {\n $document.scrollLeft(scrollLeft + 20);\n } else if (isNearLeftEdge && canScrollLeft) {\n $document.scrollLeft(Math.max(scrollLeft - 20, 0));\n }\n }\n}\n","import { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\nexport default class SelectNodeHandler {\n private treeWidget: JqTreeWidget;\n private selectedNodes: Set;\n private selectedSingleNode: Node | null;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n this.selectedNodes = new Set();\n this.clear();\n }\n\n public getSelectedNode(): Node | false {\n const selectedNodes = this.getSelectedNodes();\n\n if (selectedNodes.length) {\n return selectedNodes[0] || false;\n } else {\n return false;\n }\n }\n\n public getSelectedNodes(): Node[] {\n if (this.selectedSingleNode) {\n return [this.selectedSingleNode];\n } else {\n const selectedNodes: Node[] = [];\n\n this.selectedNodes.forEach((id) => {\n const node = this.treeWidget.getNodeById(id);\n if (node) {\n selectedNodes.push(node);\n }\n });\n\n return selectedNodes;\n }\n }\n\n public getSelectedNodesUnder(parent: Node): Node[] {\n if (this.selectedSingleNode) {\n if (parent.isParentOf(this.selectedSingleNode)) {\n return [this.selectedSingleNode];\n } else {\n return [];\n }\n } else {\n const selectedNodes = [];\n\n for (const id in this.selectedNodes) {\n if (\n Object.prototype.hasOwnProperty.call(this.selectedNodes, id)\n ) {\n const node = this.treeWidget.getNodeById(id);\n if (node && parent.isParentOf(node)) {\n selectedNodes.push(node);\n }\n }\n }\n\n return selectedNodes;\n }\n }\n\n public isNodeSelected(node: Node): boolean {\n if (node.id != null) {\n return this.selectedNodes.has(node.id);\n } else if (this.selectedSingleNode) {\n return this.selectedSingleNode.element === node.element;\n } else {\n return false;\n }\n }\n\n public clear(): void {\n this.selectedNodes.clear();\n this.selectedSingleNode = null;\n }\n\n public removeFromSelection(node: Node, includeChildren = false): void {\n if (node.id == null) {\n if (\n this.selectedSingleNode &&\n node.element === this.selectedSingleNode.element\n ) {\n this.selectedSingleNode = null;\n }\n } else {\n this.selectedNodes.delete(node.id);\n\n if (includeChildren) {\n node.iterate(() => {\n if (node.id != null) {\n this.selectedNodes.delete(node.id);\n }\n return true;\n });\n }\n }\n }\n\n public addToSelection(node: Node): void {\n if (node.id != null) {\n this.selectedNodes.add(node.id);\n } else {\n this.selectedSingleNode = node;\n }\n }\n\n public isFocusOnTree(): boolean {\n const activeElement = document.activeElement;\n\n return Boolean(\n activeElement &&\n activeElement.tagName === \"SPAN\" &&\n this.treeWidget._containsElement(activeElement as HTMLElement)\n );\n }\n}\n","import { Position, Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\nimport { DropHint } from \"./types\";\n\nexport type OnFinishOpenNode = (node: Node) => void;\n\nexport class NodeElement {\n public node: Node;\n public $element: JQuery;\n protected treeWidget: JqTreeWidget;\n\n constructor(node: Node, treeWidget: JqTreeWidget) {\n this.init(node, treeWidget);\n }\n\n public init(node: Node, treeWidget: JqTreeWidget): void {\n this.node = node;\n this.treeWidget = treeWidget;\n\n if (!node.element) {\n const element = this.treeWidget.element.get(0);\n\n if (element) {\n node.element = element;\n }\n }\n\n if (node.element) {\n this.$element = jQuery(node.element);\n }\n }\n\n public addDropHint(position: number): DropHint {\n if (this.mustShowBorderDropHint(position)) {\n return new BorderDropHint(\n this.$element,\n this.treeWidget._getScrollLeft(),\n );\n } else {\n return new GhostDropHint(this.node, this.$element, position);\n }\n }\n\n public select(mustSetFocus: boolean): void {\n const $li = this.getLi();\n\n $li.addClass(\"jqtree-selected\");\n\n const $span = this.getSpan();\n $span.attr(\"tabindex\", this.treeWidget.options.tabIndex ?? null);\n $span.attr(\"aria-selected\", \"true\");\n\n if (mustSetFocus) {\n $span.trigger(\"focus\");\n }\n }\n\n public deselect(): void {\n const $li = this.getLi();\n\n $li.removeClass(\"jqtree-selected\");\n\n const $span = this.getSpan();\n $span.removeAttr(\"tabindex\");\n $span.attr(\"aria-selected\", \"false\");\n\n $span.trigger(\"blur\");\n }\n\n protected getUl(): JQuery {\n return this.$element.children(\"ul:first\");\n }\n\n protected getSpan(): JQuery {\n return this.$element\n .children(\".jqtree-element\")\n .find(\"span.jqtree-title\");\n }\n\n protected getLi(): JQuery {\n return this.$element;\n }\n\n protected mustShowBorderDropHint(position: Position): boolean {\n return position === Position.Inside;\n }\n}\n\nexport class FolderElement extends NodeElement {\n public open(\n onFinished: OnFinishOpenNode | null,\n slide = true,\n animationSpeed: JQuery.Duration = \"fast\",\n ): void {\n if (this.node.is_open) {\n return;\n }\n\n this.node.is_open = true;\n\n const $button = this.getButton();\n $button.removeClass(\"jqtree-closed\");\n $button.html(\"\");\n\n const buttonEl = $button.get(0);\n\n if (buttonEl) {\n const openedIconElement =\n this.treeWidget.renderer.openedIconElement;\n\n if (openedIconElement) {\n const icon = openedIconElement.cloneNode(true);\n buttonEl.appendChild(icon);\n }\n }\n\n const doOpen = (): void => {\n const $li = this.getLi();\n $li.removeClass(\"jqtree-closed\");\n\n const $titleSpan = this.getSpan();\n $titleSpan.attr(\"aria-expanded\", \"true\");\n\n if (onFinished) {\n onFinished(this.node);\n }\n\n this.treeWidget._triggerEvent(\"tree.open\", {\n node: this.node,\n });\n };\n\n if (slide) {\n this.getUl().slideDown(animationSpeed, doOpen);\n } else {\n this.getUl().show();\n doOpen();\n }\n }\n\n public close(\n slide = true,\n animationSpeed: JQuery.Duration | undefined = \"fast\",\n ): void {\n if (!this.node.is_open) {\n return;\n }\n\n this.node.is_open = false;\n\n const $button = this.getButton();\n $button.addClass(\"jqtree-closed\");\n $button.html(\"\");\n\n const buttonEl = $button.get(0);\n\n if (buttonEl) {\n const closedIconElement =\n this.treeWidget.renderer.closedIconElement;\n\n if (closedIconElement) {\n const icon = closedIconElement.cloneNode(true);\n buttonEl.appendChild(icon);\n }\n }\n\n const doClose = (): void => {\n const $li = this.getLi();\n $li.addClass(\"jqtree-closed\");\n\n const $titleSpan = this.getSpan();\n $titleSpan.attr(\"aria-expanded\", \"false\");\n\n this.treeWidget._triggerEvent(\"tree.close\", {\n node: this.node,\n });\n };\n\n if (slide) {\n this.getUl().slideUp(animationSpeed, doClose);\n } else {\n this.getUl().hide();\n doClose();\n }\n }\n\n protected mustShowBorderDropHint(position: Position): boolean {\n return !this.node.is_open && position === Position.Inside;\n }\n\n private getButton(): JQuery {\n return this.$element\n .children(\".jqtree-element\")\n .find(\"a.jqtree-toggler\");\n }\n}\n\nexport class BorderDropHint implements DropHint {\n private $hint: JQuery;\n\n constructor($element: JQuery, scrollLeft: number) {\n const $div = $element.children(\".jqtree-element\");\n\n const elWidth = $element.width() || 0;\n const width = Math.max(elWidth + scrollLeft - 4, 0);\n\n const elHeight = $div.outerHeight() || 0;\n const height = Math.max(elHeight - 4, 0);\n\n this.$hint = jQuery('');\n $div.append(this.$hint);\n\n this.$hint.css({ width, height });\n }\n\n public remove(): void {\n this.$hint.remove();\n }\n}\n\nclass GhostDropHint implements DropHint {\n private $element: JQuery;\n private node: Node;\n private $ghost: JQuery;\n\n constructor(node: Node, $element: JQuery, position: Position) {\n this.$element = $element;\n\n this.node = node;\n this.$ghost = jQuery(\n `\n `,\n );\n\n if (position === Position.After) {\n this.moveAfter();\n } else if (position === Position.Before) {\n this.moveBefore();\n } else if (position === Position.Inside) {\n if (node.isFolder() && node.is_open) {\n this.moveInsideOpenFolder();\n } else {\n this.moveInside();\n }\n }\n }\n\n public remove(): void {\n this.$ghost.remove();\n }\n\n public moveAfter(): void {\n this.$element.after(this.$ghost);\n }\n\n public moveBefore(): void {\n this.$element.before(this.$ghost);\n }\n\n public moveInsideOpenFolder(): void {\n const childElement = this.node.children[0]?.element;\n\n if (childElement) {\n jQuery(childElement).before(this.$ghost);\n }\n }\n\n public moveInside(): void {\n this.$element.after(this.$ghost);\n this.$ghost.addClass(\"jqtree-inside\");\n }\n}\n","import __version__ from \"./version\";\nimport { DragAndDropHandler } from \"./dragAndDropHandler\";\nimport ElementsRenderer from \"./elementsRenderer\";\nimport DataLoader, { HandleFinishedLoading } from \"./dataLoader\";\nimport KeyHandler from \"./keyHandler\";\nimport MouseWidget from \"./mouse.widget\";\nimport { PositionInfo } from \"./types\";\nimport SaveStateHandler, { SavedState } from \"./saveStateHandler\";\nimport ScrollHandler from \"./scrollHandler\";\nimport SelectNodeHandler from \"./selectNodeHandler\";\nimport SimpleWidget from \"./simple.widget\";\nimport { Node, getPosition } from \"./node\";\nimport { isFunction } from \"./util\";\nimport { FolderElement, NodeElement, OnFinishOpenNode } from \"./nodeElement\";\nimport { JQTreeOptions } from \"./jqtreeOptions\";\n\ninterface ClickTarget {\n node: Node;\n type: \"button\" | \"label\";\n}\n\ninterface SelectNodeOptions {\n mustToggle?: boolean;\n mustSetFocus?: boolean;\n}\n\nconst NODE_PARAM_IS_EMPTY = \"Node parameter is empty\";\nconst PARAM_IS_EMPTY = \"Parameter is empty: \";\n\nexport class JqTreeWidget extends MouseWidget {\n protected static defaults: JQTreeOptions = {\n animationSpeed: \"fast\",\n autoEscape: true,\n autoOpen: false, // true / false / int (open n levels starting at 0)\n buttonLeft: true,\n // The symbol to use for a closed node - â–º BLACK RIGHT-POINTING POINTER\n // http://www.fileformat.info/info/unicode/char/25ba/index.htm\n closedIcon: undefined,\n data: undefined,\n dataFilter: undefined,\n dataUrl: undefined,\n dragAndDrop: false,\n keyboardSupport: true,\n nodeClass: Node,\n onCanMove: undefined, // Can this node be moved?\n onCanMoveTo: undefined, // Can this node be moved to this position? function(moved_node, target_node, position)\n onCanSelectNode: undefined,\n onCreateLi: undefined,\n onDragMove: undefined,\n onDragStop: undefined,\n onGetStateFromStorage: undefined,\n onIsMoveHandle: undefined,\n onLoadFailed: undefined,\n onLoading: undefined,\n onSetStateFromStorage: undefined,\n openedIcon: \"▼\",\n openFolderDelay: 500, // The delay for opening a folder during drag and drop; the value is in milliseconds\n // The symbol to use for an open node - â–¼ BLACK DOWN-POINTING TRIANGLE\n // http://www.fileformat.info/info/unicode/char/25bc/index.htm\n rtl: undefined, // right-to-left support; true / false (default)\n saveState: false, // true / false / string (cookie name)\n selectable: true,\n showEmptyFolder: false,\n slide: true, // must display slide animation?\n startDndDelay: 300, // The delay for starting dnd (in milliseconds)\n tabIndex: 0,\n useContextMenu: true,\n };\n\n public element: JQuery;\n public tree: Node;\n public dndHandler: DragAndDropHandler;\n public renderer: ElementsRenderer;\n public dataLoader: DataLoader;\n public scrollHandler: ScrollHandler;\n public selectNodeHandler: SelectNodeHandler;\n\n private isInitialized: boolean;\n private saveStateHandler: SaveStateHandler;\n private keyHandler: KeyHandler;\n\n public toggle(node: Node, slideParam: null | boolean = null): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const slide = slideParam ?? this.options.slide;\n\n if (node.is_open) {\n this.closeNode(node, slide);\n } else {\n this.openNode(node, slide);\n }\n\n return this.element;\n }\n\n public getTree(): Node {\n return this.tree;\n }\n\n public selectNode(\n node: Node | null,\n optionsParam?: SelectNodeOptions\n ): JQuery {\n this.doSelectNode(node, optionsParam);\n return this.element;\n }\n\n public getSelectedNode(): Node | false {\n return this.selectNodeHandler.getSelectedNode();\n }\n\n public toJson(): string {\n return JSON.stringify(this.tree.getData());\n }\n\n public loadData(data: NodeData[], parentNode: Node | null): JQuery {\n this.doLoadData(data, parentNode);\n return this.element;\n }\n\n /*\n signatures:\n - loadDataFromUrl(url, parent_node=null, on_finished=null)\n loadDataFromUrl('/my_data');\n loadDataFromUrl('/my_data', node1);\n loadDataFromUrl('/my_data', node1, function() { console.log('finished'); });\n loadDataFromUrl('/my_data', null, function() { console.log('finished'); });\n\n - loadDataFromUrl(parent_node=null, on_finished=null)\n loadDataFromUrl();\n loadDataFromUrl(node1);\n loadDataFromUrl(null, function() { console.log('finished'); });\n loadDataFromUrl(node1, function() { console.log('finished'); });\n */\n public loadDataFromUrl(\n param1: string | null | Node,\n param2?: Node | null | HandleFinishedLoading,\n param3?: HandleFinishedLoading\n ): JQuery {\n if (typeof param1 === \"string\") {\n // first parameter is url\n this.doLoadDataFromUrl(\n param1,\n param2 as Node | null,\n param3 ?? null\n );\n } else {\n // first parameter is not url\n this.doLoadDataFromUrl(\n null,\n param1,\n param2 as HandleFinishedLoading | null\n );\n }\n\n return this.element;\n }\n\n public reload(onFinished: HandleFinishedLoading | null): JQuery {\n this.doLoadDataFromUrl(null, null, onFinished);\n return this.element;\n }\n\n public refresh(): JQuery {\n this._refreshElements(null);\n return this.element;\n }\n\n public getNodeById(nodeId: NodeId): Node | null {\n return this.tree.getNodeById(nodeId);\n }\n\n public getNodeByName(name: string): Node | null {\n return this.tree.getNodeByName(name);\n }\n\n public getNodeByNameMustExist(name: string): Node {\n return this.tree.getNodeByNameMustExist(name);\n }\n\n public getNodesByProperty(key: string, value: unknown): Node[] {\n return this.tree.getNodesByProperty(key, value);\n }\n\n public getNodeByHtmlElement(\n element: HTMLElement | JQuery\n ): Node | null {\n return this.getNode(jQuery(element));\n }\n\n public getNodeByCallback(callback: (node: Node) => boolean): Node | null {\n return this.tree.getNodeByCallback(callback);\n }\n\n public openNode(\n node: Node,\n param1?: boolean | OnFinishOpenNode,\n param2?: OnFinishOpenNode\n ): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const parseParams = (): [boolean, OnFinishOpenNode | null] => {\n let onFinished: OnFinishOpenNode | null;\n let slide: boolean | null;\n\n if (isFunction(param1)) {\n onFinished = param1 as OnFinishOpenNode | null;\n slide = null;\n } else {\n slide = param1 as boolean;\n onFinished = param2 as OnFinishOpenNode;\n }\n\n if (slide == null) {\n slide = this.options.slide ?? false;\n }\n\n return [slide, onFinished];\n };\n\n const [slide, onFinished] = parseParams();\n\n this._openNode(node, slide, onFinished);\n return this.element;\n }\n\n public closeNode(node: Node, slideParam?: null | boolean): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const slide = slideParam ?? this.options.slide;\n\n if (node.isFolder() || node.isEmptyFolder) {\n new FolderElement(node, this).close(\n slide,\n this.options.animationSpeed\n );\n\n this.saveState();\n }\n\n return this.element;\n }\n\n public isDragging(): boolean {\n return this.dndHandler.isDragging;\n }\n\n public refreshHitAreas(): JQuery {\n this.dndHandler.refresh();\n return this.element;\n }\n\n public addNodeAfter(\n newNodeInfo: NodeData,\n existingNode: Node\n ): Node | null {\n const newNode = existingNode.addAfter(newNodeInfo);\n\n if (newNode) {\n this._refreshElements(existingNode.parent);\n }\n\n return newNode;\n }\n\n public addNodeBefore(\n newNodeInfo: NodeData,\n existingNode: Node\n ): Node | null {\n if (!existingNode) {\n throw Error(PARAM_IS_EMPTY + \"existingNode\");\n }\n\n const newNode = existingNode.addBefore(newNodeInfo);\n\n if (newNode) {\n this._refreshElements(existingNode.parent);\n }\n\n return newNode;\n }\n\n public addParentNode(\n newNodeInfo: NodeData,\n existingNode: Node\n ): Node | null {\n if (!existingNode) {\n throw Error(PARAM_IS_EMPTY + \"existingNode\");\n }\n\n const newNode = existingNode.addParent(newNodeInfo);\n\n if (newNode) {\n this._refreshElements(newNode.parent);\n }\n\n return newNode;\n }\n\n public removeNode(node: Node): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n if (!node.parent) {\n throw Error(\"Node has no parent\");\n }\n\n this.selectNodeHandler.removeFromSelection(node, true); // including children\n\n const parent = node.parent;\n node.remove();\n this._refreshElements(parent);\n\n return this.element;\n }\n\n public appendNode(newNodeInfo: NodeData, parentNodeParam?: Node): Node {\n const parentNode = parentNodeParam || this.tree;\n\n const node = parentNode.append(newNodeInfo);\n\n this._refreshElements(parentNode);\n\n return node;\n }\n\n public prependNode(newNodeInfo: NodeData, parentNodeParam?: Node): Node {\n const parentNode = parentNodeParam ?? this.tree;\n\n const node = parentNode.prepend(newNodeInfo);\n\n this._refreshElements(parentNode);\n\n return node;\n }\n\n public updateNode(node: Node, data: NodeData): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const idIsChanged =\n typeof data === \"object\" && data.id && data.id !== node.id;\n\n if (idIsChanged) {\n this.tree.removeNodeFromIndex(node);\n }\n\n node.setData(data);\n\n if (idIsChanged) {\n this.tree.addNodeToIndex(node);\n }\n\n if (\n typeof data === \"object\" &&\n data[\"children\"] &&\n data[\"children\"] instanceof Array\n ) {\n node.removeChildren();\n\n if (data.children.length) {\n node.loadFromData(data.children as Node[]);\n }\n }\n\n this._refreshElements(node);\n\n return this.element;\n }\n\n private isSelectedNodeInSubtree(subtree: Node): boolean {\n const selectedNode = this.getSelectedNode();\n\n if (!selectedNode) {\n return false;\n } else {\n return subtree === selectedNode || subtree.isParentOf(selectedNode);\n }\n }\n\n public moveNode(node: Node, targetNode: Node, position: string): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n if (!targetNode) {\n throw Error(PARAM_IS_EMPTY + \"targetNode\");\n }\n\n const positionIndex = getPosition(position);\n\n if (positionIndex !== undefined) {\n this.tree.moveNode(node, targetNode, positionIndex);\n this._refreshElements(null);\n }\n\n return this.element;\n }\n\n public getStateFromStorage(): SavedState | null {\n return this.saveStateHandler.getStateFromStorage();\n }\n\n public addToSelection(node: Node, mustSetFocus?: boolean): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n this.selectNodeHandler.addToSelection(node);\n\n this._getNodeElementForNode(node).select(\n mustSetFocus === undefined ? true : mustSetFocus\n );\n\n this.saveState();\n\n return this.element;\n }\n\n public getSelectedNodes(): Node[] {\n return this.selectNodeHandler.getSelectedNodes();\n }\n\n public isNodeSelected(node: Node): boolean {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n return this.selectNodeHandler.isNodeSelected(node);\n }\n\n public removeFromSelection(node: Node): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n this.selectNodeHandler.removeFromSelection(node);\n\n this._getNodeElementForNode(node).deselect();\n this.saveState();\n\n return this.element;\n }\n\n public scrollToNode(node: Node): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const nodeOffset = jQuery(node.element).offset();\n const nodeTop = nodeOffset ? nodeOffset.top : 0;\n\n const treeOffset = this.$el.offset();\n const treeTop = treeOffset ? treeOffset.top : 0;\n\n const top = nodeTop - treeTop;\n\n this.scrollHandler.scrollToY(top);\n\n return this.element;\n }\n\n public getState(): SavedState | null {\n return this.saveStateHandler.getState();\n }\n\n public setState(state: SavedState): JQuery {\n this.saveStateHandler.setInitialState(state);\n this._refreshElements(null);\n\n return this.element;\n }\n\n public setOption(option: string, value: unknown): JQuery {\n (this.options as unknown as Record)[option] = value;\n return this.element;\n }\n\n public moveDown(): JQuery {\n const selectedNode = this.getSelectedNode();\n if (selectedNode) {\n this.keyHandler.moveDown(selectedNode);\n }\n\n return this.element;\n }\n\n public moveUp(): JQuery {\n const selectedNode = this.getSelectedNode();\n if (selectedNode) {\n this.keyHandler.moveUp(selectedNode);\n }\n\n return this.element;\n }\n\n public getVersion(): string {\n return __version__;\n }\n\n public _triggerEvent(\n eventName: string,\n values?: Record\n ): JQuery.Event {\n const event = jQuery.Event(eventName, values);\n this.element.trigger(event);\n return event;\n }\n\n public _openNode(\n node: Node,\n slide = true,\n onFinished: OnFinishOpenNode | null\n ): void {\n const doOpenNode = (\n _node: Node,\n _slide: boolean,\n _onFinished: OnFinishOpenNode | null\n ): void => {\n const folderElement = new FolderElement(_node, this);\n folderElement.open(\n _onFinished,\n _slide,\n this.options.animationSpeed\n );\n };\n\n if (node.isFolder() || node.isEmptyFolder) {\n if (node.load_on_demand) {\n this.loadFolderOnDemand(node, slide, onFinished);\n } else {\n let parent = node.parent;\n\n while (parent) {\n // nb: do not open root element\n if (parent.parent) {\n doOpenNode(parent, false, null);\n }\n parent = parent.parent;\n }\n\n doOpenNode(node, slide, onFinished);\n this.saveState();\n }\n }\n }\n\n /*\n Redraw the tree or part of the tree.\n from_node: redraw this subtree\n */\n public _refreshElements(fromNode: Node | null): void {\n const mustSetFocus = this.selectNodeHandler.isFocusOnTree();\n const mustSelect = fromNode\n ? this.isSelectedNodeInSubtree(fromNode)\n : false;\n\n this.renderer.render(fromNode);\n\n if (mustSelect) {\n this.selectCurrentNode(mustSetFocus);\n }\n\n this._triggerEvent(\"tree.refresh\");\n }\n\n public _getNodeElementForNode(node: Node): NodeElement {\n if (node.isFolder()) {\n return new FolderElement(node, this);\n } else {\n return new NodeElement(node, this);\n }\n }\n\n public _getNodeElement($element: JQuery): NodeElement | null {\n const node = this.getNode($element);\n if (node) {\n return this._getNodeElementForNode(node);\n } else {\n return null;\n }\n }\n\n public _containsElement(element: HTMLElement): boolean {\n const node = this.getNode(jQuery(element));\n\n return node != null && node.tree === this.tree;\n }\n\n public _getScrollLeft(): number {\n return this.scrollHandler.getScrollLeft();\n }\n\n public init(): void {\n super.init();\n\n this.element = this.$el;\n this.isInitialized = false;\n\n this.options.rtl = this.getRtlOption();\n\n if (this.options.closedIcon == null) {\n this.options.closedIcon = this.getDefaultClosedIcon();\n }\n\n this.renderer = new ElementsRenderer(this);\n this.dataLoader = new DataLoader(this);\n this.saveStateHandler = new SaveStateHandler(this);\n this.selectNodeHandler = new SelectNodeHandler(this);\n this.dndHandler = new DragAndDropHandler(this);\n this.scrollHandler = new ScrollHandler(this);\n this.keyHandler = new KeyHandler(this);\n\n this.initData();\n\n this.element.on(\"click\", this.handleClick);\n this.element.on(\"dblclick\", this.handleDblclick);\n\n if (this.options.useContextMenu) {\n this.element.on(\"contextmenu\", this.handleContextmenu);\n }\n }\n\n public deinit(): void {\n this.element.empty();\n this.element.off();\n\n this.keyHandler.deinit();\n\n this.tree = new Node({}, true);\n\n super.deinit();\n }\n\n protected mouseCapture(positionInfo: PositionInfo): boolean | null {\n if (this.options.dragAndDrop) {\n return this.dndHandler.mouseCapture(positionInfo);\n } else {\n return false;\n }\n }\n\n protected mouseStart(positionInfo: PositionInfo): boolean {\n if (this.options.dragAndDrop) {\n return this.dndHandler.mouseStart(positionInfo);\n } else {\n return false;\n }\n }\n\n protected mouseDrag(positionInfo: PositionInfo): boolean {\n if (this.options.dragAndDrop) {\n const result = this.dndHandler.mouseDrag(positionInfo);\n\n this.scrollHandler.checkScrolling();\n return result;\n } else {\n return false;\n }\n }\n\n protected mouseStop(positionInfo: PositionInfo): boolean {\n if (this.options.dragAndDrop) {\n return this.dndHandler.mouseStop(positionInfo);\n } else {\n return false;\n }\n }\n\n protected getMouseDelay(): number {\n return this.options.startDndDelay ?? 0;\n }\n\n private initData(): void {\n if (this.options.data) {\n this.doLoadData(this.options.data, null);\n } else {\n const dataUrl = this.getDataUrlInfo(null);\n\n if (dataUrl) {\n this.doLoadDataFromUrl(null, null, null);\n } else {\n this.doLoadData([], null);\n }\n }\n }\n\n private getDataUrlInfo(node: Node | null): JQuery.AjaxSettings | null {\n const dataUrl =\n this.options.dataUrl || (this.element.data(\"url\") as string | null);\n\n const getUrlFromString = (url: string): JQuery.AjaxSettings => {\n const urlInfo: JQuery.AjaxSettings = { url };\n\n setUrlInfoData(urlInfo);\n\n return urlInfo;\n };\n\n const setUrlInfoData = (urlInfo: JQuery.AjaxSettings): void => {\n if (node?.id) {\n // Load on demand of a subtree; add node parameter\n const data = { node: node.id };\n urlInfo[\"data\"] = data;\n } else {\n // Add selected_node parameter\n const selectedNodeId = this.getNodeIdToBeSelected();\n if (selectedNodeId) {\n const data = { selected_node: selectedNodeId };\n urlInfo[\"data\"] = data;\n }\n }\n };\n\n if (typeof dataUrl === \"function\") {\n return dataUrl(node);\n } else if (typeof dataUrl === \"string\") {\n return getUrlFromString(dataUrl);\n } else if (dataUrl && typeof dataUrl === \"object\") {\n setUrlInfoData(dataUrl);\n return dataUrl;\n } else {\n return null;\n }\n }\n\n private getNodeIdToBeSelected(): NodeId | null {\n if (this.options.saveState) {\n return this.saveStateHandler.getNodeIdToBeSelected();\n } else {\n return null;\n }\n }\n\n private initTree(data: NodeData[]): void {\n const doInit = (): void => {\n if (!this.isInitialized) {\n this.isInitialized = true;\n this._triggerEvent(\"tree.init\");\n }\n };\n\n if (!this.options.nodeClass) {\n return;\n }\n\n this.tree = new this.options.nodeClass(\n null,\n true,\n this.options.nodeClass\n );\n\n this.selectNodeHandler.clear();\n\n this.tree.loadFromData(data);\n\n const mustLoadOnDemand = this.setInitialState();\n\n this._refreshElements(null);\n\n if (!mustLoadOnDemand) {\n doInit();\n } else {\n // Load data on demand and then init the tree\n this.setInitialStateOnDemand(doInit);\n }\n }\n\n // Set initial state, either by restoring the state or auto-opening nodes\n // result: must load nodes on demand?\n private setInitialState(): boolean {\n const restoreState = (): [boolean, boolean] => {\n // result: is state restored, must load on demand?\n if (!this.options.saveState) {\n return [false, false];\n } else {\n const state = this.saveStateHandler.getStateFromStorage();\n\n if (!state) {\n return [false, false];\n } else {\n const mustLoadOnDemand =\n this.saveStateHandler.setInitialState(state);\n\n // return true: the state is restored\n return [true, mustLoadOnDemand];\n }\n }\n };\n\n const autoOpenNodes = (): boolean => {\n // result: must load on demand?\n if (this.options.autoOpen === false) {\n return false;\n }\n\n const maxLevel = this.getAutoOpenMaxLevel();\n let mustLoadOnDemand = false;\n\n this.tree.iterate((node: Node, level: number) => {\n if (node.load_on_demand) {\n mustLoadOnDemand = true;\n return false;\n } else if (!node.hasChildren()) {\n return false;\n } else {\n node.is_open = true;\n return level !== maxLevel;\n }\n });\n\n return mustLoadOnDemand;\n };\n\n let [isRestored, mustLoadOnDemand] = restoreState(); // eslint-disable-line prefer-const\n\n if (!isRestored) {\n mustLoadOnDemand = autoOpenNodes();\n }\n\n return mustLoadOnDemand;\n }\n\n // Set the initial state for nodes that are loaded on demand\n // Call cb_finished when done\n private setInitialStateOnDemand(cbFinished: () => void): void {\n const restoreState = (): boolean => {\n if (!this.options.saveState) {\n return false;\n } else {\n const state = this.saveStateHandler.getStateFromStorage();\n\n if (!state) {\n return false;\n } else {\n this.saveStateHandler.setInitialStateOnDemand(\n state,\n cbFinished\n );\n\n return true;\n }\n }\n };\n\n const autoOpenNodes = (): void => {\n const maxLevel = this.getAutoOpenMaxLevel();\n let loadingCount = 0;\n\n const loadAndOpenNode = (node: Node): void => {\n loadingCount += 1;\n this._openNode(node, false, () => {\n loadingCount -= 1;\n openNodes();\n });\n };\n\n const openNodes = (): void => {\n this.tree.iterate((node: Node, level: number) => {\n if (node.load_on_demand) {\n if (!node.is_loading) {\n loadAndOpenNode(node);\n }\n\n return false;\n } else {\n this._openNode(node, false, null);\n\n return level !== maxLevel;\n }\n });\n\n if (loadingCount === 0) {\n cbFinished();\n }\n };\n\n openNodes();\n };\n\n if (!restoreState()) {\n autoOpenNodes();\n }\n }\n\n private getAutoOpenMaxLevel(): number {\n if (this.options.autoOpen === true) {\n return -1;\n } else if (typeof this.options.autoOpen === \"number\") {\n return this.options.autoOpen;\n } else if (typeof this.options.autoOpen === \"string\") {\n return parseInt(this.options.autoOpen, 10);\n } else {\n return 0;\n }\n }\n\n private handleClick = (\n e: JQuery.ClickEvent\n ): void => {\n const clickTarget = this.getClickTarget(e.target);\n\n if (clickTarget) {\n if (clickTarget.type === \"button\") {\n this.toggle(clickTarget.node, this.options.slide);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (clickTarget.type === \"label\") {\n const node = clickTarget.node;\n const event = this._triggerEvent(\"tree.click\", {\n node,\n click_event: e,\n });\n\n if (!event.isDefaultPrevented()) {\n this.doSelectNode(node);\n }\n }\n }\n };\n\n private handleDblclick = (\n e: JQuery.DoubleClickEvent\n ): void => {\n const clickTarget = this.getClickTarget(e.target);\n\n if (clickTarget?.type === \"label\") {\n this._triggerEvent(\"tree.dblclick\", {\n node: clickTarget.node,\n click_event: e,\n });\n }\n };\n\n private getClickTarget(element: EventTarget): ClickTarget | null {\n const $target = jQuery(element);\n\n const $button = $target.closest(\".jqtree-toggler\");\n\n if ($button.length) {\n const node = this.getNode($button as JQuery);\n\n if (node) {\n return {\n type: \"button\",\n node,\n };\n }\n } else {\n const $el = $target.closest(\".jqtree-element\");\n if ($el.length) {\n const node = this.getNode($el as JQuery);\n if (node) {\n return {\n type: \"label\",\n node,\n };\n }\n }\n }\n\n return null;\n }\n\n private getNode($element: JQuery): null | Node {\n const $li = $element.closest(\"li.jqtree_common\");\n if ($li.length === 0) {\n return null;\n } else {\n return $li.data(\"node\") as Node;\n }\n }\n\n private handleContextmenu = (\n e: JQuery.ContextMenuEvent\n ) => {\n const $div = jQuery(e.target).closest(\"ul.jqtree-tree .jqtree-element\");\n if ($div.length) {\n const node = this.getNode($div);\n if (node) {\n e.preventDefault();\n e.stopPropagation();\n\n this._triggerEvent(\"tree.contextmenu\", {\n node,\n click_event: e,\n });\n return false;\n }\n }\n\n return null;\n };\n\n private saveState(): void {\n if (this.options.saveState) {\n this.saveStateHandler.saveState();\n }\n }\n\n private selectCurrentNode(mustSetFocus: boolean): void {\n const node = this.getSelectedNode();\n if (node) {\n const nodeElement = this._getNodeElementForNode(node);\n if (nodeElement) {\n nodeElement.select(mustSetFocus);\n }\n }\n }\n\n private deselectCurrentNode(): void {\n const node = this.getSelectedNode();\n if (node) {\n this.removeFromSelection(node);\n }\n }\n\n private getDefaultClosedIcon(): string {\n if (this.options.rtl) {\n // triangle to the left\n return \"◀\";\n } else {\n // triangle to the right\n return \"►\";\n }\n }\n\n private getRtlOption(): boolean {\n if (this.options.rtl != null) {\n return this.options.rtl;\n } else {\n const dataRtl = this.element.data(\"rtl\") as unknown;\n\n if (\n dataRtl !== null &&\n dataRtl !== false &&\n dataRtl !== undefined\n ) {\n return true;\n } else {\n return false;\n }\n }\n }\n\n private doSelectNode(\n node: Node | null,\n optionsParam?: SelectNodeOptions\n ): void {\n const saveState = (): void => {\n if (this.options.saveState) {\n this.saveStateHandler.saveState();\n }\n };\n\n if (!node) {\n // Called with empty node -> deselect current node\n this.deselectCurrentNode();\n saveState();\n return;\n }\n const defaultOptions = { mustSetFocus: true, mustToggle: true };\n const selectOptions = { ...defaultOptions, ...(optionsParam || {}) };\n\n const canSelect = (): boolean => {\n if (this.options.onCanSelectNode) {\n return (\n this.options.selectable === true &&\n this.options.onCanSelectNode(node)\n );\n } else {\n return this.options.selectable === true;\n }\n };\n\n const openParents = (): void => {\n const parent = node.parent;\n\n if (parent && parent.parent && !parent.is_open) {\n this.openNode(parent, false);\n }\n };\n\n if (!canSelect()) {\n return;\n }\n\n if (this.selectNodeHandler.isNodeSelected(node)) {\n if (selectOptions.mustToggle) {\n this.deselectCurrentNode();\n this._triggerEvent(\"tree.select\", {\n node: null,\n previous_node: node,\n });\n }\n } else {\n const deselectedNode = this.getSelectedNode() || null;\n this.deselectCurrentNode();\n this.addToSelection(node, selectOptions.mustSetFocus);\n\n this._triggerEvent(\"tree.select\", {\n node,\n deselected_node: deselectedNode,\n });\n openParents();\n }\n\n saveState();\n }\n\n private doLoadData(data: NodeData[] | null, parentNode: Node | null): void {\n if (data) {\n if (parentNode) {\n this.deselectNodes(parentNode);\n this.loadSubtree(data, parentNode);\n } else {\n this.initTree(data);\n }\n\n if (this.isDragging()) {\n this.dndHandler.refresh();\n }\n }\n\n this._triggerEvent(\"tree.load_data\", {\n tree_data: data,\n parent_node: parentNode,\n });\n }\n\n private deselectNodes(parentNode: Node): void {\n const selectedNodesUnderParent =\n this.selectNodeHandler.getSelectedNodesUnder(parentNode);\n for (const n of selectedNodesUnderParent) {\n this.selectNodeHandler.removeFromSelection(n);\n }\n }\n\n private loadSubtree(data: NodeData[], parentNode: Node): void {\n parentNode.loadFromData(data);\n\n parentNode.load_on_demand = false;\n parentNode.is_loading = false;\n\n this._refreshElements(parentNode);\n }\n\n private doLoadDataFromUrl(\n urlInfoParam: string | JQuery.AjaxSettings | null,\n parentNode: Node | null,\n onFinished: HandleFinishedLoading | null\n ): void {\n const urlInfo = urlInfoParam || this.getDataUrlInfo(parentNode);\n\n this.dataLoader.loadFromUrl(urlInfo, parentNode, onFinished);\n }\n\n private loadFolderOnDemand(\n node: Node,\n slide = true,\n onFinished: OnFinishOpenNode | null\n ): void {\n node.is_loading = true;\n\n this.doLoadDataFromUrl(null, node, () => {\n this._openNode(node, slide, onFinished);\n });\n }\n}\n\nSimpleWidget.register(JqTreeWidget, \"tree\");\n"],"names":["version","Position","positionNames","before","Before","after","After","inside","Inside","none","None","getPositionName","position","name","Object","prototype","hasOwnProperty","call","getPosition","isNodeRecordWithChildren","data","_typeof","Array","Node","o","arguments","length","undefined","isRoot","nodeClass","_classCallCheck","_defineProperty","isEmptyFolder","load_on_demand","setData","children","parent","idMapping","Map","tree","_createClass","key","value","loadFromData","removeChildren","_iterator","_createForOfIteratorHelper","_step","s","n","done","node","createNode","addChild","err","e","f","push","setParent","addChildAtPosition","index","splice","removeChild","doRemoveChild","getChildIndex","indexOf","hasChildren","isFolder","iterate","callback","_iterate","level","_iterator2","_step2","child","result","moveNode","movedNode","targetNode","isParentOf","getData","includeParent","getDataFromNodes","nodes","map","tmpNode","k","v","getNodeByName","getNodeByCallback","getNodeByNameMustExist","concat","addAfter","nodeInfo","childIndex","addBefore","addParent","newParent","originalParent","_iterator3","_step3","remove","append","prepend","getLevel","getNodeById","nodeId","get","addNodeToIndex","id","set","removeNodeFromIndex","_this","_this$tree","getPreviousSibling","previousIndex","getNextSibling","nextIndex","getNodesByProperty","filter","getNextNode","includeChildren","nextSibling","getNextVisibleNode","is_open","getPreviousNode","previousSibling","getParent","getLastChild","getPreviousVisibleNode","lastChild","initFromData","_this2","addNode","nodeData","addChildren","childrenData","_iterator4","_step4","_this$tree2","_this$tree3","getNodeClass","_this$tree4","DragAndDropHandler","treeWidget","hoveredArea","hitAreas","isDragging","currentItem","positionInfo","mouseCapture","$element","jQuery","target","mustCaptureElement","options","onIsMoveHandle","nodeElement","_getNodeElement","onCanMove","mouseStart","_this$treeWidget$opti","pageX","pageY","refresh","offset","left","top","dragElement","DragElement","element","autoEscape","addClass","mouseDrag","move","area","findHoveredArea","canMoveToArea","stopOpenFolderTimer","mustOpenFolderTimer","startOpenFolderTimer","updateDropHint","removeDropHint","onDragMove","originalEvent","mouseStop","moveItem","clear","removeHover","removeHitAreas","removeClass","onDragStop","generateHitAreas","_getNodeElementForNode","hitAreasGenerator","HitAreasGenerator","getTreeDimensions","bottom","generate","is","onCanMoveTo","positionName","previousGhost","x","y","dimensions","right","low","high","mid","addDropHint","folder","openFolder","_openNode","slide","openFolderDelay","openFolderTimer","window","setTimeout","clearTimeout","previousParent","doMove","empty","_refreshElements","event","_triggerEvent","move_info","moved_node","target_node","previous_parent","do_move","original_event","isDefaultPrevented","el","width","height","_getScrollLeft","VisibleNodeIterator","_this3","isFirstNode","_iterateNode","nextNode","mustIterateInside","handleFirstNode","handleNode","handleOpenFolder","handleClosedFolder","childrenLength","forEach","_","i","nextChild","handleAfterOpenFolder","_VisibleNodeIterator","_inherits","_super","_createSuper","currentNode","treeBottom","_this4","_assertThisInitialized","positions","lastTop","previousTop","group","generateHitAreasForGroup","addPosition","getTop","positionsInGroup","positionCount","Math","min","areaHeight","round","areaTop","nodeName","offsetX","offsetY","$tree","text","html","css","isInt","isFunction","getBoolString","ElementsRenderer","openedIconElement","createButtonElement","openedIcon","closedIconElement","closedIcon","render","fromNode","renderFromNode","renderFromRoot","createDomElements","$previousLi","li","createLi","attachNodeData","isRootNode","ul","createUl","appendChild","classString","role","rtl","dragAndDrop","document","createElement","className","setAttribute","isSelected","Boolean","selectNodeHandler","isNodeSelected","mustShowFolder","showEmptyFolder","createFolderLi","createNodeLi","onCreateLi","setTreeItemAriaAttributes","buttonClasses","getButtonClasses","folderClasses","getFolderClasses","iconElement","div","buttonLink","cloneNode","buttonLeft","titleSpan","createTitleSpan","liClasses","join","classes","tabIndex","textContent","innerHTML","is_loading","createTextNode","DataLoader","loadFromUrl","urlInfo","parentNode","onFinished","$el","getDomElement","addLoadingClass","notifyLoading","stopLoading","removeLoadingClass","handleSuccess","loadData","parseData","handleError","jqXHR","onLoadFailed","submitRequest","isLoading","onLoading","urlInfoInput","_ajaxSettings$method","url","ajaxSettings","_objectSpread","method","cache","dataType","success","error","toUpperCase","ajax","dataFilter","getParsedData","JSON","parse","parsedData","KeyHandler","canHandleKeyboard","selectedNode","getSelectedNode","which","DOWN","moveDown","UP","moveUp","RIGHT","moveRight","LEFT","moveLeft","keyboardSupport","on","handleKeyDown","deinit","off","selectNode","openNode","closeNode","scrollHandler","isScrolledIntoView","find","scrollToNode","isFocusOnTree","register","widgetClass","widgetName","getDataKey","getWidgetData","dataKey","widget","SimpleWidget","createWidget","existingWidget","simpleWidgetClass","init","destroyWidget","destroy","removeData","callFunction","functionName","args","simpleWidget","widgetFunction","apply","fn","argument1","_len","_key","defaults","constructor","getPositionInfoFromMouseEvent","getPositionInfoFromTouch","touch","MouseWidget","_SimpleWidget","button","handleMouseDown","cancelable","preventDefault","handleMouseMove","handleMouseUp","touches","changedTouches","addEventListener","mouseDown","passive","touchStart","isMouseStarted","mouseDelayTimer","isMouseDelayMet","mouseDownInfo","removeEventListener","removeMouseMoveEventListeners","handleStartMouse","mouseMove","touchMove","mouseUp","touchEnd","mouseDelay","getMouseDelay","startMouseDelayTimer","SaveStateHandler","saveState","state","stringify","getState","onSetStateFromStorage","supportsLocalStorage","localStorage","setItem","getKeyName","getStateFromStorage","jsonData","loadFromStorage","parseState","getOpenNodeIds","openNodes","getSelectedNodeIds","selectedNodeIds","getSelectedNodes","open_nodes","selected_node","setInitialState","mustLoadOnDemand","openInitialNodes","resetSelection","selectInitialNodes","setInitialStateOnDemand","cbFinished","doSetInitialStateOnDemand","getNodeIdToBeSelected","onGetStateFromStorage","getItem","nodeIds","selectCount","addToSelection","selectedNodes","removeFromSelection","nodeIdsParam","loadingCount","newNodesIds","loadAndOpenNode","testSupport","sessionStorage","removeItem","_supportsLocalStorage","ScrollHandler","isInitialized","checkScrolling","ensureInit","checkVerticalScrolling","checkHorizontalScrolling","scrollToY","$scrollParent","scrollTop","treeTop","elementBottom","viewBottom","elementTop","viewTop","elHeight","originalTop","scrollParentTop","windowHeight","getScrollLeft","scrollLeft","initScrollParent","_$scrollParent$","getParentWithOverflow","cssAttributes","hasOverFlow","_i","_cssAttributes","attr","overflowValue","parents","setDocumentAsScrollParent","tagName","handleVerticalScrollingWithScrollParent","scrollParent","distanceBottom","offsetHeight","refreshHitAreas","handleVerticalScrollingWithDocument","distanceTop","dndHandler","handleHorizontalScrollingWithParent","handleHorizontalScrollingWithDocument","scrollParentOffset","canScrollRight","clientWidth","scrollWidth","canScrollLeft","rightEdge","leftEdge","isNearRightEdge","isNearLeftEdge","max","$document","windowWidth","SelectNodeHandler","Set","selectedSingleNode","getSelectedNodesUnder","has","add","activeElement","_containsElement","NodeElement","mustShowBorderDropHint","BorderDropHint","GhostDropHint","select","mustSetFocus","$li","getLi","$span","getSpan","trigger","deselect","removeAttr","getUl","FolderElement","_NodeElement","open","animationSpeed","$button","getButton","buttonEl","renderer","icon","doOpen","$titleSpan","slideDown","show","close","doClose","slideUp","hide","$div","elWidth","outerHeight","$hint","$ghost","moveAfter","moveBefore","moveInsideOpenFolder","moveInside","_this$node$children$","childElement","NODE_PARAM_IS_EMPTY","PARAM_IS_EMPTY","JqTreeWidget","_MouseWidget","clickTarget","getClickTarget","type","toggle","stopPropagation","click_event","doSelectNode","closest","getNode","slideParam","Error","getTree","optionsParam","toJson","doLoadData","loadDataFromUrl","param1","param2","param3","doLoadDataFromUrl","reload","getNodeByHtmlElement","parseParams","_this2$options$slide","_parseParams","_parseParams2","_slicedToArray","addNodeAfter","newNodeInfo","existingNode","newNode","addNodeBefore","addParentNode","removeNode","appendNode","parentNodeParam","prependNode","updateNode","idIsChanged","isSelectedNodeInSubtree","subtree","positionIndex","saveStateHandler","nodeOffset","nodeTop","treeOffset","setState","setOption","option","keyHandler","getVersion","__version__","eventName","values","Event","doOpenNode","_node","_slide","_onFinished","folderElement","loadFolderOnDemand","mustSelect","selectCurrentNode","_get","_getPrototypeOf","getRtlOption","getDefaultClosedIcon","dataLoader","initData","handleClick","handleDblclick","useContextMenu","handleContextmenu","_this$options$startDn","startDndDelay","dataUrl","getDataUrlInfo","getUrlFromString","setUrlInfoData","selectedNodeId","initTree","_this5","doInit","_this6","restoreState","autoOpenNodes","autoOpen","maxLevel","getAutoOpenMaxLevel","_restoreState","_restoreState2","isRestored","_this7","parseInt","$target","deselectCurrentNode","dataRtl","_this8","defaultOptions","mustToggle","selectOptions","canSelect","onCanSelectNode","selectable","openParents","previous_node","deselectedNode","deselected_node","deselectNodes","loadSubtree","tree_data","parent_node","selectedNodesUnderParent","urlInfoParam","_this9"],"mappings":"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"}
\ No newline at end of file
diff --git a/tree.jquery.js b/tree.jquery.js
index a01dcbec..d4f963eb 100644
--- a/tree.jquery.js
+++ b/tree.jquery.js
@@ -1,7 +1,7 @@
/*
-JqTree 1.7.0
+JqTree 1.7.1
-Copyright 2022 Marco Braak
+Copyright 2023 Marco Braak
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -17,5 +17,5 @@ limitations under the License.
@license
*/
-var jqtree=function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function n(e){for(var n=1;ne.length)&&(t=e.length);for(var n=0,i=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function N(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var S;!function(e){e[e.Before=1]="Before",e[e.After=2]="After",e[e.Inside=3]="Inside",e[e.None=4]="None"}(S||(S={}));var b={before:S.Before,after:S.After,inside:S.Inside,none:S.None},_=function(e){for(var t in b)if(Object.prototype.hasOwnProperty.call(b,t)&&b[t]===e)return t;return""},D=function(e){return"object"===i(e)&&"children"in e&&e.children instanceof Array},I=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;r(this,e),a(this,"id",void 0),a(this,"name",void 0),a(this,"children",void 0),a(this,"parent",void 0),a(this,"idMapping",void 0),a(this,"tree",void 0),a(this,"nodeClass",void 0),a(this,"load_on_demand",void 0),a(this,"is_open",void 0),a(this,"element",void 0),a(this,"is_loading",void 0),a(this,"isEmptyFolder",void 0),this.name="",this.isEmptyFolder=!1,this.load_on_demand=!1,this.setData(t),this.children=[],this.parent=null,n&&(this.idMapping=new Map,this.tree=this,this.nodeClass=i)}return s(e,[{key:"setData",value:function(e){if(e)if("string"==typeof e)this.name=e;else if("object"===i(e))for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var n=e[t];"label"===t||"name"===t?"string"==typeof n&&(this.name=n):"children"!==t&&"parent"!==t&&(this[t]=n)}}},{key:"loadFromData",value:function(e){this.removeChildren();var t,n=k(e);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=this.createNode(i);this.addChild(r),D(i)&&(0===i.children.length?r.isEmptyFolder=!0:r.loadFromData(i.children))}}catch(e){n.e(e)}finally{n.f()}return this}},{key:"addChild",value:function(e){this.children.push(e),e.setParent(this)}},{key:"addChildAtPosition",value:function(e,t){this.children.splice(t,0,e),e.setParent(this)}},{key:"removeChild",value:function(e){e.removeChildren(),this.doRemoveChild(e)}},{key:"getChildIndex",value:function(e){return this.children.indexOf(e)}},{key:"hasChildren",value:function(){return 0!==this.children.length}},{key:"isFolder",value:function(){return this.hasChildren()||this.load_on_demand}},{key:"iterate",value:function(e){!function t(n,i){if(n.children){var r,o=k(n.children);try{for(o.s();!(r=o.n()).done;){var s=r.value;e(s,i)&&s.hasChildren()&&t(s,i+1)}}catch(e){o.e(e)}finally{o.f()}}}(this,0)}},{key:"moveNode",value:function(e,t,n){if(!e.parent||e.isParentOf(t))return!1;switch(e.parent.doRemoveChild(e),n){case S.After:return!!t.parent&&(t.parent.addChildAtPosition(e,t.parent.getChildIndex(t)+1),!0);case S.Before:return!!t.parent&&(t.parent.addChildAtPosition(e,t.parent.getChildIndex(t)),!0);case S.Inside:return t.addChildAtPosition(e,0),!0;default:return!1}}},{key:"getData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=function e(t){return t.map((function(t){var n={};for(var i in t)if(-1===["parent","children","element","idMapping","load_on_demand","nodeClass","tree","isEmptyFolder"].indexOf(i)&&Object.prototype.hasOwnProperty.call(t,i)){var r=t[i];n[i]=r}return t.hasChildren()&&(n.children=e(t.children)),n}))};return t(e?[this]:this.children)}},{key:"getNodeByName",value:function(e){return this.getNodeByCallback((function(t){return t.name===e}))}},{key:"getNodeByNameMustExist",value:function(e){var t=this.getNodeByCallback((function(t){return t.name===e}));if(!t)throw"Node with name ".concat(e," not found");return t}},{key:"getNodeByCallback",value:function(e){var t=null;return this.iterate((function(n){return!t&&(!e(n)||(t=n,!1))})),t}},{key:"addAfter",value:function(e){if(this.parent){var t=this.createNode(e),n=this.parent.getChildIndex(this);return this.parent.addChildAtPosition(t,n+1),D(e)&&e.children.length&&t.loadFromData(e.children),t}return null}},{key:"addBefore",value:function(e){if(this.parent){var t=this.createNode(e),n=this.parent.getChildIndex(this);return this.parent.addChildAtPosition(t,n),D(e)&&e.children.length&&t.loadFromData(e.children),t}return null}},{key:"addParent",value:function(e){if(this.parent){var t=this.createNode(e);this.tree&&t.setParent(this.tree);var n,i=this.parent,r=k(i.children);try{for(r.s();!(n=r.n()).done;){var o=n.value;t.addChild(o)}}catch(e){r.e(e)}finally{r.f()}return i.children=[],i.addChild(t),t}return null}},{key:"remove",value:function(){this.parent&&(this.parent.removeChild(this),this.parent=null)}},{key:"append",value:function(e){var t=this.createNode(e);return this.addChild(t),D(e)&&e.children.length&&t.loadFromData(e.children),t}},{key:"prepend",value:function(e){var t=this.createNode(e);return this.addChildAtPosition(t,0),D(e)&&e.children.length&&t.loadFromData(e.children),t}},{key:"isParentOf",value:function(e){for(var t=e.parent;t;){if(t===this)return!0;t=t.parent}return!1}},{key:"getLevel",value:function(){for(var e=0,t=this;t.parent;)e+=1,t=t.parent;return e}},{key:"getNodeById",value:function(e){return this.idMapping.get(e)||null}},{key:"addNodeToIndex",value:function(e){null!=e.id&&this.idMapping.set(e.id,e)}},{key:"removeNodeFromIndex",value:function(e){null!=e.id&&this.idMapping.delete(e.id)}},{key:"removeChildren",value:function(){var e=this;this.iterate((function(t){var n;return null===(n=e.tree)||void 0===n||n.removeNodeFromIndex(t),!0})),this.children=[]}},{key:"getPreviousSibling",value:function(){if(this.parent){var e=this.parent.getChildIndex(this)-1;return e>=0?this.parent.children[e]:null}return null}},{key:"getNextSibling",value:function(){if(this.parent){var e=this.parent.getChildIndex(this)+1;return e0&&void 0!==arguments[0])||arguments[0];if(e&&this.hasChildren())return this.children[0];if(this.parent){var t=this.getNextSibling();return t||this.parent.getNextNode(!1)}return null}},{key:"getNextVisibleNode",value:function(){if(this.hasChildren()&&this.is_open)return this.children[0];if(this.parent){var e=this.getNextSibling();return e||this.parent.getNextNode(!1)}return null}},{key:"getPreviousNode",value:function(){if(this.parent){var e=this.getPreviousSibling();return e?e.hasChildren()?e.getLastChild():e:this.getParent()}return null}},{key:"getPreviousVisibleNode",value:function(){if(this.parent){var e=this.getPreviousSibling();return e?e.hasChildren()&&e.is_open?e.getLastChild():e:this.getParent()}return null}},{key:"getParent",value:function(){return this.parent&&this.parent.parent?this.parent:null}},{key:"getLastChild",value:function(){if(this.hasChildren()){var e=this.children[this.children.length-1];return e.hasChildren()&&e.is_open?e.getLastChild():e}return null}},{key:"initFromData",value:function(e){var t,n=this,i=function(e){var t,i=k(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=n.createNode();o.initFromData(r),n.addChild(o)}}catch(e){i.e(e)}finally{i.f()}};t=e,n.setData(t),D(t)&&t.children.length&&i(t.children)}},{key:"setParent",value:function(e){var t;this.parent=e,this.tree=e.tree,null===(t=this.tree)||void 0===t||t.addNodeToIndex(this)}},{key:"doRemoveChild",value:function(e){var t;this.children.splice(this.getChildIndex(e),1),null===(t=this.tree)||void 0===t||t.removeNodeFromIndex(e)}},{key:"getNodeClass",value:function(){var t;return this.nodeClass||(null==this||null===(t=this.tree)||void 0===t?void 0:t.nodeClass)||e}},{key:"createNode",value:function(e){return new(this.getNodeClass())(e)}}]),e}(),j=function(){function e(t){r(this,e),a(this,"hitAreas",void 0),a(this,"isDragging",void 0),a(this,"currentItem",void 0),a(this,"hoveredArea",void 0),a(this,"positionInfo",void 0),a(this,"treeWidget",void 0),a(this,"dragElement",void 0),a(this,"previousGhost",void 0),a(this,"openFolderTimer",void 0),this.treeWidget=t,this.hoveredArea=null,this.hitAreas=[],this.isDragging=!1,this.currentItem=null,this.positionInfo=null}return s(e,[{key:"mouseCapture",value:function(e){var t=jQuery(e.target);if(!this.mustCaptureElement(t))return null;if(this.treeWidget.options.onIsMoveHandle&&!this.treeWidget.options.onIsMoveHandle(t))return null;var n=this.treeWidget._getNodeElement(t);return n&&this.treeWidget.options.onCanMove&&(this.treeWidget.options.onCanMove(n.node)||(n=null)),this.currentItem=n,null!=this.currentItem}},{key:"mouseStart",value:function(e){var t;if(!this.currentItem||void 0===e.pageX||void 0===e.pageY)return!1;this.refresh();var n=jQuery(e.target).offset(),i=n?n.left:0,r=n?n.top:0,o=this.currentItem.node;return this.dragElement=new C(o.name,e.pageX-i,e.pageY-r,this.treeWidget.element,null===(t=this.treeWidget.options.autoEscape)||void 0===t||t),this.isDragging=!0,this.positionInfo=e,this.currentItem.$element.addClass("jqtree-moving"),!0}},{key:"mouseDrag",value:function(e){if(!this.currentItem||!this.dragElement||void 0===e.pageX||void 0===e.pageY)return!1;this.dragElement.move(e.pageX,e.pageY),this.positionInfo=e;var t=this.findHoveredArea(e.pageX,e.pageY);return t&&this.canMoveToArea(t)?(t.node.isFolder()||this.stopOpenFolderTimer(),this.hoveredArea!==t&&(this.hoveredArea=t,this.mustOpenFolderTimer(t)?this.startOpenFolderTimer(t.node):this.stopOpenFolderTimer(),this.updateDropHint())):(this.removeDropHint(),this.stopOpenFolderTimer(),this.hoveredArea=t),t||this.treeWidget.options.onDragMove&&this.treeWidget.options.onDragMove(this.currentItem.node,e.originalEvent),!0}},{key:"mouseStop",value:function(e){this.moveItem(e),this.clear(),this.removeHover(),this.removeDropHint(),this.removeHitAreas();var t=this.currentItem;return this.currentItem&&(this.currentItem.$element.removeClass("jqtree-moving"),this.currentItem=null),this.isDragging=!1,this.positionInfo=null,!this.hoveredArea&&t&&this.treeWidget.options.onDragStop&&this.treeWidget.options.onDragStop(t.node,e.originalEvent),!1}},{key:"refresh",value:function(){this.removeHitAreas(),this.currentItem&&(this.generateHitAreas(),this.currentItem=this.treeWidget._getNodeElementForNode(this.currentItem.node),this.isDragging&&this.currentItem.$element.addClass("jqtree-moving"))}},{key:"generateHitAreas",value:function(){if(this.currentItem){var e=new E(this.treeWidget.tree,this.currentItem.node,this.getTreeDimensions().bottom);this.hitAreas=e.generate()}else this.hitAreas=[]}},{key:"mustCaptureElement",value:function(e){return!e.is("input,select,textarea")}},{key:"canMoveToArea",value:function(e){if(!this.treeWidget.options.onCanMoveTo)return!0;if(!this.currentItem)return!1;var t=_(e.position);return this.treeWidget.options.onCanMoveTo(this.currentItem.node,e.node,t)}},{key:"removeHitAreas",value:function(){this.hitAreas=[]}},{key:"clear",value:function(){this.dragElement&&(this.dragElement.remove(),this.dragElement=null)}},{key:"removeDropHint",value:function(){this.previousGhost&&this.previousGhost.remove()}},{key:"removeHover",value:function(){this.hoveredArea=null}},{key:"findHoveredArea",value:function(e,t){var n=this.getTreeDimensions();if(en.right||t>n.bottom)return null;for(var i=0,r=this.hitAreas.length;i>1,s=this.hitAreas[o];if(ts.bottom))return s;i=o+1}}return null}},{key:"mustOpenFolderTimer",value:function(e){var t=e.node;return t.isFolder()&&!t.is_open&&e.position===S.Inside}},{key:"updateDropHint",value:function(){if(this.hoveredArea){this.removeDropHint();var e=this.treeWidget._getNodeElementForNode(this.hoveredArea.node);this.previousGhost=e.addDropHint(this.hoveredArea.position)}}},{key:"startOpenFolderTimer",value:function(e){var t=this;this.stopOpenFolderTimer();var n=this.treeWidget.options.openFolderDelay;!1!==n&&(this.openFolderTimer=window.setTimeout((function(){t.treeWidget._openNode(e,t.treeWidget.options.slide,(function(){t.refresh(),t.updateDropHint()}))}),n))}},{key:"stopOpenFolderTimer",value:function(){this.openFolderTimer&&(clearTimeout(this.openFolderTimer),this.openFolderTimer=null)}},{key:"moveItem",value:function(e){var t=this;if(this.currentItem&&this.hoveredArea&&this.hoveredArea.position!==S.None&&this.canMoveToArea(this.hoveredArea)){var n=this.currentItem.node,i=this.hoveredArea.node,r=this.hoveredArea.position,o=n.parent;r===S.Inside&&(this.hoveredArea.node.is_open=!0);var s=function(){t.treeWidget.tree.moveNode(n,i,r),t.treeWidget.element.empty(),t.treeWidget._refreshElements(null)};this.treeWidget._triggerEvent("tree.move",{move_info:{moved_node:n,target_node:i,position:_(r),previous_parent:o,do_move:s,original_event:e.originalEvent}}).isDefaultPrevented()||s()}}},{key:"getTreeDimensions",value:function(){var e=this.treeWidget.element.offset();if(e){var t=this.treeWidget.element,n=t.width()||0,i=t.height()||0,r=e.left+this.treeWidget._getScrollLeft();return{left:r,top:e.top,right:r+n,bottom:e.top+i+16}}return{left:0,top:0,right:0,bottom:0}}}]),e}(),E=function(e){l(n,e);var t=v(n);function n(e,i,o){var s;return r(this,n),a(h(s=t.call(this,e)),"currentNode",void 0),a(h(s),"treeBottom",void 0),a(h(s),"positions",void 0),a(h(s),"lastTop",void 0),s.currentNode=i,s.treeBottom=o,s}return s(n,[{key:"generate",value:function(){return this.positions=[],this.lastTop=0,this.iterate(),this.generateHitAreas(this.positions)}},{key:"generateHitAreas",value:function(e){var t,n=-1,i=[],r=[],o=k(e);try{for(o.s();!(t=o.n()).done;){var s=t.value;s.top!==n&&i.length&&(i.length&&this.generateHitAreasForGroup(r,i,n,s.top),n=s.top,i=[]),i.push(s)}}catch(e){o.e(e)}finally{o.f()}return this.generateHitAreasForGroup(r,i,n,this.treeBottom),r}},{key:"handleOpenFolder",value:function(e,t){return e!==this.currentNode&&(e.children[0]!==this.currentNode&&this.addPosition(e,S.Inside,this.getTop(t)),!0)}},{key:"handleClosedFolder",value:function(e,t,n){var i=this.getTop(n);e===this.currentNode?this.addPosition(e,S.None,i):(this.addPosition(e,S.Inside,i),t!==this.currentNode&&this.addPosition(e,S.After,i))}},{key:"handleFirstNode",value:function(e){e!==this.currentNode&&this.addPosition(e,S.Before,this.getTop(jQuery(e.element)))}},{key:"handleAfterOpenFolder",value:function(e,t){e===this.currentNode||t===this.currentNode?this.addPosition(e,S.None,this.lastTop):this.addPosition(e,S.After,this.lastTop)}},{key:"handleNode",value:function(e,t,n){var i=this.getTop(n);e===this.currentNode?this.addPosition(e,S.None,i):this.addPosition(e,S.Inside,i),t===this.currentNode||e===this.currentNode?this.addPosition(e,S.None,i):this.addPosition(e,S.After,i)}},{key:"getTop",value:function(e){var t=e.offset();return t?t.top:0}},{key:"addPosition",value:function(e,t,n){var i={top:n,bottom:0,node:e,position:t};this.positions.push(i),this.lastTop=n}},{key:"generateHitAreasForGroup",value:function(e,t,n,i){for(var r=Math.min(t.length,4),o=Math.round((i-n)/r),s=n,a=0;a").addClass("jqtree-title jqtree-dragging"),s?this.$element.text(t):this.$element.html(t),this.$element.css("position","absolute"),o.append(this.$element)}return s(e,[{key:"move",value:function(e,t){this.$element.offset({left:e-this.offsetX,top:t-this.offsetY})}},{key:"remove",value:function(){this.$element.remove()}}]),e}(),w=function(e){return e?"true":"false"},F=function(){function e(t){r(this,e),a(this,"openedIconElement",void 0),a(this,"closedIconElement",void 0),a(this,"treeWidget",void 0),this.treeWidget=t,this.openedIconElement=this.createButtonElement(t.options.openedIcon||"+"),this.closedIconElement=this.createButtonElement(t.options.closedIcon||"-")}return s(e,[{key:"render",value:function(e){e&&e.parent?this.renderFromNode(e):this.renderFromRoot()}},{key:"renderFromRoot",value:function(){var e=this.treeWidget.element;e.empty(),this.createDomElements(e[0],this.treeWidget.tree.children,!0,1)}},{key:"renderFromNode",value:function(e){var t=jQuery(e.element),n=this.createLi(e,e.getLevel());this.attachNodeData(e,n),t.after(n),t.remove(),e.children&&this.createDomElements(n,e.children,!1,e.getLevel()+1)}},{key:"createDomElements",value:function(e,t,n,i){var r=this.createUl(n);e.appendChild(r);var o,s=k(t);try{for(s.s();!(o=s.n()).done;){var a=o.value,l=this.createLi(a,i);r.appendChild(l),this.attachNodeData(a,l),a.hasChildren()&&this.createDomElements(l,a.children,!1,i+1)}}catch(e){s.e(e)}finally{s.f()}}},{key:"attachNodeData",value:function(e,t){e.element=t,jQuery(t).data("node",e)}},{key:"createUl",value:function(e){var t,n;e?(t="jqtree-tree",n="tree",this.treeWidget.options.rtl&&(t+=" jqtree-rtl")):(t="",n="group"),this.treeWidget.options.dragAndDrop&&(t+=" jqtree-dnd");var i=document.createElement("ul");return i.className="jqtree_common ".concat(t),i.setAttribute("role",n),i}},{key:"createLi",value:function(e,t){var n=Boolean(this.treeWidget.selectNodeHandler.isNodeSelected(e)),i=e.isFolder()||e.isEmptyFolder&&this.treeWidget.options.showEmptyFolder?this.createFolderLi(e,t,n):this.createNodeLi(e,t,n);return this.treeWidget.options.onCreateLi&&this.treeWidget.options.onCreateLi(e,jQuery(i),n),i}},{key:"createFolderLi",value:function(e,t,n){var i=this.getButtonClasses(e),r=this.getFolderClasses(e,n),o=e.is_open?this.openedIconElement:this.closedIconElement,s=document.createElement("li");s.className="jqtree_common ".concat(r),s.setAttribute("role","presentation");var a=document.createElement("div");a.className="jqtree-element jqtree_common",a.setAttribute("role","presentation"),s.appendChild(a);var l=document.createElement("a");return l.className=i,l.appendChild(o.cloneNode(!0)),l.setAttribute("role","presentation"),l.setAttribute("aria-hidden","true"),this.treeWidget.options.buttonLeft&&a.appendChild(l),a.appendChild(this.createTitleSpan(e.name,t,n,e.is_open,!0)),this.treeWidget.options.buttonLeft||a.appendChild(l),s}},{key:"createNodeLi",value:function(e,t,n){var i=["jqtree_common"];n&&i.push("jqtree-selected");var r=i.join(" "),o=document.createElement("li");o.className=r,o.setAttribute("role","presentation");var s=document.createElement("div");return s.className="jqtree-element jqtree_common",s.setAttribute("role","presentation"),o.appendChild(s),s.appendChild(this.createTitleSpan(e.name,t,n,e.is_open,!1)),o}},{key:"createTitleSpan",value:function(e,t,n,i,r){var o=document.createElement("span"),s="jqtree-title jqtree_common";if(r&&(s+=" jqtree-title-folder"),s+=" jqtree-title-button-".concat(this.treeWidget.options.buttonLeft?"left":"right"),o.className=s,o.setAttribute("role","treeitem"),o.setAttribute("aria-level","".concat(t)),o.setAttribute("aria-selected",w(n)),o.setAttribute("aria-expanded",w(i)),n){var a=this.treeWidget.options.tabIndex;void 0!==a&&o.setAttribute("tabindex","".concat(a))}return this.treeWidget.options.autoEscape?o.textContent=e:o.innerHTML=e,o}},{key:"getButtonClasses",value:function(e){var t=["jqtree-toggler","jqtree_common"];return e.is_open||t.push("jqtree-closed"),this.treeWidget.options.buttonLeft?t.push("jqtree-toggler-left"):t.push("jqtree-toggler-right"),t.join(" ")}},{key:"getFolderClasses",value:function(e,t){var n=["jqtree-folder"];return e.is_open||n.push("jqtree-closed"),t&&n.push("jqtree-selected"),e.is_loading&&n.push("jqtree-loading"),n.join(" ")}},{key:"createButtonElement",value:function(e){if("string"==typeof e){var t=document.createElement("div");return t.innerHTML=e,document.createTextNode(t.innerHTML)}return jQuery(e)[0]}}]),e}(),W=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),this.treeWidget=t}return s(e,[{key:"loadFromUrl",value:function(e,t,n){var i=this;if(e){var r=this.getDomElement(t);this.addLoadingClass(r),this.notifyLoading(!0,t,r);var o=function(){i.removeLoadingClass(r),i.notifyLoading(!1,t,r)};this.submitRequest(e,(function(e){o(),i.treeWidget.loadData(i.parseData(e),t),n&&"function"==typeof n&&n()}),(function(e){o(),i.treeWidget.options.onLoadFailed&&i.treeWidget.options.onLoadFailed(e)}))}}},{key:"addLoadingClass",value:function(e){e&&e.addClass("jqtree-loading")}},{key:"removeLoadingClass",value:function(e){e&&e.removeClass("jqtree-loading")}},{key:"getDomElement",value:function(e){return e?jQuery(e.element):this.treeWidget.element}},{key:"notifyLoading",value:function(e,t,n){this.treeWidget.options.onLoading&&this.treeWidget.options.onLoading(e,t,n),this.treeWidget._triggerEvent("tree.loading_data",{isLoading:e,node:t,$el:n})}},{key:"submitRequest",value:function(e,t,i){var r,o=n({method:"GET",cache:!1,dataType:"json",success:t,error:i},"string"==typeof e?{url:e}:e);o.method=(null===(r=o.method)||void 0===r?void 0:r.toUpperCase())||"GET",jQuery.ajax(o)}},{key:"parseData",value:function(e){var t=this.treeWidget.options.dataFilter,n="string"==typeof e?JSON.parse(e):e;return t?t(n):n}}]),e}(),T=function(){function e(t){var n=this;r(this,e),a(this,"treeWidget",void 0),a(this,"handleKeyDown",(function(t){if(!n.canHandleKeyboard())return!0;var i=n.treeWidget.getSelectedNode();if(!i)return!0;switch(t.which){case e.DOWN:return n.moveDown(i);case e.UP:return n.moveUp(i);case e.RIGHT:return n.moveRight(i);case e.LEFT:return n.moveLeft(i);default:return!0}})),this.treeWidget=t,t.options.keyboardSupport&&jQuery(document).on("keydown.jqtree",this.handleKeyDown)}return s(e,[{key:"deinit",value:function(){jQuery(document).off("keydown.jqtree")}},{key:"moveDown",value:function(e){return this.selectNode(e.getNextVisibleNode())}},{key:"moveUp",value:function(e){return this.selectNode(e.getPreviousVisibleNode())}},{key:"moveRight",value:function(e){return!e.isFolder()||(e.is_open?this.selectNode(e.getNextVisibleNode()):(this.treeWidget.openNode(e),!1))}},{key:"moveLeft",value:function(e){return e.isFolder()&&e.is_open?(this.treeWidget.closeNode(e),!1):this.selectNode(e.getParent())}},{key:"selectNode",value:function(e){return!e||(this.treeWidget.selectNode(e),this.treeWidget.scrollHandler.isScrolledIntoView(jQuery(e.element).find(".jqtree-element"))||this.treeWidget.scrollToNode(e),!1)}},{key:"canHandleKeyboard",value:function(){return!!this.treeWidget.options.keyboardSupport&&this.treeWidget.selectNodeHandler.isFocusOnTree()}}]),e}();a(T,"LEFT",37),a(T,"UP",38),a(T,"RIGHT",39),a(T,"DOWN",40);var P=function(e,t){var n=function(){return"simple_widget_".concat(t)},r=function(e,t){var n=jQuery.data(e,t);return n&&n instanceof L?n:null},o=function(t,i){var o,s=n(),a=k(t.get());try{for(a.s();!(o=a.n()).done;){var l=o.value;if(!r(l,s)){var d=new e(l,i);jQuery.data(l,s)||jQuery.data(l,s,d),d.init()}}}catch(e){a.e(e)}finally{a.f()}return t},s=function(e){var t,i=n(),o=k(e.get());try{for(o.s();!(t=o.n()).done;){var s=t.value,a=r(s,i);a&&a.destroy(),jQuery.removeData(s,i)}}catch(e){o.e(e)}finally{o.f()}},a=function(e,t,i){var r,o=null,s=k(e.get());try{for(s.s();!(r=s.n()).done;){var a=r.value,l=jQuery.data(a,n());if(l&&l instanceof L){var d=l[t];d&&"function"==typeof d&&(o=d.apply(l,i))}}}catch(e){s.e(e)}finally{s.f()}return o};jQuery.fn[t]=function(t){if(!t)return o(this,null);if("object"===i(t)){var n=t;return o(this,n)}if("string"==typeof t&&"_"!==t[0]){var r=t;if("destroy"===r)return s(this);if("get_widget_class"===r)return e;for(var l=arguments.length,d=new Array(l>1?l-1:0),u=1;u1)){var n=t.changedTouches[0];e.handleMouseDown(A(n,t))}})),a(h(e),"touchMove",(function(t){if(t&&!(t.touches.length>1)){var n=t.changedTouches[0];e.handleMouseMove(t,A(n,t))}})),a(h(e),"touchEnd",(function(t){if(t&&!(t.touches.length>1)){var n=t.changedTouches[0];e.handleMouseUp(A(n,t))}})),e}return s(n,[{key:"init",value:function(){var e=this.$el.get(0);e&&(e.addEventListener("mousedown",this.mouseDown,{passive:!1}),e.addEventListener("touchstart",this.touchStart,{passive:!1})),this.isMouseStarted=!1,this.mouseDelayTimer=null,this.isMouseDelayMet=!1,this.mouseDownInfo=null}},{key:"deinit",value:function(){var e=this.$el.get(0);e&&(e.removeEventListener("mousedown",this.mouseDown,{passive:!1}),e.removeEventListener("touchstart",this.touchStart,{passive:!1})),this.removeMouseMoveEventListeners()}},{key:"handleMouseDown",value:function(e){return this.isMouseStarted&&this.handleMouseUp(e),this.mouseDownInfo=e,!!this.mouseCapture(e)&&(this.handleStartMouse(),!0)}},{key:"handleStartMouse",value:function(){document.addEventListener("mousemove",this.mouseMove,{passive:!1}),document.addEventListener("touchmove",this.touchMove,{passive:!1}),document.addEventListener("mouseup",this.mouseUp,{passive:!1}),document.addEventListener("touchend",this.touchEnd,{passive:!1});var e=this.getMouseDelay();e?this.startMouseDelayTimer(e):this.isMouseDelayMet=!0}},{key:"startMouseDelayTimer",value:function(e){var t=this;this.mouseDelayTimer&&clearTimeout(this.mouseDelayTimer),this.mouseDelayTimer=window.setTimeout((function(){t.mouseDownInfo&&(t.isMouseDelayMet=!0)}),e),this.isMouseDelayMet=!1}},{key:"handleMouseMove",value:function(e,t){if(this.isMouseStarted)return this.mouseDrag(t),void(e.cancelable&&e.preventDefault());this.isMouseDelayMet&&(this.mouseDownInfo&&(this.isMouseStarted=!1!==this.mouseStart(this.mouseDownInfo)),this.isMouseStarted?(this.mouseDrag(t),e.cancelable&&e.preventDefault()):this.handleMouseUp(t))}},{key:"handleMouseUp",value:function(e){this.removeMouseMoveEventListeners(),this.isMouseDelayMet=!1,this.mouseDownInfo=null,this.isMouseStarted&&(this.isMouseStarted=!1,this.mouseStop(e))}},{key:"removeMouseMoveEventListeners",value:function(){document.removeEventListener("mousemove",this.mouseMove,{passive:!1}),document.removeEventListener("touchmove",this.touchMove,{passive:!1}),document.removeEventListener("mouseup",this.mouseUp,{passive:!1}),document.removeEventListener("touchend",this.touchEnd,{passive:!1})}}]),n}(L),M=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),a(this,"_supportsLocalStorage",void 0),this.treeWidget=t}return s(e,[{key:"saveState",value:function(){var e=JSON.stringify(this.getState());this.treeWidget.options.onSetStateFromStorage?this.treeWidget.options.onSetStateFromStorage(e):this.supportsLocalStorage()&&localStorage.setItem(this.getKeyName(),e)}},{key:"getStateFromStorage",value:function(){var e=this.loadFromStorage();return e?this.parseState(e):null}},{key:"getState",value:function(){var e,t,n=this;return{open_nodes:(t=[],n.treeWidget.tree.iterate((function(e){return e.is_open&&e.id&&e.hasChildren()&&t.push(e.id),!0})),t),selected_node:(e=[],n.treeWidget.getSelectedNodes().forEach((function(t){null!=t.id&&e.push(t.id)})),e)}}},{key:"setInitialState",value:function(e){if(e){var t=!1;return e.open_nodes&&(t=this.openInitialNodes(e.open_nodes)),e.selected_node&&(this.resetSelection(),this.selectInitialNodes(e.selected_node)),t}return!1}},{key:"setInitialStateOnDemand",value:function(e,t){e?this.doSetInitialStateOnDemand(e.open_nodes,e.selected_node,t):t()}},{key:"getNodeIdToBeSelected",value:function(){var e=this.getStateFromStorage();return e&&e.selected_node?e.selected_node[0]:null}},{key:"parseState",value:function(e){var t,n=JSON.parse(e);return n&&n.selected_node&&("number"==typeof(t=n.selected_node)&&t%1==0)&&(n.selected_node=[n.selected_node]),n}},{key:"loadFromStorage",value:function(){return this.treeWidget.options.onGetStateFromStorage?this.treeWidget.options.onGetStateFromStorage():this.supportsLocalStorage()?localStorage.getItem(this.getKeyName()):null}},{key:"openInitialNodes",value:function(e){var t,n=!1,i=k(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=this.treeWidget.getNodeById(r);o&&(o.load_on_demand?n=!0:o.is_open=!0)}}catch(e){i.e(e)}finally{i.f()}return n}},{key:"selectInitialNodes",value:function(e){var t,n=0,i=k(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=this.treeWidget.getNodeById(r);o&&(n+=1,this.treeWidget.selectNodeHandler.addToSelection(o))}}catch(e){i.e(e)}finally{i.f()}return 0!==n}},{key:"resetSelection",value:function(){var e=this.treeWidget.selectNodeHandler;e.getSelectedNodes().forEach((function(t){e.removeFromSelection(t)}))}},{key:"doSetInitialStateOnDemand",value:function(e,t,n){var i=this,r=0,o=e,s=function(){var e,s=[],l=k(o);try{for(l.s();!(e=l.n()).done;){var d=e.value,u=i.treeWidget.getNodeById(d);u?u.is_loading||(u.load_on_demand?a(u):i.treeWidget._openNode(u,!1,null)):s.push(d)}}catch(e){l.e(e)}finally{l.f()}o=s,i.selectInitialNodes(t)&&i.treeWidget._refreshElements(null),0===r&&n()},a=function(e){r+=1,i.treeWidget._openNode(e,!1,(function(){r-=1,s()}))};s()}},{key:"getKeyName",value:function(){return"string"==typeof this.treeWidget.options.saveState?this.treeWidget.options.saveState:"tree"}},{key:"supportsLocalStorage",value:function(){return null==this._supportsLocalStorage&&(this._supportsLocalStorage=function(){if(null==localStorage)return!1;try{var e="_storage_test";sessionStorage.setItem(e,"value"),sessionStorage.removeItem(e)}catch(e){return!1}return!0}()),this._supportsLocalStorage}}]),e}(),x=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),a(this,"previousTop",void 0),a(this,"isInitialized",void 0),a(this,"$scrollParent",void 0),a(this,"scrollParentTop",void 0),this.treeWidget=t,this.previousTop=-1,this.isInitialized=!1}return s(e,[{key:"checkScrolling",value:function(){this.ensureInit(),this.checkVerticalScrolling(),this.checkHorizontalScrolling()}},{key:"scrollToY",value:function(e){if(this.ensureInit(),this.$scrollParent)this.$scrollParent[0].scrollTop=e;else{var t=this.treeWidget.$el.offset(),n=t?t.top:0;jQuery(document).scrollTop(e+n)}}},{key:"isScrolledIntoView",value:function(e){var t,n,i,r;this.ensureInit();var o=e.height()||0;if(this.$scrollParent){r=0,n=this.$scrollParent.height()||0;var s=e.offset();t=(i=(s?s.top:0)-this.scrollParentTop)+o}else{n=(r=jQuery(window).scrollTop()||0)+(jQuery(window).height()||0);var a=e.offset();t=(i=a?a.top:0)+o}return t<=n&&i>=r}},{key:"getScrollLeft",value:function(){return this.$scrollParent&&this.$scrollParent.scrollLeft()||0}},{key:"initScrollParent",value:function(){var e=this,t=function(){e.scrollParentTop=0,e.$scrollParent=null};"fixed"===this.treeWidget.$el.css("position")&&t();var n=function(){var t=["overflow","overflow-y"],n=function(e){for(var n=0,i=t;n0,s=n.left+i.clientWidth,a=n.left,l=e.pageX>s-20,d=e.pageX0,o=e.pageX>i-20,s=e.pageX-n<20;o?t.scrollLeft(n+20):s&&r&&t.scrollLeft(Math.max(n-20,0))}}}]),e}(),$=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),a(this,"selectedNodes",void 0),a(this,"selectedSingleNode",void 0),this.treeWidget=t,this.selectedNodes=new Set,this.clear()}return s(e,[{key:"getSelectedNode",value:function(){var e=this.getSelectedNodes();return!!e.length&&e[0]}},{key:"getSelectedNodes",value:function(){var e=this;if(this.selectedSingleNode)return[this.selectedSingleNode];var t=[];return this.selectedNodes.forEach((function(n){var i=e.treeWidget.getNodeById(n);i&&t.push(i)})),t}},{key:"getSelectedNodesUnder",value:function(e){if(this.selectedSingleNode)return e.isParentOf(this.selectedSingleNode)?[this.selectedSingleNode]:[];var t=[];for(var n in this.selectedNodes)if(Object.prototype.hasOwnProperty.call(this.selectedNodes,n)){var i=this.treeWidget.getNodeById(n);i&&e.isParentOf(i)&&t.push(i)}return t}},{key:"isNodeSelected",value:function(e){return null!=e.id?this.selectedNodes.has(e.id):!!this.selectedSingleNode&&this.selectedSingleNode.element===e.element}},{key:"clear",value:function(){this.selectedNodes.clear(),this.selectedSingleNode=null}},{key:"removeFromSelection",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];null==e.id?this.selectedSingleNode&&e.element===this.selectedSingleNode.element&&(this.selectedSingleNode=null):(this.selectedNodes.delete(e.id),n&&e.iterate((function(){return null!=e.id&&t.selectedNodes.delete(e.id),!0})))}},{key:"addToSelection",value:function(e){null!=e.id?this.selectedNodes.add(e.id):this.selectedSingleNode=e}},{key:"isFocusOnTree",value:function(){var e=document.activeElement;return Boolean(e&&"SPAN"===e.tagName&&this.treeWidget._containsElement(e))}}]),e}(),q=function(){function e(t,n){r(this,e),a(this,"node",void 0),a(this,"$element",void 0),a(this,"treeWidget",void 0),this.init(t,n)}return s(e,[{key:"init",value:function(e,t){if(this.node=e,this.treeWidget=t,!e.element){var n=this.treeWidget.element.get(0);n&&(e.element=n)}e.element&&(this.$element=jQuery(e.element))}},{key:"addDropHint",value:function(e){return this.mustShowBorderDropHint(e)?new Q(this.$element,this.treeWidget._getScrollLeft()):new U(this.node,this.$element,e)}},{key:"select",value:function(e){var t,n=this.getLi();n.addClass("jqtree-selected"),n.attr("aria-selected","true");var i=this.getSpan();i.attr("tabindex",null!==(t=this.treeWidget.options.tabIndex)&&void 0!==t?t:null),e&&i.trigger("focus")}},{key:"deselect",value:function(){var e=this.getLi();e.removeClass("jqtree-selected"),e.attr("aria-selected","false");var t=this.getSpan();t.removeAttr("tabindex"),t.blur()}},{key:"getUl",value:function(){return this.$element.children("ul:first")}},{key:"getSpan",value:function(){return this.$element.children(".jqtree-element").find("span.jqtree-title")}},{key:"getLi",value:function(){return this.$element}},{key:"mustShowBorderDropHint",value:function(e){return e===S.Inside}}]),e}(),B=function(e){l(n,e);var t=v(n);function n(){return r(this,n),t.apply(this,arguments)}return s(n,[{key:"open",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"fast";if(!this.node.is_open){this.node.is_open=!0;var r=this.getButton();r.removeClass("jqtree-closed"),r.html("");var o=r.get(0);if(o){var s=this.treeWidget.renderer.openedIconElement.cloneNode(!0);o.appendChild(s)}var a=function(){t.getLi().removeClass("jqtree-closed"),t.getSpan().attr("aria-expanded","true"),e&&e(t.node),t.treeWidget._triggerEvent("tree.open",{node:t.node})};n?this.getUl().slideDown(i,a):(this.getUl().show(),a())}}},{key:"close",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"fast";if(this.node.is_open){this.node.is_open=!1;var i=this.getButton();i.addClass("jqtree-closed"),i.html("");var r=i.get(0);if(r){var o=this.treeWidget.renderer.closedIconElement.cloneNode(!0);r.appendChild(o)}var s=function(){e.getLi().addClass("jqtree-closed"),e.getSpan().attr("aria-expanded","false"),e.treeWidget._triggerEvent("tree.close",{node:e.node})};t?this.getUl().slideUp(n,s):(this.getUl().hide(),s())}}},{key:"mustShowBorderDropHint",value:function(e){return!this.node.is_open&&e===S.Inside}},{key:"getButton",value:function(){return this.$element.children(".jqtree-element").find("a.jqtree-toggler")}}]),n}(q),Q=function(){function e(t,n){r(this,e),a(this,"$hint",void 0);var i=t.children(".jqtree-element"),o=t.width()||0,s=Math.max(o+n-4,0),l=i.outerHeight()||0,d=Math.max(l-4,0);this.$hint=jQuery(''),i.append(this.$hint),this.$hint.css({width:s,height:d})}return s(e,[{key:"remove",value:function(){this.$hint.remove()}}]),e}(),U=function(){function e(t,n,i){r(this,e),a(this,"$element",void 0),a(this,"node",void 0),a(this,"$ghost",void 0),this.$element=n,this.node=t,this.$ghost=jQuery('\n '),i===S.After?this.moveAfter():i===S.Before?this.moveBefore():i===S.Inside&&(t.isFolder()&&t.is_open?this.moveInsideOpenFolder():this.moveInside())}return s(e,[{key:"remove",value:function(){this.$ghost.remove()}},{key:"moveAfter",value:function(){this.$element.after(this.$ghost)}},{key:"moveBefore",value:function(){this.$element.before(this.$ghost)}},{key:"moveInsideOpenFolder",value:function(){var e=this.node.children[0].element;e&&jQuery(e).before(this.$ghost)}},{key:"moveInside",value:function(){this.$element.after(this.$ghost),this.$ghost.addClass("jqtree-inside")}}]),e}(),R="Node parameter is empty",X="Parameter is empty: ",Y=function(e){l(o,e);var t=v(o);function o(){var e;r(this,o);for(var n=arguments.length,i=new Array(n),s=0;s1&&void 0!==arguments[1]?arguments[1]:null;if(!e)throw Error(R);var n=null!=t?t:this.options.slide;return e.is_open?this.closeNode(e,n):this.openNode(e,n),this.element}},{key:"getTree",value:function(){return this.tree}},{key:"selectNode",value:function(e,t){return this.doSelectNode(e,t),this.element}},{key:"getSelectedNode",value:function(){return this.selectNodeHandler.getSelectedNode()}},{key:"toJson",value:function(){return JSON.stringify(this.tree.getData())}},{key:"loadData",value:function(e,t){return this.doLoadData(e,t),this.element}},{key:"loadDataFromUrl",value:function(e,t,n){return"string"==typeof e?this.doLoadDataFromUrl(e,t,null!=n?n:null):this.doLoadDataFromUrl(null,e,t),this.element}},{key:"reload",value:function(e){return this.doLoadDataFromUrl(null,null,e),this.element}},{key:"refresh",value:function(){return this._refreshElements(null),this.element}},{key:"getNodeById",value:function(e){return this.tree.getNodeById(e)}},{key:"getNodeByName",value:function(e){return this.tree.getNodeByName(e)}},{key:"getNodeByNameMustExist",value:function(e){return this.tree.getNodeByNameMustExist(e)}},{key:"getNodesByProperty",value:function(e,t){return this.tree.getNodesByProperty(e,t)}},{key:"getNodeByHtmlElement",value:function(e){return this.getNode(jQuery(e))}},{key:"getNodeByCallback",value:function(e){return this.tree.getNodeByCallback(e)}},{key:"openNode",value:function(e,t,n){var i=this;if(!e)throw Error(R);var r=function(){var e,r,o;("function"==typeof t?(e=t,r=null):(r=t,e=n),null==r)&&(r=null!==(o=i.options.slide)&&void 0!==o&&o);return[r,e]}(),o=g(r,2),s=o[0],a=o[1];return this._openNode(e,s,a),this.element}},{key:"closeNode",value:function(e,t){if(!e)throw Error(R);var n=null!=t?t:this.options.slide;return(e.isFolder()||e.isEmptyFolder)&&(new B(e,this).close(n,this.options.animationSpeed),this.saveState()),this.element}},{key:"isDragging",value:function(){return this.dndHandler.isDragging}},{key:"refreshHitAreas",value:function(){return this.dndHandler.refresh(),this.element}},{key:"addNodeAfter",value:function(e,t){var n=t.addAfter(e);return n&&this._refreshElements(t.parent),n}},{key:"addNodeBefore",value:function(e,t){if(!t)throw Error(X+"existingNode");var n=t.addBefore(e);return n&&this._refreshElements(t.parent),n}},{key:"addParentNode",value:function(e,t){if(!t)throw Error(X+"existingNode");var n=t.addParent(e);return n&&this._refreshElements(n.parent),n}},{key:"removeNode",value:function(e){if(!e)throw Error(R);if(!e.parent)throw Error("Node has no parent");this.selectNodeHandler.removeFromSelection(e,!0);var t=e.parent;return e.remove(),this._refreshElements(t),this.element}},{key:"appendNode",value:function(e,t){var n=t||this.tree,i=n.append(e);return this._refreshElements(n),i}},{key:"prependNode",value:function(e,t){var n=null!=t?t:this.tree,i=n.prepend(e);return this._refreshElements(n),i}},{key:"updateNode",value:function(e,t){if(!e)throw Error(R);var n="object"===i(t)&&t.id&&t.id!==e.id;return n&&this.tree.removeNodeFromIndex(e),e.setData(t),n&&this.tree.addNodeToIndex(e),"object"===i(t)&&t.children&&t.children instanceof Array&&(e.removeChildren(),t.children.length&&e.loadFromData(t.children)),this._refreshElements(e),this.element}},{key:"isSelectedNodeInSubtree",value:function(e){var t=this.getSelectedNode();return!!t&&(e===t||e.isParentOf(t))}},{key:"moveNode",value:function(e,t,n){if(!e)throw Error(R);if(!t)throw Error(X+"targetNode");var i=b[n];return void 0!==i&&(this.tree.moveNode(e,t,i),this._refreshElements(null)),this.element}},{key:"getStateFromStorage",value:function(){return this.saveStateHandler.getStateFromStorage()}},{key:"addToSelection",value:function(e,t){if(!e)throw Error(R);return this.selectNodeHandler.addToSelection(e),this._getNodeElementForNode(e).select(void 0===t||t),this.saveState(),this.element}},{key:"getSelectedNodes",value:function(){return this.selectNodeHandler.getSelectedNodes()}},{key:"isNodeSelected",value:function(e){if(!e)throw Error(R);return this.selectNodeHandler.isNodeSelected(e)}},{key:"removeFromSelection",value:function(e){if(!e)throw Error(R);return this.selectNodeHandler.removeFromSelection(e),this._getNodeElementForNode(e).deselect(),this.saveState(),this.element}},{key:"scrollToNode",value:function(e){if(!e)throw Error(R);var t=jQuery(e.element).offset(),n=t?t.top:0,i=this.$el.offset(),r=n-(i?i.top:0);return this.scrollHandler.scrollToY(r),this.element}},{key:"getState",value:function(){return this.saveStateHandler.getState()}},{key:"setState",value:function(e){return this.saveStateHandler.setInitialState(e),this._refreshElements(null),this.element}},{key:"setOption",value:function(e,t){return this.options[e]=t,this.element}},{key:"moveDown",value:function(){var e=this.getSelectedNode();return e&&this.keyHandler.moveDown(e),this.element}},{key:"moveUp",value:function(){var e=this.getSelectedNode();return e&&this.keyHandler.moveUp(e),this.element}},{key:"getVersion",value:function(){return"1.7.0"}},{key:"_triggerEvent",value:function(e,t){var n=jQuery.Event(e,t);return this.element.trigger(n),n}},{key:"_openNode",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2?arguments[2]:void 0,r=function(e,n,i){new B(e,t).open(i,n,t.options.animationSpeed)};if(e.isFolder()||e.isEmptyFolder)if(e.load_on_demand)this.loadFolderOnDemand(e,n,i);else{for(var o=e.parent;o;)o.parent&&r(o,!1,null),o=o.parent;r(e,n,i),this.saveState()}}},{key:"_refreshElements",value:function(e){var t=this.selectNodeHandler.isFocusOnTree(),n=!!e&&this.isSelectedNodeInSubtree(e);this.renderer.render(e),n&&this.selectCurrentNode(t),this._triggerEvent("tree.refresh")}},{key:"_getNodeElementForNode",value:function(e){return e.isFolder()?new B(e,this):new q(e,this)}},{key:"_getNodeElement",value:function(e){var t=this.getNode(e);return t?this._getNodeElementForNode(t):null}},{key:"_containsElement",value:function(e){var t=this.getNode(jQuery(e));return null!=t&&t.tree===this.tree}},{key:"_getScrollLeft",value:function(){return this.scrollHandler.getScrollLeft()}},{key:"init",value:function(){p(d(o.prototype),"init",this).call(this),this.element=this.$el,this.isInitialized=!1,this.options.rtl=this.getRtlOption(),null==this.options.closedIcon&&(this.options.closedIcon=this.getDefaultClosedIcon()),this.renderer=new F(this),this.dataLoader=new W(this),this.saveStateHandler=new M(this),this.selectNodeHandler=new $(this),this.dndHandler=new j(this),this.scrollHandler=new x(this),this.keyHandler=new T(this),this.initData(),this.element.on("click",this.handleClick),this.element.on("dblclick",this.handleDblclick),this.options.useContextMenu&&this.element.on("contextmenu",this.handleContextmenu)}},{key:"deinit",value:function(){this.element.empty(),this.element.off(),this.keyHandler.deinit(),this.tree=new I({},!0),p(d(o.prototype),"deinit",this).call(this)}},{key:"mouseCapture",value:function(e){return!!this.options.dragAndDrop&&this.dndHandler.mouseCapture(e)}},{key:"mouseStart",value:function(e){return!!this.options.dragAndDrop&&this.dndHandler.mouseStart(e)}},{key:"mouseDrag",value:function(e){if(this.options.dragAndDrop){var t=this.dndHandler.mouseDrag(e);return this.scrollHandler.checkScrolling(),t}return!1}},{key:"mouseStop",value:function(e){return!!this.options.dragAndDrop&&this.dndHandler.mouseStop(e)}},{key:"getMouseDelay",value:function(){var e;return null!==(e=this.options.startDndDelay)&&void 0!==e?e:0}},{key:"initData",value:function(){this.options.data?this.doLoadData(this.options.data,null):this.getDataUrlInfo(null)?this.doLoadDataFromUrl(null,null,null):this.doLoadData([],null)}},{key:"getDataUrlInfo",value:function(e){var t,n=this,r=this.options.dataUrl||this.element.data("url"),o=function(t){if(null!=e&&e.id){var i={node:e.id};t.data=i}else{var r=n.getNodeIdToBeSelected();if(r){var o={selected_node:r};t.data=o}}};return"function"==typeof r?r(e):"string"==typeof r?(o(t={url:r}),t):r&&"object"===i(r)?(o(r),r):null}},{key:"getNodeIdToBeSelected",value:function(){return this.options.saveState?this.saveStateHandler.getNodeIdToBeSelected():null}},{key:"initTree",value:function(e){var t=this,n=function(){t.isInitialized||(t.isInitialized=!0,t._triggerEvent("tree.init"))};if(this.options.nodeClass){this.tree=new this.options.nodeClass(null,!0,this.options.nodeClass),this.selectNodeHandler.clear(),this.tree.loadFromData(e);var i=this.setInitialState();this._refreshElements(null),i?this.setInitialStateOnDemand(n):n()}}},{key:"setInitialState",value:function(){var e=this,t=g(function(){if(e.options.saveState){var t=e.saveStateHandler.getStateFromStorage();return t?[!0,e.saveStateHandler.setInitialState(t)]:[!1,!1]}return[!1,!1]}(),2),n=t[0],i=t[1];return n||(i=function(){if(!1===e.options.autoOpen)return!1;var t=e.getAutoOpenMaxLevel(),n=!1;return e.tree.iterate((function(e,i){return e.load_on_demand?(n=!0,!1):!!e.hasChildren()&&(e.is_open=!0,i!==t)})),n}()),i}},{key:"setInitialStateOnDemand",value:function(e){var t,n,i,r,o=this;(function(){if(o.options.saveState){var t=o.saveStateHandler.getStateFromStorage();return!!t&&(o.saveStateHandler.setInitialStateOnDemand(t,e),!0)}return!1})()||(t=o.getAutoOpenMaxLevel(),n=0,i=function(e){n+=1,o._openNode(e,!1,(function(){n-=1,r()}))},(r=function(){o.tree.iterate((function(e,n){return e.load_on_demand?(e.is_loading||i(e),!1):(o._openNode(e,!1,null),n!==t)})),0===n&&e()})())}},{key:"getAutoOpenMaxLevel",value:function(){return!0===this.options.autoOpen?-1:"number"==typeof this.options.autoOpen?this.options.autoOpen:"string"==typeof this.options.autoOpen?parseInt(this.options.autoOpen,10):0}},{key:"getClickTarget",value:function(e){var t=jQuery(e),n=t.closest(".jqtree-toggler");if(n.length){var i=this.getNode(n);if(i)return{type:"button",node:i}}else{var r=t.closest(".jqtree-element");if(r.length){var o=this.getNode(r);if(o)return{type:"label",node:o}}}return null}},{key:"getNode",value:function(e){var t=e.closest("li.jqtree_common");return 0===t.length?null:t.data("node")}},{key:"saveState",value:function(){this.options.saveState&&this.saveStateHandler.saveState()}},{key:"selectCurrentNode",value:function(e){var t=this.getSelectedNode();if(t){var n=this._getNodeElementForNode(t);n&&n.select(e)}}},{key:"deselectCurrentNode",value:function(){var e=this.getSelectedNode();e&&this.removeFromSelection(e)}},{key:"getDefaultClosedIcon",value:function(){return this.options.rtl?"◀":"►"}},{key:"getRtlOption",value:function(){if(null!=this.options.rtl)return this.options.rtl;var e=this.element.data("rtl");return null!==e&&!1!==e&&void 0!==e}},{key:"doSelectNode",value:function(e,t){var i=this,r=function(){i.options.saveState&&i.saveStateHandler.saveState()};if(!e)return this.deselectCurrentNode(),void r();var o=n(n({},{mustSetFocus:!0,mustToggle:!0}),t||{});if(i.options.onCanSelectNode?!0===i.options.selectable&&i.options.onCanSelectNode(e):!0===i.options.selectable){if(this.selectNodeHandler.isNodeSelected(e))o.mustToggle&&(this.deselectCurrentNode(),this._triggerEvent("tree.select",{node:null,previous_node:e}));else{var s=this.getSelectedNode()||null;this.deselectCurrentNode(),this.addToSelection(e,o.mustSetFocus),this._triggerEvent("tree.select",{node:e,deselected_node:s}),(a=e.parent)&&a.parent&&!a.is_open&&i.openNode(a,!1)}var a;r()}}},{key:"doLoadData",value:function(e,t){e&&(t?(this.deselectNodes(t),this.loadSubtree(e,t)):this.initTree(e),this.isDragging()&&this.dndHandler.refresh()),this._triggerEvent("tree.load_data",{tree_data:e,parent_node:t})}},{key:"deselectNodes",value:function(e){var t,n=k(this.selectNodeHandler.getSelectedNodesUnder(e));try{for(n.s();!(t=n.n()).done;){var i=t.value;this.selectNodeHandler.removeFromSelection(i)}}catch(e){n.e(e)}finally{n.f()}}},{key:"loadSubtree",value:function(e,t){t.loadFromData(e),t.load_on_demand=!1,t.is_loading=!1,this._refreshElements(t)}},{key:"doLoadDataFromUrl",value:function(e,t,n){var i=e||this.getDataUrlInfo(t);this.dataLoader.loadFromUrl(i,t,n)}},{key:"loadFolderOnDemand",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2?arguments[2]:void 0;e.is_loading=!0,this.doLoadDataFromUrl(null,e,(function(){t._openNode(e,n,i)}))}}]),o}(H);return a(Y,"defaults",{animationSpeed:"fast",autoEscape:!0,autoOpen:!1,buttonLeft:!0,closedIcon:void 0,data:void 0,dataFilter:void 0,dataUrl:void 0,dragAndDrop:!1,keyboardSupport:!0,nodeClass:I,onCanMove:void 0,onCanMoveTo:void 0,onCanSelectNode:void 0,onCreateLi:void 0,onDragMove:void 0,onDragStop:void 0,onGetStateFromStorage:void 0,onIsMoveHandle:void 0,onLoadFailed:void 0,onLoading:void 0,onSetStateFromStorage:void 0,openedIcon:"▼",openFolderDelay:500,rtl:void 0,saveState:!1,selectable:!0,showEmptyFolder:!1,slide:!0,startDndDelay:300,tabIndex:0,useContextMenu:!0}),L.register(Y,"tree"),e.JqTreeWidget=Y,e}({});
+var jqtree=function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function n(e){for(var n=1;ne.length)&&(t=e.length);for(var n=0,i=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function y(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var k=function(e){return e[e.Before=1]="Before",e[e.After=2]="After",e[e.Inside=3]="Inside",e[e.None=4]="None",e}({}),N={before:k.Before,after:k.After,inside:k.Inside,none:k.None},S=function(e){for(var t in N)if(Object.prototype.hasOwnProperty.call(N,t)&&N[t]===e)return t;return""},b=function(e){return"object"===i(e)&&"children"in e&&e.children instanceof Array},_=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;r(this,e),a(this,"id",void 0),a(this,"name",void 0),a(this,"children",void 0),a(this,"parent",void 0),a(this,"idMapping",void 0),a(this,"tree",void 0),a(this,"nodeClass",void 0),a(this,"load_on_demand",void 0),a(this,"is_open",void 0),a(this,"element",void 0),a(this,"is_loading",void 0),a(this,"isEmptyFolder",void 0),this.name="",this.isEmptyFolder=!1,this.load_on_demand=!1,this.setData(t),this.children=[],this.parent=null,n&&(this.idMapping=new Map,this.tree=this,this.nodeClass=i)}return s(e,[{key:"setData",value:function(e){if(e)if("string"==typeof e)this.name=e;else if("object"===i(e))for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var n=e[t];"label"===t||"name"===t?"string"==typeof n&&(this.name=n):"children"!==t&&"parent"!==t&&(this[t]=n)}}},{key:"loadFromData",value:function(e){this.removeChildren();var t,n=m(e);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=this.createNode(i);this.addChild(r),b(i)&&(0===i.children.length?r.isEmptyFolder=!0:r.loadFromData(i.children))}}catch(e){n.e(e)}finally{n.f()}return this}},{key:"addChild",value:function(e){this.children.push(e),e.setParent(this)}},{key:"addChildAtPosition",value:function(e,t){this.children.splice(t,0,e),e.setParent(this)}},{key:"removeChild",value:function(e){e.removeChildren(),this.doRemoveChild(e)}},{key:"getChildIndex",value:function(e){return this.children.indexOf(e)}},{key:"hasChildren",value:function(){return 0!==this.children.length}},{key:"isFolder",value:function(){return this.hasChildren()||this.load_on_demand}},{key:"iterate",value:function(e){!function t(n,i){if(n.children){var r,o=m(n.children);try{for(o.s();!(r=o.n()).done;){var s=r.value;e(s,i)&&s.hasChildren()&&t(s,i+1)}}catch(e){o.e(e)}finally{o.f()}}}(this,0)}},{key:"moveNode",value:function(e,t,n){if(!e.parent||e.isParentOf(t))return!1;switch(e.parent.doRemoveChild(e),n){case k.After:return!!t.parent&&(t.parent.addChildAtPosition(e,t.parent.getChildIndex(t)+1),!0);case k.Before:return!!t.parent&&(t.parent.addChildAtPosition(e,t.parent.getChildIndex(t)),!0);case k.Inside:return t.addChildAtPosition(e,0),!0;default:return!1}}},{key:"getData",value:function(){var e=function e(t){return t.map((function(t){var n={};for(var i in t)if(-1===["parent","children","element","idMapping","load_on_demand","nodeClass","tree","isEmptyFolder"].indexOf(i)&&Object.prototype.hasOwnProperty.call(t,i)){var r=t[i];n[i]=r}return t.hasChildren()&&(n.children=e(t.children)),n}))};return e(arguments.length>0&&void 0!==arguments[0]&&arguments[0]?[this]:this.children)}},{key:"getNodeByName",value:function(e){return this.getNodeByCallback((function(t){return t.name===e}))}},{key:"getNodeByNameMustExist",value:function(e){var t=this.getNodeByCallback((function(t){return t.name===e}));if(!t)throw"Node with name ".concat(e," not found");return t}},{key:"getNodeByCallback",value:function(e){var t=null;return this.iterate((function(n){return!t&&(!e(n)||(t=n,!1))})),t}},{key:"addAfter",value:function(e){if(this.parent){var t=this.createNode(e),n=this.parent.getChildIndex(this);return this.parent.addChildAtPosition(t,n+1),b(e)&&e.children.length&&t.loadFromData(e.children),t}return null}},{key:"addBefore",value:function(e){if(this.parent){var t=this.createNode(e),n=this.parent.getChildIndex(this);return this.parent.addChildAtPosition(t,n),b(e)&&e.children.length&&t.loadFromData(e.children),t}return null}},{key:"addParent",value:function(e){if(this.parent){var t=this.createNode(e);this.tree&&t.setParent(this.tree);var n,i=this.parent,r=m(i.children);try{for(r.s();!(n=r.n()).done;){var o=n.value;t.addChild(o)}}catch(e){r.e(e)}finally{r.f()}return i.children=[],i.addChild(t),t}return null}},{key:"remove",value:function(){this.parent&&(this.parent.removeChild(this),this.parent=null)}},{key:"append",value:function(e){var t=this.createNode(e);return this.addChild(t),b(e)&&e.children.length&&t.loadFromData(e.children),t}},{key:"prepend",value:function(e){var t=this.createNode(e);return this.addChildAtPosition(t,0),b(e)&&e.children.length&&t.loadFromData(e.children),t}},{key:"isParentOf",value:function(e){for(var t=e.parent;t;){if(t===this)return!0;t=t.parent}return!1}},{key:"getLevel",value:function(){for(var e=0,t=this;t.parent;)e+=1,t=t.parent;return e}},{key:"getNodeById",value:function(e){return this.idMapping.get(e)||null}},{key:"addNodeToIndex",value:function(e){null!=e.id&&this.idMapping.set(e.id,e)}},{key:"removeNodeFromIndex",value:function(e){null!=e.id&&this.idMapping.delete(e.id)}},{key:"removeChildren",value:function(){var e=this;this.iterate((function(t){var n;return null===(n=e.tree)||void 0===n||n.removeNodeFromIndex(t),!0})),this.children=[]}},{key:"getPreviousSibling",value:function(){if(this.parent){var e=this.parent.getChildIndex(this)-1;return e>=0&&this.parent.children[e]||null}return null}},{key:"getNextSibling",value:function(){if(this.parent){var e=this.parent.getChildIndex(this)+1;return e0&&void 0!==arguments[0])||arguments[0])&&this.hasChildren())return this.children[0]||null;if(this.parent){var e=this.getNextSibling();return e||this.parent.getNextNode(!1)}return null}},{key:"getNextVisibleNode",value:function(){if(this.hasChildren()&&this.is_open)return this.children[0]||null;if(this.parent){var e=this.getNextSibling();return e||this.parent.getNextNode(!1)}return null}},{key:"getPreviousNode",value:function(){if(this.parent){var e=this.getPreviousSibling();return e?e.hasChildren()?e.getLastChild():e:this.getParent()}return null}},{key:"getPreviousVisibleNode",value:function(){if(this.parent){var e=this.getPreviousSibling();return e?e.hasChildren()&&e.is_open?e.getLastChild():e:this.getParent()}return null}},{key:"getParent",value:function(){return this.parent&&this.parent.parent?this.parent:null}},{key:"getLastChild",value:function(){if(this.hasChildren()){var e=this.children[this.children.length-1];return e?e.hasChildren()&&e.is_open?null==e?void 0:e.getLastChild():e:null}return null}},{key:"initFromData",value:function(e){var t,n=this,i=function(e){var t,i=m(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=n.createNode();o.initFromData(r),n.addChild(o)}}catch(e){i.e(e)}finally{i.f()}};t=e,n.setData(t),b(t)&&t.children.length&&i(t.children)}},{key:"setParent",value:function(e){var t;this.parent=e,this.tree=e.tree,null===(t=this.tree)||void 0===t||t.addNodeToIndex(this)}},{key:"doRemoveChild",value:function(e){var t;this.children.splice(this.getChildIndex(e),1),null===(t=this.tree)||void 0===t||t.removeNodeFromIndex(e)}},{key:"getNodeClass",value:function(){var t;return this.nodeClass||(null==this||null===(t=this.tree)||void 0===t?void 0:t.nodeClass)||e}},{key:"createNode",value:function(e){return new(this.getNodeClass())(e)}}]),e}(),D=function(){function e(t){r(this,e),a(this,"hitAreas",void 0),a(this,"isDragging",void 0),a(this,"currentItem",void 0),a(this,"hoveredArea",void 0),a(this,"positionInfo",void 0),a(this,"treeWidget",void 0),a(this,"dragElement",void 0),a(this,"previousGhost",void 0),a(this,"openFolderTimer",void 0),this.treeWidget=t,this.hoveredArea=null,this.hitAreas=[],this.isDragging=!1,this.currentItem=null,this.positionInfo=null}return s(e,[{key:"mouseCapture",value:function(e){var t=jQuery(e.target);if(!this.mustCaptureElement(t))return null;if(this.treeWidget.options.onIsMoveHandle&&!this.treeWidget.options.onIsMoveHandle(t))return null;var n=this.treeWidget._getNodeElement(t);return n&&this.treeWidget.options.onCanMove&&(this.treeWidget.options.onCanMove(n.node)||(n=null)),this.currentItem=n,null!=this.currentItem}},{key:"mouseStart",value:function(e){var t;if(!this.currentItem||void 0===e.pageX||void 0===e.pageY)return!1;this.refresh();var n=jQuery(e.target).offset(),i=n?n.left:0,r=n?n.top:0,o=this.currentItem.node;return this.dragElement=new j(o.name,e.pageX-i,e.pageY-r,this.treeWidget.element,null===(t=this.treeWidget.options.autoEscape)||void 0===t||t),this.isDragging=!0,this.positionInfo=e,this.currentItem.$element.addClass("jqtree-moving"),!0}},{key:"mouseDrag",value:function(e){if(!this.currentItem||!this.dragElement||void 0===e.pageX||void 0===e.pageY)return!1;this.dragElement.move(e.pageX,e.pageY),this.positionInfo=e;var t=this.findHoveredArea(e.pageX,e.pageY);return t&&this.canMoveToArea(t)?(t.node.isFolder()||this.stopOpenFolderTimer(),this.hoveredArea!==t&&(this.hoveredArea=t,this.mustOpenFolderTimer(t)?this.startOpenFolderTimer(t.node):this.stopOpenFolderTimer(),this.updateDropHint())):(this.removeDropHint(),this.stopOpenFolderTimer(),this.hoveredArea=t),t||this.treeWidget.options.onDragMove&&this.treeWidget.options.onDragMove(this.currentItem.node,e.originalEvent),!0}},{key:"mouseStop",value:function(e){this.moveItem(e),this.clear(),this.removeHover(),this.removeDropHint(),this.removeHitAreas();var t=this.currentItem;return this.currentItem&&(this.currentItem.$element.removeClass("jqtree-moving"),this.currentItem=null),this.isDragging=!1,this.positionInfo=null,!this.hoveredArea&&t&&this.treeWidget.options.onDragStop&&this.treeWidget.options.onDragStop(t.node,e.originalEvent),!1}},{key:"refresh",value:function(){this.removeHitAreas(),this.currentItem&&(this.generateHitAreas(),this.currentItem=this.treeWidget._getNodeElementForNode(this.currentItem.node),this.isDragging&&this.currentItem.$element.addClass("jqtree-moving"))}},{key:"generateHitAreas",value:function(){if(this.currentItem){var e=new I(this.treeWidget.tree,this.currentItem.node,this.getTreeDimensions().bottom);this.hitAreas=e.generate()}else this.hitAreas=[]}},{key:"mustCaptureElement",value:function(e){return!e.is("input,select,textarea")}},{key:"canMoveToArea",value:function(e){if(!this.treeWidget.options.onCanMoveTo)return!0;if(!this.currentItem)return!1;var t=S(e.position);return this.treeWidget.options.onCanMoveTo(this.currentItem.node,e.node,t)}},{key:"removeHitAreas",value:function(){this.hitAreas=[]}},{key:"clear",value:function(){this.dragElement&&(this.dragElement.remove(),this.dragElement=null)}},{key:"removeDropHint",value:function(){this.previousGhost&&this.previousGhost.remove()}},{key:"removeHover",value:function(){this.hoveredArea=null}},{key:"findHoveredArea",value:function(e,t){var n=this.getTreeDimensions();if(en.right||t>n.bottom)return null;for(var i=0,r=this.hitAreas.length;i>1,s=this.hitAreas[o];if(!s)return null;if(ts.bottom))return s;i=o+1}}return null}},{key:"mustOpenFolderTimer",value:function(e){var t=e.node;return t.isFolder()&&!t.is_open&&e.position===k.Inside}},{key:"updateDropHint",value:function(){if(this.hoveredArea){this.removeDropHint();var e=this.treeWidget._getNodeElementForNode(this.hoveredArea.node);this.previousGhost=e.addDropHint(this.hoveredArea.position)}}},{key:"startOpenFolderTimer",value:function(e){var t=this;this.stopOpenFolderTimer();var n=this.treeWidget.options.openFolderDelay;!1!==n&&(this.openFolderTimer=window.setTimeout((function(){t.treeWidget._openNode(e,t.treeWidget.options.slide,(function(){t.refresh(),t.updateDropHint()}))}),n))}},{key:"stopOpenFolderTimer",value:function(){this.openFolderTimer&&(clearTimeout(this.openFolderTimer),this.openFolderTimer=null)}},{key:"moveItem",value:function(e){var t=this;if(this.currentItem&&this.hoveredArea&&this.hoveredArea.position!==k.None&&this.canMoveToArea(this.hoveredArea)){var n=this.currentItem.node,i=this.hoveredArea.node,r=this.hoveredArea.position,o=n.parent;r===k.Inside&&(this.hoveredArea.node.is_open=!0);var s=function(){t.treeWidget.tree.moveNode(n,i,r),t.treeWidget.element.empty(),t.treeWidget._refreshElements(null)};this.treeWidget._triggerEvent("tree.move",{move_info:{moved_node:n,target_node:i,position:S(r),previous_parent:o,do_move:s,original_event:e.originalEvent}}).isDefaultPrevented()||s()}}},{key:"getTreeDimensions",value:function(){var e=this.treeWidget.element.offset();if(e){var t=this.treeWidget.element,n=t.width()||0,i=t.height()||0,r=e.left+this.treeWidget._getScrollLeft();return{left:r,top:e.top,right:r+n,bottom:e.top+i+16}}return{left:0,top:0,right:0,bottom:0}}}]),e}(),I=function(e){l(n,e);var t=c(n);function n(e,i,o){var s;return r(this,n),a(h(s=t.call(this,e)),"currentNode",void 0),a(h(s),"treeBottom",void 0),a(h(s),"positions",void 0),a(h(s),"lastTop",void 0),s.currentNode=i,s.treeBottom=o,s}return s(n,[{key:"generate",value:function(){return this.positions=[],this.lastTop=0,this.iterate(),this.generateHitAreas(this.positions)}},{key:"generateHitAreas",value:function(e){var t,n=-1,i=[],r=[],o=m(e);try{for(o.s();!(t=o.n()).done;){var s=t.value;s.top!==n&&i.length&&(i.length&&this.generateHitAreasForGroup(r,i,n,s.top),n=s.top,i=[]),i.push(s)}}catch(e){o.e(e)}finally{o.f()}return this.generateHitAreasForGroup(r,i,n,this.treeBottom),r}},{key:"handleOpenFolder",value:function(e,t){return e!==this.currentNode&&(e.children[0]!==this.currentNode&&this.addPosition(e,k.Inside,this.getTop(t)),!0)}},{key:"handleClosedFolder",value:function(e,t,n){var i=this.getTop(n);e===this.currentNode?this.addPosition(e,k.None,i):(this.addPosition(e,k.Inside,i),t!==this.currentNode&&this.addPosition(e,k.After,i))}},{key:"handleFirstNode",value:function(e){e!==this.currentNode&&this.addPosition(e,k.Before,this.getTop(jQuery(e.element)))}},{key:"handleAfterOpenFolder",value:function(e,t){e===this.currentNode||t===this.currentNode?this.addPosition(e,k.None,this.lastTop):this.addPosition(e,k.After,this.lastTop)}},{key:"handleNode",value:function(e,t,n){var i=this.getTop(n);e===this.currentNode?this.addPosition(e,k.None,i):this.addPosition(e,k.Inside,i),t===this.currentNode||e===this.currentNode?this.addPosition(e,k.None,i):this.addPosition(e,k.After,i)}},{key:"getTop",value:function(e){var t=e.offset();return t?t.top:0}},{key:"addPosition",value:function(e,t,n){var i={top:n,bottom:0,node:e,position:t};this.positions.push(i),this.lastTop=n}},{key:"generateHitAreasForGroup",value:function(e,t,n,i){for(var r=Math.min(t.length,4),o=Math.round((i-n)/r),s=n,a=0;a").addClass("jqtree-title jqtree-dragging"),s?this.$element.text(t):this.$element.html(t),this.$element.css("position","absolute"),o.append(this.$element)}return s(e,[{key:"move",value:function(e,t){this.$element.offset({left:e-this.offsetX,top:t-this.offsetY})}},{key:"remove",value:function(){this.$element.remove()}}]),e}(),E=function(e){return e?"true":"false"},C=function(){function e(t){r(this,e),a(this,"openedIconElement",void 0),a(this,"closedIconElement",void 0),a(this,"treeWidget",void 0),this.treeWidget=t,this.openedIconElement=this.createButtonElement(t.options.openedIcon||"+"),this.closedIconElement=this.createButtonElement(t.options.closedIcon||"-")}return s(e,[{key:"render",value:function(e){e&&e.parent?this.renderFromNode(e):this.renderFromRoot()}},{key:"renderFromRoot",value:function(){var e=this.treeWidget.element;e.empty(),e[0]&&this.createDomElements(e[0],this.treeWidget.tree.children,!0,1)}},{key:"renderFromNode",value:function(e){var t=jQuery(e.element),n=this.createLi(e,e.getLevel());this.attachNodeData(e,n),t.after(n),t.remove(),e.children&&this.createDomElements(n,e.children,!1,e.getLevel()+1)}},{key:"createDomElements",value:function(e,t,n,i){var r=this.createUl(n);e.appendChild(r);var o,s=m(t);try{for(s.s();!(o=s.n()).done;){var a=o.value,l=this.createLi(a,i);r.appendChild(l),this.attachNodeData(a,l),a.hasChildren()&&this.createDomElements(l,a.children,!1,i+1)}}catch(e){s.e(e)}finally{s.f()}}},{key:"attachNodeData",value:function(e,t){e.element=t,jQuery(t).data("node",e)}},{key:"createUl",value:function(e){var t,n;e?(t="jqtree-tree",n="tree",this.treeWidget.options.rtl&&(t+=" jqtree-rtl")):(t="",n="group"),this.treeWidget.options.dragAndDrop&&(t+=" jqtree-dnd");var i=document.createElement("ul");return i.className="jqtree_common ".concat(t),i.setAttribute("role",n),i}},{key:"createLi",value:function(e,t){var n=Boolean(this.treeWidget.selectNodeHandler.isNodeSelected(e)),i=e.isFolder()||e.isEmptyFolder&&this.treeWidget.options.showEmptyFolder?this.createFolderLi(e,t,n):this.createNodeLi(e,t,n);return this.treeWidget.options.onCreateLi&&this.treeWidget.options.onCreateLi(e,jQuery(i),n),i}},{key:"setTreeItemAriaAttributes",value:function(e,t,n,i){e.setAttribute("aria-label",t),e.setAttribute("aria-level","".concat(n)),e.setAttribute("aria-selected",E(i)),e.setAttribute("role","treeitem")}},{key:"createFolderLi",value:function(e,t,n){var i=this.getButtonClasses(e),r=this.getFolderClasses(e,n),o=e.is_open?this.openedIconElement:this.closedIconElement,s=document.createElement("li");s.className="jqtree_common ".concat(r),s.setAttribute("role","none");var a=document.createElement("div");a.className="jqtree-element jqtree_common",a.setAttribute("role","none"),s.appendChild(a);var l=document.createElement("a");l.className=i,o&&l.appendChild(o.cloneNode(!0)),this.treeWidget.options.buttonLeft&&a.appendChild(l);var d=this.createTitleSpan(e.name,n,!0,t);return d.setAttribute("aria-expanded",E(e.is_open)),a.appendChild(d),this.treeWidget.options.buttonLeft||a.appendChild(l),s}},{key:"createNodeLi",value:function(e,t,n){var i=["jqtree_common"];n&&i.push("jqtree-selected");var r=i.join(" "),o=document.createElement("li");o.className=r,o.setAttribute("role","none");var s=document.createElement("div");s.className="jqtree-element jqtree_common",s.setAttribute("role","none"),o.appendChild(s);var a=this.createTitleSpan(e.name,n,!1,t);return s.appendChild(a),o}},{key:"createTitleSpan",value:function(e,t,n,i){var r=document.createElement("span"),o="jqtree-title jqtree_common";if(n&&(o+=" jqtree-title-folder"),o+=" jqtree-title-button-".concat(this.treeWidget.options.buttonLeft?"left":"right"),r.className=o,t){var s=this.treeWidget.options.tabIndex;void 0!==s&&r.setAttribute("tabindex","".concat(s))}return this.setTreeItemAriaAttributes(r,e,i,t),this.treeWidget.options.autoEscape?r.textContent=e:r.innerHTML=e,r}},{key:"getButtonClasses",value:function(e){var t=["jqtree-toggler","jqtree_common"];return e.is_open||t.push("jqtree-closed"),this.treeWidget.options.buttonLeft?t.push("jqtree-toggler-left"):t.push("jqtree-toggler-right"),t.join(" ")}},{key:"getFolderClasses",value:function(e,t){var n=["jqtree-folder"];return e.is_open||n.push("jqtree-closed"),t&&n.push("jqtree-selected"),e.is_loading&&n.push("jqtree-loading"),n.join(" ")}},{key:"createButtonElement",value:function(e){if("string"==typeof e){var t=document.createElement("div");return t.innerHTML=e,document.createTextNode(t.innerHTML)}return jQuery(e)[0]}}]),e}(),w=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),this.treeWidget=t}return s(e,[{key:"loadFromUrl",value:function(e,t,n){var i=this;if(e){var r=this.getDomElement(t);this.addLoadingClass(r),this.notifyLoading(!0,t,r);var o=function(){i.removeLoadingClass(r),i.notifyLoading(!1,t,r)};this.submitRequest(e,(function(e){o(),i.treeWidget.loadData(i.parseData(e),t),n&&"function"==typeof n&&n()}),(function(e){o(),i.treeWidget.options.onLoadFailed&&i.treeWidget.options.onLoadFailed(e)}))}}},{key:"addLoadingClass",value:function(e){e&&e.addClass("jqtree-loading")}},{key:"removeLoadingClass",value:function(e){e&&e.removeClass("jqtree-loading")}},{key:"getDomElement",value:function(e){return e?jQuery(e.element):this.treeWidget.element}},{key:"notifyLoading",value:function(e,t,n){this.treeWidget.options.onLoading&&this.treeWidget.options.onLoading(e,t,n),this.treeWidget._triggerEvent("tree.loading_data",{isLoading:e,node:t,$el:n})}},{key:"submitRequest",value:function(e,t,i){var r,o=n({method:"GET",cache:!1,dataType:"json",success:t,error:i},"string"==typeof e?{url:e}:e);o.method=(null===(r=o.method)||void 0===r?void 0:r.toUpperCase())||"GET",jQuery.ajax(o)}},{key:"parseData",value:function(e){var t=this.treeWidget.options.dataFilter,n="string"==typeof e?JSON.parse(e):e;return t?t(n):n}}]),e}(),F=function(){function e(t){var n=this;r(this,e),a(this,"treeWidget",void 0),a(this,"handleKeyDown",(function(t){if(!n.canHandleKeyboard())return!0;var i=n.treeWidget.getSelectedNode();if(!i)return!0;switch(t.which){case e.DOWN:return n.moveDown(i);case e.UP:return n.moveUp(i);case e.RIGHT:return n.moveRight(i);case e.LEFT:return n.moveLeft(i);default:return!0}})),this.treeWidget=t,t.options.keyboardSupport&&jQuery(document).on("keydown.jqtree",this.handleKeyDown)}return s(e,[{key:"deinit",value:function(){jQuery(document).off("keydown.jqtree")}},{key:"moveDown",value:function(e){return this.selectNode(e.getNextVisibleNode())}},{key:"moveUp",value:function(e){return this.selectNode(e.getPreviousVisibleNode())}},{key:"moveRight",value:function(e){return!e.isFolder()||(e.is_open?this.selectNode(e.getNextVisibleNode()):(this.treeWidget.openNode(e),!1))}},{key:"moveLeft",value:function(e){return e.isFolder()&&e.is_open?(this.treeWidget.closeNode(e),!1):this.selectNode(e.getParent())}},{key:"selectNode",value:function(e){return!e||(this.treeWidget.selectNode(e),this.treeWidget.scrollHandler.isScrolledIntoView(jQuery(e.element).find(".jqtree-element"))||this.treeWidget.scrollToNode(e),!1)}},{key:"canHandleKeyboard",value:function(){return!!this.treeWidget.options.keyboardSupport&&this.treeWidget.selectNodeHandler.isFocusOnTree()}}]),e}();a(F,"LEFT",37),a(F,"UP",38),a(F,"RIGHT",39),a(F,"DOWN",40);var W=function(e,t){var n=function(){return"simple_widget_".concat(t)},r=function(e,t){var n=jQuery.data(e,t);return n&&n instanceof T?n:null},o=function(t,i){var o,s=n(),a=m(t.get());try{for(a.s();!(o=a.n()).done;){var l=o.value;if(!r(l,s)){var d=new e(l,i);jQuery.data(l,s)||jQuery.data(l,s,d),d.init()}}}catch(e){a.e(e)}finally{a.f()}return t};jQuery.fn[t]=function(t){if(!t)return o(this,null);if("object"===i(t))return o(this,t);if("string"==typeof t&&"_"!==t[0]){var s=t;if("destroy"===s)return function(e){var t,i=n(),o=m(e.get());try{for(o.s();!(t=o.n()).done;){var s=t.value,a=r(s,i);a&&a.destroy(),jQuery.removeData(s,i)}}catch(e){o.e(e)}finally{o.f()}}(this);if("get_widget_class"===s)return e;for(var a=arguments.length,l=new Array(a>1?a-1:0),d=1;d1)){var n=t.changedTouches[0];n&&e.handleMouseDown(A(n,t))}})),a(h(e),"touchMove",(function(t){if(t&&!(t.touches.length>1)){var n=t.changedTouches[0];n&&e.handleMouseMove(t,A(n,t))}})),a(h(e),"touchEnd",(function(t){if(t&&!(t.touches.length>1)){var n=t.changedTouches[0];n&&e.handleMouseUp(A(n,t))}})),e}return s(n,[{key:"init",value:function(){var e=this.$el.get(0);e&&(e.addEventListener("mousedown",this.mouseDown,{passive:!1}),e.addEventListener("touchstart",this.touchStart,{passive:!1})),this.isMouseStarted=!1,this.mouseDelayTimer=null,this.isMouseDelayMet=!1,this.mouseDownInfo=null}},{key:"deinit",value:function(){var e=this.$el.get(0);e&&(e.removeEventListener("mousedown",this.mouseDown,{passive:!1}),e.removeEventListener("touchstart",this.touchStart,{passive:!1})),this.removeMouseMoveEventListeners()}},{key:"handleMouseDown",value:function(e){return this.isMouseStarted&&this.handleMouseUp(e),this.mouseDownInfo=e,!!this.mouseCapture(e)&&(this.handleStartMouse(),!0)}},{key:"handleStartMouse",value:function(){document.addEventListener("mousemove",this.mouseMove,{passive:!1}),document.addEventListener("touchmove",this.touchMove,{passive:!1}),document.addEventListener("mouseup",this.mouseUp,{passive:!1}),document.addEventListener("touchend",this.touchEnd,{passive:!1});var e=this.getMouseDelay();e?this.startMouseDelayTimer(e):this.isMouseDelayMet=!0}},{key:"startMouseDelayTimer",value:function(e){var t=this;this.mouseDelayTimer&&clearTimeout(this.mouseDelayTimer),this.mouseDelayTimer=window.setTimeout((function(){t.mouseDownInfo&&(t.isMouseDelayMet=!0)}),e),this.isMouseDelayMet=!1}},{key:"handleMouseMove",value:function(e,t){if(this.isMouseStarted)return this.mouseDrag(t),void(e.cancelable&&e.preventDefault());this.isMouseDelayMet&&(this.mouseDownInfo&&(this.isMouseStarted=!1!==this.mouseStart(this.mouseDownInfo)),this.isMouseStarted?(this.mouseDrag(t),e.cancelable&&e.preventDefault()):this.handleMouseUp(t))}},{key:"handleMouseUp",value:function(e){this.removeMouseMoveEventListeners(),this.isMouseDelayMet=!1,this.mouseDownInfo=null,this.isMouseStarted&&(this.isMouseStarted=!1,this.mouseStop(e))}},{key:"removeMouseMoveEventListeners",value:function(){document.removeEventListener("mousemove",this.mouseMove,{passive:!1}),document.removeEventListener("touchmove",this.touchMove,{passive:!1}),document.removeEventListener("mouseup",this.mouseUp,{passive:!1}),document.removeEventListener("touchend",this.touchEnd,{passive:!1})}}]),n}(T),O=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),a(this,"_supportsLocalStorage",void 0),this.treeWidget=t}return s(e,[{key:"saveState",value:function(){var e=JSON.stringify(this.getState());this.treeWidget.options.onSetStateFromStorage?this.treeWidget.options.onSetStateFromStorage(e):this.supportsLocalStorage()&&localStorage.setItem(this.getKeyName(),e)}},{key:"getStateFromStorage",value:function(){var e=this.loadFromStorage();return e?this.parseState(e):null}},{key:"getState",value:function(){var e,t,n=this;return{open_nodes:(t=[],n.treeWidget.tree.iterate((function(e){return e.is_open&&e.id&&e.hasChildren()&&t.push(e.id),!0})),t),selected_node:(e=[],n.treeWidget.getSelectedNodes().forEach((function(t){null!=t.id&&e.push(t.id)})),e)}}},{key:"setInitialState",value:function(e){if(e){var t=!1;return e.open_nodes&&(t=this.openInitialNodes(e.open_nodes)),e.selected_node&&(this.resetSelection(),this.selectInitialNodes(e.selected_node)),t}return!1}},{key:"setInitialStateOnDemand",value:function(e,t){e?this.doSetInitialStateOnDemand(e.open_nodes,e.selected_node,t):t()}},{key:"getNodeIdToBeSelected",value:function(){var e=this.getStateFromStorage();return e&&e.selected_node&&e.selected_node[0]||null}},{key:"parseState",value:function(e){var t,n=JSON.parse(e);return n&&n.selected_node&&("number"==typeof(t=n.selected_node)&&t%1==0)&&(n.selected_node=[n.selected_node]),n}},{key:"loadFromStorage",value:function(){return this.treeWidget.options.onGetStateFromStorage?this.treeWidget.options.onGetStateFromStorage():this.supportsLocalStorage()?localStorage.getItem(this.getKeyName()):null}},{key:"openInitialNodes",value:function(e){var t,n=!1,i=m(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=this.treeWidget.getNodeById(r);o&&(o.load_on_demand?n=!0:o.is_open=!0)}}catch(e){i.e(e)}finally{i.f()}return n}},{key:"selectInitialNodes",value:function(e){var t,n=0,i=m(e);try{for(i.s();!(t=i.n()).done;){var r=t.value,o=this.treeWidget.getNodeById(r);o&&(n+=1,this.treeWidget.selectNodeHandler.addToSelection(o))}}catch(e){i.e(e)}finally{i.f()}return 0!==n}},{key:"resetSelection",value:function(){var e=this.treeWidget.selectNodeHandler;e.getSelectedNodes().forEach((function(t){e.removeFromSelection(t)}))}},{key:"doSetInitialStateOnDemand",value:function(e,t,n){var i=this,r=0,o=e,s=function(){var e,s=[],l=m(o);try{for(l.s();!(e=l.n()).done;){var d=e.value,u=i.treeWidget.getNodeById(d);u?u.is_loading||(u.load_on_demand?a(u):i.treeWidget._openNode(u,!1,null)):s.push(d)}}catch(e){l.e(e)}finally{l.f()}o=s,i.selectInitialNodes(t)&&i.treeWidget._refreshElements(null),0===r&&n()},a=function(e){r+=1,i.treeWidget._openNode(e,!1,(function(){r-=1,s()}))};s()}},{key:"getKeyName",value:function(){return"string"==typeof this.treeWidget.options.saveState?this.treeWidget.options.saveState:"tree"}},{key:"supportsLocalStorage",value:function(){return null==this._supportsLocalStorage&&(this._supportsLocalStorage=function(){if(null==localStorage)return!1;try{var e="_storage_test";sessionStorage.setItem(e,"value"),sessionStorage.removeItem(e)}catch(e){return!1}return!0}()),this._supportsLocalStorage}}]),e}(),H=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),a(this,"previousTop",void 0),a(this,"isInitialized",void 0),a(this,"$scrollParent",void 0),a(this,"scrollParentTop",void 0),this.treeWidget=t,this.previousTop=-1,this.isInitialized=!1}return s(e,[{key:"checkScrolling",value:function(){this.ensureInit(),this.checkVerticalScrolling(),this.checkHorizontalScrolling()}},{key:"scrollToY",value:function(e){if(this.ensureInit(),this.$scrollParent&&this.$scrollParent[0])this.$scrollParent[0].scrollTop=e;else{var t=this.treeWidget.$el.offset(),n=t?t.top:0;jQuery(document).scrollTop(e+n)}}},{key:"isScrolledIntoView",value:function(e){var t,n,i,r;this.ensureInit();var o=e.height()||0;if(this.$scrollParent){r=0,n=this.$scrollParent.height()||0;var s=e.offset();t=(i=(s?s.top:0)-this.scrollParentTop)+o}else{n=(r=jQuery(window).scrollTop()||0)+(jQuery(window).height()||0);var a=e.offset();t=(i=a?a.top:0)+o}return t<=n&&i>=r}},{key:"getScrollLeft",value:function(){return this.$scrollParent&&this.$scrollParent.scrollLeft()||0}},{key:"initScrollParent",value:function(){var e,t=this,n=function(){t.scrollParentTop=0,t.$scrollParent=null};"fixed"===this.treeWidget.$el.css("position")&&n();var i=function(){var e=["overflow","overflow-y"],n=function(t){for(var n=0,i=e;n0,s=n.left+i.clientWidth,a=n.left,l=e.pageX>s-20,d=e.pageX0,o=e.pageX>i-20,s=e.pageX-n<20;o?t.scrollLeft(n+20):s&&r&&t.scrollLeft(Math.max(n-20,0))}}}]),e}(),M=function(){function e(t){r(this,e),a(this,"treeWidget",void 0),a(this,"selectedNodes",void 0),a(this,"selectedSingleNode",void 0),this.treeWidget=t,this.selectedNodes=new Set,this.clear()}return s(e,[{key:"getSelectedNode",value:function(){var e=this.getSelectedNodes();return e.length&&e[0]||!1}},{key:"getSelectedNodes",value:function(){var e=this;if(this.selectedSingleNode)return[this.selectedSingleNode];var t=[];return this.selectedNodes.forEach((function(n){var i=e.treeWidget.getNodeById(n);i&&t.push(i)})),t}},{key:"getSelectedNodesUnder",value:function(e){if(this.selectedSingleNode)return e.isParentOf(this.selectedSingleNode)?[this.selectedSingleNode]:[];var t=[];for(var n in this.selectedNodes)if(Object.prototype.hasOwnProperty.call(this.selectedNodes,n)){var i=this.treeWidget.getNodeById(n);i&&e.isParentOf(i)&&t.push(i)}return t}},{key:"isNodeSelected",value:function(e){return null!=e.id?this.selectedNodes.has(e.id):!!this.selectedSingleNode&&this.selectedSingleNode.element===e.element}},{key:"clear",value:function(){this.selectedNodes.clear(),this.selectedSingleNode=null}},{key:"removeFromSelection",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];null==e.id?this.selectedSingleNode&&e.element===this.selectedSingleNode.element&&(this.selectedSingleNode=null):(this.selectedNodes.delete(e.id),n&&e.iterate((function(){return null!=e.id&&t.selectedNodes.delete(e.id),!0})))}},{key:"addToSelection",value:function(e){null!=e.id?this.selectedNodes.add(e.id):this.selectedSingleNode=e}},{key:"isFocusOnTree",value:function(){var e=document.activeElement;return Boolean(e&&"SPAN"===e.tagName&&this.treeWidget._containsElement(e))}}]),e}(),x=function(){function e(t,n){r(this,e),a(this,"node",void 0),a(this,"$element",void 0),a(this,"treeWidget",void 0),this.init(t,n)}return s(e,[{key:"init",value:function(e,t){if(this.node=e,this.treeWidget=t,!e.element){var n=this.treeWidget.element.get(0);n&&(e.element=n)}e.element&&(this.$element=jQuery(e.element))}},{key:"addDropHint",value:function(e){return this.mustShowBorderDropHint(e)?new q(this.$element,this.treeWidget._getScrollLeft()):new B(this.node,this.$element,e)}},{key:"select",value:function(e){var t;this.getLi().addClass("jqtree-selected");var n=this.getSpan();n.attr("tabindex",null!==(t=this.treeWidget.options.tabIndex)&&void 0!==t?t:null),n.attr("aria-selected","true"),e&&n.trigger("focus")}},{key:"deselect",value:function(){this.getLi().removeClass("jqtree-selected");var e=this.getSpan();e.removeAttr("tabindex"),e.attr("aria-selected","false"),e.trigger("blur")}},{key:"getUl",value:function(){return this.$element.children("ul:first")}},{key:"getSpan",value:function(){return this.$element.children(".jqtree-element").find("span.jqtree-title")}},{key:"getLi",value:function(){return this.$element}},{key:"mustShowBorderDropHint",value:function(e){return e===k.Inside}}]),e}(),$=function(e){l(n,e);var t=c(n);function n(){return r(this,n),t.apply(this,arguments)}return s(n,[{key:"open",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"fast";if(!this.node.is_open){this.node.is_open=!0;var r=this.getButton();r.removeClass("jqtree-closed"),r.html("");var o=r.get(0);if(o){var s=this.treeWidget.renderer.openedIconElement;if(s){var a=s.cloneNode(!0);o.appendChild(a)}}var l=function(){t.getLi().removeClass("jqtree-closed"),t.getSpan().attr("aria-expanded","true"),e&&e(t.node),t.treeWidget._triggerEvent("tree.open",{node:t.node})};n?this.getUl().slideDown(i,l):(this.getUl().show(),l())}}},{key:"close",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"fast";if(this.node.is_open){this.node.is_open=!1;var i=this.getButton();i.addClass("jqtree-closed"),i.html("");var r=i.get(0);if(r){var o=this.treeWidget.renderer.closedIconElement;if(o){var s=o.cloneNode(!0);r.appendChild(s)}}var a=function(){e.getLi().addClass("jqtree-closed"),e.getSpan().attr("aria-expanded","false"),e.treeWidget._triggerEvent("tree.close",{node:e.node})};t?this.getUl().slideUp(n,a):(this.getUl().hide(),a())}}},{key:"mustShowBorderDropHint",value:function(e){return!this.node.is_open&&e===k.Inside}},{key:"getButton",value:function(){return this.$element.children(".jqtree-element").find("a.jqtree-toggler")}}]),n}(x),q=function(){function e(t,n){r(this,e),a(this,"$hint",void 0);var i=t.children(".jqtree-element"),o=t.width()||0,s=Math.max(o+n-4,0),l=i.outerHeight()||0,d=Math.max(l-4,0);this.$hint=jQuery(''),i.append(this.$hint),this.$hint.css({width:s,height:d})}return s(e,[{key:"remove",value:function(){this.$hint.remove()}}]),e}(),B=function(){function e(t,n,i){r(this,e),a(this,"$element",void 0),a(this,"node",void 0),a(this,"$ghost",void 0),this.$element=n,this.node=t,this.$ghost=jQuery('\n '),i===k.After?this.moveAfter():i===k.Before?this.moveBefore():i===k.Inside&&(t.isFolder()&&t.is_open?this.moveInsideOpenFolder():this.moveInside())}return s(e,[{key:"remove",value:function(){this.$ghost.remove()}},{key:"moveAfter",value:function(){this.$element.after(this.$ghost)}},{key:"moveBefore",value:function(){this.$element.before(this.$ghost)}},{key:"moveInsideOpenFolder",value:function(){var e,t=null===(e=this.node.children[0])||void 0===e?void 0:e.element;t&&jQuery(t).before(this.$ghost)}},{key:"moveInside",value:function(){this.$element.after(this.$ghost),this.$ghost.addClass("jqtree-inside")}}]),e}(),Q="Node parameter is empty",U="Parameter is empty: ",R=function(e){l(o,e);var t=c(o);function o(){var e;r(this,o);for(var n=arguments.length,i=new Array(n),s=0;s1&&void 0!==arguments[1]?arguments[1]:null;if(!e)throw Error(Q);var n=null!=t?t:this.options.slide;return e.is_open?this.closeNode(e,n):this.openNode(e,n),this.element}},{key:"getTree",value:function(){return this.tree}},{key:"selectNode",value:function(e,t){return this.doSelectNode(e,t),this.element}},{key:"getSelectedNode",value:function(){return this.selectNodeHandler.getSelectedNode()}},{key:"toJson",value:function(){return JSON.stringify(this.tree.getData())}},{key:"loadData",value:function(e,t){return this.doLoadData(e,t),this.element}},{key:"loadDataFromUrl",value:function(e,t,n){return"string"==typeof e?this.doLoadDataFromUrl(e,t,null!=n?n:null):this.doLoadDataFromUrl(null,e,t),this.element}},{key:"reload",value:function(e){return this.doLoadDataFromUrl(null,null,e),this.element}},{key:"refresh",value:function(){return this._refreshElements(null),this.element}},{key:"getNodeById",value:function(e){return this.tree.getNodeById(e)}},{key:"getNodeByName",value:function(e){return this.tree.getNodeByName(e)}},{key:"getNodeByNameMustExist",value:function(e){return this.tree.getNodeByNameMustExist(e)}},{key:"getNodesByProperty",value:function(e,t){return this.tree.getNodesByProperty(e,t)}},{key:"getNodeByHtmlElement",value:function(e){return this.getNode(jQuery(e))}},{key:"getNodeByCallback",value:function(e){return this.tree.getNodeByCallback(e)}},{key:"openNode",value:function(e,t,n){var i=this;if(!e)throw Error(Q);var r=function(){var e,r,o;("function"==typeof t?(e=t,r=null):(r=t,e=n),null==r)&&(r=null!==(o=i.options.slide)&&void 0!==o&&o);return[r,e]}(),o=f(r,2),s=o[0],a=o[1];return this._openNode(e,s,a),this.element}},{key:"closeNode",value:function(e,t){if(!e)throw Error(Q);var n=null!=t?t:this.options.slide;return(e.isFolder()||e.isEmptyFolder)&&(new $(e,this).close(n,this.options.animationSpeed),this.saveState()),this.element}},{key:"isDragging",value:function(){return this.dndHandler.isDragging}},{key:"refreshHitAreas",value:function(){return this.dndHandler.refresh(),this.element}},{key:"addNodeAfter",value:function(e,t){var n=t.addAfter(e);return n&&this._refreshElements(t.parent),n}},{key:"addNodeBefore",value:function(e,t){if(!t)throw Error(U+"existingNode");var n=t.addBefore(e);return n&&this._refreshElements(t.parent),n}},{key:"addParentNode",value:function(e,t){if(!t)throw Error(U+"existingNode");var n=t.addParent(e);return n&&this._refreshElements(n.parent),n}},{key:"removeNode",value:function(e){if(!e)throw Error(Q);if(!e.parent)throw Error("Node has no parent");this.selectNodeHandler.removeFromSelection(e,!0);var t=e.parent;return e.remove(),this._refreshElements(t),this.element}},{key:"appendNode",value:function(e,t){var n=t||this.tree,i=n.append(e);return this._refreshElements(n),i}},{key:"prependNode",value:function(e,t){var n=null!=t?t:this.tree,i=n.prepend(e);return this._refreshElements(n),i}},{key:"updateNode",value:function(e,t){if(!e)throw Error(Q);var n="object"===i(t)&&t.id&&t.id!==e.id;return n&&this.tree.removeNodeFromIndex(e),e.setData(t),n&&this.tree.addNodeToIndex(e),"object"===i(t)&&t.children&&t.children instanceof Array&&(e.removeChildren(),t.children.length&&e.loadFromData(t.children)),this._refreshElements(e),this.element}},{key:"isSelectedNodeInSubtree",value:function(e){var t=this.getSelectedNode();return!!t&&(e===t||e.isParentOf(t))}},{key:"moveNode",value:function(e,t,n){if(!e)throw Error(Q);if(!t)throw Error(U+"targetNode");var i=N[n];return void 0!==i&&(this.tree.moveNode(e,t,i),this._refreshElements(null)),this.element}},{key:"getStateFromStorage",value:function(){return this.saveStateHandler.getStateFromStorage()}},{key:"addToSelection",value:function(e,t){if(!e)throw Error(Q);return this.selectNodeHandler.addToSelection(e),this._getNodeElementForNode(e).select(void 0===t||t),this.saveState(),this.element}},{key:"getSelectedNodes",value:function(){return this.selectNodeHandler.getSelectedNodes()}},{key:"isNodeSelected",value:function(e){if(!e)throw Error(Q);return this.selectNodeHandler.isNodeSelected(e)}},{key:"removeFromSelection",value:function(e){if(!e)throw Error(Q);return this.selectNodeHandler.removeFromSelection(e),this._getNodeElementForNode(e).deselect(),this.saveState(),this.element}},{key:"scrollToNode",value:function(e){if(!e)throw Error(Q);var t=jQuery(e.element).offset(),n=t?t.top:0,i=this.$el.offset(),r=n-(i?i.top:0);return this.scrollHandler.scrollToY(r),this.element}},{key:"getState",value:function(){return this.saveStateHandler.getState()}},{key:"setState",value:function(e){return this.saveStateHandler.setInitialState(e),this._refreshElements(null),this.element}},{key:"setOption",value:function(e,t){return this.options[e]=t,this.element}},{key:"moveDown",value:function(){var e=this.getSelectedNode();return e&&this.keyHandler.moveDown(e),this.element}},{key:"moveUp",value:function(){var e=this.getSelectedNode();return e&&this.keyHandler.moveUp(e),this.element}},{key:"getVersion",value:function(){return"1.7.1"}},{key:"_triggerEvent",value:function(e,t){var n=jQuery.Event(e,t);return this.element.trigger(n),n}},{key:"_openNode",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2?arguments[2]:void 0,r=function(e,n,i){new $(e,t).open(i,n,t.options.animationSpeed)};if(e.isFolder()||e.isEmptyFolder)if(e.load_on_demand)this.loadFolderOnDemand(e,n,i);else{for(var o=e.parent;o;)o.parent&&r(o,!1,null),o=o.parent;r(e,n,i),this.saveState()}}},{key:"_refreshElements",value:function(e){var t=this.selectNodeHandler.isFocusOnTree(),n=!!e&&this.isSelectedNodeInSubtree(e);this.renderer.render(e),n&&this.selectCurrentNode(t),this._triggerEvent("tree.refresh")}},{key:"_getNodeElementForNode",value:function(e){return e.isFolder()?new $(e,this):new x(e,this)}},{key:"_getNodeElement",value:function(e){var t=this.getNode(e);return t?this._getNodeElementForNode(t):null}},{key:"_containsElement",value:function(e){var t=this.getNode(jQuery(e));return null!=t&&t.tree===this.tree}},{key:"_getScrollLeft",value:function(){return this.scrollHandler.getScrollLeft()}},{key:"init",value:function(){v(d(o.prototype),"init",this).call(this),this.element=this.$el,this.isInitialized=!1,this.options.rtl=this.getRtlOption(),null==this.options.closedIcon&&(this.options.closedIcon=this.getDefaultClosedIcon()),this.renderer=new C(this),this.dataLoader=new w(this),this.saveStateHandler=new O(this),this.selectNodeHandler=new M(this),this.dndHandler=new D(this),this.scrollHandler=new H(this),this.keyHandler=new F(this),this.initData(),this.element.on("click",this.handleClick),this.element.on("dblclick",this.handleDblclick),this.options.useContextMenu&&this.element.on("contextmenu",this.handleContextmenu)}},{key:"deinit",value:function(){this.element.empty(),this.element.off(),this.keyHandler.deinit(),this.tree=new _({},!0),v(d(o.prototype),"deinit",this).call(this)}},{key:"mouseCapture",value:function(e){return!!this.options.dragAndDrop&&this.dndHandler.mouseCapture(e)}},{key:"mouseStart",value:function(e){return!!this.options.dragAndDrop&&this.dndHandler.mouseStart(e)}},{key:"mouseDrag",value:function(e){if(this.options.dragAndDrop){var t=this.dndHandler.mouseDrag(e);return this.scrollHandler.checkScrolling(),t}return!1}},{key:"mouseStop",value:function(e){return!!this.options.dragAndDrop&&this.dndHandler.mouseStop(e)}},{key:"getMouseDelay",value:function(){var e;return null!==(e=this.options.startDndDelay)&&void 0!==e?e:0}},{key:"initData",value:function(){this.options.data?this.doLoadData(this.options.data,null):this.getDataUrlInfo(null)?this.doLoadDataFromUrl(null,null,null):this.doLoadData([],null)}},{key:"getDataUrlInfo",value:function(e){var t,n=this,r=this.options.dataUrl||this.element.data("url"),o=function(t){if(null!=e&&e.id){var i={node:e.id};t.data=i}else{var r=n.getNodeIdToBeSelected();if(r){var o={selected_node:r};t.data=o}}};return"function"==typeof r?r(e):"string"==typeof r?(o(t={url:r}),t):r&&"object"===i(r)?(o(r),r):null}},{key:"getNodeIdToBeSelected",value:function(){return this.options.saveState?this.saveStateHandler.getNodeIdToBeSelected():null}},{key:"initTree",value:function(e){var t=this,n=function(){t.isInitialized||(t.isInitialized=!0,t._triggerEvent("tree.init"))};if(this.options.nodeClass){this.tree=new this.options.nodeClass(null,!0,this.options.nodeClass),this.selectNodeHandler.clear(),this.tree.loadFromData(e);var i=this.setInitialState();this._refreshElements(null),i?this.setInitialStateOnDemand(n):n()}}},{key:"setInitialState",value:function(){var e=this,t=f(function(){if(e.options.saveState){var t=e.saveStateHandler.getStateFromStorage();return t?[!0,e.saveStateHandler.setInitialState(t)]:[!1,!1]}return[!1,!1]}(),2),n=t[0],i=t[1];return n||(i=function(){if(!1===e.options.autoOpen)return!1;var t=e.getAutoOpenMaxLevel(),n=!1;return e.tree.iterate((function(e,i){return e.load_on_demand?(n=!0,!1):!!e.hasChildren()&&(e.is_open=!0,i!==t)})),n}()),i}},{key:"setInitialStateOnDemand",value:function(e){var t,n,i,r,o=this;(function(){if(o.options.saveState){var t=o.saveStateHandler.getStateFromStorage();return!!t&&(o.saveStateHandler.setInitialStateOnDemand(t,e),!0)}return!1})()||(t=o.getAutoOpenMaxLevel(),n=0,i=function(e){n+=1,o._openNode(e,!1,(function(){n-=1,r()}))},(r=function(){o.tree.iterate((function(e,n){return e.load_on_demand?(e.is_loading||i(e),!1):(o._openNode(e,!1,null),n!==t)})),0===n&&e()})())}},{key:"getAutoOpenMaxLevel",value:function(){return!0===this.options.autoOpen?-1:"number"==typeof this.options.autoOpen?this.options.autoOpen:"string"==typeof this.options.autoOpen?parseInt(this.options.autoOpen,10):0}},{key:"getClickTarget",value:function(e){var t=jQuery(e),n=t.closest(".jqtree-toggler");if(n.length){var i=this.getNode(n);if(i)return{type:"button",node:i}}else{var r=t.closest(".jqtree-element");if(r.length){var o=this.getNode(r);if(o)return{type:"label",node:o}}}return null}},{key:"getNode",value:function(e){var t=e.closest("li.jqtree_common");return 0===t.length?null:t.data("node")}},{key:"saveState",value:function(){this.options.saveState&&this.saveStateHandler.saveState()}},{key:"selectCurrentNode",value:function(e){var t=this.getSelectedNode();if(t){var n=this._getNodeElementForNode(t);n&&n.select(e)}}},{key:"deselectCurrentNode",value:function(){var e=this.getSelectedNode();e&&this.removeFromSelection(e)}},{key:"getDefaultClosedIcon",value:function(){return this.options.rtl?"◀":"►"}},{key:"getRtlOption",value:function(){if(null!=this.options.rtl)return this.options.rtl;var e=this.element.data("rtl");return null!==e&&!1!==e&&void 0!==e}},{key:"doSelectNode",value:function(e,t){var i=this,r=function(){i.options.saveState&&i.saveStateHandler.saveState()};if(!e)return this.deselectCurrentNode(),void r();var o=n(n({},{mustSetFocus:!0,mustToggle:!0}),t||{});if(i.options.onCanSelectNode?!0===i.options.selectable&&i.options.onCanSelectNode(e):!0===i.options.selectable){if(this.selectNodeHandler.isNodeSelected(e))o.mustToggle&&(this.deselectCurrentNode(),this._triggerEvent("tree.select",{node:null,previous_node:e}));else{var s=this.getSelectedNode()||null;this.deselectCurrentNode(),this.addToSelection(e,o.mustSetFocus),this._triggerEvent("tree.select",{node:e,deselected_node:s}),(a=e.parent)&&a.parent&&!a.is_open&&i.openNode(a,!1)}var a;r()}}},{key:"doLoadData",value:function(e,t){e&&(t?(this.deselectNodes(t),this.loadSubtree(e,t)):this.initTree(e),this.isDragging()&&this.dndHandler.refresh()),this._triggerEvent("tree.load_data",{tree_data:e,parent_node:t})}},{key:"deselectNodes",value:function(e){var t,n=m(this.selectNodeHandler.getSelectedNodesUnder(e));try{for(n.s();!(t=n.n()).done;){var i=t.value;this.selectNodeHandler.removeFromSelection(i)}}catch(e){n.e(e)}finally{n.f()}}},{key:"loadSubtree",value:function(e,t){t.loadFromData(e),t.load_on_demand=!1,t.is_loading=!1,this._refreshElements(t)}},{key:"doLoadDataFromUrl",value:function(e,t,n){var i=e||this.getDataUrlInfo(t);this.dataLoader.loadFromUrl(i,t,n)}},{key:"loadFolderOnDemand",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2?arguments[2]:void 0;e.is_loading=!0,this.doLoadDataFromUrl(null,e,(function(){t._openNode(e,n,i)}))}}]),o}(L);return a(R,"defaults",{animationSpeed:"fast",autoEscape:!0,autoOpen:!1,buttonLeft:!0,closedIcon:void 0,data:void 0,dataFilter:void 0,dataUrl:void 0,dragAndDrop:!1,keyboardSupport:!0,nodeClass:_,onCanMove:void 0,onCanMoveTo:void 0,onCanSelectNode:void 0,onCreateLi:void 0,onDragMove:void 0,onDragStop:void 0,onGetStateFromStorage:void 0,onIsMoveHandle:void 0,onLoadFailed:void 0,onLoading:void 0,onSetStateFromStorage:void 0,openedIcon:"▼",openFolderDelay:500,rtl:void 0,saveState:!1,selectable:!0,showEmptyFolder:!1,slide:!0,startDndDelay:300,tabIndex:0,useContextMenu:!0}),T.register(R,"tree"),e.JqTreeWidget=R,e}({});
//# sourceMappingURL=tree.jquery.js.map
diff --git a/tree.jquery.js.map b/tree.jquery.js.map
index 2a48ea35..808578cb 100644
--- a/tree.jquery.js.map
+++ b/tree.jquery.js.map
@@ -1 +1 @@
-{"version":3,"file":"tree.jquery.js","sources":["src/version.ts","src/node.ts","src/dragAndDropHandler.ts","src/util.ts","src/elementsRenderer.ts","src/dataLoader.ts","src/keyHandler.ts","src/simple.widget.ts","src/mouse.widget.ts","src/saveStateHandler.ts","src/scrollHandler.ts","src/selectNodeHandler.ts","src/nodeElement.ts","src/tree.jquery.ts"],"sourcesContent":["const version = \"1.7.0\";\n\nexport default version;\n","interface NodeRecordWithChildren extends NodeRecord {\n children: NodeData[];\n}\n\nexport enum Position {\n Before = 1,\n After,\n Inside,\n None,\n}\n\nconst positionNames: Record = {\n before: Position.Before,\n after: Position.After,\n inside: Position.Inside,\n none: Position.None,\n};\n\ntype IterateCallback = (node: Node, level: number) => boolean;\n\nexport const getPositionName = (position: Position): string => {\n for (const name in positionNames) {\n if (Object.prototype.hasOwnProperty.call(positionNames, name)) {\n if (positionNames[name] === position) {\n return name;\n }\n }\n }\n\n return \"\";\n};\n\nexport const getPosition = (name: string): Position | undefined =>\n positionNames[name];\n\nconst isNodeRecordWithChildren = (\n data: NodeData\n): data is NodeRecordWithChildren =>\n typeof data === \"object\" &&\n \"children\" in data &&\n data[\"children\"] instanceof Array;\n\nexport class Node implements INode {\n public id?: NodeId;\n public name: string;\n public children: Node[];\n public parent: Node | null;\n public idMapping: Map;\n public tree?: Node;\n public nodeClass?: typeof Node;\n public load_on_demand: boolean;\n public is_open: boolean;\n public element: HTMLElement;\n public is_loading: boolean;\n public isEmptyFolder: boolean;\n\n [key: string]: unknown;\n\n constructor(o: NodeData | null = null, isRoot = false, nodeClass = Node) {\n this.name = \"\";\n this.isEmptyFolder = false;\n this.load_on_demand = false;\n\n this.setData(o);\n\n this.children = [];\n this.parent = null;\n\n if (isRoot) {\n this.idMapping = new Map();\n this.tree = this;\n this.nodeClass = nodeClass;\n }\n }\n\n /*\n Set the data of this node.\n\n setData(string): set the name of the node\n setdata(object): set attributes of the node\n\n Examples:\n setdata('node1')\n\n setData({ name: 'node1', id: 1});\n\n setData({ name: 'node2', id: 2, color: 'green'});\n\n * This is an internal function; it is not in the docs\n * Does not remove existing node values\n */\n public setData(o: NodeData | null): void {\n if (!o) {\n return;\n } else if (typeof o === \"string\") {\n this.name = o;\n } else if (typeof o === \"object\") {\n for (const key in o) {\n if (Object.prototype.hasOwnProperty.call(o, key)) {\n const value = o[key];\n\n if (key === \"label\" || key === \"name\") {\n // You can use the 'label' key instead of 'name'; this is a legacy feature\n if (typeof value === \"string\") {\n this.name = value;\n }\n } else if (key !== \"children\" && key !== \"parent\") {\n // You can't update the children or the parent using this function\n this[key] = value;\n }\n }\n }\n }\n }\n\n /*\n Create tree from data.\n\n Structure of data is:\n [\n {\n name: 'node1',\n children: [\n { name: 'child1' },\n { name: 'child2' }\n ]\n },\n {\n name: 'node2'\n }\n ]\n */\n public loadFromData(data: NodeData[]): Node {\n this.removeChildren();\n\n for (const o of data) {\n const node = this.createNode(o);\n this.addChild(node);\n\n if (isNodeRecordWithChildren(o)) {\n if (o.children.length === 0) {\n node.isEmptyFolder = true;\n } else {\n node.loadFromData(o.children);\n }\n }\n }\n\n return this;\n }\n\n /*\n Add child.\n\n tree.addChild(\n new Node('child1')\n );\n */\n public addChild(node: Node): void {\n this.children.push(node);\n node.setParent(this);\n }\n\n /*\n Add child at position. Index starts at 0.\n\n tree.addChildAtPosition(\n new Node('abc'),\n 1\n );\n */\n public addChildAtPosition(node: Node, index: number): void {\n this.children.splice(index, 0, node);\n node.setParent(this);\n }\n\n /*\n Remove child. This also removes the children of the node.\n\n tree.removeChild(tree.children[0]);\n */\n public removeChild(node: Node): void {\n // remove children from the index\n node.removeChildren();\n\n this.doRemoveChild(node);\n }\n\n /*\n Get child index.\n\n var index = getChildIndex(node);\n */\n public getChildIndex(node: Node): number {\n return this.children.indexOf(node);\n }\n\n /*\n Does the tree have children?\n\n if (tree.hasChildren()) {\n //\n }\n */\n public hasChildren(): boolean {\n return this.children.length !== 0;\n }\n\n public isFolder(): boolean {\n return this.hasChildren() || this.load_on_demand;\n }\n\n /*\n Iterate over all the nodes in the tree.\n\n Calls callback with (node, level).\n\n The callback must return true to continue the iteration on current node.\n\n tree.iterate(\n function(node, level) {\n console.log(node.name);\n\n // stop iteration after level 2\n return (level <= 2);\n }\n );\n\n */\n public iterate(callback: IterateCallback): void {\n const _iterate = (node: Node, level: number): void => {\n if (node.children) {\n for (const child of node.children) {\n const result = callback(child, level);\n\n if (result && child.hasChildren()) {\n _iterate(child, level + 1);\n }\n }\n }\n };\n\n _iterate(this, 0);\n }\n\n /*\n Move node relative to another node.\n\n Argument position: Position.BEFORE, Position.AFTER or Position.Inside\n\n // move node1 after node2\n tree.moveNode(node1, node2, Position.AFTER);\n */\n public moveNode(\n movedNode: Node,\n targetNode: Node,\n position: Position\n ): boolean {\n if (!movedNode.parent || movedNode.isParentOf(targetNode)) {\n // - Node is parent of target node\n // - Or, parent is empty\n return false;\n } else {\n movedNode.parent.doRemoveChild(movedNode);\n\n switch (position) {\n case Position.After: {\n if (targetNode.parent) {\n targetNode.parent.addChildAtPosition(\n movedNode,\n targetNode.parent.getChildIndex(targetNode) + 1\n );\n return true;\n }\n return false;\n }\n\n case Position.Before: {\n if (targetNode.parent) {\n targetNode.parent.addChildAtPosition(\n movedNode,\n targetNode.parent.getChildIndex(targetNode)\n );\n return true;\n }\n return false;\n }\n\n case Position.Inside: {\n // move inside as first child\n targetNode.addChildAtPosition(movedNode, 0);\n return true;\n }\n\n default:\n return false;\n }\n }\n }\n\n /*\n Get the tree as data.\n */\n public getData(includeParent = false): NodeRecord[] {\n const getDataFromNodes = (nodes: Node[]): Record[] => {\n return nodes.map((node) => {\n const tmpNode: Record = {};\n\n for (const k in node) {\n if (\n [\n \"parent\",\n \"children\",\n \"element\",\n \"idMapping\",\n \"load_on_demand\",\n \"nodeClass\",\n \"tree\",\n \"isEmptyFolder\",\n ].indexOf(k) === -1 &&\n Object.prototype.hasOwnProperty.call(node, k)\n ) {\n const v = node[k];\n tmpNode[k] = v;\n }\n }\n\n if (node.hasChildren()) {\n tmpNode[\"children\"] = getDataFromNodes(node.children);\n }\n\n return tmpNode;\n });\n };\n\n if (includeParent) {\n return getDataFromNodes([this]);\n } else {\n return getDataFromNodes(this.children);\n }\n }\n\n public getNodeByName(name: string): Node | null {\n return this.getNodeByCallback((node: Node) => node.name === name);\n }\n\n public getNodeByNameMustExist(name: string): Node {\n const node = this.getNodeByCallback((n: Node) => n.name === name);\n\n if (!node) {\n throw `Node with name ${name} not found`;\n }\n\n return node;\n }\n\n public getNodeByCallback(callback: (node: Node) => boolean): Node | null {\n let result: Node | null = null;\n\n this.iterate((node: Node) => {\n if (result) {\n return false;\n } else if (callback(node)) {\n result = node;\n return false;\n } else {\n return true;\n }\n });\n\n return result;\n }\n\n public addAfter(nodeInfo: NodeData): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const node = this.createNode(nodeInfo);\n\n const childIndex = this.parent.getChildIndex(this);\n this.parent.addChildAtPosition(node, childIndex + 1);\n\n if (\n isNodeRecordWithChildren(nodeInfo) &&\n nodeInfo.children.length\n ) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n }\n\n public addBefore(nodeInfo: NodeData): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const node = this.createNode(nodeInfo);\n\n const childIndex = this.parent.getChildIndex(this);\n this.parent.addChildAtPosition(node, childIndex);\n\n if (\n isNodeRecordWithChildren(nodeInfo) &&\n nodeInfo.children.length\n ) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n }\n\n public addParent(nodeInfo: NodeData): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const newParent = this.createNode(nodeInfo);\n\n if (this.tree) {\n newParent.setParent(this.tree);\n }\n const originalParent = this.parent;\n\n for (const child of originalParent.children) {\n newParent.addChild(child);\n }\n\n originalParent.children = [];\n originalParent.addChild(newParent);\n return newParent;\n }\n }\n\n public remove(): void {\n if (this.parent) {\n this.parent.removeChild(this);\n this.parent = null;\n }\n }\n\n public append(nodeInfo: NodeData): Node {\n const node = this.createNode(nodeInfo);\n this.addChild(node);\n\n if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n\n public prepend(nodeInfo: NodeData): Node {\n const node = this.createNode(nodeInfo);\n this.addChildAtPosition(node, 0);\n\n if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n\n public isParentOf(node: Node): boolean {\n let parent = node.parent;\n\n while (parent) {\n if (parent === this) {\n return true;\n }\n\n parent = parent.parent;\n }\n\n return false;\n }\n\n public getLevel(): number {\n let level = 0;\n let node: Node = this; // eslint-disable-line @typescript-eslint/no-this-alias\n\n while (node.parent) {\n level += 1;\n node = node.parent;\n }\n\n return level;\n }\n\n public getNodeById(nodeId: NodeId): Node | null {\n return this.idMapping.get(nodeId) || null;\n }\n\n public addNodeToIndex(node: Node): void {\n if (node.id != null) {\n this.idMapping.set(node.id, node);\n }\n }\n\n public removeNodeFromIndex(node: Node): void {\n if (node.id != null) {\n this.idMapping.delete(node.id);\n }\n }\n\n public removeChildren(): void {\n this.iterate((child: Node) => {\n this.tree?.removeNodeFromIndex(child);\n return true;\n });\n\n this.children = [];\n }\n\n public getPreviousSibling(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const previousIndex = this.parent.getChildIndex(this) - 1;\n if (previousIndex >= 0) {\n return this.parent.children[previousIndex];\n } else {\n return null;\n }\n }\n }\n\n public getNextSibling(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const nextIndex = this.parent.getChildIndex(this) + 1;\n if (nextIndex < this.parent.children.length) {\n return this.parent.children[nextIndex];\n } else {\n return null;\n }\n }\n }\n\n public getNodesByProperty(key: string, value: unknown): Node[] {\n return this.filter((node: Node) => node[key] === value);\n }\n\n public filter(f: (node: Node) => boolean): Node[] {\n const result: Node[] = [];\n\n this.iterate((node: Node) => {\n if (f(node)) {\n result.push(node);\n }\n\n return true;\n });\n\n return result;\n }\n\n public getNextNode(includeChildren = true): Node | null {\n if (includeChildren && this.hasChildren()) {\n return this.children[0];\n } else if (!this.parent) {\n return null;\n } else {\n const nextSibling = this.getNextSibling();\n\n if (nextSibling) {\n return nextSibling;\n } else {\n return this.parent.getNextNode(false);\n }\n }\n }\n\n public getNextVisibleNode(): Node | null {\n if (this.hasChildren() && this.is_open) {\n // First child\n return this.children[0];\n } else {\n if (!this.parent) {\n return null;\n } else {\n const nextSibling = this.getNextSibling();\n if (nextSibling) {\n // Next sibling\n return nextSibling;\n } else {\n // Next node of parent\n return this.parent.getNextNode(false);\n }\n }\n }\n }\n\n public getPreviousNode(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const previousSibling = this.getPreviousSibling();\n\n if (!previousSibling) {\n return this.getParent();\n } else if (previousSibling.hasChildren()) {\n return previousSibling.getLastChild();\n } else {\n return previousSibling;\n }\n }\n }\n\n public getPreviousVisibleNode(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const previousSibling = this.getPreviousSibling();\n\n if (!previousSibling) {\n return this.getParent();\n } else if (\n !previousSibling.hasChildren() ||\n !previousSibling.is_open\n ) {\n // Previous sibling\n return previousSibling;\n } else {\n // Last child of previous sibling\n return previousSibling.getLastChild();\n }\n }\n }\n\n public getParent(): Node | null {\n // Return parent except if it is the root node\n if (!this.parent) {\n return null;\n } else if (!this.parent.parent) {\n // Root node -> null\n return null;\n } else {\n return this.parent;\n }\n }\n\n public getLastChild(): Node | null {\n if (!this.hasChildren()) {\n return null;\n } else {\n const lastChild = this.children[this.children.length - 1];\n if (!(lastChild.hasChildren() && lastChild.is_open)) {\n return lastChild;\n } else {\n return lastChild.getLastChild();\n }\n }\n }\n\n // Init Node from data without making it the root of the tree\n public initFromData(data: NodeData): void {\n const addNode = (nodeData: NodeData): void => {\n this.setData(nodeData);\n\n if (\n isNodeRecordWithChildren(nodeData) &&\n nodeData.children.length\n ) {\n addChildren(nodeData.children);\n }\n };\n\n const addChildren = (childrenData: NodeData[]): void => {\n for (const child of childrenData) {\n const node = this.createNode();\n node.initFromData(child);\n this.addChild(node);\n }\n };\n\n addNode(data);\n }\n\n private setParent(parent: Node): void {\n this.parent = parent;\n this.tree = parent.tree;\n this.tree?.addNodeToIndex(this);\n }\n\n private doRemoveChild(node: Node): void {\n this.children.splice(this.getChildIndex(node), 1);\n this.tree?.removeNodeFromIndex(node);\n }\n\n private getNodeClass(): typeof Node {\n return this.nodeClass || this?.tree?.nodeClass || Node;\n }\n\n private createNode(nodeData?: NodeData): Node {\n const nodeClass = this.getNodeClass();\n return new nodeClass(nodeData);\n }\n}\n","import { getPositionName, Node, Position } from \"./node\";\nimport { DropHint, HitArea, PositionInfo } from \"./types\";\nimport { NodeElement } from \"./nodeElement\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\ninterface Dimensions {\n left: number;\n top: number;\n right: number;\n bottom: number;\n}\n\nexport class DragAndDropHandler {\n public hitAreas: HitArea[];\n public isDragging: boolean;\n public currentItem: NodeElement | null;\n public hoveredArea: HitArea | null;\n public positionInfo: PositionInfo | null;\n\n private treeWidget: JqTreeWidget;\n private dragElement: DragElement | null;\n private previousGhost: DropHint | null;\n private openFolderTimer: number | null;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n\n this.hoveredArea = null;\n this.hitAreas = [];\n this.isDragging = false;\n this.currentItem = null;\n this.positionInfo = null;\n }\n\n public mouseCapture(positionInfo: PositionInfo): boolean | null {\n const $element = jQuery(positionInfo.target);\n\n if (!this.mustCaptureElement($element)) {\n return null;\n }\n\n if (\n this.treeWidget.options.onIsMoveHandle &&\n !this.treeWidget.options.onIsMoveHandle($element)\n ) {\n return null;\n }\n\n let nodeElement = this.treeWidget._getNodeElement($element);\n\n if (nodeElement && this.treeWidget.options.onCanMove) {\n if (!this.treeWidget.options.onCanMove(nodeElement.node)) {\n nodeElement = null;\n }\n }\n\n this.currentItem = nodeElement;\n return this.currentItem != null;\n }\n\n public mouseStart(positionInfo: PositionInfo): boolean {\n if (\n !this.currentItem ||\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return false;\n }\n\n this.refresh();\n\n const offset = jQuery(positionInfo.target).offset();\n const left = offset ? offset.left : 0;\n const top = offset ? offset.top : 0;\n\n const node = this.currentItem.node;\n\n this.dragElement = new DragElement(\n node.name,\n positionInfo.pageX - left,\n positionInfo.pageY - top,\n this.treeWidget.element,\n this.treeWidget.options.autoEscape ?? true\n );\n\n this.isDragging = true;\n this.positionInfo = positionInfo;\n this.currentItem.$element.addClass(\"jqtree-moving\");\n return true;\n }\n\n public mouseDrag(positionInfo: PositionInfo): boolean {\n if (\n !this.currentItem ||\n !this.dragElement ||\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return false;\n }\n\n this.dragElement.move(positionInfo.pageX, positionInfo.pageY);\n this.positionInfo = positionInfo;\n\n const area = this.findHoveredArea(\n positionInfo.pageX,\n positionInfo.pageY\n );\n\n if (area && this.canMoveToArea(area)) {\n if (!area.node.isFolder()) {\n this.stopOpenFolderTimer();\n }\n\n if (this.hoveredArea !== area) {\n this.hoveredArea = area;\n\n // If this is a closed folder, start timer to open it\n if (this.mustOpenFolderTimer(area)) {\n this.startOpenFolderTimer(area.node);\n } else {\n this.stopOpenFolderTimer();\n }\n\n this.updateDropHint();\n }\n } else {\n this.removeDropHint();\n this.stopOpenFolderTimer();\n this.hoveredArea = area;\n }\n\n if (!area) {\n if (this.treeWidget.options.onDragMove) {\n this.treeWidget.options.onDragMove(\n this.currentItem.node,\n positionInfo.originalEvent\n );\n }\n }\n\n return true;\n }\n\n public mouseStop(positionInfo: PositionInfo): boolean {\n this.moveItem(positionInfo);\n this.clear();\n this.removeHover();\n this.removeDropHint();\n this.removeHitAreas();\n\n const currentItem = this.currentItem;\n\n if (this.currentItem) {\n this.currentItem.$element.removeClass(\"jqtree-moving\");\n this.currentItem = null;\n }\n\n this.isDragging = false;\n this.positionInfo = null;\n\n if (!this.hoveredArea && currentItem) {\n if (this.treeWidget.options.onDragStop) {\n this.treeWidget.options.onDragStop(\n currentItem.node,\n positionInfo.originalEvent\n );\n }\n }\n\n return false;\n }\n\n public refresh(): void {\n this.removeHitAreas();\n\n if (this.currentItem) {\n this.generateHitAreas();\n\n this.currentItem = this.treeWidget._getNodeElementForNode(\n this.currentItem.node\n );\n\n if (this.isDragging) {\n this.currentItem.$element.addClass(\"jqtree-moving\");\n }\n }\n }\n\n private generateHitAreas(): void {\n if (!this.currentItem) {\n this.hitAreas = [];\n } else {\n const hitAreasGenerator = new HitAreasGenerator(\n this.treeWidget.tree,\n this.currentItem.node,\n this.getTreeDimensions().bottom\n );\n this.hitAreas = hitAreasGenerator.generate();\n }\n }\n\n private mustCaptureElement($element: JQuery): boolean {\n return !$element.is(\"input,select,textarea\");\n }\n\n private canMoveToArea(area: HitArea): boolean {\n if (!this.treeWidget.options.onCanMoveTo) {\n return true;\n }\n\n if (!this.currentItem) {\n return false;\n }\n\n const positionName = getPositionName(area.position);\n\n return this.treeWidget.options.onCanMoveTo(\n this.currentItem.node,\n area.node,\n positionName\n );\n }\n\n private removeHitAreas(): void {\n this.hitAreas = [];\n }\n\n private clear(): void {\n if (this.dragElement) {\n this.dragElement.remove();\n this.dragElement = null;\n }\n }\n\n private removeDropHint(): void {\n if (this.previousGhost) {\n this.previousGhost.remove();\n }\n }\n\n private removeHover(): void {\n this.hoveredArea = null;\n }\n\n private findHoveredArea(x: number, y: number): HitArea | null {\n const dimensions = this.getTreeDimensions();\n\n if (\n x < dimensions.left ||\n y < dimensions.top ||\n x > dimensions.right ||\n y > dimensions.bottom\n ) {\n return null;\n }\n\n let low = 0;\n let high = this.hitAreas.length;\n while (low < high) {\n const mid = (low + high) >> 1;\n const area = this.hitAreas[mid];\n\n if (y < area.top) {\n high = mid;\n } else if (y > area.bottom) {\n low = mid + 1;\n } else {\n return area;\n }\n }\n\n return null;\n }\n\n private mustOpenFolderTimer(area: HitArea): boolean {\n const node = area.node;\n\n return (\n node.isFolder() &&\n !node.is_open &&\n area.position === Position.Inside\n );\n }\n\n private updateDropHint(): void {\n if (!this.hoveredArea) {\n return;\n }\n\n // remove previous drop hint\n this.removeDropHint();\n\n // add new drop hint\n const nodeElement = this.treeWidget._getNodeElementForNode(\n this.hoveredArea.node\n );\n this.previousGhost = nodeElement.addDropHint(this.hoveredArea.position);\n }\n\n private startOpenFolderTimer(folder: Node): void {\n const openFolder = (): void => {\n this.treeWidget._openNode(\n folder,\n this.treeWidget.options.slide,\n () => {\n this.refresh();\n this.updateDropHint();\n }\n );\n };\n\n this.stopOpenFolderTimer();\n\n const openFolderDelay = this.treeWidget.options.openFolderDelay;\n\n if (openFolderDelay !== false) {\n this.openFolderTimer = window.setTimeout(\n openFolder,\n openFolderDelay\n );\n }\n }\n\n private stopOpenFolderTimer(): void {\n if (this.openFolderTimer) {\n clearTimeout(this.openFolderTimer);\n this.openFolderTimer = null;\n }\n }\n\n private moveItem(positionInfo: PositionInfo): void {\n if (\n this.currentItem &&\n this.hoveredArea &&\n this.hoveredArea.position !== Position.None &&\n this.canMoveToArea(this.hoveredArea)\n ) {\n const movedNode = this.currentItem.node;\n const targetNode = this.hoveredArea.node;\n const position = this.hoveredArea.position;\n const previousParent = movedNode.parent;\n\n if (position === Position.Inside) {\n this.hoveredArea.node.is_open = true;\n }\n\n const doMove = (): void => {\n this.treeWidget.tree.moveNode(movedNode, targetNode, position);\n this.treeWidget.element.empty();\n this.treeWidget._refreshElements(null);\n };\n\n const event = this.treeWidget._triggerEvent(\"tree.move\", {\n move_info: {\n moved_node: movedNode,\n target_node: targetNode,\n position: getPositionName(position),\n previous_parent: previousParent,\n do_move: doMove,\n original_event: positionInfo.originalEvent,\n },\n });\n\n if (!event.isDefaultPrevented()) {\n doMove();\n }\n }\n }\n\n private getTreeDimensions(): Dimensions {\n // Return the dimensions of the tree. Add a margin to the bottom to allow\n // to drag-and-drop after the last element.\n const offset = this.treeWidget.element.offset();\n\n if (!offset) {\n return { left: 0, top: 0, right: 0, bottom: 0 };\n } else {\n const el = this.treeWidget.element;\n const width = el.width() || 0;\n const height = el.height() || 0;\n const left = offset.left + this.treeWidget._getScrollLeft();\n\n return {\n left,\n top: offset.top,\n right: left + width,\n bottom: offset.top + height + 16,\n };\n }\n }\n}\n\nabstract class VisibleNodeIterator {\n private tree: Node;\n\n constructor(tree: Node) {\n this.tree = tree;\n }\n\n protected iterate(): void {\n let isFirstNode = true;\n\n const _iterateNode = (node: Node, nextNode: Node | null): void => {\n let mustIterateInside =\n (node.is_open || !node.element) && node.hasChildren();\n\n let $element: JQuery | null = null;\n\n if (node.element) {\n $element = jQuery(node.element);\n\n if (!$element.is(\":visible\")) {\n return;\n }\n\n if (isFirstNode) {\n this.handleFirstNode(node);\n isFirstNode = false;\n }\n\n if (!node.hasChildren()) {\n this.handleNode(node, nextNode, $element);\n } else if (node.is_open) {\n if (!this.handleOpenFolder(node, $element)) {\n mustIterateInside = false;\n }\n } else {\n this.handleClosedFolder(node, nextNode, $element);\n }\n }\n\n if (mustIterateInside) {\n const childrenLength = node.children.length;\n node.children.forEach((_, i) => {\n if (i === childrenLength - 1) {\n _iterateNode(node.children[i], null);\n } else {\n _iterateNode(node.children[i], node.children[i + 1]);\n }\n });\n\n if (node.is_open && $element) {\n this.handleAfterOpenFolder(node, nextNode);\n }\n }\n };\n\n _iterateNode(this.tree, null);\n }\n\n protected abstract handleNode(\n node: Node,\n nextNode: Node | null,\n $element: JQuery\n ): void;\n\n /*\n override\n return\n - true: continue iterating\n - false: stop iterating\n */\n protected abstract handleOpenFolder(node: Node, $element: JQuery): boolean;\n\n protected abstract handleClosedFolder(\n node: Node,\n nextNode: Node | null,\n $element: JQuery\n ): void;\n\n protected abstract handleAfterOpenFolder(\n node: Node,\n nextNode: Node | null\n ): void;\n\n protected abstract handleFirstNode(node: Node): void;\n}\n\nexport class HitAreasGenerator extends VisibleNodeIterator {\n private currentNode: Node;\n private treeBottom: number;\n private positions: HitArea[];\n private lastTop: number;\n\n constructor(tree: Node, currentNode: Node, treeBottom: number) {\n super(tree);\n\n this.currentNode = currentNode;\n this.treeBottom = treeBottom;\n }\n\n public generate(): HitArea[] {\n this.positions = [];\n this.lastTop = 0;\n\n this.iterate();\n\n return this.generateHitAreas(this.positions);\n }\n\n protected generateHitAreas(positions: HitArea[]): HitArea[] {\n let previousTop = -1;\n let group = [];\n const hitAreas: HitArea[] = [];\n\n for (const position of positions) {\n if (position.top !== previousTop && group.length) {\n if (group.length) {\n this.generateHitAreasForGroup(\n hitAreas,\n group,\n previousTop,\n position.top\n );\n }\n\n previousTop = position.top;\n group = [];\n }\n\n group.push(position);\n }\n\n this.generateHitAreasForGroup(\n hitAreas,\n group,\n previousTop,\n this.treeBottom\n );\n\n return hitAreas;\n }\n\n protected handleOpenFolder(node: Node, $element: JQuery): boolean {\n if (node === this.currentNode) {\n // Cannot move inside current item\n // Stop iterating\n return false;\n }\n\n // Cannot move before current item\n if (node.children[0] !== this.currentNode) {\n this.addPosition(node, Position.Inside, this.getTop($element));\n }\n\n // Continue iterating\n return true;\n }\n\n protected handleClosedFolder(\n node: Node,\n nextNode: Node,\n $element: JQuery\n ): void {\n const top = this.getTop($element);\n\n if (node === this.currentNode) {\n // Cannot move after current item\n this.addPosition(node, Position.None, top);\n } else {\n this.addPosition(node, Position.Inside, top);\n\n // Cannot move before current item\n if (nextNode !== this.currentNode) {\n this.addPosition(node, Position.After, top);\n }\n }\n }\n\n protected handleFirstNode(node: Node): void {\n if (node !== this.currentNode) {\n this.addPosition(\n node,\n Position.Before,\n this.getTop(jQuery(node.element))\n );\n }\n }\n\n protected handleAfterOpenFolder(node: Node, nextNode: Node): void {\n if (node === this.currentNode || nextNode === this.currentNode) {\n // Cannot move before or after current item\n this.addPosition(node, Position.None, this.lastTop);\n } else {\n this.addPosition(node, Position.After, this.lastTop);\n }\n }\n\n protected handleNode(node: Node, nextNode: Node, $element: JQuery): void {\n const top = this.getTop($element);\n\n if (node === this.currentNode) {\n // Cannot move inside current item\n this.addPosition(node, Position.None, top);\n } else {\n this.addPosition(node, Position.Inside, top);\n }\n\n if (nextNode === this.currentNode || node === this.currentNode) {\n // Cannot move before or after current item\n this.addPosition(node, Position.None, top);\n } else {\n this.addPosition(node, Position.After, top);\n }\n }\n\n private getTop($element: JQuery): number {\n const offset = $element.offset();\n\n return offset ? offset.top : 0;\n }\n\n private addPosition(node: Node, position: number, top: number): void {\n const area = {\n top,\n bottom: 0,\n node,\n position,\n };\n\n this.positions.push(area);\n this.lastTop = top;\n }\n\n private generateHitAreasForGroup(\n hitAreas: HitArea[],\n positionsInGroup: HitArea[],\n top: number,\n bottom: number\n ): void {\n // limit positions in group\n const positionCount = Math.min(positionsInGroup.length, 4);\n\n const areaHeight = Math.round((bottom - top) / positionCount);\n let areaTop = top;\n\n let i = 0;\n while (i < positionCount) {\n const position = positionsInGroup[i];\n\n hitAreas.push({\n top: areaTop,\n bottom: areaTop + areaHeight,\n node: position.node,\n position: position.position,\n });\n\n areaTop += areaHeight;\n i += 1;\n }\n }\n}\n\nclass DragElement {\n private offsetX: number;\n private offsetY: number;\n private $element: JQuery;\n\n constructor(\n nodeName: string,\n offsetX: number,\n offsetY: number,\n $tree: JQuery,\n autoEscape: boolean\n ) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n\n this.$element = jQuery(\"\").addClass(\n \"jqtree-title jqtree-dragging\"\n );\n\n if (autoEscape) {\n this.$element.text(nodeName);\n } else {\n this.$element.html(nodeName);\n }\n\n this.$element.css(\"position\", \"absolute\");\n $tree.append(this.$element);\n }\n\n public move(pageX: number, pageY: number): void {\n this.$element.offset({\n left: pageX - this.offsetX,\n top: pageY - this.offsetY,\n });\n }\n\n public remove(): void {\n this.$element.remove();\n }\n}\n","export const isInt = (n: unknown): boolean =>\n typeof n === \"number\" && n % 1 === 0;\n\nexport const isFunction = (v: unknown): boolean => typeof v === \"function\";\n\nexport const getBoolString = (value: unknown): string =>\n value ? \"true\" : \"false\";\n","import { getBoolString } from \"./util\";\nimport { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\ntype IconElement = Text | Element;\n\nexport default class ElementsRenderer {\n public openedIconElement: IconElement;\n public closedIconElement: IconElement;\n private treeWidget: JqTreeWidget;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n\n this.openedIconElement = this.createButtonElement(\n treeWidget.options.openedIcon || \"+\"\n );\n this.closedIconElement = this.createButtonElement(\n treeWidget.options.closedIcon || \"-\"\n );\n }\n\n public render(fromNode: Node | null): void {\n if (fromNode && fromNode.parent) {\n this.renderFromNode(fromNode);\n } else {\n this.renderFromRoot();\n }\n }\n\n public renderFromRoot(): void {\n const $element = this.treeWidget.element;\n $element.empty();\n\n this.createDomElements(\n $element[0],\n this.treeWidget.tree.children,\n true,\n 1\n );\n }\n\n public renderFromNode(node: Node): void {\n // remember current li\n const $previousLi = jQuery(node.element);\n\n // create element\n const li = this.createLi(node, node.getLevel());\n this.attachNodeData(node, li);\n\n // add element to dom\n $previousLi.after(li);\n\n // remove previous li\n $previousLi.remove();\n\n // create children\n if (node.children) {\n this.createDomElements(\n li,\n node.children,\n false,\n node.getLevel() + 1\n );\n }\n }\n\n private createDomElements(\n element: Element,\n children: Node[],\n isRootNode: boolean,\n level: number\n ): void {\n const ul = this.createUl(isRootNode);\n element.appendChild(ul);\n\n for (const child of children) {\n const li = this.createLi(child, level);\n ul.appendChild(li);\n\n this.attachNodeData(child, li);\n\n if (child.hasChildren()) {\n this.createDomElements(li, child.children, false, level + 1);\n }\n }\n }\n\n private attachNodeData(node: Node, li: HTMLElement): void {\n node.element = li;\n jQuery(li).data(\"node\", node);\n }\n\n private createUl(isRootNode: boolean): HTMLUListElement {\n let classString;\n let role;\n\n if (!isRootNode) {\n classString = \"\";\n role = \"group\";\n } else {\n classString = \"jqtree-tree\";\n role = \"tree\";\n\n if (this.treeWidget.options.rtl) {\n classString += \" jqtree-rtl\";\n }\n }\n\n if (this.treeWidget.options.dragAndDrop) {\n classString += \" jqtree-dnd\";\n }\n\n const ul = document.createElement(\"ul\");\n ul.className = `jqtree_common ${classString}`;\n\n ul.setAttribute(\"role\", role);\n\n return ul;\n }\n\n private createLi(node: Node, level: number): HTMLLIElement {\n const isSelected = Boolean(\n this.treeWidget.selectNodeHandler.isNodeSelected(node)\n );\n\n const mustShowFolder =\n node.isFolder() ||\n (node.isEmptyFolder && this.treeWidget.options.showEmptyFolder);\n\n const li = mustShowFolder\n ? this.createFolderLi(node, level, isSelected)\n : this.createNodeLi(node, level, isSelected);\n\n if (this.treeWidget.options.onCreateLi) {\n this.treeWidget.options.onCreateLi(node, jQuery(li), isSelected);\n }\n\n return li;\n }\n\n private createFolderLi(\n node: Node,\n level: number,\n isSelected: boolean\n ): HTMLLIElement {\n const buttonClasses = this.getButtonClasses(node);\n const folderClasses = this.getFolderClasses(node, isSelected);\n\n const iconElement = node.is_open\n ? this.openedIconElement\n : this.closedIconElement;\n\n // li\n const li = document.createElement(\"li\");\n li.className = `jqtree_common ${folderClasses}`;\n li.setAttribute(\"role\", \"presentation\");\n\n // div\n const div = document.createElement(\"div\");\n div.className = \"jqtree-element jqtree_common\";\n div.setAttribute(\"role\", \"presentation\");\n\n li.appendChild(div);\n\n // button link\n const buttonLink = document.createElement(\"a\");\n buttonLink.className = buttonClasses;\n\n buttonLink.appendChild(iconElement.cloneNode(true));\n\n buttonLink.setAttribute(\"role\", \"presentation\");\n buttonLink.setAttribute(\"aria-hidden\", \"true\");\n\n if (this.treeWidget.options.buttonLeft) {\n div.appendChild(buttonLink);\n }\n\n // title span\n div.appendChild(\n this.createTitleSpan(\n node.name,\n level,\n isSelected,\n node.is_open,\n true\n )\n );\n\n if (!this.treeWidget.options.buttonLeft) {\n div.appendChild(buttonLink);\n }\n\n return li;\n }\n\n private createNodeLi(\n node: Node,\n level: number,\n isSelected: boolean\n ): HTMLLIElement {\n const liClasses = [\"jqtree_common\"];\n\n if (isSelected) {\n liClasses.push(\"jqtree-selected\");\n }\n\n const classString = liClasses.join(\" \");\n\n // li\n const li = document.createElement(\"li\");\n li.className = classString;\n li.setAttribute(\"role\", \"presentation\");\n\n // div\n const div = document.createElement(\"div\");\n div.className = \"jqtree-element jqtree_common\";\n div.setAttribute(\"role\", \"presentation\");\n\n li.appendChild(div);\n\n // title span\n div.appendChild(\n this.createTitleSpan(\n node.name,\n level,\n isSelected,\n node.is_open,\n false\n )\n );\n\n return li;\n }\n\n private createTitleSpan(\n nodeName: string,\n level: number,\n isSelected: boolean,\n isOpen: boolean,\n isFolder: boolean\n ): HTMLSpanElement {\n const titleSpan = document.createElement(\"span\");\n\n let classes = \"jqtree-title jqtree_common\";\n\n if (isFolder) {\n classes += \" jqtree-title-folder\";\n }\n\n classes += ` jqtree-title-button-${\n this.treeWidget.options.buttonLeft ? \"left\" : \"right\"\n }`;\n\n titleSpan.className = classes;\n\n titleSpan.setAttribute(\"role\", \"treeitem\");\n titleSpan.setAttribute(\"aria-level\", `${level}`);\n\n titleSpan.setAttribute(\"aria-selected\", getBoolString(isSelected));\n titleSpan.setAttribute(\"aria-expanded\", getBoolString(isOpen));\n\n if (isSelected) {\n const tabIndex = this.treeWidget.options.tabIndex;\n\n if (tabIndex !== undefined) {\n titleSpan.setAttribute(\"tabindex\", `${tabIndex}`);\n }\n }\n\n if (this.treeWidget.options.autoEscape) {\n titleSpan.textContent = nodeName;\n } else {\n titleSpan.innerHTML = nodeName;\n }\n\n return titleSpan;\n }\n\n private getButtonClasses(node: Node): string {\n const classes = [\"jqtree-toggler\", \"jqtree_common\"];\n\n if (!node.is_open) {\n classes.push(\"jqtree-closed\");\n }\n\n if (this.treeWidget.options.buttonLeft) {\n classes.push(\"jqtree-toggler-left\");\n } else {\n classes.push(\"jqtree-toggler-right\");\n }\n\n return classes.join(\" \");\n }\n\n private getFolderClasses(node: Node, isSelected: boolean): string {\n const classes = [\"jqtree-folder\"];\n\n if (!node.is_open) {\n classes.push(\"jqtree-closed\");\n }\n\n if (isSelected) {\n classes.push(\"jqtree-selected\");\n }\n\n if (node.is_loading) {\n classes.push(\"jqtree-loading\");\n }\n\n return classes.join(\" \");\n }\n\n private createButtonElement(value: string | Element): IconElement {\n if (typeof value === \"string\") {\n // convert value to html\n const div = document.createElement(\"div\");\n div.innerHTML = value;\n\n return document.createTextNode(div.innerHTML);\n } else {\n return jQuery(value)[0];\n }\n }\n}\n","import { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\nexport type HandleFinishedLoading = () => void;\n\nexport default class DataLoader {\n private treeWidget: JqTreeWidget;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n }\n\n public loadFromUrl(\n urlInfo: string | JQuery.AjaxSettings | null,\n parentNode: Node | null,\n onFinished: HandleFinishedLoading | null\n ): void {\n if (!urlInfo) {\n return;\n }\n\n const $el = this.getDomElement(parentNode);\n this.addLoadingClass($el);\n this.notifyLoading(true, parentNode, $el);\n\n const stopLoading = (): void => {\n this.removeLoadingClass($el);\n this.notifyLoading(false, parentNode, $el);\n };\n\n const handleSuccess = (data: string | NodeData[]): void => {\n stopLoading();\n this.treeWidget.loadData(this.parseData(data), parentNode);\n\n if (onFinished && typeof onFinished === \"function\") {\n onFinished();\n }\n };\n\n const handleError = (jqXHR: JQuery.jqXHR): void => {\n stopLoading();\n\n if (this.treeWidget.options.onLoadFailed) {\n this.treeWidget.options.onLoadFailed(jqXHR);\n }\n };\n\n this.submitRequest(urlInfo, handleSuccess, handleError);\n }\n\n private addLoadingClass($el: JQuery): void {\n if ($el) {\n $el.addClass(\"jqtree-loading\");\n }\n }\n\n private removeLoadingClass($el: JQuery): void {\n if ($el) {\n $el.removeClass(\"jqtree-loading\");\n }\n }\n\n private getDomElement(parentNode: Node | null): JQuery {\n if (parentNode) {\n return jQuery(parentNode.element);\n } else {\n return this.treeWidget.element;\n }\n }\n\n private notifyLoading(\n isLoading: boolean,\n node: Node | null,\n $el: JQuery\n ): void {\n if (this.treeWidget.options.onLoading) {\n this.treeWidget.options.onLoading(isLoading, node, $el);\n }\n\n this.treeWidget._triggerEvent(\"tree.loading_data\", {\n isLoading,\n node,\n $el,\n });\n }\n\n private submitRequest(\n urlInfoInput: string | JQuery.AjaxSettings,\n handleSuccess: JQuery.Ajax.SuccessCallback,\n handleError: JQuery.Ajax.ErrorCallback\n ): void {\n const urlInfo =\n typeof urlInfoInput === \"string\"\n ? { url: urlInfoInput }\n : urlInfoInput;\n\n const ajaxSettings: JQuery.AjaxSettings = {\n method: \"GET\",\n cache: false,\n dataType: \"json\",\n success: handleSuccess,\n error: handleError,\n ...urlInfo,\n };\n\n ajaxSettings.method = ajaxSettings.method?.toUpperCase() || \"GET\";\n\n void jQuery.ajax(ajaxSettings);\n }\n\n private parseData(data: string | NodeData[]): NodeData[] {\n const { dataFilter } = this.treeWidget.options;\n\n const getParsedData = () => {\n if (typeof data === \"string\") {\n return JSON.parse(data) as NodeData[];\n } else {\n return data;\n }\n };\n\n const parsedData = getParsedData();\n\n if (dataFilter) {\n return dataFilter(parsedData);\n } else {\n return parsedData;\n }\n }\n}\n","import { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\nexport default class KeyHandler {\n private static LEFT = 37;\n private static UP = 38;\n private static RIGHT = 39;\n private static DOWN = 40;\n\n private treeWidget: JqTreeWidget;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n\n if (treeWidget.options.keyboardSupport) {\n jQuery(document).on(\"keydown.jqtree\", this.handleKeyDown);\n }\n }\n\n public deinit(): void {\n jQuery(document).off(\"keydown.jqtree\");\n }\n\n public moveDown(selectedNode: Node): boolean {\n return this.selectNode(selectedNode.getNextVisibleNode());\n }\n\n public moveUp(selectedNode: Node): boolean {\n return this.selectNode(selectedNode.getPreviousVisibleNode());\n }\n\n public moveRight(selectedNode: Node): boolean {\n if (!selectedNode.isFolder()) {\n return true;\n } else {\n // folder node\n if (selectedNode.is_open) {\n // Right moves to the first child of an open node\n return this.selectNode(selectedNode.getNextVisibleNode());\n } else {\n // Right expands a closed node\n this.treeWidget.openNode(selectedNode);\n return false;\n }\n }\n }\n\n public moveLeft(selectedNode: Node): boolean {\n if (selectedNode.isFolder() && selectedNode.is_open) {\n // Left on an open node closes the node\n this.treeWidget.closeNode(selectedNode);\n return false;\n } else {\n // Left on a closed or end node moves focus to the node's parent\n return this.selectNode(selectedNode.getParent());\n }\n }\n\n public selectNode(node: Node | null): boolean {\n if (!node) {\n return true;\n } else {\n this.treeWidget.selectNode(node);\n\n if (\n !this.treeWidget.scrollHandler.isScrolledIntoView(\n jQuery(node.element).find(\".jqtree-element\")\n )\n ) {\n this.treeWidget.scrollToNode(node);\n }\n\n return false;\n }\n }\n\n private handleKeyDown = (e: JQuery.Event): boolean => {\n if (!this.canHandleKeyboard()) {\n return true;\n }\n\n const selectedNode = this.treeWidget.getSelectedNode();\n if (!selectedNode) {\n return true;\n }\n\n const key = e.which;\n\n switch (key) {\n case KeyHandler.DOWN:\n return this.moveDown(selectedNode);\n\n case KeyHandler.UP:\n return this.moveUp(selectedNode);\n\n case KeyHandler.RIGHT:\n return this.moveRight(selectedNode);\n\n case KeyHandler.LEFT:\n return this.moveLeft(selectedNode);\n\n default:\n return true;\n }\n };\n\n private canHandleKeyboard(): boolean {\n return (\n (this.treeWidget.options.keyboardSupport || false) &&\n this.treeWidget.selectNodeHandler.isFocusOnTree()\n );\n }\n}\n","const register = (widgetClass: unknown, widgetName: string): void => {\n const getDataKey = (): string => `simple_widget_${widgetName}`;\n\n const getWidgetData = (\n el: HTMLElement,\n dataKey: string\n ): SimpleWidget | null => {\n const widget = jQuery.data(el, dataKey) as unknown;\n\n if (widget && widget instanceof SimpleWidget) {\n return widget;\n } else {\n return null;\n }\n };\n\n const createWidget = ($el: JQuery, options: unknown): JQuery => {\n const dataKey = getDataKey();\n\n for (const el of $el.get()) {\n const existingWidget = getWidgetData(el, dataKey);\n\n if (!existingWidget) {\n const simpleWidgetClass = widgetClass as typeof SimpleWidget;\n const widget = new simpleWidgetClass(el, options);\n\n if (!jQuery.data(el, dataKey)) {\n jQuery.data(el, dataKey, widget);\n }\n\n // Call init after setting data, so we can call methods\n widget.init();\n }\n }\n\n return $el;\n };\n\n const destroyWidget = ($el: JQuery): void => {\n const dataKey = getDataKey();\n\n for (const el of $el.get()) {\n const widget = getWidgetData(el, dataKey);\n\n if (widget) {\n widget.destroy();\n }\n\n jQuery.removeData(el, dataKey);\n }\n };\n\n const callFunction = (\n $el: JQuery,\n functionName: string,\n args: unknown[]\n ): unknown => {\n let result = null;\n\n for (const el of $el.get()) {\n const widget = jQuery.data(el, getDataKey()) as unknown;\n\n if (widget && widget instanceof SimpleWidget) {\n const simpleWidget = widget as SimpleWidget;\n const widgetFunction = simpleWidget[functionName];\n\n if (widgetFunction && typeof widgetFunction === \"function\") {\n result = widgetFunction.apply(widget, args) as unknown;\n }\n }\n }\n\n return result;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (jQuery.fn as any)[widgetName] = function (\n this: JQuery,\n argument1: unknown,\n ...args: unknown[]\n ) {\n if (!argument1) {\n return createWidget(this, null);\n } else if (typeof argument1 === \"object\") {\n const options = argument1 as unknown;\n return createWidget(this, options);\n } else if (typeof argument1 === \"string\" && argument1[0] !== \"_\") {\n const functionName = argument1;\n\n if (functionName === \"destroy\") {\n return destroyWidget(this);\n } else if (functionName === \"get_widget_class\") {\n return widgetClass;\n } else {\n return callFunction(this, functionName, args);\n }\n }\n };\n};\n\nexport default class SimpleWidget {\n public static register(widgetClass: unknown, widgetName: string): void {\n register(widgetClass, widgetName);\n }\n\n [key: string]: unknown;\n\n protected static defaults: unknown = {};\n\n public options: WidgetOptions;\n\n public $el: JQuery;\n\n constructor(el: HTMLElement, options: WidgetOptions) {\n this.$el = jQuery(el);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const defaults = (this.constructor as any)[\"defaults\"] as WidgetOptions;\n this.options = { ...defaults, ...options };\n }\n\n public destroy(): void {\n this.deinit();\n }\n\n public init(): void {\n //\n }\n\n public deinit(): void {\n //\n }\n}\n","/*\nThis widget does the same a the mouse widget in jqueryui.\n*/\nimport SimpleWidget from \"./simple.widget\";\nimport { PositionInfo } from \"./types\";\n\nconst getPositionInfoFromMouseEvent = (e: MouseEvent): PositionInfo => ({\n pageX: e.pageX,\n pageY: e.pageY,\n target: e.target as HTMLElement,\n originalEvent: e,\n});\n\nconst getPositionInfoFromTouch = (\n touch: Touch,\n e: TouchEvent\n): PositionInfo => ({\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target as HTMLElement,\n originalEvent: e,\n});\n\nabstract class MouseWidget extends SimpleWidget {\n protected isMouseStarted: boolean;\n protected mouseDownInfo: PositionInfo | null;\n private mouseDelayTimer: number | null;\n private isMouseDelayMet: boolean;\n\n public init(): void {\n const element = this.$el.get(0);\n\n if (element) {\n element.addEventListener(\"mousedown\", this.mouseDown, {\n passive: false,\n });\n element.addEventListener(\"touchstart\", this.touchStart, {\n passive: false,\n });\n }\n\n this.isMouseStarted = false;\n this.mouseDelayTimer = null;\n this.isMouseDelayMet = false;\n this.mouseDownInfo = null;\n }\n\n public deinit(): void {\n const el = this.$el.get(0);\n\n if (el) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (el as any).removeEventListener(\"mousedown\", this.mouseDown, {\n passive: false,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (el as any).removeEventListener(\"touchstart\", this.touchStart, {\n passive: false,\n });\n }\n\n this.removeMouseMoveEventListeners();\n }\n\n protected abstract mouseCapture(positionInfo: PositionInfo): boolean | null;\n\n protected abstract mouseStart(positionInfo: PositionInfo): boolean;\n\n protected abstract mouseDrag(positionInfo: PositionInfo): void;\n\n protected abstract mouseStop(positionInfo: PositionInfo): void;\n\n protected abstract getMouseDelay(): number;\n\n private mouseDown = (e: MouseEvent): void => {\n // Left mouse button?\n if (e.button !== 0) {\n return;\n }\n\n const result = this.handleMouseDown(getPositionInfoFromMouseEvent(e));\n\n if (result && e.cancelable) {\n e.preventDefault();\n }\n };\n\n private handleMouseDown(positionInfo: PositionInfo): boolean {\n // We may have missed mouseup (out of window)\n if (this.isMouseStarted) {\n this.handleMouseUp(positionInfo);\n }\n\n this.mouseDownInfo = positionInfo;\n\n if (!this.mouseCapture(positionInfo)) {\n return false;\n }\n\n this.handleStartMouse();\n\n return true;\n }\n\n private handleStartMouse(): void {\n document.addEventListener(\"mousemove\", this.mouseMove, {\n passive: false,\n });\n document.addEventListener(\"touchmove\", this.touchMove, {\n passive: false,\n });\n document.addEventListener(\"mouseup\", this.mouseUp, { passive: false });\n document.addEventListener(\"touchend\", this.touchEnd, {\n passive: false,\n });\n\n const mouseDelay = this.getMouseDelay();\n\n if (mouseDelay) {\n this.startMouseDelayTimer(mouseDelay);\n } else {\n this.isMouseDelayMet = true;\n }\n }\n\n private startMouseDelayTimer(mouseDelay: number): void {\n if (this.mouseDelayTimer) {\n clearTimeout(this.mouseDelayTimer);\n }\n\n this.mouseDelayTimer = window.setTimeout(() => {\n if (this.mouseDownInfo) {\n this.isMouseDelayMet = true;\n }\n }, mouseDelay);\n\n this.isMouseDelayMet = false;\n }\n\n private mouseMove = (e: MouseEvent): void => {\n this.handleMouseMove(e, getPositionInfoFromMouseEvent(e));\n };\n\n private handleMouseMove(\n e: MouseEvent | TouchEvent,\n positionInfo: PositionInfo\n ): void {\n if (this.isMouseStarted) {\n this.mouseDrag(positionInfo);\n\n if (e.cancelable) {\n e.preventDefault();\n }\n return;\n }\n\n if (!this.isMouseDelayMet) {\n return;\n }\n\n if (this.mouseDownInfo) {\n this.isMouseStarted = this.mouseStart(this.mouseDownInfo) !== false;\n }\n\n if (this.isMouseStarted) {\n this.mouseDrag(positionInfo);\n\n if (e.cancelable) {\n e.preventDefault();\n }\n } else {\n this.handleMouseUp(positionInfo);\n }\n }\n\n private mouseUp = (e: MouseEvent): void => {\n this.handleMouseUp(getPositionInfoFromMouseEvent(e));\n };\n\n private handleMouseUp(positionInfo: PositionInfo): void {\n this.removeMouseMoveEventListeners();\n this.isMouseDelayMet = false;\n this.mouseDownInfo = null;\n\n if (this.isMouseStarted) {\n this.isMouseStarted = false;\n this.mouseStop(positionInfo);\n }\n }\n\n private removeMouseMoveEventListeners() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"mousemove\", this.mouseMove, {\n passive: false,\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"touchmove\", this.touchMove, {\n passive: false,\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"mouseup\", this.mouseUp, {\n passive: false,\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"touchend\", this.touchEnd, {\n passive: false,\n });\n }\n\n private touchStart = (e: TouchEvent): void => {\n if (!e) {\n return;\n }\n\n if (e.touches.length > 1) {\n return;\n }\n\n const touch = e.changedTouches[0];\n\n this.handleMouseDown(getPositionInfoFromTouch(touch, e));\n };\n\n private touchMove = (e: TouchEvent): void => {\n if (!e) {\n return;\n }\n\n if (e.touches.length > 1) {\n return;\n }\n\n const touch = e.changedTouches[0];\n\n this.handleMouseMove(e, getPositionInfoFromTouch(touch, e));\n };\n\n private touchEnd = (e: TouchEvent): void => {\n if (!e) {\n return;\n }\n\n if (e.touches.length > 1) {\n return;\n }\n\n const touch = e.changedTouches[0];\n\n this.handleMouseUp(getPositionInfoFromTouch(touch, e));\n };\n}\n\nexport default MouseWidget;\n","import { isInt } from \"./util\";\nimport { JqTreeWidget } from \"./tree.jquery\";\nimport { Node } from \"./node\";\n\nexport interface SavedState {\n open_nodes: NodeId[];\n selected_node: NodeId[];\n}\n\nexport default class SaveStateHandler {\n private treeWidget: JqTreeWidget;\n private _supportsLocalStorage: boolean | null;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n }\n\n public saveState(): void {\n const state = JSON.stringify(this.getState());\n\n if (this.treeWidget.options.onSetStateFromStorage) {\n this.treeWidget.options.onSetStateFromStorage(state);\n } else if (this.supportsLocalStorage()) {\n localStorage.setItem(this.getKeyName(), state);\n }\n }\n\n public getStateFromStorage(): SavedState | null {\n const jsonData = this.loadFromStorage();\n\n if (jsonData) {\n return this.parseState(jsonData) as unknown as SavedState;\n } else {\n return null;\n }\n }\n\n public getState(): SavedState {\n const getOpenNodeIds = (): NodeId[] => {\n const openNodes: NodeId[] = [];\n\n this.treeWidget.tree.iterate((node: Node) => {\n if (node.is_open && node.id && node.hasChildren()) {\n openNodes.push(node.id);\n }\n return true;\n });\n\n return openNodes;\n };\n\n const getSelectedNodeIds = (): NodeId[] => {\n const selectedNodeIds: NodeId[] = [];\n\n this.treeWidget.getSelectedNodes().forEach((node) => {\n if (node.id != null) {\n selectedNodeIds.push(node.id);\n }\n });\n\n return selectedNodeIds;\n };\n\n return {\n open_nodes: getOpenNodeIds(),\n selected_node: getSelectedNodeIds(),\n };\n }\n\n /*\n Set initial state\n Don't handle nodes that are loaded on demand\n\n result: must load on demand\n */\n public setInitialState(state: SavedState): boolean {\n if (!state) {\n return false;\n } else {\n let mustLoadOnDemand = false;\n\n if (state.open_nodes) {\n mustLoadOnDemand = this.openInitialNodes(state.open_nodes);\n }\n\n if (state.selected_node) {\n this.resetSelection();\n this.selectInitialNodes(state.selected_node);\n }\n\n return mustLoadOnDemand;\n }\n }\n\n public setInitialStateOnDemand(\n state: SavedState,\n cbFinished: () => void\n ): void {\n if (state) {\n this.doSetInitialStateOnDemand(\n state.open_nodes,\n state.selected_node,\n cbFinished\n );\n } else {\n cbFinished();\n }\n }\n\n public getNodeIdToBeSelected(): NodeId | null {\n const state = this.getStateFromStorage();\n\n if (state && state.selected_node) {\n return state.selected_node[0];\n } else {\n return null;\n }\n }\n\n private parseState(jsonData: string): SavedState {\n const state = JSON.parse(jsonData) as Record;\n\n // Check if selected_node is an int (instead of an array)\n if (state && state.selected_node && isInt(state.selected_node)) {\n // Convert to array\n state.selected_node = [state.selected_node];\n }\n\n return state as unknown as SavedState;\n }\n\n private loadFromStorage(): string | null {\n if (this.treeWidget.options.onGetStateFromStorage) {\n return this.treeWidget.options.onGetStateFromStorage();\n } else if (this.supportsLocalStorage()) {\n return localStorage.getItem(this.getKeyName());\n } else {\n return null;\n }\n }\n\n private openInitialNodes(nodeIds: NodeId[]): boolean {\n let mustLoadOnDemand = false;\n\n for (const nodeId of nodeIds) {\n const node = this.treeWidget.getNodeById(nodeId);\n\n if (node) {\n if (!node.load_on_demand) {\n node.is_open = true;\n } else {\n mustLoadOnDemand = true;\n }\n }\n }\n\n return mustLoadOnDemand;\n }\n\n private selectInitialNodes(nodeIds: NodeId[]): boolean {\n let selectCount = 0;\n\n for (const nodeId of nodeIds) {\n const node = this.treeWidget.getNodeById(nodeId);\n\n if (node) {\n selectCount += 1;\n\n this.treeWidget.selectNodeHandler.addToSelection(node);\n }\n }\n\n return selectCount !== 0;\n }\n\n private resetSelection(): void {\n const selectNodeHandler = this.treeWidget.selectNodeHandler;\n\n const selectedNodes = selectNodeHandler.getSelectedNodes();\n\n selectedNodes.forEach((node) => {\n selectNodeHandler.removeFromSelection(node);\n });\n }\n\n private doSetInitialStateOnDemand(\n nodeIdsParam: NodeId[],\n selectedNodes: NodeId[],\n cbFinished: () => void\n ): void {\n let loadingCount = 0;\n let nodeIds = nodeIdsParam;\n\n const openNodes = (): void => {\n const newNodesIds = [];\n\n for (const nodeId of nodeIds) {\n const node = this.treeWidget.getNodeById(nodeId);\n\n if (!node) {\n newNodesIds.push(nodeId);\n } else {\n if (!node.is_loading) {\n if (node.load_on_demand) {\n loadAndOpenNode(node);\n } else {\n this.treeWidget._openNode(node, false, null);\n }\n }\n }\n }\n\n nodeIds = newNodesIds;\n\n if (this.selectInitialNodes(selectedNodes)) {\n this.treeWidget._refreshElements(null);\n }\n\n if (loadingCount === 0) {\n cbFinished();\n }\n };\n\n const loadAndOpenNode = (node: Node): void => {\n loadingCount += 1;\n this.treeWidget._openNode(node, false, () => {\n loadingCount -= 1;\n openNodes();\n });\n };\n\n openNodes();\n }\n\n private getKeyName(): string {\n if (typeof this.treeWidget.options.saveState === \"string\") {\n return this.treeWidget.options.saveState;\n } else {\n return \"tree\";\n }\n }\n\n private supportsLocalStorage(): boolean {\n const testSupport = (): boolean => {\n // Is local storage supported?\n if (localStorage == null) {\n return false;\n } else {\n // Check if it's possible to store an item. Safari does not allow this in private browsing mode.\n try {\n const key = \"_storage_test\";\n sessionStorage.setItem(key, \"value\");\n sessionStorage.removeItem(key);\n } catch (error) {\n return false;\n }\n\n return true;\n }\n };\n\n if (this._supportsLocalStorage == null) {\n this._supportsLocalStorage = testSupport();\n }\n\n return this._supportsLocalStorage;\n }\n}\n","import { JqTreeWidget } from \"./tree.jquery\";\nimport { HitArea, PositionInfo } from \"./types\";\n\nexport default class ScrollHandler {\n private treeWidget: JqTreeWidget;\n private previousTop: number;\n private isInitialized: boolean;\n private $scrollParent: JQuery | null;\n private scrollParentTop: number;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n this.previousTop = -1;\n this.isInitialized = false;\n }\n\n public checkScrolling(): void {\n this.ensureInit();\n this.checkVerticalScrolling();\n this.checkHorizontalScrolling();\n }\n\n public scrollToY(top: number): void {\n this.ensureInit();\n\n if (this.$scrollParent) {\n this.$scrollParent[0].scrollTop = top;\n } else {\n const offset = this.treeWidget.$el.offset();\n const treeTop = offset ? offset.top : 0;\n\n jQuery(document).scrollTop(top + treeTop);\n }\n }\n\n public isScrolledIntoView($element: JQuery): boolean {\n this.ensureInit();\n\n let elementBottom: number;\n let viewBottom: number;\n let elementTop: number;\n let viewTop: number;\n\n const elHeight = $element.height() || 0;\n\n if (this.$scrollParent) {\n viewTop = 0;\n viewBottom = this.$scrollParent.height() || 0;\n\n const offset = $element.offset();\n const originalTop = offset ? offset.top : 0;\n\n elementTop = originalTop - this.scrollParentTop;\n elementBottom = elementTop + elHeight;\n } else {\n viewTop = jQuery(window).scrollTop() || 0;\n\n const windowHeight = jQuery(window).height() || 0;\n viewBottom = viewTop + windowHeight;\n\n const offset = $element.offset();\n\n elementTop = offset ? offset.top : 0;\n elementBottom = elementTop + elHeight;\n }\n\n return elementBottom <= viewBottom && elementTop >= viewTop;\n }\n\n public getScrollLeft(): number {\n if (!this.$scrollParent) {\n return 0;\n } else {\n return this.$scrollParent.scrollLeft() || 0;\n }\n }\n\n private initScrollParent(): void {\n const getParentWithOverflow = (): JQuery | null => {\n const cssAttributes = [\"overflow\", \"overflow-y\"];\n\n const hasOverFlow = ($el: JQuery): boolean => {\n for (const attr of cssAttributes) {\n const overflowValue = $el.css(attr);\n if (\n overflowValue === \"auto\" ||\n overflowValue === \"scroll\"\n ) {\n return true;\n }\n }\n\n return false;\n };\n\n if (hasOverFlow(this.treeWidget.$el)) {\n return this.treeWidget.$el;\n }\n\n for (const el of this.treeWidget.$el.parents().get()) {\n const $el = jQuery(el);\n if (hasOverFlow($el)) {\n return $el;\n }\n }\n\n return null;\n };\n\n const setDocumentAsScrollParent = (): void => {\n this.scrollParentTop = 0;\n this.$scrollParent = null;\n };\n\n if (this.treeWidget.$el.css(\"position\") === \"fixed\") {\n setDocumentAsScrollParent();\n }\n\n const $scrollParent = getParentWithOverflow();\n\n if (\n $scrollParent &&\n $scrollParent.length &&\n $scrollParent[0].tagName !== \"HTML\"\n ) {\n this.$scrollParent = $scrollParent;\n\n const offset = this.$scrollParent.offset();\n this.scrollParentTop = offset ? offset.top : 0;\n } else {\n setDocumentAsScrollParent();\n }\n\n this.isInitialized = true;\n }\n\n private ensureInit(): void {\n if (!this.isInitialized) {\n this.initScrollParent();\n }\n }\n\n private handleVerticalScrollingWithScrollParent(area: HitArea): void {\n const scrollParent = this.$scrollParent && this.$scrollParent[0];\n\n if (!scrollParent) {\n return;\n }\n\n const distanceBottom =\n this.scrollParentTop + scrollParent.offsetHeight - area.bottom;\n\n if (distanceBottom < 20) {\n scrollParent.scrollTop += 20;\n this.treeWidget.refreshHitAreas();\n this.previousTop = -1;\n } else if (area.top - this.scrollParentTop < 20) {\n scrollParent.scrollTop -= 20;\n this.treeWidget.refreshHitAreas();\n this.previousTop = -1;\n }\n }\n\n private handleVerticalScrollingWithDocument(area: HitArea): void {\n const scrollTop = jQuery(document).scrollTop() || 0;\n const distanceTop = area.top - scrollTop;\n\n if (distanceTop < 20) {\n jQuery(document).scrollTop(scrollTop - 20);\n } else {\n const windowHeight = jQuery(window).height() || 0;\n\n if (windowHeight - (area.bottom - scrollTop) < 20) {\n jQuery(document).scrollTop(scrollTop + 20);\n }\n }\n }\n\n private checkVerticalScrolling(): void {\n const hoveredArea = this.treeWidget.dndHandler.hoveredArea;\n\n if (hoveredArea && hoveredArea.top !== this.previousTop) {\n this.previousTop = hoveredArea.top;\n\n if (this.$scrollParent) {\n this.handleVerticalScrollingWithScrollParent(hoveredArea);\n } else {\n this.handleVerticalScrollingWithDocument(hoveredArea);\n }\n }\n }\n\n private checkHorizontalScrolling(): void {\n const positionInfo = this.treeWidget.dndHandler.positionInfo;\n\n if (!positionInfo) {\n return;\n }\n\n if (this.$scrollParent) {\n this.handleHorizontalScrollingWithParent(positionInfo);\n } else {\n this.handleHorizontalScrollingWithDocument(positionInfo);\n }\n }\n\n private handleHorizontalScrollingWithParent(\n positionInfo: PositionInfo\n ): void {\n if (\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return;\n }\n\n const $scrollParent = this.$scrollParent;\n const scrollParentOffset = $scrollParent && $scrollParent.offset();\n\n if (!($scrollParent && scrollParentOffset)) {\n return;\n }\n\n const scrollParent = $scrollParent[0];\n\n const canScrollRight =\n scrollParent.scrollLeft + scrollParent.clientWidth <\n scrollParent.scrollWidth;\n const canScrollLeft = scrollParent.scrollLeft > 0;\n\n const rightEdge = scrollParentOffset.left + scrollParent.clientWidth;\n const leftEdge = scrollParentOffset.left;\n const isNearRightEdge = positionInfo.pageX > rightEdge - 20;\n const isNearLeftEdge = positionInfo.pageX < leftEdge + 20;\n\n if (isNearRightEdge && canScrollRight) {\n scrollParent.scrollLeft = Math.min(\n scrollParent.scrollLeft + 20,\n scrollParent.scrollWidth\n );\n } else if (isNearLeftEdge && canScrollLeft) {\n scrollParent.scrollLeft = Math.max(scrollParent.scrollLeft - 20, 0);\n }\n }\n\n private handleHorizontalScrollingWithDocument(\n positionInfo: PositionInfo\n ): void {\n if (\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return;\n }\n\n const $document = jQuery(document);\n\n const scrollLeft = $document.scrollLeft() || 0;\n const windowWidth = jQuery(window).width() || 0;\n\n const canScrollLeft = scrollLeft > 0;\n\n const isNearRightEdge = positionInfo.pageX > windowWidth - 20;\n const isNearLeftEdge = positionInfo.pageX - scrollLeft < 20;\n\n if (isNearRightEdge) {\n $document.scrollLeft(scrollLeft + 20);\n } else if (isNearLeftEdge && canScrollLeft) {\n $document.scrollLeft(Math.max(scrollLeft - 20, 0));\n }\n }\n}\n","import { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\nexport default class SelectNodeHandler {\n private treeWidget: JqTreeWidget;\n private selectedNodes: Set;\n private selectedSingleNode: Node | null;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n this.selectedNodes = new Set();\n this.clear();\n }\n\n public getSelectedNode(): Node | false {\n const selectedNodes = this.getSelectedNodes();\n\n if (selectedNodes.length) {\n return selectedNodes[0];\n } else {\n return false;\n }\n }\n\n public getSelectedNodes(): Node[] {\n if (this.selectedSingleNode) {\n return [this.selectedSingleNode];\n } else {\n const selectedNodes: Node[] = [];\n\n this.selectedNodes.forEach((id) => {\n const node = this.treeWidget.getNodeById(id);\n if (node) {\n selectedNodes.push(node);\n }\n });\n\n return selectedNodes;\n }\n }\n\n public getSelectedNodesUnder(parent: Node): Node[] {\n if (this.selectedSingleNode) {\n if (parent.isParentOf(this.selectedSingleNode)) {\n return [this.selectedSingleNode];\n } else {\n return [];\n }\n } else {\n const selectedNodes = [];\n\n for (const id in this.selectedNodes) {\n if (\n Object.prototype.hasOwnProperty.call(this.selectedNodes, id)\n ) {\n const node = this.treeWidget.getNodeById(id);\n if (node && parent.isParentOf(node)) {\n selectedNodes.push(node);\n }\n }\n }\n\n return selectedNodes;\n }\n }\n\n public isNodeSelected(node: Node): boolean {\n if (node.id != null) {\n return this.selectedNodes.has(node.id);\n } else if (this.selectedSingleNode) {\n return this.selectedSingleNode.element === node.element;\n } else {\n return false;\n }\n }\n\n public clear(): void {\n this.selectedNodes.clear();\n this.selectedSingleNode = null;\n }\n\n public removeFromSelection(node: Node, includeChildren = false): void {\n if (node.id == null) {\n if (\n this.selectedSingleNode &&\n node.element === this.selectedSingleNode.element\n ) {\n this.selectedSingleNode = null;\n }\n } else {\n this.selectedNodes.delete(node.id);\n\n if (includeChildren) {\n node.iterate(() => {\n if (node.id != null) {\n this.selectedNodes.delete(node.id);\n }\n return true;\n });\n }\n }\n }\n\n public addToSelection(node: Node): void {\n if (node.id != null) {\n this.selectedNodes.add(node.id);\n } else {\n this.selectedSingleNode = node;\n }\n }\n\n public isFocusOnTree(): boolean {\n const activeElement = document.activeElement;\n\n return Boolean(\n activeElement &&\n activeElement.tagName === \"SPAN\" &&\n this.treeWidget._containsElement(activeElement as HTMLElement)\n );\n }\n}\n","import { Position, Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\nimport { DropHint } from \"./types\";\n\nexport type OnFinishOpenNode = (node: Node) => void;\n\nexport class NodeElement {\n public node: Node;\n public $element: JQuery;\n protected treeWidget: JqTreeWidget;\n\n constructor(node: Node, treeWidget: JqTreeWidget) {\n this.init(node, treeWidget);\n }\n\n public init(node: Node, treeWidget: JqTreeWidget): void {\n this.node = node;\n this.treeWidget = treeWidget;\n\n if (!node.element) {\n const element = this.treeWidget.element.get(0);\n\n if (element) {\n node.element = element;\n }\n }\n\n if (node.element) {\n this.$element = jQuery(node.element);\n }\n }\n\n public addDropHint(position: number): DropHint {\n if (this.mustShowBorderDropHint(position)) {\n return new BorderDropHint(\n this.$element,\n this.treeWidget._getScrollLeft()\n );\n } else {\n return new GhostDropHint(this.node, this.$element, position);\n }\n }\n\n public select(mustSetFocus: boolean): void {\n const $li = this.getLi();\n\n $li.addClass(\"jqtree-selected\");\n $li.attr(\"aria-selected\", \"true\");\n\n const $span = this.getSpan();\n $span.attr(\"tabindex\", this.treeWidget.options.tabIndex ?? null);\n\n if (mustSetFocus) {\n $span.trigger(\"focus\");\n }\n }\n\n public deselect(): void {\n const $li = this.getLi();\n\n $li.removeClass(\"jqtree-selected\");\n $li.attr(\"aria-selected\", \"false\");\n\n const $span = this.getSpan();\n $span.removeAttr(\"tabindex\");\n\n $span.blur();\n }\n\n protected getUl(): JQuery {\n return this.$element.children(\"ul:first\");\n }\n\n protected getSpan(): JQuery {\n return this.$element\n .children(\".jqtree-element\")\n .find(\"span.jqtree-title\");\n }\n\n protected getLi(): JQuery {\n return this.$element;\n }\n\n protected mustShowBorderDropHint(position: number): boolean {\n return position === Position.Inside;\n }\n}\n\nexport class FolderElement extends NodeElement {\n public open(\n onFinished: OnFinishOpenNode | null,\n slide = true,\n animationSpeed: JQuery.Duration | string = \"fast\"\n ): void {\n if (this.node.is_open) {\n return;\n }\n\n this.node.is_open = true;\n\n const $button = this.getButton();\n $button.removeClass(\"jqtree-closed\");\n $button.html(\"\");\n\n const buttonEl = $button.get(0);\n\n if (buttonEl) {\n const icon =\n this.treeWidget.renderer.openedIconElement.cloneNode(true);\n\n buttonEl.appendChild(icon);\n }\n\n const doOpen = (): void => {\n const $li = this.getLi();\n $li.removeClass(\"jqtree-closed\");\n\n const $span = this.getSpan();\n $span.attr(\"aria-expanded\", \"true\");\n\n if (onFinished) {\n onFinished(this.node);\n }\n\n this.treeWidget._triggerEvent(\"tree.open\", {\n node: this.node,\n });\n };\n\n if (slide) {\n this.getUl().slideDown(animationSpeed, doOpen);\n } else {\n this.getUl().show();\n doOpen();\n }\n }\n\n public close(\n slide = true,\n animationSpeed: JQuery.Duration | string = \"fast\"\n ): void {\n if (!this.node.is_open) {\n return;\n }\n\n this.node.is_open = false;\n\n const $button = this.getButton();\n $button.addClass(\"jqtree-closed\");\n $button.html(\"\");\n\n const buttonEl = $button.get(0);\n\n if (buttonEl) {\n const icon =\n this.treeWidget.renderer.closedIconElement.cloneNode(true);\n\n buttonEl.appendChild(icon);\n }\n\n const doClose = (): void => {\n const $li = this.getLi();\n $li.addClass(\"jqtree-closed\");\n\n const $span = this.getSpan();\n $span.attr(\"aria-expanded\", \"false\");\n\n this.treeWidget._triggerEvent(\"tree.close\", {\n node: this.node,\n });\n };\n\n if (slide) {\n this.getUl().slideUp(animationSpeed, doClose);\n } else {\n this.getUl().hide();\n doClose();\n }\n }\n\n protected mustShowBorderDropHint(position: number): boolean {\n return !this.node.is_open && position === Position.Inside;\n }\n\n private getButton(): JQuery {\n return this.$element\n .children(\".jqtree-element\")\n .find(\"a.jqtree-toggler\");\n }\n}\n\nexport class BorderDropHint implements DropHint {\n private $hint: JQuery;\n\n constructor($element: JQuery, scrollLeft: number) {\n const $div = $element.children(\".jqtree-element\");\n\n const elWidth = $element.width() || 0;\n const width = Math.max(elWidth + scrollLeft - 4, 0);\n\n const elHeight = $div.outerHeight() || 0;\n const height = Math.max(elHeight - 4, 0);\n\n this.$hint = jQuery('');\n $div.append(this.$hint);\n\n this.$hint.css({ width, height });\n }\n\n public remove(): void {\n this.$hint.remove();\n }\n}\n\nclass GhostDropHint implements DropHint {\n private $element: JQuery;\n private node: Node;\n private $ghost: JQuery;\n\n constructor(node: Node, $element: JQuery, position: number) {\n this.$element = $element;\n\n this.node = node;\n this.$ghost = jQuery(\n `\n `\n );\n\n if (position === Position.After) {\n this.moveAfter();\n } else if (position === Position.Before) {\n this.moveBefore();\n } else if (position === Position.Inside) {\n if (node.isFolder() && node.is_open) {\n this.moveInsideOpenFolder();\n } else {\n this.moveInside();\n }\n }\n }\n\n public remove(): void {\n this.$ghost.remove();\n }\n\n public moveAfter(): void {\n this.$element.after(this.$ghost);\n }\n\n public moveBefore(): void {\n this.$element.before(this.$ghost);\n }\n\n public moveInsideOpenFolder(): void {\n const childElement = this.node.children[0].element;\n\n if (childElement) {\n jQuery(childElement).before(this.$ghost);\n }\n }\n\n public moveInside(): void {\n this.$element.after(this.$ghost);\n this.$ghost.addClass(\"jqtree-inside\");\n }\n}\n","import __version__ from \"./version\";\nimport { DragAndDropHandler } from \"./dragAndDropHandler\";\nimport ElementsRenderer from \"./elementsRenderer\";\nimport DataLoader, { HandleFinishedLoading } from \"./dataLoader\";\nimport KeyHandler from \"./keyHandler\";\nimport MouseWidget from \"./mouse.widget\";\nimport { PositionInfo } from \"./types\";\nimport SaveStateHandler, { SavedState } from \"./saveStateHandler\";\nimport ScrollHandler from \"./scrollHandler\";\nimport SelectNodeHandler from \"./selectNodeHandler\";\nimport SimpleWidget from \"./simple.widget\";\nimport { Node, getPosition } from \"./node\";\nimport { isFunction } from \"./util\";\nimport { FolderElement, NodeElement, OnFinishOpenNode } from \"./nodeElement\";\nimport { JQTreeOptions } from \"./jqtreeOptions\";\n\ninterface ClickTarget {\n node: Node;\n type: \"button\" | \"label\";\n}\n\ninterface SelectNodeOptions {\n mustToggle?: boolean;\n mustSetFocus?: boolean;\n}\n\nconst NODE_PARAM_IS_EMPTY = \"Node parameter is empty\";\nconst PARAM_IS_EMPTY = \"Parameter is empty: \";\n\nexport class JqTreeWidget extends MouseWidget {\n protected static defaults: JQTreeOptions = {\n animationSpeed: \"fast\",\n autoEscape: true,\n autoOpen: false, // true / false / int (open n levels starting at 0)\n buttonLeft: true,\n // The symbol to use for a closed node - â–º BLACK RIGHT-POINTING POINTER\n // http://www.fileformat.info/info/unicode/char/25ba/index.htm\n closedIcon: undefined,\n data: undefined,\n dataFilter: undefined,\n dataUrl: undefined,\n dragAndDrop: false,\n keyboardSupport: true,\n nodeClass: Node,\n onCanMove: undefined, // Can this node be moved?\n onCanMoveTo: undefined, // Can this node be moved to this position? function(moved_node, target_node, position)\n onCanSelectNode: undefined,\n onCreateLi: undefined,\n onDragMove: undefined,\n onDragStop: undefined,\n onGetStateFromStorage: undefined,\n onIsMoveHandle: undefined,\n onLoadFailed: undefined,\n onLoading: undefined,\n onSetStateFromStorage: undefined,\n openedIcon: \"▼\",\n openFolderDelay: 500, // The delay for opening a folder during drag and drop; the value is in milliseconds\n // The symbol to use for an open node - â–¼ BLACK DOWN-POINTING TRIANGLE\n // http://www.fileformat.info/info/unicode/char/25bc/index.htm\n rtl: undefined, // right-to-left support; true / false (default)\n saveState: false, // true / false / string (cookie name)\n selectable: true,\n showEmptyFolder: false,\n slide: true, // must display slide animation?\n startDndDelay: 300, // The delay for starting dnd (in milliseconds)\n tabIndex: 0,\n useContextMenu: true,\n };\n\n public element: JQuery;\n public tree: Node;\n public dndHandler: DragAndDropHandler;\n public renderer: ElementsRenderer;\n public dataLoader: DataLoader;\n public scrollHandler: ScrollHandler;\n public selectNodeHandler: SelectNodeHandler;\n\n private isInitialized: boolean;\n private saveStateHandler: SaveStateHandler;\n private keyHandler: KeyHandler;\n\n public toggle(node: Node, slideParam: null | boolean = null): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const slide = slideParam ?? this.options.slide;\n\n if (node.is_open) {\n this.closeNode(node, slide);\n } else {\n this.openNode(node, slide);\n }\n\n return this.element;\n }\n\n public getTree(): Node {\n return this.tree;\n }\n\n public selectNode(\n node: Node | null,\n optionsParam?: SelectNodeOptions\n ): JQuery {\n this.doSelectNode(node, optionsParam);\n return this.element;\n }\n\n public getSelectedNode(): Node | false {\n return this.selectNodeHandler.getSelectedNode();\n }\n\n public toJson(): string {\n return JSON.stringify(this.tree.getData());\n }\n\n public loadData(data: NodeData[], parentNode: Node | null): JQuery {\n this.doLoadData(data, parentNode);\n return this.element;\n }\n\n /*\n signatures:\n - loadDataFromUrl(url, parent_node=null, on_finished=null)\n loadDataFromUrl('/my_data');\n loadDataFromUrl('/my_data', node1);\n loadDataFromUrl('/my_data', node1, function() { console.log('finished'); });\n loadDataFromUrl('/my_data', null, function() { console.log('finished'); });\n\n - loadDataFromUrl(parent_node=null, on_finished=null)\n loadDataFromUrl();\n loadDataFromUrl(node1);\n loadDataFromUrl(null, function() { console.log('finished'); });\n loadDataFromUrl(node1, function() { console.log('finished'); });\n */\n public loadDataFromUrl(\n param1: string | null | Node,\n param2?: Node | null | HandleFinishedLoading,\n param3?: HandleFinishedLoading\n ): JQuery {\n if (typeof param1 === \"string\") {\n // first parameter is url\n this.doLoadDataFromUrl(\n param1,\n param2 as Node | null,\n param3 ?? null\n );\n } else {\n // first parameter is not url\n this.doLoadDataFromUrl(\n null,\n param1,\n param2 as HandleFinishedLoading | null\n );\n }\n\n return this.element;\n }\n\n public reload(onFinished: HandleFinishedLoading | null): JQuery {\n this.doLoadDataFromUrl(null, null, onFinished);\n return this.element;\n }\n\n public refresh(): JQuery {\n this._refreshElements(null);\n return this.element;\n }\n\n public getNodeById(nodeId: NodeId): Node | null {\n return this.tree.getNodeById(nodeId);\n }\n\n public getNodeByName(name: string): Node | null {\n return this.tree.getNodeByName(name);\n }\n\n public getNodeByNameMustExist(name: string): Node {\n return this.tree.getNodeByNameMustExist(name);\n }\n\n public getNodesByProperty(key: string, value: unknown): Node[] {\n return this.tree.getNodesByProperty(key, value);\n }\n\n public getNodeByHtmlElement(\n element: HTMLElement | JQuery\n ): Node | null {\n return this.getNode(jQuery(element));\n }\n\n public getNodeByCallback(callback: (node: Node) => boolean): Node | null {\n return this.tree.getNodeByCallback(callback);\n }\n\n public openNode(\n node: Node,\n param1?: boolean | OnFinishOpenNode,\n param2?: OnFinishOpenNode\n ): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const parseParams = (): [boolean, OnFinishOpenNode | null] => {\n let onFinished: OnFinishOpenNode | null;\n let slide: boolean | null;\n\n if (isFunction(param1)) {\n onFinished = param1 as OnFinishOpenNode | null;\n slide = null;\n } else {\n slide = param1 as boolean;\n onFinished = param2 as OnFinishOpenNode;\n }\n\n if (slide == null) {\n slide = this.options.slide ?? false;\n }\n\n return [slide, onFinished];\n };\n\n const [slide, onFinished] = parseParams();\n\n this._openNode(node, slide, onFinished);\n return this.element;\n }\n\n public closeNode(node: Node, slideParam?: null | boolean): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const slide = slideParam ?? this.options.slide;\n\n if (node.isFolder() || node.isEmptyFolder) {\n new FolderElement(node, this).close(\n slide,\n this.options.animationSpeed\n );\n\n this.saveState();\n }\n\n return this.element;\n }\n\n public isDragging(): boolean {\n return this.dndHandler.isDragging;\n }\n\n public refreshHitAreas(): JQuery {\n this.dndHandler.refresh();\n return this.element;\n }\n\n public addNodeAfter(\n newNodeInfo: NodeData,\n existingNode: Node\n ): Node | null {\n const newNode = existingNode.addAfter(newNodeInfo);\n\n if (newNode) {\n this._refreshElements(existingNode.parent);\n }\n\n return newNode;\n }\n\n public addNodeBefore(\n newNodeInfo: NodeData,\n existingNode: Node\n ): Node | null {\n if (!existingNode) {\n throw Error(PARAM_IS_EMPTY + \"existingNode\");\n }\n\n const newNode = existingNode.addBefore(newNodeInfo);\n\n if (newNode) {\n this._refreshElements(existingNode.parent);\n }\n\n return newNode;\n }\n\n public addParentNode(\n newNodeInfo: NodeData,\n existingNode: Node\n ): Node | null {\n if (!existingNode) {\n throw Error(PARAM_IS_EMPTY + \"existingNode\");\n }\n\n const newNode = existingNode.addParent(newNodeInfo);\n\n if (newNode) {\n this._refreshElements(newNode.parent);\n }\n\n return newNode;\n }\n\n public removeNode(node: Node): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n if (!node.parent) {\n throw Error(\"Node has no parent\");\n }\n\n this.selectNodeHandler.removeFromSelection(node, true); // including children\n\n const parent = node.parent;\n node.remove();\n this._refreshElements(parent);\n\n return this.element;\n }\n\n public appendNode(newNodeInfo: NodeData, parentNodeParam?: Node): Node {\n const parentNode = parentNodeParam || this.tree;\n\n const node = parentNode.append(newNodeInfo);\n\n this._refreshElements(parentNode);\n\n return node;\n }\n\n public prependNode(newNodeInfo: NodeData, parentNodeParam?: Node): Node {\n const parentNode = parentNodeParam ?? this.tree;\n\n const node = parentNode.prepend(newNodeInfo);\n\n this._refreshElements(parentNode);\n\n return node;\n }\n\n public updateNode(node: Node, data: NodeData): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const idIsChanged =\n typeof data === \"object\" && data.id && data.id !== node.id;\n\n if (idIsChanged) {\n this.tree.removeNodeFromIndex(node);\n }\n\n node.setData(data);\n\n if (idIsChanged) {\n this.tree.addNodeToIndex(node);\n }\n\n if (\n typeof data === \"object\" &&\n data[\"children\"] &&\n data[\"children\"] instanceof Array\n ) {\n node.removeChildren();\n\n if (data.children.length) {\n node.loadFromData(data.children as Node[]);\n }\n }\n\n this._refreshElements(node);\n\n return this.element;\n }\n\n private isSelectedNodeInSubtree(subtree: Node): boolean {\n const selectedNode = this.getSelectedNode();\n\n if (!selectedNode) {\n return false;\n } else {\n return subtree === selectedNode || subtree.isParentOf(selectedNode);\n }\n }\n\n public moveNode(node: Node, targetNode: Node, position: string): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n if (!targetNode) {\n throw Error(PARAM_IS_EMPTY + \"targetNode\");\n }\n\n const positionIndex = getPosition(position);\n\n if (positionIndex !== undefined) {\n this.tree.moveNode(node, targetNode, positionIndex);\n this._refreshElements(null);\n }\n\n return this.element;\n }\n\n public getStateFromStorage(): SavedState | null {\n return this.saveStateHandler.getStateFromStorage();\n }\n\n public addToSelection(node: Node, mustSetFocus?: boolean): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n this.selectNodeHandler.addToSelection(node);\n\n this._getNodeElementForNode(node).select(\n mustSetFocus === undefined ? true : mustSetFocus\n );\n\n this.saveState();\n\n return this.element;\n }\n\n public getSelectedNodes(): Node[] {\n return this.selectNodeHandler.getSelectedNodes();\n }\n\n public isNodeSelected(node: Node): boolean {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n return this.selectNodeHandler.isNodeSelected(node);\n }\n\n public removeFromSelection(node: Node): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n this.selectNodeHandler.removeFromSelection(node);\n\n this._getNodeElementForNode(node).deselect();\n this.saveState();\n\n return this.element;\n }\n\n public scrollToNode(node: Node): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const nodeOffset = jQuery(node.element).offset();\n const nodeTop = nodeOffset ? nodeOffset.top : 0;\n\n const treeOffset = this.$el.offset();\n const treeTop = treeOffset ? treeOffset.top : 0;\n\n const top = nodeTop - treeTop;\n\n this.scrollHandler.scrollToY(top);\n\n return this.element;\n }\n\n public getState(): SavedState | null {\n return this.saveStateHandler.getState();\n }\n\n public setState(state: SavedState): JQuery {\n this.saveStateHandler.setInitialState(state);\n this._refreshElements(null);\n\n return this.element;\n }\n\n public setOption(option: string, value: unknown): JQuery {\n (this.options as unknown as Record)[option] = value;\n return this.element;\n }\n\n public moveDown(): JQuery {\n const selectedNode = this.getSelectedNode();\n if (selectedNode) {\n this.keyHandler.moveDown(selectedNode);\n }\n\n return this.element;\n }\n\n public moveUp(): JQuery {\n const selectedNode = this.getSelectedNode();\n if (selectedNode) {\n this.keyHandler.moveUp(selectedNode);\n }\n\n return this.element;\n }\n\n public getVersion(): string {\n return __version__;\n }\n\n public _triggerEvent(\n eventName: string,\n values?: Record\n ): JQuery.Event {\n const event = jQuery.Event(eventName, values);\n this.element.trigger(event);\n return event;\n }\n\n public _openNode(\n node: Node,\n slide = true,\n onFinished: OnFinishOpenNode | null\n ): void {\n const doOpenNode = (\n _node: Node,\n _slide: boolean,\n _onFinished: OnFinishOpenNode | null\n ): void => {\n const folderElement = new FolderElement(_node, this);\n folderElement.open(\n _onFinished,\n _slide,\n this.options.animationSpeed\n );\n };\n\n if (node.isFolder() || node.isEmptyFolder) {\n if (node.load_on_demand) {\n this.loadFolderOnDemand(node, slide, onFinished);\n } else {\n let parent = node.parent;\n\n while (parent) {\n // nb: do not open root element\n if (parent.parent) {\n doOpenNode(parent, false, null);\n }\n parent = parent.parent;\n }\n\n doOpenNode(node, slide, onFinished);\n this.saveState();\n }\n }\n }\n\n /*\n Redraw the tree or part of the tree.\n from_node: redraw this subtree\n */\n public _refreshElements(fromNode: Node | null): void {\n const mustSetFocus = this.selectNodeHandler.isFocusOnTree();\n const mustSelect = fromNode\n ? this.isSelectedNodeInSubtree(fromNode)\n : false;\n\n this.renderer.render(fromNode);\n\n if (mustSelect) {\n this.selectCurrentNode(mustSetFocus);\n }\n\n this._triggerEvent(\"tree.refresh\");\n }\n\n public _getNodeElementForNode(node: Node): NodeElement {\n if (node.isFolder()) {\n return new FolderElement(node, this);\n } else {\n return new NodeElement(node, this);\n }\n }\n\n public _getNodeElement($element: JQuery): NodeElement | null {\n const node = this.getNode($element);\n if (node) {\n return this._getNodeElementForNode(node);\n } else {\n return null;\n }\n }\n\n public _containsElement(element: HTMLElement): boolean {\n const node = this.getNode(jQuery(element));\n\n return node != null && node.tree === this.tree;\n }\n\n public _getScrollLeft(): number {\n return this.scrollHandler.getScrollLeft();\n }\n\n public init(): void {\n super.init();\n\n this.element = this.$el;\n this.isInitialized = false;\n\n this.options.rtl = this.getRtlOption();\n\n if (this.options.closedIcon == null) {\n this.options.closedIcon = this.getDefaultClosedIcon();\n }\n\n this.renderer = new ElementsRenderer(this);\n this.dataLoader = new DataLoader(this);\n this.saveStateHandler = new SaveStateHandler(this);\n this.selectNodeHandler = new SelectNodeHandler(this);\n this.dndHandler = new DragAndDropHandler(this);\n this.scrollHandler = new ScrollHandler(this);\n this.keyHandler = new KeyHandler(this);\n\n this.initData();\n\n this.element.on(\"click\", this.handleClick);\n this.element.on(\"dblclick\", this.handleDblclick);\n\n if (this.options.useContextMenu) {\n this.element.on(\"contextmenu\", this.handleContextmenu);\n }\n }\n\n public deinit(): void {\n this.element.empty();\n this.element.off();\n\n this.keyHandler.deinit();\n\n this.tree = new Node({}, true);\n\n super.deinit();\n }\n\n protected mouseCapture(positionInfo: PositionInfo): boolean | null {\n if (this.options.dragAndDrop) {\n return this.dndHandler.mouseCapture(positionInfo);\n } else {\n return false;\n }\n }\n\n protected mouseStart(positionInfo: PositionInfo): boolean {\n if (this.options.dragAndDrop) {\n return this.dndHandler.mouseStart(positionInfo);\n } else {\n return false;\n }\n }\n\n protected mouseDrag(positionInfo: PositionInfo): boolean {\n if (this.options.dragAndDrop) {\n const result = this.dndHandler.mouseDrag(positionInfo);\n\n this.scrollHandler.checkScrolling();\n return result;\n } else {\n return false;\n }\n }\n\n protected mouseStop(positionInfo: PositionInfo): boolean {\n if (this.options.dragAndDrop) {\n return this.dndHandler.mouseStop(positionInfo);\n } else {\n return false;\n }\n }\n\n protected getMouseDelay(): number {\n return this.options.startDndDelay ?? 0;\n }\n\n private initData(): void {\n if (this.options.data) {\n this.doLoadData(this.options.data, null);\n } else {\n const dataUrl = this.getDataUrlInfo(null);\n\n if (dataUrl) {\n this.doLoadDataFromUrl(null, null, null);\n } else {\n this.doLoadData([], null);\n }\n }\n }\n\n private getDataUrlInfo(node: Node | null): JQuery.AjaxSettings | null {\n const dataUrl =\n this.options.dataUrl || (this.element.data(\"url\") as string | null);\n\n const getUrlFromString = (url: string): JQuery.AjaxSettings => {\n const urlInfo: JQuery.AjaxSettings = { url };\n\n setUrlInfoData(urlInfo);\n\n return urlInfo;\n };\n\n const setUrlInfoData = (urlInfo: JQuery.AjaxSettings): void => {\n if (node?.id) {\n // Load on demand of a subtree; add node parameter\n const data = { node: node.id };\n urlInfo[\"data\"] = data;\n } else {\n // Add selected_node parameter\n const selectedNodeId = this.getNodeIdToBeSelected();\n if (selectedNodeId) {\n const data = { selected_node: selectedNodeId };\n urlInfo[\"data\"] = data;\n }\n }\n };\n\n if (typeof dataUrl === \"function\") {\n return dataUrl(node);\n } else if (typeof dataUrl === \"string\") {\n return getUrlFromString(dataUrl);\n } else if (dataUrl && typeof dataUrl === \"object\") {\n setUrlInfoData(dataUrl);\n return dataUrl;\n } else {\n return null;\n }\n }\n\n private getNodeIdToBeSelected(): NodeId | null {\n if (this.options.saveState) {\n return this.saveStateHandler.getNodeIdToBeSelected();\n } else {\n return null;\n }\n }\n\n private initTree(data: NodeData[]): void {\n const doInit = (): void => {\n if (!this.isInitialized) {\n this.isInitialized = true;\n this._triggerEvent(\"tree.init\");\n }\n };\n\n if (!this.options.nodeClass) {\n return;\n }\n\n this.tree = new this.options.nodeClass(\n null,\n true,\n this.options.nodeClass\n );\n\n this.selectNodeHandler.clear();\n\n this.tree.loadFromData(data);\n\n const mustLoadOnDemand = this.setInitialState();\n\n this._refreshElements(null);\n\n if (!mustLoadOnDemand) {\n doInit();\n } else {\n // Load data on demand and then init the tree\n this.setInitialStateOnDemand(doInit);\n }\n }\n\n // Set initial state, either by restoring the state or auto-opening nodes\n // result: must load nodes on demand?\n private setInitialState(): boolean {\n const restoreState = (): boolean[] => {\n // result: is state restored, must load on demand?\n if (!this.options.saveState) {\n return [false, false];\n } else {\n const state = this.saveStateHandler.getStateFromStorage();\n\n if (!state) {\n return [false, false];\n } else {\n const mustLoadOnDemand =\n this.saveStateHandler.setInitialState(state);\n\n // return true: the state is restored\n return [true, mustLoadOnDemand];\n }\n }\n };\n\n const autoOpenNodes = (): boolean => {\n // result: must load on demand?\n if (this.options.autoOpen === false) {\n return false;\n }\n\n const maxLevel = this.getAutoOpenMaxLevel();\n let mustLoadOnDemand = false;\n\n this.tree.iterate((node: Node, level: number) => {\n if (node.load_on_demand) {\n mustLoadOnDemand = true;\n return false;\n } else if (!node.hasChildren()) {\n return false;\n } else {\n node.is_open = true;\n return level !== maxLevel;\n }\n });\n\n return mustLoadOnDemand;\n };\n\n let [isRestored, mustLoadOnDemand] = restoreState(); // eslint-disable-line prefer-const\n\n if (!isRestored) {\n mustLoadOnDemand = autoOpenNodes();\n }\n\n return mustLoadOnDemand;\n }\n\n // Set the initial state for nodes that are loaded on demand\n // Call cb_finished when done\n private setInitialStateOnDemand(cbFinished: () => void): void {\n const restoreState = (): boolean => {\n if (!this.options.saveState) {\n return false;\n } else {\n const state = this.saveStateHandler.getStateFromStorage();\n\n if (!state) {\n return false;\n } else {\n this.saveStateHandler.setInitialStateOnDemand(\n state,\n cbFinished\n );\n\n return true;\n }\n }\n };\n\n const autoOpenNodes = (): void => {\n const maxLevel = this.getAutoOpenMaxLevel();\n let loadingCount = 0;\n\n const loadAndOpenNode = (node: Node): void => {\n loadingCount += 1;\n this._openNode(node, false, () => {\n loadingCount -= 1;\n openNodes();\n });\n };\n\n const openNodes = (): void => {\n this.tree.iterate((node: Node, level: number) => {\n if (node.load_on_demand) {\n if (!node.is_loading) {\n loadAndOpenNode(node);\n }\n\n return false;\n } else {\n this._openNode(node, false, null);\n\n return level !== maxLevel;\n }\n });\n\n if (loadingCount === 0) {\n cbFinished();\n }\n };\n\n openNodes();\n };\n\n if (!restoreState()) {\n autoOpenNodes();\n }\n }\n\n private getAutoOpenMaxLevel(): number {\n if (this.options.autoOpen === true) {\n return -1;\n } else if (typeof this.options.autoOpen === \"number\") {\n return this.options.autoOpen;\n } else if (typeof this.options.autoOpen === \"string\") {\n return parseInt(this.options.autoOpen, 10);\n } else {\n return 0;\n }\n }\n\n private handleClick = (\n e: JQuery.ClickEvent\n ): void => {\n const clickTarget = this.getClickTarget(e.target);\n\n if (clickTarget) {\n if (clickTarget.type === \"button\") {\n this.toggle(clickTarget.node, this.options.slide);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (clickTarget.type === \"label\") {\n const node = clickTarget.node;\n const event = this._triggerEvent(\"tree.click\", {\n node,\n click_event: e,\n });\n\n if (!event.isDefaultPrevented()) {\n this.doSelectNode(node);\n }\n }\n }\n };\n\n private handleDblclick = (\n e: JQuery.DoubleClickEvent\n ): void => {\n const clickTarget = this.getClickTarget(e.target);\n\n if (clickTarget?.type === \"label\") {\n this._triggerEvent(\"tree.dblclick\", {\n node: clickTarget.node,\n click_event: e,\n });\n }\n };\n\n private getClickTarget(element: EventTarget): ClickTarget | null {\n const $target = jQuery(element);\n\n const $button = $target.closest(\".jqtree-toggler\");\n\n if ($button.length) {\n const node = this.getNode($button as JQuery);\n\n if (node) {\n return {\n type: \"button\",\n node,\n };\n }\n } else {\n const $el = $target.closest(\".jqtree-element\");\n if ($el.length) {\n const node = this.getNode($el as JQuery);\n if (node) {\n return {\n type: \"label\",\n node,\n };\n }\n }\n }\n\n return null;\n }\n\n private getNode($element: JQuery): null | Node {\n const $li = $element.closest(\"li.jqtree_common\");\n if ($li.length === 0) {\n return null;\n } else {\n return $li.data(\"node\") as Node;\n }\n }\n\n private handleContextmenu = (\n e: JQuery.ContextMenuEvent\n ) => {\n const $div = jQuery(e.target).closest(\"ul.jqtree-tree .jqtree-element\");\n if ($div.length) {\n const node = this.getNode($div);\n if (node) {\n e.preventDefault();\n e.stopPropagation();\n\n this._triggerEvent(\"tree.contextmenu\", {\n node,\n click_event: e,\n });\n return false;\n }\n }\n\n return null;\n };\n\n private saveState(): void {\n if (this.options.saveState) {\n this.saveStateHandler.saveState();\n }\n }\n\n private selectCurrentNode(mustSetFocus: boolean): void {\n const node = this.getSelectedNode();\n if (node) {\n const nodeElement = this._getNodeElementForNode(node);\n if (nodeElement) {\n nodeElement.select(mustSetFocus);\n }\n }\n }\n\n private deselectCurrentNode(): void {\n const node = this.getSelectedNode();\n if (node) {\n this.removeFromSelection(node);\n }\n }\n\n private getDefaultClosedIcon(): string {\n if (this.options.rtl) {\n // triangle to the left\n return \"◀\";\n } else {\n // triangle to the right\n return \"►\";\n }\n }\n\n private getRtlOption(): boolean {\n if (this.options.rtl != null) {\n return this.options.rtl;\n } else {\n const dataRtl = this.element.data(\"rtl\") as unknown;\n\n if (\n dataRtl !== null &&\n dataRtl !== false &&\n dataRtl !== undefined\n ) {\n return true;\n } else {\n return false;\n }\n }\n }\n\n private doSelectNode(\n node: Node | null,\n optionsParam?: SelectNodeOptions\n ): void {\n const saveState = (): void => {\n if (this.options.saveState) {\n this.saveStateHandler.saveState();\n }\n };\n\n if (!node) {\n // Called with empty node -> deselect current node\n this.deselectCurrentNode();\n saveState();\n return;\n }\n const defaultOptions = { mustSetFocus: true, mustToggle: true };\n const selectOptions = { ...defaultOptions, ...(optionsParam || {}) };\n\n const canSelect = (): boolean => {\n if (this.options.onCanSelectNode) {\n return (\n this.options.selectable === true &&\n this.options.onCanSelectNode(node)\n );\n } else {\n return this.options.selectable === true;\n }\n };\n\n const openParents = (): void => {\n const parent = node.parent;\n\n if (parent && parent.parent && !parent.is_open) {\n this.openNode(parent, false);\n }\n };\n\n if (!canSelect()) {\n return;\n }\n\n if (this.selectNodeHandler.isNodeSelected(node)) {\n if (selectOptions.mustToggle) {\n this.deselectCurrentNode();\n this._triggerEvent(\"tree.select\", {\n node: null,\n previous_node: node,\n });\n }\n } else {\n const deselectedNode = this.getSelectedNode() || null;\n this.deselectCurrentNode();\n this.addToSelection(node, selectOptions.mustSetFocus);\n\n this._triggerEvent(\"tree.select\", {\n node,\n deselected_node: deselectedNode,\n });\n openParents();\n }\n\n saveState();\n }\n\n private doLoadData(data: NodeData[] | null, parentNode: Node | null): void {\n if (data) {\n if (parentNode) {\n this.deselectNodes(parentNode);\n this.loadSubtree(data, parentNode);\n } else {\n this.initTree(data);\n }\n\n if (this.isDragging()) {\n this.dndHandler.refresh();\n }\n }\n\n this._triggerEvent(\"tree.load_data\", {\n tree_data: data,\n parent_node: parentNode,\n });\n }\n\n private deselectNodes(parentNode: Node): void {\n const selectedNodesUnderParent =\n this.selectNodeHandler.getSelectedNodesUnder(parentNode);\n for (const n of selectedNodesUnderParent) {\n this.selectNodeHandler.removeFromSelection(n);\n }\n }\n\n private loadSubtree(data: NodeData[], parentNode: Node): void {\n parentNode.loadFromData(data);\n\n parentNode.load_on_demand = false;\n parentNode.is_loading = false;\n\n this._refreshElements(parentNode);\n }\n\n private doLoadDataFromUrl(\n urlInfoParam: string | JQuery.AjaxSettings | null,\n parentNode: Node | null,\n onFinished: HandleFinishedLoading | null\n ): void {\n const urlInfo = urlInfoParam || this.getDataUrlInfo(parentNode);\n\n this.dataLoader.loadFromUrl(urlInfo, parentNode, onFinished);\n }\n\n private loadFolderOnDemand(\n node: Node,\n slide = true,\n onFinished: OnFinishOpenNode | null\n ): void {\n node.is_loading = true;\n\n this.doLoadDataFromUrl(null, node, () => {\n this._openNode(node, slide, onFinished);\n });\n }\n}\n\nSimpleWidget.register(JqTreeWidget, \"tree\");\n"],"names":["Position","positionNames","before","Before","after","After","inside","Inside","none","None","getPositionName","position","name","Object","prototype","hasOwnProperty","call","isNodeRecordWithChildren","data","_typeof","Array","Node","o","isRoot","nodeClass","_classCallCheck","this","_defineProperty","isEmptyFolder","load_on_demand","setData","children","parent","idMapping","Map","tree","_createClass","key","value","removeChildren","_step","_iterator","_createForOfIteratorHelper","s","n","done","node","createNode","addChild","length","loadFromData","err","e","f","push","setParent","index","splice","doRemoveChild","indexOf","hasChildren","callback","_iterate","level","_step2","_iterator2","child","movedNode","targetNode","isParentOf","addChildAtPosition","getChildIndex","includeParent","getDataFromNodes","nodes","map","tmpNode","k","v","getNodeByCallback","concat","result","iterate","nodeInfo","childIndex","newParent","_step3","originalParent","_iterator3","removeChild","nodeId","get","id","set","_this","_this$tree","removeNodeFromIndex","previousIndex","nextIndex","filter","includeChildren","nextSibling","getNextSibling","getNextNode","is_open","previousSibling","getPreviousSibling","getLastChild","getParent","lastChild","nodeData","_this2","addChildren","childrenData","_step4","_iterator4","initFromData","_this$tree2","addNodeToIndex","_this$tree3","_this$tree4","getNodeClass","DragAndDropHandler","treeWidget","hoveredArea","hitAreas","isDragging","currentItem","positionInfo","$element","jQuery","target","mustCaptureElement","options","onIsMoveHandle","nodeElement","_getNodeElement","onCanMove","_this$treeWidget$opti","undefined","pageX","pageY","refresh","offset","left","top","dragElement","DragElement","element","autoEscape","addClass","move","area","findHoveredArea","canMoveToArea","isFolder","stopOpenFolderTimer","mustOpenFolderTimer","startOpenFolderTimer","updateDropHint","removeDropHint","onDragMove","originalEvent","moveItem","clear","removeHover","removeHitAreas","removeClass","onDragStop","generateHitAreas","_getNodeElementForNode","hitAreasGenerator","HitAreasGenerator","getTreeDimensions","bottom","generate","is","onCanMoveTo","positionName","remove","previousGhost","x","y","dimensions","right","low","high","mid","addDropHint","folder","openFolderDelay","openFolderTimer","window","setTimeout","_openNode","slide","clearTimeout","previousParent","doMove","moveNode","empty","_refreshElements","_triggerEvent","move_info","moved_node","target_node","previous_parent","do_move","original_event","isDefaultPrevented","el","width","height","_getScrollLeft","_VisibleNodeIterator","_inherits","_super","_createSuper","currentNode","treeBottom","_this4","_assertThisInitialized","positions","lastTop","previousTop","group","generateHitAreasForGroup","addPosition","getTop","nextNode","positionsInGroup","positionCount","Math","min","areaHeight","round","areaTop","i","VisibleNodeIterator","_this3","isFirstNode","_iterateNode","mustIterateInside","handleFirstNode","handleOpenFolder","handleClosedFolder","handleNode","childrenLength","forEach","_","handleAfterOpenFolder","nodeName","offsetX","offsetY","$tree","text","html","css","append","getBoolString","ElementsRenderer","openedIconElement","createButtonElement","openedIcon","closedIconElement","closedIcon","fromNode","renderFromNode","renderFromRoot","createDomElements","$previousLi","li","createLi","getLevel","attachNodeData","isRootNode","ul","createUl","appendChild","classString","role","rtl","dragAndDrop","document","createElement","className","setAttribute","isSelected","Boolean","selectNodeHandler","isNodeSelected","showEmptyFolder","createFolderLi","createNodeLi","onCreateLi","buttonClasses","getButtonClasses","folderClasses","getFolderClasses","iconElement","div","buttonLink","cloneNode","buttonLeft","createTitleSpan","liClasses","join","isOpen","titleSpan","classes","tabIndex","textContent","innerHTML","is_loading","createTextNode","DataLoader","urlInfo","parentNode","onFinished","$el","getDomElement","addLoadingClass","notifyLoading","stopLoading","removeLoadingClass","submitRequest","loadData","parseData","jqXHR","onLoadFailed","isLoading","onLoading","urlInfoInput","handleSuccess","handleError","_ajaxSettings$method","ajaxSettings","_objectSpread","method","cache","dataType","success","error","url","toUpperCase","ajax","dataFilter","parsedData","JSON","parse","KeyHandler","canHandleKeyboard","selectedNode","getSelectedNode","which","DOWN","moveDown","UP","moveUp","RIGHT","moveRight","LEFT","moveLeft","keyboardSupport","on","handleKeyDown","off","selectNode","getNextVisibleNode","getPreviousVisibleNode","openNode","closeNode","scrollHandler","isScrolledIntoView","find","scrollToNode","isFocusOnTree","register","widgetClass","widgetName","getDataKey","getWidgetData","dataKey","widget","SimpleWidget","createWidget","init","destroyWidget","destroy","removeData","callFunction","functionName","args","widgetFunction","apply","fn","argument1","_len","arguments","_key","defaults","constructor","deinit","getPositionInfoFromMouseEvent","getPositionInfoFromTouch","touch","MouseWidget","_SimpleWidget","button","handleMouseDown","cancelable","preventDefault","handleMouseMove","handleMouseUp","touches","changedTouches","addEventListener","mouseDown","passive","touchStart","isMouseStarted","mouseDelayTimer","isMouseDelayMet","mouseDownInfo","removeEventListener","removeMouseMoveEventListeners","mouseCapture","handleStartMouse","mouseMove","touchMove","mouseUp","touchEnd","mouseDelay","getMouseDelay","startMouseDelayTimer","mouseDrag","mouseStart","mouseStop","SaveStateHandler","state","stringify","getState","onSetStateFromStorage","supportsLocalStorage","localStorage","setItem","getKeyName","jsonData","loadFromStorage","parseState","selectedNodeIds","openNodes","open_nodes","selected_node","getSelectedNodes","mustLoadOnDemand","openInitialNodes","resetSelection","selectInitialNodes","cbFinished","doSetInitialStateOnDemand","getStateFromStorage","onGetStateFromStorage","getItem","nodeIds","getNodeById","selectCount","addToSelection","removeFromSelection","nodeIdsParam","selectedNodes","loadingCount","newNodesIds","loadAndOpenNode","saveState","_supportsLocalStorage","sessionStorage","removeItem","testSupport","ScrollHandler","isInitialized","ensureInit","checkVerticalScrolling","checkHorizontalScrolling","$scrollParent","scrollTop","treeTop","elementBottom","viewBottom","elementTop","viewTop","elHeight","scrollParentTop","scrollLeft","setDocumentAsScrollParent","cssAttributes","hasOverFlow","_i","_cssAttributes","attr","overflowValue","parents","getParentWithOverflow","tagName","initScrollParent","scrollParent","offsetHeight","refreshHitAreas","dndHandler","handleVerticalScrollingWithScrollParent","handleVerticalScrollingWithDocument","handleHorizontalScrollingWithParent","handleHorizontalScrollingWithDocument","scrollParentOffset","canScrollRight","clientWidth","scrollWidth","canScrollLeft","rightEdge","leftEdge","isNearRightEdge","isNearLeftEdge","max","$document","windowWidth","SelectNodeHandler","Set","selectedSingleNode","has","add","activeElement","_containsElement","NodeElement","mustShowBorderDropHint","BorderDropHint","GhostDropHint","mustSetFocus","$li","getLi","$span","getSpan","trigger","removeAttr","blur","FolderElement","_NodeElement","animationSpeed","$button","getButton","buttonEl","icon","renderer","doOpen","getUl","slideDown","show","doClose","slideUp","hide","$div","elWidth","outerHeight","$hint","$ghost","moveAfter","moveBefore","moveInsideOpenFolder","moveInside","childElement","NODE_PARAM_IS_EMPTY","PARAM_IS_EMPTY","JqTreeWidget","_MouseWidget","clickTarget","getClickTarget","type","toggle","stopPropagation","click_event","doSelectNode","closest","getNode","slideParam","Error","optionsParam","getData","doLoadData","param1","param2","param3","doLoadDataFromUrl","getNodeByName","getNodeByNameMustExist","getNodesByProperty","_parseParams","_this2$options$slide","parseParams","_parseParams2","_slicedToArray","close","newNodeInfo","existingNode","newNode","addAfter","addBefore","addParent","parentNodeParam","prepend","idIsChanged","subtree","positionIndex","saveStateHandler","select","deselect","nodeOffset","nodeTop","treeOffset","scrollToY","setInitialState","option","keyHandler","eventName","values","event","Event","doOpenNode","_node","_slide","_onFinished","open","loadFolderOnDemand","mustSelect","isSelectedNodeInSubtree","render","selectCurrentNode","getScrollLeft","_get","_getPrototypeOf","getRtlOption","getDefaultClosedIcon","dataLoader","initData","handleClick","handleDblclick","useContextMenu","handleContextmenu","checkScrolling","_this$options$startDn","startDndDelay","getDataUrlInfo","dataUrl","setUrlInfoData","selectedNodeId","getNodeIdToBeSelected","_this5","doInit","setInitialStateOnDemand","_this6","_restoreState2","restoreState","isRestored","autoOpen","maxLevel","getAutoOpenMaxLevel","autoOpenNodes","_this7","parseInt","$target","dataRtl","_this8","deselectCurrentNode","selectOptions","mustToggle","onCanSelectNode","selectable","previous_node","deselectedNode","deselected_node","deselectNodes","loadSubtree","initTree","tree_data","parent_node","getSelectedNodesUnder","urlInfoParam","loadFromUrl","_this9"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"tree.jquery.js","sources":["src/version.ts","src/node.ts","src/dragAndDropHandler.ts","src/util.ts","src/elementsRenderer.ts","src/dataLoader.ts","src/keyHandler.ts","src/simple.widget.ts","src/mouse.widget.ts","src/saveStateHandler.ts","src/scrollHandler.ts","src/selectNodeHandler.ts","src/nodeElement.ts","src/tree.jquery.ts"],"sourcesContent":["const version = \"1.7.1\";\n\nexport default version;\n","interface NodeRecordWithChildren extends NodeRecord {\n children: NodeData[];\n}\n\nexport enum Position {\n Before = 1,\n After,\n Inside,\n None,\n}\n\nconst positionNames: Record = {\n before: Position.Before,\n after: Position.After,\n inside: Position.Inside,\n none: Position.None,\n};\n\ntype IterateCallback = (node: Node, level: number) => boolean;\n\nexport const getPositionName = (position: Position): string => {\n for (const name in positionNames) {\n if (Object.prototype.hasOwnProperty.call(positionNames, name)) {\n if (positionNames[name] === position) {\n return name;\n }\n }\n }\n\n return \"\";\n};\n\nexport const getPosition = (name: string): Position | undefined =>\n positionNames[name];\n\nconst isNodeRecordWithChildren = (\n data: NodeData\n): data is NodeRecordWithChildren =>\n typeof data === \"object\" &&\n \"children\" in data &&\n data[\"children\"] instanceof Array;\n\nexport class Node implements INode {\n public id?: NodeId;\n public name: string;\n public children: Node[];\n public parent: Node | null;\n public idMapping: Map;\n public tree?: Node;\n public nodeClass?: typeof Node;\n public load_on_demand: boolean;\n public is_open: boolean;\n public element: HTMLElement;\n public is_loading: boolean;\n public isEmptyFolder: boolean;\n\n [key: string]: unknown;\n\n constructor(o: NodeData | null = null, isRoot = false, nodeClass = Node) {\n this.name = \"\";\n this.isEmptyFolder = false;\n this.load_on_demand = false;\n\n this.setData(o);\n\n this.children = [];\n this.parent = null;\n\n if (isRoot) {\n this.idMapping = new Map();\n this.tree = this;\n this.nodeClass = nodeClass;\n }\n }\n\n /*\n Set the data of this node.\n\n setData(string): set the name of the node\n setdata(object): set attributes of the node\n\n Examples:\n setdata('node1')\n\n setData({ name: 'node1', id: 1});\n\n setData({ name: 'node2', id: 2, color: 'green'});\n\n * This is an internal function; it is not in the docs\n * Does not remove existing node values\n */\n public setData(o: NodeData | null): void {\n if (!o) {\n return;\n } else if (typeof o === \"string\") {\n this.name = o;\n } else if (typeof o === \"object\") {\n for (const key in o) {\n if (Object.prototype.hasOwnProperty.call(o, key)) {\n const value = o[key];\n\n if (key === \"label\" || key === \"name\") {\n // You can use the 'label' key instead of 'name'; this is a legacy feature\n if (typeof value === \"string\") {\n this.name = value;\n }\n } else if (key !== \"children\" && key !== \"parent\") {\n // You can't update the children or the parent using this function\n this[key] = value;\n }\n }\n }\n }\n }\n\n /*\n Create tree from data.\n\n Structure of data is:\n [\n {\n name: 'node1',\n children: [\n { name: 'child1' },\n { name: 'child2' }\n ]\n },\n {\n name: 'node2'\n }\n ]\n */\n public loadFromData(data: NodeData[]): Node {\n this.removeChildren();\n\n for (const o of data) {\n const node = this.createNode(o);\n this.addChild(node);\n\n if (isNodeRecordWithChildren(o)) {\n if (o.children.length === 0) {\n node.isEmptyFolder = true;\n } else {\n node.loadFromData(o.children);\n }\n }\n }\n\n return this;\n }\n\n /*\n Add child.\n\n tree.addChild(\n new Node('child1')\n );\n */\n public addChild(node: Node): void {\n this.children.push(node);\n node.setParent(this);\n }\n\n /*\n Add child at position. Index starts at 0.\n\n tree.addChildAtPosition(\n new Node('abc'),\n 1\n );\n */\n public addChildAtPosition(node: Node, index: number): void {\n this.children.splice(index, 0, node);\n node.setParent(this);\n }\n\n /*\n Remove child. This also removes the children of the node.\n\n tree.removeChild(tree.children[0]);\n */\n public removeChild(node: Node): void {\n // remove children from the index\n node.removeChildren();\n\n this.doRemoveChild(node);\n }\n\n /*\n Get child index.\n\n var index = getChildIndex(node);\n */\n public getChildIndex(node: Node): number {\n return this.children.indexOf(node);\n }\n\n /*\n Does the tree have children?\n\n if (tree.hasChildren()) {\n //\n }\n */\n public hasChildren(): boolean {\n return this.children.length !== 0;\n }\n\n public isFolder(): boolean {\n return this.hasChildren() || this.load_on_demand;\n }\n\n /*\n Iterate over all the nodes in the tree.\n\n Calls callback with (node, level).\n\n The callback must return true to continue the iteration on current node.\n\n tree.iterate(\n function(node, level) {\n console.log(node.name);\n\n // stop iteration after level 2\n return (level <= 2);\n }\n );\n\n */\n public iterate(callback: IterateCallback): void {\n const _iterate = (node: Node, level: number): void => {\n if (node.children) {\n for (const child of node.children) {\n const result = callback(child, level);\n\n if (result && child.hasChildren()) {\n _iterate(child, level + 1);\n }\n }\n }\n };\n\n _iterate(this, 0);\n }\n\n /*\n Move node relative to another node.\n\n Argument position: Position.BEFORE, Position.AFTER or Position.Inside\n\n // move node1 after node2\n tree.moveNode(node1, node2, Position.AFTER);\n */\n public moveNode(\n movedNode: Node,\n targetNode: Node,\n position: Position\n ): boolean {\n if (!movedNode.parent || movedNode.isParentOf(targetNode)) {\n // - Node is parent of target node\n // - Or, parent is empty\n return false;\n } else {\n movedNode.parent.doRemoveChild(movedNode);\n\n switch (position) {\n case Position.After: {\n if (targetNode.parent) {\n targetNode.parent.addChildAtPosition(\n movedNode,\n targetNode.parent.getChildIndex(targetNode) + 1\n );\n return true;\n }\n return false;\n }\n\n case Position.Before: {\n if (targetNode.parent) {\n targetNode.parent.addChildAtPosition(\n movedNode,\n targetNode.parent.getChildIndex(targetNode)\n );\n return true;\n }\n return false;\n }\n\n case Position.Inside: {\n // move inside as first child\n targetNode.addChildAtPosition(movedNode, 0);\n return true;\n }\n\n default:\n return false;\n }\n }\n }\n\n /*\n Get the tree as data.\n */\n public getData(includeParent = false): NodeRecord[] {\n const getDataFromNodes = (nodes: Node[]): Record[] => {\n return nodes.map((node) => {\n const tmpNode: Record = {};\n\n for (const k in node) {\n if (\n [\n \"parent\",\n \"children\",\n \"element\",\n \"idMapping\",\n \"load_on_demand\",\n \"nodeClass\",\n \"tree\",\n \"isEmptyFolder\",\n ].indexOf(k) === -1 &&\n Object.prototype.hasOwnProperty.call(node, k)\n ) {\n const v = node[k];\n tmpNode[k] = v;\n }\n }\n\n if (node.hasChildren()) {\n tmpNode[\"children\"] = getDataFromNodes(node.children);\n }\n\n return tmpNode;\n });\n };\n\n if (includeParent) {\n return getDataFromNodes([this]);\n } else {\n return getDataFromNodes(this.children);\n }\n }\n\n public getNodeByName(name: string): Node | null {\n return this.getNodeByCallback((node: Node) => node.name === name);\n }\n\n public getNodeByNameMustExist(name: string): Node {\n const node = this.getNodeByCallback((n: Node) => n.name === name);\n\n if (!node) {\n throw `Node with name ${name} not found`;\n }\n\n return node;\n }\n\n public getNodeByCallback(callback: (node: Node) => boolean): Node | null {\n let result: Node | null = null;\n\n this.iterate((node: Node) => {\n if (result) {\n return false;\n } else if (callback(node)) {\n result = node;\n return false;\n } else {\n return true;\n }\n });\n\n return result;\n }\n\n public addAfter(nodeInfo: NodeData): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const node = this.createNode(nodeInfo);\n\n const childIndex = this.parent.getChildIndex(this);\n this.parent.addChildAtPosition(node, childIndex + 1);\n\n if (\n isNodeRecordWithChildren(nodeInfo) &&\n nodeInfo.children.length\n ) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n }\n\n public addBefore(nodeInfo: NodeData): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const node = this.createNode(nodeInfo);\n\n const childIndex = this.parent.getChildIndex(this);\n this.parent.addChildAtPosition(node, childIndex);\n\n if (\n isNodeRecordWithChildren(nodeInfo) &&\n nodeInfo.children.length\n ) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n }\n\n public addParent(nodeInfo: NodeData): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const newParent = this.createNode(nodeInfo);\n\n if (this.tree) {\n newParent.setParent(this.tree);\n }\n const originalParent = this.parent;\n\n for (const child of originalParent.children) {\n newParent.addChild(child);\n }\n\n originalParent.children = [];\n originalParent.addChild(newParent);\n return newParent;\n }\n }\n\n public remove(): void {\n if (this.parent) {\n this.parent.removeChild(this);\n this.parent = null;\n }\n }\n\n public append(nodeInfo: NodeData): Node {\n const node = this.createNode(nodeInfo);\n this.addChild(node);\n\n if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n\n public prepend(nodeInfo: NodeData): Node {\n const node = this.createNode(nodeInfo);\n this.addChildAtPosition(node, 0);\n\n if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {\n node.loadFromData(nodeInfo.children);\n }\n\n return node;\n }\n\n public isParentOf(node: Node): boolean {\n let parent = node.parent;\n\n while (parent) {\n if (parent === this) {\n return true;\n }\n\n parent = parent.parent;\n }\n\n return false;\n }\n\n public getLevel(): number {\n let level = 0;\n let node: Node = this; // eslint-disable-line @typescript-eslint/no-this-alias\n\n while (node.parent) {\n level += 1;\n node = node.parent;\n }\n\n return level;\n }\n\n public getNodeById(nodeId: NodeId): Node | null {\n return this.idMapping.get(nodeId) || null;\n }\n\n public addNodeToIndex(node: Node): void {\n if (node.id != null) {\n this.idMapping.set(node.id, node);\n }\n }\n\n public removeNodeFromIndex(node: Node): void {\n if (node.id != null) {\n this.idMapping.delete(node.id);\n }\n }\n\n public removeChildren(): void {\n this.iterate((child: Node) => {\n this.tree?.removeNodeFromIndex(child);\n return true;\n });\n\n this.children = [];\n }\n\n public getPreviousSibling(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const previousIndex = this.parent.getChildIndex(this) - 1;\n if (previousIndex >= 0) {\n return this.parent.children[previousIndex] || null;\n } else {\n return null;\n }\n }\n }\n\n public getNextSibling(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const nextIndex = this.parent.getChildIndex(this) + 1;\n if (nextIndex < this.parent.children.length) {\n return this.parent.children[nextIndex] || null;\n } else {\n return null;\n }\n }\n }\n\n public getNodesByProperty(key: string, value: unknown): Node[] {\n return this.filter((node: Node) => node[key] === value);\n }\n\n public filter(f: (node: Node) => boolean): Node[] {\n const result: Node[] = [];\n\n this.iterate((node: Node) => {\n if (f(node)) {\n result.push(node);\n }\n\n return true;\n });\n\n return result;\n }\n\n public getNextNode(includeChildren = true): Node | null {\n if (includeChildren && this.hasChildren()) {\n return this.children[0] || null;\n } else if (!this.parent) {\n return null;\n } else {\n const nextSibling = this.getNextSibling();\n\n if (nextSibling) {\n return nextSibling;\n } else {\n return this.parent.getNextNode(false);\n }\n }\n }\n\n public getNextVisibleNode(): Node | null {\n if (this.hasChildren() && this.is_open) {\n // First child\n return this.children[0] || null;\n } else {\n if (!this.parent) {\n return null;\n } else {\n const nextSibling = this.getNextSibling();\n if (nextSibling) {\n // Next sibling\n return nextSibling;\n } else {\n // Next node of parent\n return this.parent.getNextNode(false);\n }\n }\n }\n }\n\n public getPreviousNode(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const previousSibling = this.getPreviousSibling();\n\n if (!previousSibling) {\n return this.getParent();\n } else if (previousSibling.hasChildren()) {\n return previousSibling.getLastChild();\n } else {\n return previousSibling;\n }\n }\n }\n\n public getPreviousVisibleNode(): Node | null {\n if (!this.parent) {\n return null;\n } else {\n const previousSibling = this.getPreviousSibling();\n\n if (!previousSibling) {\n return this.getParent();\n } else if (\n !previousSibling.hasChildren() ||\n !previousSibling.is_open\n ) {\n // Previous sibling\n return previousSibling;\n } else {\n // Last child of previous sibling\n return previousSibling.getLastChild();\n }\n }\n }\n\n public getParent(): Node | null {\n // Return parent except if it is the root node\n if (!this.parent) {\n return null;\n } else if (!this.parent.parent) {\n // Root node -> null\n return null;\n } else {\n return this.parent;\n }\n }\n\n public getLastChild(): Node | null {\n if (!this.hasChildren()) {\n return null;\n } else {\n const lastChild = this.children[this.children.length - 1];\n\n if (!lastChild) {\n return null;\n }\n\n if (!(lastChild.hasChildren() && lastChild.is_open)) {\n return lastChild;\n } else {\n return lastChild?.getLastChild();\n }\n }\n }\n\n // Init Node from data without making it the root of the tree\n public initFromData(data: NodeData): void {\n const addNode = (nodeData: NodeData): void => {\n this.setData(nodeData);\n\n if (\n isNodeRecordWithChildren(nodeData) &&\n nodeData.children.length\n ) {\n addChildren(nodeData.children);\n }\n };\n\n const addChildren = (childrenData: NodeData[]): void => {\n for (const child of childrenData) {\n const node = this.createNode();\n node.initFromData(child);\n this.addChild(node);\n }\n };\n\n addNode(data);\n }\n\n private setParent(parent: Node): void {\n this.parent = parent;\n this.tree = parent.tree;\n this.tree?.addNodeToIndex(this);\n }\n\n private doRemoveChild(node: Node): void {\n this.children.splice(this.getChildIndex(node), 1);\n this.tree?.removeNodeFromIndex(node);\n }\n\n private getNodeClass(): typeof Node {\n return this.nodeClass || this?.tree?.nodeClass || Node;\n }\n\n private createNode(nodeData?: NodeData): Node {\n const nodeClass = this.getNodeClass();\n return new nodeClass(nodeData);\n }\n}\n","import { getPositionName, Node, Position } from \"./node\";\nimport { DropHint, HitArea, PositionInfo } from \"./types\";\nimport { NodeElement } from \"./nodeElement\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\ninterface Dimensions {\n left: number;\n top: number;\n right: number;\n bottom: number;\n}\n\nexport class DragAndDropHandler {\n public hitAreas: HitArea[];\n public isDragging: boolean;\n public currentItem: NodeElement | null;\n public hoveredArea: HitArea | null;\n public positionInfo: PositionInfo | null;\n\n private treeWidget: JqTreeWidget;\n private dragElement: DragElement | null;\n private previousGhost: DropHint | null;\n private openFolderTimer: number | null;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n\n this.hoveredArea = null;\n this.hitAreas = [];\n this.isDragging = false;\n this.currentItem = null;\n this.positionInfo = null;\n }\n\n public mouseCapture(positionInfo: PositionInfo): boolean | null {\n const $element = jQuery(positionInfo.target);\n\n if (!this.mustCaptureElement($element)) {\n return null;\n }\n\n if (\n this.treeWidget.options.onIsMoveHandle &&\n !this.treeWidget.options.onIsMoveHandle($element)\n ) {\n return null;\n }\n\n let nodeElement = this.treeWidget._getNodeElement($element);\n\n if (nodeElement && this.treeWidget.options.onCanMove) {\n if (!this.treeWidget.options.onCanMove(nodeElement.node)) {\n nodeElement = null;\n }\n }\n\n this.currentItem = nodeElement;\n return this.currentItem != null;\n }\n\n public mouseStart(positionInfo: PositionInfo): boolean {\n if (\n !this.currentItem ||\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return false;\n }\n\n this.refresh();\n\n const offset = jQuery(positionInfo.target).offset();\n const left = offset ? offset.left : 0;\n const top = offset ? offset.top : 0;\n\n const node = this.currentItem.node;\n\n this.dragElement = new DragElement(\n node.name,\n positionInfo.pageX - left,\n positionInfo.pageY - top,\n this.treeWidget.element,\n this.treeWidget.options.autoEscape ?? true\n );\n\n this.isDragging = true;\n this.positionInfo = positionInfo;\n this.currentItem.$element.addClass(\"jqtree-moving\");\n return true;\n }\n\n public mouseDrag(positionInfo: PositionInfo): boolean {\n if (\n !this.currentItem ||\n !this.dragElement ||\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return false;\n }\n\n this.dragElement.move(positionInfo.pageX, positionInfo.pageY);\n this.positionInfo = positionInfo;\n\n const area = this.findHoveredArea(\n positionInfo.pageX,\n positionInfo.pageY\n );\n\n if (area && this.canMoveToArea(area)) {\n if (!area.node.isFolder()) {\n this.stopOpenFolderTimer();\n }\n\n if (this.hoveredArea !== area) {\n this.hoveredArea = area;\n\n // If this is a closed folder, start timer to open it\n if (this.mustOpenFolderTimer(area)) {\n this.startOpenFolderTimer(area.node);\n } else {\n this.stopOpenFolderTimer();\n }\n\n this.updateDropHint();\n }\n } else {\n this.removeDropHint();\n this.stopOpenFolderTimer();\n this.hoveredArea = area;\n }\n\n if (!area) {\n if (this.treeWidget.options.onDragMove) {\n this.treeWidget.options.onDragMove(\n this.currentItem.node,\n positionInfo.originalEvent\n );\n }\n }\n\n return true;\n }\n\n public mouseStop(positionInfo: PositionInfo): boolean {\n this.moveItem(positionInfo);\n this.clear();\n this.removeHover();\n this.removeDropHint();\n this.removeHitAreas();\n\n const currentItem = this.currentItem;\n\n if (this.currentItem) {\n this.currentItem.$element.removeClass(\"jqtree-moving\");\n this.currentItem = null;\n }\n\n this.isDragging = false;\n this.positionInfo = null;\n\n if (!this.hoveredArea && currentItem) {\n if (this.treeWidget.options.onDragStop) {\n this.treeWidget.options.onDragStop(\n currentItem.node,\n positionInfo.originalEvent\n );\n }\n }\n\n return false;\n }\n\n public refresh(): void {\n this.removeHitAreas();\n\n if (this.currentItem) {\n this.generateHitAreas();\n\n this.currentItem = this.treeWidget._getNodeElementForNode(\n this.currentItem.node\n );\n\n if (this.isDragging) {\n this.currentItem.$element.addClass(\"jqtree-moving\");\n }\n }\n }\n\n private generateHitAreas(): void {\n if (!this.currentItem) {\n this.hitAreas = [];\n } else {\n const hitAreasGenerator = new HitAreasGenerator(\n this.treeWidget.tree,\n this.currentItem.node,\n this.getTreeDimensions().bottom\n );\n this.hitAreas = hitAreasGenerator.generate();\n }\n }\n\n private mustCaptureElement($element: JQuery): boolean {\n return !$element.is(\"input,select,textarea\");\n }\n\n private canMoveToArea(area: HitArea): boolean {\n if (!this.treeWidget.options.onCanMoveTo) {\n return true;\n }\n\n if (!this.currentItem) {\n return false;\n }\n\n const positionName = getPositionName(area.position);\n\n return this.treeWidget.options.onCanMoveTo(\n this.currentItem.node,\n area.node,\n positionName\n );\n }\n\n private removeHitAreas(): void {\n this.hitAreas = [];\n }\n\n private clear(): void {\n if (this.dragElement) {\n this.dragElement.remove();\n this.dragElement = null;\n }\n }\n\n private removeDropHint(): void {\n if (this.previousGhost) {\n this.previousGhost.remove();\n }\n }\n\n private removeHover(): void {\n this.hoveredArea = null;\n }\n\n private findHoveredArea(x: number, y: number): HitArea | null {\n const dimensions = this.getTreeDimensions();\n\n if (\n x < dimensions.left ||\n y < dimensions.top ||\n x > dimensions.right ||\n y > dimensions.bottom\n ) {\n return null;\n }\n\n let low = 0;\n let high = this.hitAreas.length;\n while (low < high) {\n const mid = (low + high) >> 1;\n const area = this.hitAreas[mid];\n\n if (!area) {\n return null;\n }\n\n if (y < area.top) {\n high = mid;\n } else if (y > area.bottom) {\n low = mid + 1;\n } else {\n return area;\n }\n }\n\n return null;\n }\n\n private mustOpenFolderTimer(area: HitArea): boolean {\n const node = area.node;\n\n return (\n node.isFolder() &&\n !node.is_open &&\n area.position === Position.Inside\n );\n }\n\n private updateDropHint(): void {\n if (!this.hoveredArea) {\n return;\n }\n\n // remove previous drop hint\n this.removeDropHint();\n\n // add new drop hint\n const nodeElement = this.treeWidget._getNodeElementForNode(\n this.hoveredArea.node\n );\n this.previousGhost = nodeElement.addDropHint(this.hoveredArea.position);\n }\n\n private startOpenFolderTimer(folder: Node): void {\n const openFolder = (): void => {\n this.treeWidget._openNode(\n folder,\n this.treeWidget.options.slide,\n () => {\n this.refresh();\n this.updateDropHint();\n }\n );\n };\n\n this.stopOpenFolderTimer();\n\n const openFolderDelay = this.treeWidget.options.openFolderDelay;\n\n if (openFolderDelay !== false) {\n this.openFolderTimer = window.setTimeout(\n openFolder,\n openFolderDelay\n );\n }\n }\n\n private stopOpenFolderTimer(): void {\n if (this.openFolderTimer) {\n clearTimeout(this.openFolderTimer);\n this.openFolderTimer = null;\n }\n }\n\n private moveItem(positionInfo: PositionInfo): void {\n if (\n this.currentItem &&\n this.hoveredArea &&\n this.hoveredArea.position !== Position.None &&\n this.canMoveToArea(this.hoveredArea)\n ) {\n const movedNode = this.currentItem.node;\n const targetNode = this.hoveredArea.node;\n const position = this.hoveredArea.position;\n const previousParent = movedNode.parent;\n\n if (position === Position.Inside) {\n this.hoveredArea.node.is_open = true;\n }\n\n const doMove = (): void => {\n this.treeWidget.tree.moveNode(movedNode, targetNode, position);\n this.treeWidget.element.empty();\n this.treeWidget._refreshElements(null);\n };\n\n const event = this.treeWidget._triggerEvent(\"tree.move\", {\n move_info: {\n moved_node: movedNode,\n target_node: targetNode,\n position: getPositionName(position),\n previous_parent: previousParent,\n do_move: doMove,\n original_event: positionInfo.originalEvent,\n },\n });\n\n if (!event.isDefaultPrevented()) {\n doMove();\n }\n }\n }\n\n private getTreeDimensions(): Dimensions {\n // Return the dimensions of the tree. Add a margin to the bottom to allow\n // to drag-and-drop after the last element.\n const offset = this.treeWidget.element.offset();\n\n if (!offset) {\n return { left: 0, top: 0, right: 0, bottom: 0 };\n } else {\n const el = this.treeWidget.element;\n const width = el.width() || 0;\n const height = el.height() || 0;\n const left = offset.left + this.treeWidget._getScrollLeft();\n\n return {\n left,\n top: offset.top,\n right: left + width,\n bottom: offset.top + height + 16,\n };\n }\n }\n}\n\nabstract class VisibleNodeIterator {\n private tree: Node;\n\n constructor(tree: Node) {\n this.tree = tree;\n }\n\n protected iterate(): void {\n let isFirstNode = true;\n\n const _iterateNode = (node: Node, nextNode: Node | null): void => {\n let mustIterateInside =\n (node.is_open || !node.element) && node.hasChildren();\n\n let $element: JQuery | null = null;\n\n if (node.element) {\n $element = jQuery(node.element);\n\n if (!$element.is(\":visible\")) {\n return;\n }\n\n if (isFirstNode) {\n this.handleFirstNode(node);\n isFirstNode = false;\n }\n\n if (!node.hasChildren()) {\n this.handleNode(node, nextNode, $element);\n } else if (node.is_open) {\n if (!this.handleOpenFolder(node, $element)) {\n mustIterateInside = false;\n }\n } else {\n this.handleClosedFolder(node, nextNode, $element);\n }\n }\n\n if (mustIterateInside) {\n const childrenLength = node.children.length;\n node.children.forEach((_, i) => {\n const child = node.children[i];\n\n if (child) {\n if (i === childrenLength - 1) {\n _iterateNode(child, null);\n } else {\n const nextChild = node.children[i + 1];\n\n if (nextChild) {\n _iterateNode(child, nextChild);\n }\n }\n }\n });\n\n if (node.is_open && $element) {\n this.handleAfterOpenFolder(node, nextNode);\n }\n }\n };\n\n _iterateNode(this.tree, null);\n }\n\n protected abstract handleNode(\n node: Node,\n nextNode: Node | null,\n $element: JQuery\n ): void;\n\n /*\n override\n return\n - true: continue iterating\n - false: stop iterating\n */\n protected abstract handleOpenFolder(node: Node, $element: JQuery): boolean;\n\n protected abstract handleClosedFolder(\n node: Node,\n nextNode: Node | null,\n $element: JQuery\n ): void;\n\n protected abstract handleAfterOpenFolder(\n node: Node,\n nextNode: Node | null\n ): void;\n\n protected abstract handleFirstNode(node: Node): void;\n}\n\nexport class HitAreasGenerator extends VisibleNodeIterator {\n private currentNode: Node;\n private treeBottom: number;\n private positions: HitArea[];\n private lastTop: number;\n\n constructor(tree: Node, currentNode: Node, treeBottom: number) {\n super(tree);\n\n this.currentNode = currentNode;\n this.treeBottom = treeBottom;\n }\n\n public generate(): HitArea[] {\n this.positions = [];\n this.lastTop = 0;\n\n this.iterate();\n\n return this.generateHitAreas(this.positions);\n }\n\n protected generateHitAreas(positions: HitArea[]): HitArea[] {\n let previousTop = -1;\n let group = [];\n const hitAreas: HitArea[] = [];\n\n for (const position of positions) {\n if (position.top !== previousTop && group.length) {\n if (group.length) {\n this.generateHitAreasForGroup(\n hitAreas,\n group,\n previousTop,\n position.top\n );\n }\n\n previousTop = position.top;\n group = [];\n }\n\n group.push(position);\n }\n\n this.generateHitAreasForGroup(\n hitAreas,\n group,\n previousTop,\n this.treeBottom\n );\n\n return hitAreas;\n }\n\n protected handleOpenFolder(node: Node, $element: JQuery): boolean {\n if (node === this.currentNode) {\n // Cannot move inside current item\n // Stop iterating\n return false;\n }\n\n // Cannot move before current item\n if (node.children[0] !== this.currentNode) {\n this.addPosition(node, Position.Inside, this.getTop($element));\n }\n\n // Continue iterating\n return true;\n }\n\n protected handleClosedFolder(\n node: Node,\n nextNode: Node,\n $element: JQuery\n ): void {\n const top = this.getTop($element);\n\n if (node === this.currentNode) {\n // Cannot move after current item\n this.addPosition(node, Position.None, top);\n } else {\n this.addPosition(node, Position.Inside, top);\n\n // Cannot move before current item\n if (nextNode !== this.currentNode) {\n this.addPosition(node, Position.After, top);\n }\n }\n }\n\n protected handleFirstNode(node: Node): void {\n if (node !== this.currentNode) {\n this.addPosition(\n node,\n Position.Before,\n this.getTop(jQuery(node.element))\n );\n }\n }\n\n protected handleAfterOpenFolder(node: Node, nextNode: Node): void {\n if (node === this.currentNode || nextNode === this.currentNode) {\n // Cannot move before or after current item\n this.addPosition(node, Position.None, this.lastTop);\n } else {\n this.addPosition(node, Position.After, this.lastTop);\n }\n }\n\n protected handleNode(node: Node, nextNode: Node, $element: JQuery): void {\n const top = this.getTop($element);\n\n if (node === this.currentNode) {\n // Cannot move inside current item\n this.addPosition(node, Position.None, top);\n } else {\n this.addPosition(node, Position.Inside, top);\n }\n\n if (nextNode === this.currentNode || node === this.currentNode) {\n // Cannot move before or after current item\n this.addPosition(node, Position.None, top);\n } else {\n this.addPosition(node, Position.After, top);\n }\n }\n\n private getTop($element: JQuery): number {\n const offset = $element.offset();\n\n return offset ? offset.top : 0;\n }\n\n private addPosition(node: Node, position: number, top: number): void {\n const area = {\n top,\n bottom: 0,\n node,\n position,\n };\n\n this.positions.push(area);\n this.lastTop = top;\n }\n\n private generateHitAreasForGroup(\n hitAreas: HitArea[],\n positionsInGroup: HitArea[],\n top: number,\n bottom: number\n ): void {\n // limit positions in group\n const positionCount = Math.min(positionsInGroup.length, 4);\n\n const areaHeight = Math.round((bottom - top) / positionCount);\n let areaTop = top;\n\n let i = 0;\n while (i < positionCount) {\n const position = positionsInGroup[i];\n\n if (position) {\n hitAreas.push({\n top: areaTop,\n bottom: areaTop + areaHeight,\n node: position.node,\n position: position.position,\n });\n }\n\n areaTop += areaHeight;\n i += 1;\n }\n }\n}\n\nclass DragElement {\n private offsetX: number;\n private offsetY: number;\n private $element: JQuery;\n\n constructor(\n nodeName: string,\n offsetX: number,\n offsetY: number,\n $tree: JQuery,\n autoEscape: boolean\n ) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n\n this.$element = jQuery(\"\").addClass(\n \"jqtree-title jqtree-dragging\"\n );\n\n if (autoEscape) {\n this.$element.text(nodeName);\n } else {\n this.$element.html(nodeName);\n }\n\n this.$element.css(\"position\", \"absolute\");\n $tree.append(this.$element);\n }\n\n public move(pageX: number, pageY: number): void {\n this.$element.offset({\n left: pageX - this.offsetX,\n top: pageY - this.offsetY,\n });\n }\n\n public remove(): void {\n this.$element.remove();\n }\n}\n","export const isInt = (n: unknown): boolean =>\n typeof n === \"number\" && n % 1 === 0;\n\nexport const isFunction = (v: unknown): boolean => typeof v === \"function\";\n\nexport const getBoolString = (value: unknown): string =>\n value ? \"true\" : \"false\";\n","import { getBoolString } from \"./util\";\nimport { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\ntype IconElement = Text | Element;\n\nexport default class ElementsRenderer {\n public openedIconElement?: IconElement;\n public closedIconElement?: IconElement;\n private treeWidget: JqTreeWidget;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n\n this.openedIconElement = this.createButtonElement(\n treeWidget.options.openedIcon || \"+\"\n );\n this.closedIconElement = this.createButtonElement(\n treeWidget.options.closedIcon || \"-\"\n );\n }\n\n public render(fromNode: Node | null): void {\n if (fromNode && fromNode.parent) {\n this.renderFromNode(fromNode);\n } else {\n this.renderFromRoot();\n }\n }\n\n public renderFromRoot(): void {\n const $element = this.treeWidget.element;\n $element.empty();\n\n if ($element[0]) {\n this.createDomElements(\n $element[0],\n this.treeWidget.tree.children,\n true,\n 1\n );\n }\n }\n\n public renderFromNode(node: Node): void {\n // remember current li\n const $previousLi = jQuery(node.element);\n\n // create element\n const li = this.createLi(node, node.getLevel());\n this.attachNodeData(node, li);\n\n // add element to dom\n $previousLi.after(li);\n\n // remove previous li\n $previousLi.remove();\n\n // create children\n if (node.children) {\n this.createDomElements(\n li,\n node.children,\n false,\n node.getLevel() + 1\n );\n }\n }\n\n private createDomElements(\n element: Element,\n children: Node[],\n isRootNode: boolean,\n level: number\n ): void {\n const ul = this.createUl(isRootNode);\n element.appendChild(ul);\n\n for (const child of children) {\n const li = this.createLi(child, level);\n ul.appendChild(li);\n\n this.attachNodeData(child, li);\n\n if (child.hasChildren()) {\n this.createDomElements(li, child.children, false, level + 1);\n }\n }\n }\n\n private attachNodeData(node: Node, li: HTMLElement): void {\n node.element = li;\n jQuery(li).data(\"node\", node);\n }\n\n private createUl(isRootNode: boolean): HTMLUListElement {\n let classString;\n let role;\n\n if (!isRootNode) {\n classString = \"\";\n role = \"group\";\n } else {\n classString = \"jqtree-tree\";\n role = \"tree\";\n\n if (this.treeWidget.options.rtl) {\n classString += \" jqtree-rtl\";\n }\n }\n\n if (this.treeWidget.options.dragAndDrop) {\n classString += \" jqtree-dnd\";\n }\n\n const ul = document.createElement(\"ul\");\n ul.className = `jqtree_common ${classString}`;\n\n ul.setAttribute(\"role\", role);\n\n return ul;\n }\n\n private createLi(node: Node, level: number): HTMLLIElement {\n const isSelected = Boolean(\n this.treeWidget.selectNodeHandler.isNodeSelected(node)\n );\n\n const mustShowFolder =\n node.isFolder() ||\n (node.isEmptyFolder && this.treeWidget.options.showEmptyFolder);\n\n const li = mustShowFolder\n ? this.createFolderLi(node, level, isSelected)\n : this.createNodeLi(node, level, isSelected);\n\n if (this.treeWidget.options.onCreateLi) {\n this.treeWidget.options.onCreateLi(node, jQuery(li), isSelected);\n }\n\n return li;\n }\n\n private setTreeItemAriaAttributes(\n element: HTMLElement,\n name: string,\n level: number,\n isSelected: boolean\n ) {\n element.setAttribute(\"aria-label\", name);\n element.setAttribute(\"aria-level\", `${level}`);\n element.setAttribute(\"aria-selected\", getBoolString(isSelected));\n element.setAttribute(\"role\", \"treeitem\");\n }\n\n private createFolderLi(\n node: Node,\n level: number,\n isSelected: boolean\n ): HTMLLIElement {\n const buttonClasses = this.getButtonClasses(node);\n const folderClasses = this.getFolderClasses(node, isSelected);\n\n const iconElement = node.is_open\n ? this.openedIconElement\n : this.closedIconElement;\n\n // li\n const li = document.createElement(\"li\");\n li.className = `jqtree_common ${folderClasses}`;\n li.setAttribute(\"role\", \"none\");\n\n // div\n const div = document.createElement(\"div\");\n div.className = \"jqtree-element jqtree_common\";\n div.setAttribute(\"role\", \"none\");\n\n li.appendChild(div);\n\n // button link\n const buttonLink = document.createElement(\"a\");\n buttonLink.className = buttonClasses;\n\n if (iconElement) {\n buttonLink.appendChild(iconElement.cloneNode(true));\n }\n\n if (this.treeWidget.options.buttonLeft) {\n div.appendChild(buttonLink);\n }\n\n // title span\n const titleSpan = this.createTitleSpan(\n node.name,\n isSelected,\n true,\n level\n );\n titleSpan.setAttribute(\"aria-expanded\", getBoolString(node.is_open));\n div.appendChild(titleSpan);\n\n if (!this.treeWidget.options.buttonLeft) {\n div.appendChild(buttonLink);\n }\n\n return li;\n }\n\n private createNodeLi(\n node: Node,\n level: number,\n isSelected: boolean\n ): HTMLLIElement {\n const liClasses = [\"jqtree_common\"];\n\n if (isSelected) {\n liClasses.push(\"jqtree-selected\");\n }\n\n const classString = liClasses.join(\" \");\n\n // li\n const li = document.createElement(\"li\");\n li.className = classString;\n li.setAttribute(\"role\", \"none\");\n\n // div\n const div = document.createElement(\"div\");\n div.className = \"jqtree-element jqtree_common\";\n div.setAttribute(\"role\", \"none\");\n\n li.appendChild(div);\n\n // title span\n const titleSpan = this.createTitleSpan(\n node.name,\n isSelected,\n false,\n level\n );\n div.appendChild(titleSpan);\n\n return li;\n }\n\n private createTitleSpan(\n nodeName: string,\n isSelected: boolean,\n isFolder: boolean,\n level: number\n ): HTMLSpanElement {\n const titleSpan = document.createElement(\"span\");\n\n let classes = \"jqtree-title jqtree_common\";\n\n if (isFolder) {\n classes += \" jqtree-title-folder\";\n }\n\n classes += ` jqtree-title-button-${\n this.treeWidget.options.buttonLeft ? \"left\" : \"right\"\n }`;\n\n titleSpan.className = classes;\n\n if (isSelected) {\n const tabIndex = this.treeWidget.options.tabIndex;\n\n if (tabIndex !== undefined) {\n titleSpan.setAttribute(\"tabindex\", `${tabIndex}`);\n }\n }\n\n this.setTreeItemAriaAttributes(titleSpan, nodeName, level, isSelected);\n\n if (this.treeWidget.options.autoEscape) {\n titleSpan.textContent = nodeName;\n } else {\n titleSpan.innerHTML = nodeName;\n }\n\n return titleSpan;\n }\n\n private getButtonClasses(node: Node): string {\n const classes = [\"jqtree-toggler\", \"jqtree_common\"];\n\n if (!node.is_open) {\n classes.push(\"jqtree-closed\");\n }\n\n if (this.treeWidget.options.buttonLeft) {\n classes.push(\"jqtree-toggler-left\");\n } else {\n classes.push(\"jqtree-toggler-right\");\n }\n\n return classes.join(\" \");\n }\n\n private getFolderClasses(node: Node, isSelected: boolean): string {\n const classes = [\"jqtree-folder\"];\n\n if (!node.is_open) {\n classes.push(\"jqtree-closed\");\n }\n\n if (isSelected) {\n classes.push(\"jqtree-selected\");\n }\n\n if (node.is_loading) {\n classes.push(\"jqtree-loading\");\n }\n\n return classes.join(\" \");\n }\n\n private createButtonElement(\n value: string | Element\n ): IconElement | undefined {\n if (typeof value === \"string\") {\n // convert value to html\n const div = document.createElement(\"div\");\n div.innerHTML = value;\n\n return document.createTextNode(div.innerHTML);\n } else {\n return jQuery(value)[0];\n }\n }\n}\n","import { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\nexport type HandleFinishedLoading = () => void;\n\nexport default class DataLoader {\n private treeWidget: JqTreeWidget;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n }\n\n public loadFromUrl(\n urlInfo: string | JQuery.AjaxSettings | null,\n parentNode: Node | null,\n onFinished: HandleFinishedLoading | null\n ): void {\n if (!urlInfo) {\n return;\n }\n\n const $el = this.getDomElement(parentNode);\n this.addLoadingClass($el);\n this.notifyLoading(true, parentNode, $el);\n\n const stopLoading = (): void => {\n this.removeLoadingClass($el);\n this.notifyLoading(false, parentNode, $el);\n };\n\n const handleSuccess = (data: string | NodeData[]): void => {\n stopLoading();\n this.treeWidget.loadData(this.parseData(data), parentNode);\n\n if (onFinished && typeof onFinished === \"function\") {\n onFinished();\n }\n };\n\n const handleError = (jqXHR: JQuery.jqXHR): void => {\n stopLoading();\n\n if (this.treeWidget.options.onLoadFailed) {\n this.treeWidget.options.onLoadFailed(jqXHR);\n }\n };\n\n this.submitRequest(urlInfo, handleSuccess, handleError);\n }\n\n private addLoadingClass($el: JQuery): void {\n if ($el) {\n $el.addClass(\"jqtree-loading\");\n }\n }\n\n private removeLoadingClass($el: JQuery): void {\n if ($el) {\n $el.removeClass(\"jqtree-loading\");\n }\n }\n\n private getDomElement(parentNode: Node | null): JQuery {\n if (parentNode) {\n return jQuery(parentNode.element);\n } else {\n return this.treeWidget.element;\n }\n }\n\n private notifyLoading(\n isLoading: boolean,\n node: Node | null,\n $el: JQuery\n ): void {\n if (this.treeWidget.options.onLoading) {\n this.treeWidget.options.onLoading(isLoading, node, $el);\n }\n\n this.treeWidget._triggerEvent(\"tree.loading_data\", {\n isLoading,\n node,\n $el,\n });\n }\n\n private submitRequest(\n urlInfoInput: string | JQuery.AjaxSettings,\n handleSuccess: JQuery.Ajax.SuccessCallback,\n handleError: JQuery.Ajax.ErrorCallback\n ): void {\n const urlInfo =\n typeof urlInfoInput === \"string\"\n ? { url: urlInfoInput }\n : urlInfoInput;\n\n const ajaxSettings: JQuery.AjaxSettings = {\n method: \"GET\",\n cache: false,\n dataType: \"json\",\n success: handleSuccess,\n error: handleError,\n ...urlInfo,\n };\n\n ajaxSettings.method = ajaxSettings.method?.toUpperCase() || \"GET\";\n\n void jQuery.ajax(ajaxSettings);\n }\n\n private parseData(data: string | NodeData[]): NodeData[] {\n const { dataFilter } = this.treeWidget.options;\n\n const getParsedData = () => {\n if (typeof data === \"string\") {\n return JSON.parse(data) as NodeData[];\n } else {\n return data;\n }\n };\n\n const parsedData = getParsedData();\n\n if (dataFilter) {\n return dataFilter(parsedData);\n } else {\n return parsedData;\n }\n }\n}\n","import { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\nexport default class KeyHandler {\n private static LEFT = 37;\n private static UP = 38;\n private static RIGHT = 39;\n private static DOWN = 40;\n\n private treeWidget: JqTreeWidget;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n\n if (treeWidget.options.keyboardSupport) {\n jQuery(document).on(\"keydown.jqtree\", this.handleKeyDown);\n }\n }\n\n public deinit(): void {\n jQuery(document).off(\"keydown.jqtree\");\n }\n\n public moveDown(selectedNode: Node): boolean {\n return this.selectNode(selectedNode.getNextVisibleNode());\n }\n\n public moveUp(selectedNode: Node): boolean {\n return this.selectNode(selectedNode.getPreviousVisibleNode());\n }\n\n public moveRight(selectedNode: Node): boolean {\n if (!selectedNode.isFolder()) {\n return true;\n } else {\n // folder node\n if (selectedNode.is_open) {\n // Right moves to the first child of an open node\n return this.selectNode(selectedNode.getNextVisibleNode());\n } else {\n // Right expands a closed node\n this.treeWidget.openNode(selectedNode);\n return false;\n }\n }\n }\n\n public moveLeft(selectedNode: Node): boolean {\n if (selectedNode.isFolder() && selectedNode.is_open) {\n // Left on an open node closes the node\n this.treeWidget.closeNode(selectedNode);\n return false;\n } else {\n // Left on a closed or end node moves focus to the node's parent\n return this.selectNode(selectedNode.getParent());\n }\n }\n\n public selectNode(node: Node | null): boolean {\n if (!node) {\n return true;\n } else {\n this.treeWidget.selectNode(node);\n\n if (\n !this.treeWidget.scrollHandler.isScrolledIntoView(\n jQuery(node.element).find(\".jqtree-element\")\n )\n ) {\n this.treeWidget.scrollToNode(node);\n }\n\n return false;\n }\n }\n\n private handleKeyDown = (e: JQuery.Event): boolean => {\n if (!this.canHandleKeyboard()) {\n return true;\n }\n\n const selectedNode = this.treeWidget.getSelectedNode();\n if (!selectedNode) {\n return true;\n }\n\n const key = e.which;\n\n switch (key) {\n case KeyHandler.DOWN:\n return this.moveDown(selectedNode);\n\n case KeyHandler.UP:\n return this.moveUp(selectedNode);\n\n case KeyHandler.RIGHT:\n return this.moveRight(selectedNode);\n\n case KeyHandler.LEFT:\n return this.moveLeft(selectedNode);\n\n default:\n return true;\n }\n };\n\n private canHandleKeyboard(): boolean {\n return (\n (this.treeWidget.options.keyboardSupport || false) &&\n this.treeWidget.selectNodeHandler.isFocusOnTree()\n );\n }\n}\n","const register = (widgetClass: unknown, widgetName: string): void => {\n const getDataKey = (): string => `simple_widget_${widgetName}`;\n\n const getWidgetData = (\n el: HTMLElement,\n dataKey: string\n ): SimpleWidget | null => {\n const widget = jQuery.data(el, dataKey) as unknown;\n\n if (widget && widget instanceof SimpleWidget) {\n return widget;\n } else {\n return null;\n }\n };\n\n const createWidget = ($el: JQuery, options: unknown): JQuery => {\n const dataKey = getDataKey();\n\n for (const el of $el.get()) {\n const existingWidget = getWidgetData(el, dataKey);\n\n if (!existingWidget) {\n const simpleWidgetClass = widgetClass as typeof SimpleWidget;\n const widget = new simpleWidgetClass(el, options);\n\n if (!jQuery.data(el, dataKey)) {\n jQuery.data(el, dataKey, widget);\n }\n\n // Call init after setting data, so we can call methods\n widget.init();\n }\n }\n\n return $el;\n };\n\n const destroyWidget = ($el: JQuery): void => {\n const dataKey = getDataKey();\n\n for (const el of $el.get()) {\n const widget = getWidgetData(el, dataKey);\n\n if (widget) {\n widget.destroy();\n }\n\n jQuery.removeData(el, dataKey);\n }\n };\n\n const callFunction = (\n $el: JQuery,\n functionName: string,\n args: unknown[]\n ): unknown => {\n let result = null;\n\n for (const el of $el.get()) {\n const widget = jQuery.data(el, getDataKey()) as unknown;\n\n if (widget && widget instanceof SimpleWidget) {\n const simpleWidget = widget as SimpleWidget;\n const widgetFunction = simpleWidget[functionName];\n\n if (widgetFunction && typeof widgetFunction === \"function\") {\n result = widgetFunction.apply(widget, args) as unknown;\n }\n }\n }\n\n return result;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (jQuery.fn as any)[widgetName] = function (\n this: JQuery,\n argument1: unknown,\n ...args: unknown[]\n ) {\n if (!argument1) {\n return createWidget(this, null);\n } else if (typeof argument1 === \"object\") {\n const options = argument1 as unknown;\n return createWidget(this, options);\n } else if (typeof argument1 === \"string\" && argument1[0] !== \"_\") {\n const functionName = argument1;\n\n if (functionName === \"destroy\") {\n return destroyWidget(this);\n } else if (functionName === \"get_widget_class\") {\n return widgetClass;\n } else {\n return callFunction(this, functionName, args);\n }\n } else {\n return undefined;\n }\n };\n};\n\nexport default class SimpleWidget {\n public static register(widgetClass: unknown, widgetName: string): void {\n register(widgetClass, widgetName);\n }\n\n [key: string]: unknown;\n\n protected static defaults: unknown = {};\n\n public options: WidgetOptions;\n\n public $el: JQuery;\n\n constructor(el: HTMLElement, options: WidgetOptions) {\n this.$el = jQuery(el);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const defaults = (this.constructor as any)[\"defaults\"] as WidgetOptions;\n this.options = { ...defaults, ...options };\n }\n\n public destroy(): void {\n this.deinit();\n }\n\n public init(): void {\n //\n }\n\n public deinit(): void {\n //\n }\n}\n","/*\nThis widget does the same a the mouse widget in jqueryui.\n*/\nimport SimpleWidget from \"./simple.widget\";\nimport { PositionInfo } from \"./types\";\n\nconst getPositionInfoFromMouseEvent = (e: MouseEvent): PositionInfo => ({\n pageX: e.pageX,\n pageY: e.pageY,\n target: e.target as HTMLElement,\n originalEvent: e,\n});\n\nconst getPositionInfoFromTouch = (\n touch: Touch,\n e: TouchEvent\n): PositionInfo => ({\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target as HTMLElement,\n originalEvent: e,\n});\n\nabstract class MouseWidget extends SimpleWidget {\n protected isMouseStarted: boolean;\n protected mouseDownInfo: PositionInfo | null;\n private mouseDelayTimer: number | null;\n private isMouseDelayMet: boolean;\n\n public init(): void {\n const element = this.$el.get(0);\n\n if (element) {\n element.addEventListener(\"mousedown\", this.mouseDown, {\n passive: false,\n });\n element.addEventListener(\"touchstart\", this.touchStart, {\n passive: false,\n });\n }\n\n this.isMouseStarted = false;\n this.mouseDelayTimer = null;\n this.isMouseDelayMet = false;\n this.mouseDownInfo = null;\n }\n\n public deinit(): void {\n const el = this.$el.get(0);\n\n if (el) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (el as any).removeEventListener(\"mousedown\", this.mouseDown, {\n passive: false,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (el as any).removeEventListener(\"touchstart\", this.touchStart, {\n passive: false,\n });\n }\n\n this.removeMouseMoveEventListeners();\n }\n\n protected abstract mouseCapture(positionInfo: PositionInfo): boolean | null;\n\n protected abstract mouseStart(positionInfo: PositionInfo): boolean;\n\n protected abstract mouseDrag(positionInfo: PositionInfo): void;\n\n protected abstract mouseStop(positionInfo: PositionInfo): void;\n\n protected abstract getMouseDelay(): number;\n\n private mouseDown = (e: MouseEvent): void => {\n // Left mouse button?\n if (e.button !== 0) {\n return;\n }\n\n const result = this.handleMouseDown(getPositionInfoFromMouseEvent(e));\n\n if (result && e.cancelable) {\n e.preventDefault();\n }\n };\n\n private handleMouseDown(positionInfo: PositionInfo): boolean {\n // We may have missed mouseup (out of window)\n if (this.isMouseStarted) {\n this.handleMouseUp(positionInfo);\n }\n\n this.mouseDownInfo = positionInfo;\n\n if (!this.mouseCapture(positionInfo)) {\n return false;\n }\n\n this.handleStartMouse();\n\n return true;\n }\n\n private handleStartMouse(): void {\n document.addEventListener(\"mousemove\", this.mouseMove, {\n passive: false,\n });\n document.addEventListener(\"touchmove\", this.touchMove, {\n passive: false,\n });\n document.addEventListener(\"mouseup\", this.mouseUp, { passive: false });\n document.addEventListener(\"touchend\", this.touchEnd, {\n passive: false,\n });\n\n const mouseDelay = this.getMouseDelay();\n\n if (mouseDelay) {\n this.startMouseDelayTimer(mouseDelay);\n } else {\n this.isMouseDelayMet = true;\n }\n }\n\n private startMouseDelayTimer(mouseDelay: number): void {\n if (this.mouseDelayTimer) {\n clearTimeout(this.mouseDelayTimer);\n }\n\n this.mouseDelayTimer = window.setTimeout(() => {\n if (this.mouseDownInfo) {\n this.isMouseDelayMet = true;\n }\n }, mouseDelay);\n\n this.isMouseDelayMet = false;\n }\n\n private mouseMove = (e: MouseEvent): void => {\n this.handleMouseMove(e, getPositionInfoFromMouseEvent(e));\n };\n\n private handleMouseMove(\n e: MouseEvent | TouchEvent,\n positionInfo: PositionInfo\n ): void {\n if (this.isMouseStarted) {\n this.mouseDrag(positionInfo);\n\n if (e.cancelable) {\n e.preventDefault();\n }\n return;\n }\n\n if (!this.isMouseDelayMet) {\n return;\n }\n\n if (this.mouseDownInfo) {\n this.isMouseStarted = this.mouseStart(this.mouseDownInfo) !== false;\n }\n\n if (this.isMouseStarted) {\n this.mouseDrag(positionInfo);\n\n if (e.cancelable) {\n e.preventDefault();\n }\n } else {\n this.handleMouseUp(positionInfo);\n }\n }\n\n private mouseUp = (e: MouseEvent): void => {\n this.handleMouseUp(getPositionInfoFromMouseEvent(e));\n };\n\n private handleMouseUp(positionInfo: PositionInfo): void {\n this.removeMouseMoveEventListeners();\n this.isMouseDelayMet = false;\n this.mouseDownInfo = null;\n\n if (this.isMouseStarted) {\n this.isMouseStarted = false;\n this.mouseStop(positionInfo);\n }\n }\n\n private removeMouseMoveEventListeners() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"mousemove\", this.mouseMove, {\n passive: false,\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"touchmove\", this.touchMove, {\n passive: false,\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"mouseup\", this.mouseUp, {\n passive: false,\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n (document as any).removeEventListener(\"touchend\", this.touchEnd, {\n passive: false,\n });\n }\n\n private touchStart = (e: TouchEvent): void => {\n if (!e) {\n return;\n }\n\n if (e.touches.length > 1) {\n return;\n }\n\n const touch = e.changedTouches[0];\n\n if (!touch) {\n return;\n }\n\n this.handleMouseDown(getPositionInfoFromTouch(touch, e));\n };\n\n private touchMove = (e: TouchEvent): void => {\n if (!e) {\n return;\n }\n\n if (e.touches.length > 1) {\n return;\n }\n\n const touch = e.changedTouches[0];\n\n if (!touch) {\n return;\n }\n\n this.handleMouseMove(e, getPositionInfoFromTouch(touch, e));\n };\n\n private touchEnd = (e: TouchEvent): void => {\n if (!e) {\n return;\n }\n\n if (e.touches.length > 1) {\n return;\n }\n\n const touch = e.changedTouches[0];\n\n if (!touch) {\n return;\n }\n\n this.handleMouseUp(getPositionInfoFromTouch(touch, e));\n };\n}\n\nexport default MouseWidget;\n","import { isInt } from \"./util\";\nimport { JqTreeWidget } from \"./tree.jquery\";\nimport { Node } from \"./node\";\n\nexport interface SavedState {\n open_nodes: NodeId[];\n selected_node: NodeId[];\n}\n\nexport default class SaveStateHandler {\n private treeWidget: JqTreeWidget;\n private _supportsLocalStorage: boolean | null;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n }\n\n public saveState(): void {\n const state = JSON.stringify(this.getState());\n\n if (this.treeWidget.options.onSetStateFromStorage) {\n this.treeWidget.options.onSetStateFromStorage(state);\n } else if (this.supportsLocalStorage()) {\n localStorage.setItem(this.getKeyName(), state);\n }\n }\n\n public getStateFromStorage(): SavedState | null {\n const jsonData = this.loadFromStorage();\n\n if (jsonData) {\n return this.parseState(jsonData) as unknown as SavedState;\n } else {\n return null;\n }\n }\n\n public getState(): SavedState {\n const getOpenNodeIds = (): NodeId[] => {\n const openNodes: NodeId[] = [];\n\n this.treeWidget.tree.iterate((node: Node) => {\n if (node.is_open && node.id && node.hasChildren()) {\n openNodes.push(node.id);\n }\n return true;\n });\n\n return openNodes;\n };\n\n const getSelectedNodeIds = (): NodeId[] => {\n const selectedNodeIds: NodeId[] = [];\n\n this.treeWidget.getSelectedNodes().forEach((node) => {\n if (node.id != null) {\n selectedNodeIds.push(node.id);\n }\n });\n\n return selectedNodeIds;\n };\n\n return {\n open_nodes: getOpenNodeIds(),\n selected_node: getSelectedNodeIds(),\n };\n }\n\n /*\n Set initial state\n Don't handle nodes that are loaded on demand\n\n result: must load on demand\n */\n public setInitialState(state: SavedState): boolean {\n if (!state) {\n return false;\n } else {\n let mustLoadOnDemand = false;\n\n if (state.open_nodes) {\n mustLoadOnDemand = this.openInitialNodes(state.open_nodes);\n }\n\n if (state.selected_node) {\n this.resetSelection();\n this.selectInitialNodes(state.selected_node);\n }\n\n return mustLoadOnDemand;\n }\n }\n\n public setInitialStateOnDemand(\n state: SavedState,\n cbFinished: () => void\n ): void {\n if (state) {\n this.doSetInitialStateOnDemand(\n state.open_nodes,\n state.selected_node,\n cbFinished\n );\n } else {\n cbFinished();\n }\n }\n\n public getNodeIdToBeSelected(): NodeId | null {\n const state = this.getStateFromStorage();\n\n if (state && state.selected_node) {\n return state.selected_node[0] || null;\n } else {\n return null;\n }\n }\n\n private parseState(jsonData: string): SavedState {\n const state = JSON.parse(jsonData) as Record;\n\n // Check if selected_node is an int (instead of an array)\n if (state && state.selected_node && isInt(state.selected_node)) {\n // Convert to array\n state.selected_node = [state.selected_node];\n }\n\n return state as unknown as SavedState;\n }\n\n private loadFromStorage(): string | null {\n if (this.treeWidget.options.onGetStateFromStorage) {\n return this.treeWidget.options.onGetStateFromStorage();\n } else if (this.supportsLocalStorage()) {\n return localStorage.getItem(this.getKeyName());\n } else {\n return null;\n }\n }\n\n private openInitialNodes(nodeIds: NodeId[]): boolean {\n let mustLoadOnDemand = false;\n\n for (const nodeId of nodeIds) {\n const node = this.treeWidget.getNodeById(nodeId);\n\n if (node) {\n if (!node.load_on_demand) {\n node.is_open = true;\n } else {\n mustLoadOnDemand = true;\n }\n }\n }\n\n return mustLoadOnDemand;\n }\n\n private selectInitialNodes(nodeIds: NodeId[]): boolean {\n let selectCount = 0;\n\n for (const nodeId of nodeIds) {\n const node = this.treeWidget.getNodeById(nodeId);\n\n if (node) {\n selectCount += 1;\n\n this.treeWidget.selectNodeHandler.addToSelection(node);\n }\n }\n\n return selectCount !== 0;\n }\n\n private resetSelection(): void {\n const selectNodeHandler = this.treeWidget.selectNodeHandler;\n\n const selectedNodes = selectNodeHandler.getSelectedNodes();\n\n selectedNodes.forEach((node) => {\n selectNodeHandler.removeFromSelection(node);\n });\n }\n\n private doSetInitialStateOnDemand(\n nodeIdsParam: NodeId[],\n selectedNodes: NodeId[],\n cbFinished: () => void\n ): void {\n let loadingCount = 0;\n let nodeIds = nodeIdsParam;\n\n const openNodes = (): void => {\n const newNodesIds = [];\n\n for (const nodeId of nodeIds) {\n const node = this.treeWidget.getNodeById(nodeId);\n\n if (!node) {\n newNodesIds.push(nodeId);\n } else {\n if (!node.is_loading) {\n if (node.load_on_demand) {\n loadAndOpenNode(node);\n } else {\n this.treeWidget._openNode(node, false, null);\n }\n }\n }\n }\n\n nodeIds = newNodesIds;\n\n if (this.selectInitialNodes(selectedNodes)) {\n this.treeWidget._refreshElements(null);\n }\n\n if (loadingCount === 0) {\n cbFinished();\n }\n };\n\n const loadAndOpenNode = (node: Node): void => {\n loadingCount += 1;\n this.treeWidget._openNode(node, false, () => {\n loadingCount -= 1;\n openNodes();\n });\n };\n\n openNodes();\n }\n\n private getKeyName(): string {\n if (typeof this.treeWidget.options.saveState === \"string\") {\n return this.treeWidget.options.saveState;\n } else {\n return \"tree\";\n }\n }\n\n private supportsLocalStorage(): boolean {\n const testSupport = (): boolean => {\n // Is local storage supported?\n if (localStorage == null) {\n return false;\n } else {\n // Check if it's possible to store an item. Safari does not allow this in private browsing mode.\n try {\n const key = \"_storage_test\";\n sessionStorage.setItem(key, \"value\");\n sessionStorage.removeItem(key);\n } catch (error) {\n return false;\n }\n\n return true;\n }\n };\n\n if (this._supportsLocalStorage == null) {\n this._supportsLocalStorage = testSupport();\n }\n\n return this._supportsLocalStorage;\n }\n}\n","import { JqTreeWidget } from \"./tree.jquery\";\nimport { HitArea, PositionInfo } from \"./types\";\n\nexport default class ScrollHandler {\n private treeWidget: JqTreeWidget;\n private previousTop: number;\n private isInitialized: boolean;\n private $scrollParent: JQuery | null;\n private scrollParentTop: number;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n this.previousTop = -1;\n this.isInitialized = false;\n }\n\n public checkScrolling(): void {\n this.ensureInit();\n this.checkVerticalScrolling();\n this.checkHorizontalScrolling();\n }\n\n public scrollToY(top: number): void {\n this.ensureInit();\n\n if (this.$scrollParent && this.$scrollParent[0]) {\n this.$scrollParent[0].scrollTop = top;\n } else {\n const offset = this.treeWidget.$el.offset();\n const treeTop = offset ? offset.top : 0;\n\n jQuery(document).scrollTop(top + treeTop);\n }\n }\n\n public isScrolledIntoView($element: JQuery): boolean {\n this.ensureInit();\n\n let elementBottom: number;\n let viewBottom: number;\n let elementTop: number;\n let viewTop: number;\n\n const elHeight = $element.height() || 0;\n\n if (this.$scrollParent) {\n viewTop = 0;\n viewBottom = this.$scrollParent.height() || 0;\n\n const offset = $element.offset();\n const originalTop = offset ? offset.top : 0;\n\n elementTop = originalTop - this.scrollParentTop;\n elementBottom = elementTop + elHeight;\n } else {\n viewTop = jQuery(window).scrollTop() || 0;\n\n const windowHeight = jQuery(window).height() || 0;\n viewBottom = viewTop + windowHeight;\n\n const offset = $element.offset();\n\n elementTop = offset ? offset.top : 0;\n elementBottom = elementTop + elHeight;\n }\n\n return elementBottom <= viewBottom && elementTop >= viewTop;\n }\n\n public getScrollLeft(): number {\n if (!this.$scrollParent) {\n return 0;\n } else {\n return this.$scrollParent.scrollLeft() || 0;\n }\n }\n\n private initScrollParent(): void {\n const getParentWithOverflow = (): JQuery | null => {\n const cssAttributes = [\"overflow\", \"overflow-y\"];\n\n const hasOverFlow = ($el: JQuery): boolean => {\n for (const attr of cssAttributes) {\n const overflowValue = $el.css(attr);\n if (\n overflowValue === \"auto\" ||\n overflowValue === \"scroll\"\n ) {\n return true;\n }\n }\n\n return false;\n };\n\n if (hasOverFlow(this.treeWidget.$el)) {\n return this.treeWidget.$el;\n }\n\n for (const el of this.treeWidget.$el.parents().get()) {\n const $el = jQuery(el);\n if (hasOverFlow($el)) {\n return $el;\n }\n }\n\n return null;\n };\n\n const setDocumentAsScrollParent = (): void => {\n this.scrollParentTop = 0;\n this.$scrollParent = null;\n };\n\n if (this.treeWidget.$el.css(\"position\") === \"fixed\") {\n setDocumentAsScrollParent();\n }\n\n const $scrollParent = getParentWithOverflow();\n\n if (\n $scrollParent &&\n $scrollParent.length &&\n $scrollParent[0]?.tagName !== \"HTML\"\n ) {\n this.$scrollParent = $scrollParent;\n\n const offset = this.$scrollParent.offset();\n this.scrollParentTop = offset ? offset.top : 0;\n } else {\n setDocumentAsScrollParent();\n }\n\n this.isInitialized = true;\n }\n\n private ensureInit(): void {\n if (!this.isInitialized) {\n this.initScrollParent();\n }\n }\n\n private handleVerticalScrollingWithScrollParent(area: HitArea): void {\n const scrollParent = this.$scrollParent && this.$scrollParent[0];\n\n if (!scrollParent) {\n return;\n }\n\n const distanceBottom =\n this.scrollParentTop + scrollParent.offsetHeight - area.bottom;\n\n if (distanceBottom < 20) {\n scrollParent.scrollTop += 20;\n this.treeWidget.refreshHitAreas();\n this.previousTop = -1;\n } else if (area.top - this.scrollParentTop < 20) {\n scrollParent.scrollTop -= 20;\n this.treeWidget.refreshHitAreas();\n this.previousTop = -1;\n }\n }\n\n private handleVerticalScrollingWithDocument(area: HitArea): void {\n const scrollTop = jQuery(document).scrollTop() || 0;\n const distanceTop = area.top - scrollTop;\n\n if (distanceTop < 20) {\n jQuery(document).scrollTop(scrollTop - 20);\n } else {\n const windowHeight = jQuery(window).height() || 0;\n\n if (windowHeight - (area.bottom - scrollTop) < 20) {\n jQuery(document).scrollTop(scrollTop + 20);\n }\n }\n }\n\n private checkVerticalScrolling(): void {\n const hoveredArea = this.treeWidget.dndHandler.hoveredArea;\n\n if (hoveredArea && hoveredArea.top !== this.previousTop) {\n this.previousTop = hoveredArea.top;\n\n if (this.$scrollParent) {\n this.handleVerticalScrollingWithScrollParent(hoveredArea);\n } else {\n this.handleVerticalScrollingWithDocument(hoveredArea);\n }\n }\n }\n\n private checkHorizontalScrolling(): void {\n const positionInfo = this.treeWidget.dndHandler.positionInfo;\n\n if (!positionInfo) {\n return;\n }\n\n if (this.$scrollParent) {\n this.handleHorizontalScrollingWithParent(positionInfo);\n } else {\n this.handleHorizontalScrollingWithDocument(positionInfo);\n }\n }\n\n private handleHorizontalScrollingWithParent(\n positionInfo: PositionInfo\n ): void {\n if (\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return;\n }\n\n const $scrollParent = this.$scrollParent;\n const scrollParentOffset = $scrollParent && $scrollParent.offset();\n\n if (!($scrollParent && scrollParentOffset)) {\n return;\n }\n\n const scrollParent = $scrollParent[0];\n\n if (!scrollParent) {\n return;\n }\n\n const canScrollRight =\n scrollParent.scrollLeft + scrollParent.clientWidth <\n scrollParent.scrollWidth;\n const canScrollLeft = scrollParent.scrollLeft > 0;\n\n const rightEdge = scrollParentOffset.left + scrollParent.clientWidth;\n const leftEdge = scrollParentOffset.left;\n const isNearRightEdge = positionInfo.pageX > rightEdge - 20;\n const isNearLeftEdge = positionInfo.pageX < leftEdge + 20;\n\n if (isNearRightEdge && canScrollRight) {\n scrollParent.scrollLeft = Math.min(\n scrollParent.scrollLeft + 20,\n scrollParent.scrollWidth\n );\n } else if (isNearLeftEdge && canScrollLeft) {\n scrollParent.scrollLeft = Math.max(scrollParent.scrollLeft - 20, 0);\n }\n }\n\n private handleHorizontalScrollingWithDocument(\n positionInfo: PositionInfo\n ): void {\n if (\n positionInfo.pageX === undefined ||\n positionInfo.pageY === undefined\n ) {\n return;\n }\n\n const $document = jQuery(document);\n\n const scrollLeft = $document.scrollLeft() || 0;\n const windowWidth = jQuery(window).width() || 0;\n\n const canScrollLeft = scrollLeft > 0;\n\n const isNearRightEdge = positionInfo.pageX > windowWidth - 20;\n const isNearLeftEdge = positionInfo.pageX - scrollLeft < 20;\n\n if (isNearRightEdge) {\n $document.scrollLeft(scrollLeft + 20);\n } else if (isNearLeftEdge && canScrollLeft) {\n $document.scrollLeft(Math.max(scrollLeft - 20, 0));\n }\n }\n}\n","import { Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\n\nexport default class SelectNodeHandler {\n private treeWidget: JqTreeWidget;\n private selectedNodes: Set;\n private selectedSingleNode: Node | null;\n\n constructor(treeWidget: JqTreeWidget) {\n this.treeWidget = treeWidget;\n this.selectedNodes = new Set();\n this.clear();\n }\n\n public getSelectedNode(): Node | false {\n const selectedNodes = this.getSelectedNodes();\n\n if (selectedNodes.length) {\n return selectedNodes[0] || false;\n } else {\n return false;\n }\n }\n\n public getSelectedNodes(): Node[] {\n if (this.selectedSingleNode) {\n return [this.selectedSingleNode];\n } else {\n const selectedNodes: Node[] = [];\n\n this.selectedNodes.forEach((id) => {\n const node = this.treeWidget.getNodeById(id);\n if (node) {\n selectedNodes.push(node);\n }\n });\n\n return selectedNodes;\n }\n }\n\n public getSelectedNodesUnder(parent: Node): Node[] {\n if (this.selectedSingleNode) {\n if (parent.isParentOf(this.selectedSingleNode)) {\n return [this.selectedSingleNode];\n } else {\n return [];\n }\n } else {\n const selectedNodes = [];\n\n for (const id in this.selectedNodes) {\n if (\n Object.prototype.hasOwnProperty.call(this.selectedNodes, id)\n ) {\n const node = this.treeWidget.getNodeById(id);\n if (node && parent.isParentOf(node)) {\n selectedNodes.push(node);\n }\n }\n }\n\n return selectedNodes;\n }\n }\n\n public isNodeSelected(node: Node): boolean {\n if (node.id != null) {\n return this.selectedNodes.has(node.id);\n } else if (this.selectedSingleNode) {\n return this.selectedSingleNode.element === node.element;\n } else {\n return false;\n }\n }\n\n public clear(): void {\n this.selectedNodes.clear();\n this.selectedSingleNode = null;\n }\n\n public removeFromSelection(node: Node, includeChildren = false): void {\n if (node.id == null) {\n if (\n this.selectedSingleNode &&\n node.element === this.selectedSingleNode.element\n ) {\n this.selectedSingleNode = null;\n }\n } else {\n this.selectedNodes.delete(node.id);\n\n if (includeChildren) {\n node.iterate(() => {\n if (node.id != null) {\n this.selectedNodes.delete(node.id);\n }\n return true;\n });\n }\n }\n }\n\n public addToSelection(node: Node): void {\n if (node.id != null) {\n this.selectedNodes.add(node.id);\n } else {\n this.selectedSingleNode = node;\n }\n }\n\n public isFocusOnTree(): boolean {\n const activeElement = document.activeElement;\n\n return Boolean(\n activeElement &&\n activeElement.tagName === \"SPAN\" &&\n this.treeWidget._containsElement(activeElement as HTMLElement)\n );\n }\n}\n","import { Position, Node } from \"./node\";\nimport { JqTreeWidget } from \"./tree.jquery\";\nimport { DropHint } from \"./types\";\n\nexport type OnFinishOpenNode = (node: Node) => void;\n\nexport class NodeElement {\n public node: Node;\n public $element: JQuery;\n protected treeWidget: JqTreeWidget;\n\n constructor(node: Node, treeWidget: JqTreeWidget) {\n this.init(node, treeWidget);\n }\n\n public init(node: Node, treeWidget: JqTreeWidget): void {\n this.node = node;\n this.treeWidget = treeWidget;\n\n if (!node.element) {\n const element = this.treeWidget.element.get(0);\n\n if (element) {\n node.element = element;\n }\n }\n\n if (node.element) {\n this.$element = jQuery(node.element);\n }\n }\n\n public addDropHint(position: number): DropHint {\n if (this.mustShowBorderDropHint(position)) {\n return new BorderDropHint(\n this.$element,\n this.treeWidget._getScrollLeft(),\n );\n } else {\n return new GhostDropHint(this.node, this.$element, position);\n }\n }\n\n public select(mustSetFocus: boolean): void {\n const $li = this.getLi();\n\n $li.addClass(\"jqtree-selected\");\n\n const $span = this.getSpan();\n $span.attr(\"tabindex\", this.treeWidget.options.tabIndex ?? null);\n $span.attr(\"aria-selected\", \"true\");\n\n if (mustSetFocus) {\n $span.trigger(\"focus\");\n }\n }\n\n public deselect(): void {\n const $li = this.getLi();\n\n $li.removeClass(\"jqtree-selected\");\n\n const $span = this.getSpan();\n $span.removeAttr(\"tabindex\");\n $span.attr(\"aria-selected\", \"false\");\n\n $span.trigger(\"blur\");\n }\n\n protected getUl(): JQuery {\n return this.$element.children(\"ul:first\");\n }\n\n protected getSpan(): JQuery {\n return this.$element\n .children(\".jqtree-element\")\n .find(\"span.jqtree-title\");\n }\n\n protected getLi(): JQuery {\n return this.$element;\n }\n\n protected mustShowBorderDropHint(position: Position): boolean {\n return position === Position.Inside;\n }\n}\n\nexport class FolderElement extends NodeElement {\n public open(\n onFinished: OnFinishOpenNode | null,\n slide = true,\n animationSpeed: JQuery.Duration = \"fast\",\n ): void {\n if (this.node.is_open) {\n return;\n }\n\n this.node.is_open = true;\n\n const $button = this.getButton();\n $button.removeClass(\"jqtree-closed\");\n $button.html(\"\");\n\n const buttonEl = $button.get(0);\n\n if (buttonEl) {\n const openedIconElement =\n this.treeWidget.renderer.openedIconElement;\n\n if (openedIconElement) {\n const icon = openedIconElement.cloneNode(true);\n buttonEl.appendChild(icon);\n }\n }\n\n const doOpen = (): void => {\n const $li = this.getLi();\n $li.removeClass(\"jqtree-closed\");\n\n const $titleSpan = this.getSpan();\n $titleSpan.attr(\"aria-expanded\", \"true\");\n\n if (onFinished) {\n onFinished(this.node);\n }\n\n this.treeWidget._triggerEvent(\"tree.open\", {\n node: this.node,\n });\n };\n\n if (slide) {\n this.getUl().slideDown(animationSpeed, doOpen);\n } else {\n this.getUl().show();\n doOpen();\n }\n }\n\n public close(\n slide = true,\n animationSpeed: JQuery.Duration | undefined = \"fast\",\n ): void {\n if (!this.node.is_open) {\n return;\n }\n\n this.node.is_open = false;\n\n const $button = this.getButton();\n $button.addClass(\"jqtree-closed\");\n $button.html(\"\");\n\n const buttonEl = $button.get(0);\n\n if (buttonEl) {\n const closedIconElement =\n this.treeWidget.renderer.closedIconElement;\n\n if (closedIconElement) {\n const icon = closedIconElement.cloneNode(true);\n buttonEl.appendChild(icon);\n }\n }\n\n const doClose = (): void => {\n const $li = this.getLi();\n $li.addClass(\"jqtree-closed\");\n\n const $titleSpan = this.getSpan();\n $titleSpan.attr(\"aria-expanded\", \"false\");\n\n this.treeWidget._triggerEvent(\"tree.close\", {\n node: this.node,\n });\n };\n\n if (slide) {\n this.getUl().slideUp(animationSpeed, doClose);\n } else {\n this.getUl().hide();\n doClose();\n }\n }\n\n protected mustShowBorderDropHint(position: Position): boolean {\n return !this.node.is_open && position === Position.Inside;\n }\n\n private getButton(): JQuery {\n return this.$element\n .children(\".jqtree-element\")\n .find(\"a.jqtree-toggler\");\n }\n}\n\nexport class BorderDropHint implements DropHint {\n private $hint: JQuery;\n\n constructor($element: JQuery, scrollLeft: number) {\n const $div = $element.children(\".jqtree-element\");\n\n const elWidth = $element.width() || 0;\n const width = Math.max(elWidth + scrollLeft - 4, 0);\n\n const elHeight = $div.outerHeight() || 0;\n const height = Math.max(elHeight - 4, 0);\n\n this.$hint = jQuery('');\n $div.append(this.$hint);\n\n this.$hint.css({ width, height });\n }\n\n public remove(): void {\n this.$hint.remove();\n }\n}\n\nclass GhostDropHint implements DropHint {\n private $element: JQuery;\n private node: Node;\n private $ghost: JQuery;\n\n constructor(node: Node, $element: JQuery, position: Position) {\n this.$element = $element;\n\n this.node = node;\n this.$ghost = jQuery(\n `\n `,\n );\n\n if (position === Position.After) {\n this.moveAfter();\n } else if (position === Position.Before) {\n this.moveBefore();\n } else if (position === Position.Inside) {\n if (node.isFolder() && node.is_open) {\n this.moveInsideOpenFolder();\n } else {\n this.moveInside();\n }\n }\n }\n\n public remove(): void {\n this.$ghost.remove();\n }\n\n public moveAfter(): void {\n this.$element.after(this.$ghost);\n }\n\n public moveBefore(): void {\n this.$element.before(this.$ghost);\n }\n\n public moveInsideOpenFolder(): void {\n const childElement = this.node.children[0]?.element;\n\n if (childElement) {\n jQuery(childElement).before(this.$ghost);\n }\n }\n\n public moveInside(): void {\n this.$element.after(this.$ghost);\n this.$ghost.addClass(\"jqtree-inside\");\n }\n}\n","import __version__ from \"./version\";\nimport { DragAndDropHandler } from \"./dragAndDropHandler\";\nimport ElementsRenderer from \"./elementsRenderer\";\nimport DataLoader, { HandleFinishedLoading } from \"./dataLoader\";\nimport KeyHandler from \"./keyHandler\";\nimport MouseWidget from \"./mouse.widget\";\nimport { PositionInfo } from \"./types\";\nimport SaveStateHandler, { SavedState } from \"./saveStateHandler\";\nimport ScrollHandler from \"./scrollHandler\";\nimport SelectNodeHandler from \"./selectNodeHandler\";\nimport SimpleWidget from \"./simple.widget\";\nimport { Node, getPosition } from \"./node\";\nimport { isFunction } from \"./util\";\nimport { FolderElement, NodeElement, OnFinishOpenNode } from \"./nodeElement\";\nimport { JQTreeOptions } from \"./jqtreeOptions\";\n\ninterface ClickTarget {\n node: Node;\n type: \"button\" | \"label\";\n}\n\ninterface SelectNodeOptions {\n mustToggle?: boolean;\n mustSetFocus?: boolean;\n}\n\nconst NODE_PARAM_IS_EMPTY = \"Node parameter is empty\";\nconst PARAM_IS_EMPTY = \"Parameter is empty: \";\n\nexport class JqTreeWidget extends MouseWidget {\n protected static defaults: JQTreeOptions = {\n animationSpeed: \"fast\",\n autoEscape: true,\n autoOpen: false, // true / false / int (open n levels starting at 0)\n buttonLeft: true,\n // The symbol to use for a closed node - â–º BLACK RIGHT-POINTING POINTER\n // http://www.fileformat.info/info/unicode/char/25ba/index.htm\n closedIcon: undefined,\n data: undefined,\n dataFilter: undefined,\n dataUrl: undefined,\n dragAndDrop: false,\n keyboardSupport: true,\n nodeClass: Node,\n onCanMove: undefined, // Can this node be moved?\n onCanMoveTo: undefined, // Can this node be moved to this position? function(moved_node, target_node, position)\n onCanSelectNode: undefined,\n onCreateLi: undefined,\n onDragMove: undefined,\n onDragStop: undefined,\n onGetStateFromStorage: undefined,\n onIsMoveHandle: undefined,\n onLoadFailed: undefined,\n onLoading: undefined,\n onSetStateFromStorage: undefined,\n openedIcon: \"▼\",\n openFolderDelay: 500, // The delay for opening a folder during drag and drop; the value is in milliseconds\n // The symbol to use for an open node - â–¼ BLACK DOWN-POINTING TRIANGLE\n // http://www.fileformat.info/info/unicode/char/25bc/index.htm\n rtl: undefined, // right-to-left support; true / false (default)\n saveState: false, // true / false / string (cookie name)\n selectable: true,\n showEmptyFolder: false,\n slide: true, // must display slide animation?\n startDndDelay: 300, // The delay for starting dnd (in milliseconds)\n tabIndex: 0,\n useContextMenu: true,\n };\n\n public element: JQuery;\n public tree: Node;\n public dndHandler: DragAndDropHandler;\n public renderer: ElementsRenderer;\n public dataLoader: DataLoader;\n public scrollHandler: ScrollHandler;\n public selectNodeHandler: SelectNodeHandler;\n\n private isInitialized: boolean;\n private saveStateHandler: SaveStateHandler;\n private keyHandler: KeyHandler;\n\n public toggle(node: Node, slideParam: null | boolean = null): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const slide = slideParam ?? this.options.slide;\n\n if (node.is_open) {\n this.closeNode(node, slide);\n } else {\n this.openNode(node, slide);\n }\n\n return this.element;\n }\n\n public getTree(): Node {\n return this.tree;\n }\n\n public selectNode(\n node: Node | null,\n optionsParam?: SelectNodeOptions\n ): JQuery {\n this.doSelectNode(node, optionsParam);\n return this.element;\n }\n\n public getSelectedNode(): Node | false {\n return this.selectNodeHandler.getSelectedNode();\n }\n\n public toJson(): string {\n return JSON.stringify(this.tree.getData());\n }\n\n public loadData(data: NodeData[], parentNode: Node | null): JQuery {\n this.doLoadData(data, parentNode);\n return this.element;\n }\n\n /*\n signatures:\n - loadDataFromUrl(url, parent_node=null, on_finished=null)\n loadDataFromUrl('/my_data');\n loadDataFromUrl('/my_data', node1);\n loadDataFromUrl('/my_data', node1, function() { console.log('finished'); });\n loadDataFromUrl('/my_data', null, function() { console.log('finished'); });\n\n - loadDataFromUrl(parent_node=null, on_finished=null)\n loadDataFromUrl();\n loadDataFromUrl(node1);\n loadDataFromUrl(null, function() { console.log('finished'); });\n loadDataFromUrl(node1, function() { console.log('finished'); });\n */\n public loadDataFromUrl(\n param1: string | null | Node,\n param2?: Node | null | HandleFinishedLoading,\n param3?: HandleFinishedLoading\n ): JQuery {\n if (typeof param1 === \"string\") {\n // first parameter is url\n this.doLoadDataFromUrl(\n param1,\n param2 as Node | null,\n param3 ?? null\n );\n } else {\n // first parameter is not url\n this.doLoadDataFromUrl(\n null,\n param1,\n param2 as HandleFinishedLoading | null\n );\n }\n\n return this.element;\n }\n\n public reload(onFinished: HandleFinishedLoading | null): JQuery {\n this.doLoadDataFromUrl(null, null, onFinished);\n return this.element;\n }\n\n public refresh(): JQuery {\n this._refreshElements(null);\n return this.element;\n }\n\n public getNodeById(nodeId: NodeId): Node | null {\n return this.tree.getNodeById(nodeId);\n }\n\n public getNodeByName(name: string): Node | null {\n return this.tree.getNodeByName(name);\n }\n\n public getNodeByNameMustExist(name: string): Node {\n return this.tree.getNodeByNameMustExist(name);\n }\n\n public getNodesByProperty(key: string, value: unknown): Node[] {\n return this.tree.getNodesByProperty(key, value);\n }\n\n public getNodeByHtmlElement(\n element: HTMLElement | JQuery\n ): Node | null {\n return this.getNode(jQuery(element));\n }\n\n public getNodeByCallback(callback: (node: Node) => boolean): Node | null {\n return this.tree.getNodeByCallback(callback);\n }\n\n public openNode(\n node: Node,\n param1?: boolean | OnFinishOpenNode,\n param2?: OnFinishOpenNode\n ): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const parseParams = (): [boolean, OnFinishOpenNode | null] => {\n let onFinished: OnFinishOpenNode | null;\n let slide: boolean | null;\n\n if (isFunction(param1)) {\n onFinished = param1 as OnFinishOpenNode | null;\n slide = null;\n } else {\n slide = param1 as boolean;\n onFinished = param2 as OnFinishOpenNode;\n }\n\n if (slide == null) {\n slide = this.options.slide ?? false;\n }\n\n return [slide, onFinished];\n };\n\n const [slide, onFinished] = parseParams();\n\n this._openNode(node, slide, onFinished);\n return this.element;\n }\n\n public closeNode(node: Node, slideParam?: null | boolean): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const slide = slideParam ?? this.options.slide;\n\n if (node.isFolder() || node.isEmptyFolder) {\n new FolderElement(node, this).close(\n slide,\n this.options.animationSpeed\n );\n\n this.saveState();\n }\n\n return this.element;\n }\n\n public isDragging(): boolean {\n return this.dndHandler.isDragging;\n }\n\n public refreshHitAreas(): JQuery {\n this.dndHandler.refresh();\n return this.element;\n }\n\n public addNodeAfter(\n newNodeInfo: NodeData,\n existingNode: Node\n ): Node | null {\n const newNode = existingNode.addAfter(newNodeInfo);\n\n if (newNode) {\n this._refreshElements(existingNode.parent);\n }\n\n return newNode;\n }\n\n public addNodeBefore(\n newNodeInfo: NodeData,\n existingNode: Node\n ): Node | null {\n if (!existingNode) {\n throw Error(PARAM_IS_EMPTY + \"existingNode\");\n }\n\n const newNode = existingNode.addBefore(newNodeInfo);\n\n if (newNode) {\n this._refreshElements(existingNode.parent);\n }\n\n return newNode;\n }\n\n public addParentNode(\n newNodeInfo: NodeData,\n existingNode: Node\n ): Node | null {\n if (!existingNode) {\n throw Error(PARAM_IS_EMPTY + \"existingNode\");\n }\n\n const newNode = existingNode.addParent(newNodeInfo);\n\n if (newNode) {\n this._refreshElements(newNode.parent);\n }\n\n return newNode;\n }\n\n public removeNode(node: Node): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n if (!node.parent) {\n throw Error(\"Node has no parent\");\n }\n\n this.selectNodeHandler.removeFromSelection(node, true); // including children\n\n const parent = node.parent;\n node.remove();\n this._refreshElements(parent);\n\n return this.element;\n }\n\n public appendNode(newNodeInfo: NodeData, parentNodeParam?: Node): Node {\n const parentNode = parentNodeParam || this.tree;\n\n const node = parentNode.append(newNodeInfo);\n\n this._refreshElements(parentNode);\n\n return node;\n }\n\n public prependNode(newNodeInfo: NodeData, parentNodeParam?: Node): Node {\n const parentNode = parentNodeParam ?? this.tree;\n\n const node = parentNode.prepend(newNodeInfo);\n\n this._refreshElements(parentNode);\n\n return node;\n }\n\n public updateNode(node: Node, data: NodeData): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const idIsChanged =\n typeof data === \"object\" && data.id && data.id !== node.id;\n\n if (idIsChanged) {\n this.tree.removeNodeFromIndex(node);\n }\n\n node.setData(data);\n\n if (idIsChanged) {\n this.tree.addNodeToIndex(node);\n }\n\n if (\n typeof data === \"object\" &&\n data[\"children\"] &&\n data[\"children\"] instanceof Array\n ) {\n node.removeChildren();\n\n if (data.children.length) {\n node.loadFromData(data.children as Node[]);\n }\n }\n\n this._refreshElements(node);\n\n return this.element;\n }\n\n private isSelectedNodeInSubtree(subtree: Node): boolean {\n const selectedNode = this.getSelectedNode();\n\n if (!selectedNode) {\n return false;\n } else {\n return subtree === selectedNode || subtree.isParentOf(selectedNode);\n }\n }\n\n public moveNode(node: Node, targetNode: Node, position: string): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n if (!targetNode) {\n throw Error(PARAM_IS_EMPTY + \"targetNode\");\n }\n\n const positionIndex = getPosition(position);\n\n if (positionIndex !== undefined) {\n this.tree.moveNode(node, targetNode, positionIndex);\n this._refreshElements(null);\n }\n\n return this.element;\n }\n\n public getStateFromStorage(): SavedState | null {\n return this.saveStateHandler.getStateFromStorage();\n }\n\n public addToSelection(node: Node, mustSetFocus?: boolean): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n this.selectNodeHandler.addToSelection(node);\n\n this._getNodeElementForNode(node).select(\n mustSetFocus === undefined ? true : mustSetFocus\n );\n\n this.saveState();\n\n return this.element;\n }\n\n public getSelectedNodes(): Node[] {\n return this.selectNodeHandler.getSelectedNodes();\n }\n\n public isNodeSelected(node: Node): boolean {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n return this.selectNodeHandler.isNodeSelected(node);\n }\n\n public removeFromSelection(node: Node): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n this.selectNodeHandler.removeFromSelection(node);\n\n this._getNodeElementForNode(node).deselect();\n this.saveState();\n\n return this.element;\n }\n\n public scrollToNode(node: Node): JQuery {\n if (!node) {\n throw Error(NODE_PARAM_IS_EMPTY);\n }\n\n const nodeOffset = jQuery(node.element).offset();\n const nodeTop = nodeOffset ? nodeOffset.top : 0;\n\n const treeOffset = this.$el.offset();\n const treeTop = treeOffset ? treeOffset.top : 0;\n\n const top = nodeTop - treeTop;\n\n this.scrollHandler.scrollToY(top);\n\n return this.element;\n }\n\n public getState(): SavedState | null {\n return this.saveStateHandler.getState();\n }\n\n public setState(state: SavedState): JQuery {\n this.saveStateHandler.setInitialState(state);\n this._refreshElements(null);\n\n return this.element;\n }\n\n public setOption(option: string, value: unknown): JQuery {\n (this.options as unknown as Record)[option] = value;\n return this.element;\n }\n\n public moveDown(): JQuery {\n const selectedNode = this.getSelectedNode();\n if (selectedNode) {\n this.keyHandler.moveDown(selectedNode);\n }\n\n return this.element;\n }\n\n public moveUp(): JQuery {\n const selectedNode = this.getSelectedNode();\n if (selectedNode) {\n this.keyHandler.moveUp(selectedNode);\n }\n\n return this.element;\n }\n\n public getVersion(): string {\n return __version__;\n }\n\n public _triggerEvent(\n eventName: string,\n values?: Record\n ): JQuery.Event {\n const event = jQuery.Event(eventName, values);\n this.element.trigger(event);\n return event;\n }\n\n public _openNode(\n node: Node,\n slide = true,\n onFinished: OnFinishOpenNode | null\n ): void {\n const doOpenNode = (\n _node: Node,\n _slide: boolean,\n _onFinished: OnFinishOpenNode | null\n ): void => {\n const folderElement = new FolderElement(_node, this);\n folderElement.open(\n _onFinished,\n _slide,\n this.options.animationSpeed\n );\n };\n\n if (node.isFolder() || node.isEmptyFolder) {\n if (node.load_on_demand) {\n this.loadFolderOnDemand(node, slide, onFinished);\n } else {\n let parent = node.parent;\n\n while (parent) {\n // nb: do not open root element\n if (parent.parent) {\n doOpenNode(parent, false, null);\n }\n parent = parent.parent;\n }\n\n doOpenNode(node, slide, onFinished);\n this.saveState();\n }\n }\n }\n\n /*\n Redraw the tree or part of the tree.\n from_node: redraw this subtree\n */\n public _refreshElements(fromNode: Node | null): void {\n const mustSetFocus = this.selectNodeHandler.isFocusOnTree();\n const mustSelect = fromNode\n ? this.isSelectedNodeInSubtree(fromNode)\n : false;\n\n this.renderer.render(fromNode);\n\n if (mustSelect) {\n this.selectCurrentNode(mustSetFocus);\n }\n\n this._triggerEvent(\"tree.refresh\");\n }\n\n public _getNodeElementForNode(node: Node): NodeElement {\n if (node.isFolder()) {\n return new FolderElement(node, this);\n } else {\n return new NodeElement(node, this);\n }\n }\n\n public _getNodeElement($element: JQuery): NodeElement | null {\n const node = this.getNode($element);\n if (node) {\n return this._getNodeElementForNode(node);\n } else {\n return null;\n }\n }\n\n public _containsElement(element: HTMLElement): boolean {\n const node = this.getNode(jQuery(element));\n\n return node != null && node.tree === this.tree;\n }\n\n public _getScrollLeft(): number {\n return this.scrollHandler.getScrollLeft();\n }\n\n public init(): void {\n super.init();\n\n this.element = this.$el;\n this.isInitialized = false;\n\n this.options.rtl = this.getRtlOption();\n\n if (this.options.closedIcon == null) {\n this.options.closedIcon = this.getDefaultClosedIcon();\n }\n\n this.renderer = new ElementsRenderer(this);\n this.dataLoader = new DataLoader(this);\n this.saveStateHandler = new SaveStateHandler(this);\n this.selectNodeHandler = new SelectNodeHandler(this);\n this.dndHandler = new DragAndDropHandler(this);\n this.scrollHandler = new ScrollHandler(this);\n this.keyHandler = new KeyHandler(this);\n\n this.initData();\n\n this.element.on(\"click\", this.handleClick);\n this.element.on(\"dblclick\", this.handleDblclick);\n\n if (this.options.useContextMenu) {\n this.element.on(\"contextmenu\", this.handleContextmenu);\n }\n }\n\n public deinit(): void {\n this.element.empty();\n this.element.off();\n\n this.keyHandler.deinit();\n\n this.tree = new Node({}, true);\n\n super.deinit();\n }\n\n protected mouseCapture(positionInfo: PositionInfo): boolean | null {\n if (this.options.dragAndDrop) {\n return this.dndHandler.mouseCapture(positionInfo);\n } else {\n return false;\n }\n }\n\n protected mouseStart(positionInfo: PositionInfo): boolean {\n if (this.options.dragAndDrop) {\n return this.dndHandler.mouseStart(positionInfo);\n } else {\n return false;\n }\n }\n\n protected mouseDrag(positionInfo: PositionInfo): boolean {\n if (this.options.dragAndDrop) {\n const result = this.dndHandler.mouseDrag(positionInfo);\n\n this.scrollHandler.checkScrolling();\n return result;\n } else {\n return false;\n }\n }\n\n protected mouseStop(positionInfo: PositionInfo): boolean {\n if (this.options.dragAndDrop) {\n return this.dndHandler.mouseStop(positionInfo);\n } else {\n return false;\n }\n }\n\n protected getMouseDelay(): number {\n return this.options.startDndDelay ?? 0;\n }\n\n private initData(): void {\n if (this.options.data) {\n this.doLoadData(this.options.data, null);\n } else {\n const dataUrl = this.getDataUrlInfo(null);\n\n if (dataUrl) {\n this.doLoadDataFromUrl(null, null, null);\n } else {\n this.doLoadData([], null);\n }\n }\n }\n\n private getDataUrlInfo(node: Node | null): JQuery.AjaxSettings | null {\n const dataUrl =\n this.options.dataUrl || (this.element.data(\"url\") as string | null);\n\n const getUrlFromString = (url: string): JQuery.AjaxSettings => {\n const urlInfo: JQuery.AjaxSettings = { url };\n\n setUrlInfoData(urlInfo);\n\n return urlInfo;\n };\n\n const setUrlInfoData = (urlInfo: JQuery.AjaxSettings): void => {\n if (node?.id) {\n // Load on demand of a subtree; add node parameter\n const data = { node: node.id };\n urlInfo[\"data\"] = data;\n } else {\n // Add selected_node parameter\n const selectedNodeId = this.getNodeIdToBeSelected();\n if (selectedNodeId) {\n const data = { selected_node: selectedNodeId };\n urlInfo[\"data\"] = data;\n }\n }\n };\n\n if (typeof dataUrl === \"function\") {\n return dataUrl(node);\n } else if (typeof dataUrl === \"string\") {\n return getUrlFromString(dataUrl);\n } else if (dataUrl && typeof dataUrl === \"object\") {\n setUrlInfoData(dataUrl);\n return dataUrl;\n } else {\n return null;\n }\n }\n\n private getNodeIdToBeSelected(): NodeId | null {\n if (this.options.saveState) {\n return this.saveStateHandler.getNodeIdToBeSelected();\n } else {\n return null;\n }\n }\n\n private initTree(data: NodeData[]): void {\n const doInit = (): void => {\n if (!this.isInitialized) {\n this.isInitialized = true;\n this._triggerEvent(\"tree.init\");\n }\n };\n\n if (!this.options.nodeClass) {\n return;\n }\n\n this.tree = new this.options.nodeClass(\n null,\n true,\n this.options.nodeClass\n );\n\n this.selectNodeHandler.clear();\n\n this.tree.loadFromData(data);\n\n const mustLoadOnDemand = this.setInitialState();\n\n this._refreshElements(null);\n\n if (!mustLoadOnDemand) {\n doInit();\n } else {\n // Load data on demand and then init the tree\n this.setInitialStateOnDemand(doInit);\n }\n }\n\n // Set initial state, either by restoring the state or auto-opening nodes\n // result: must load nodes on demand?\n private setInitialState(): boolean {\n const restoreState = (): [boolean, boolean] => {\n // result: is state restored, must load on demand?\n if (!this.options.saveState) {\n return [false, false];\n } else {\n const state = this.saveStateHandler.getStateFromStorage();\n\n if (!state) {\n return [false, false];\n } else {\n const mustLoadOnDemand =\n this.saveStateHandler.setInitialState(state);\n\n // return true: the state is restored\n return [true, mustLoadOnDemand];\n }\n }\n };\n\n const autoOpenNodes = (): boolean => {\n // result: must load on demand?\n if (this.options.autoOpen === false) {\n return false;\n }\n\n const maxLevel = this.getAutoOpenMaxLevel();\n let mustLoadOnDemand = false;\n\n this.tree.iterate((node: Node, level: number) => {\n if (node.load_on_demand) {\n mustLoadOnDemand = true;\n return false;\n } else if (!node.hasChildren()) {\n return false;\n } else {\n node.is_open = true;\n return level !== maxLevel;\n }\n });\n\n return mustLoadOnDemand;\n };\n\n let [isRestored, mustLoadOnDemand] = restoreState(); // eslint-disable-line prefer-const\n\n if (!isRestored) {\n mustLoadOnDemand = autoOpenNodes();\n }\n\n return mustLoadOnDemand;\n }\n\n // Set the initial state for nodes that are loaded on demand\n // Call cb_finished when done\n private setInitialStateOnDemand(cbFinished: () => void): void {\n const restoreState = (): boolean => {\n if (!this.options.saveState) {\n return false;\n } else {\n const state = this.saveStateHandler.getStateFromStorage();\n\n if (!state) {\n return false;\n } else {\n this.saveStateHandler.setInitialStateOnDemand(\n state,\n cbFinished\n );\n\n return true;\n }\n }\n };\n\n const autoOpenNodes = (): void => {\n const maxLevel = this.getAutoOpenMaxLevel();\n let loadingCount = 0;\n\n const loadAndOpenNode = (node: Node): void => {\n loadingCount += 1;\n this._openNode(node, false, () => {\n loadingCount -= 1;\n openNodes();\n });\n };\n\n const openNodes = (): void => {\n this.tree.iterate((node: Node, level: number) => {\n if (node.load_on_demand) {\n if (!node.is_loading) {\n loadAndOpenNode(node);\n }\n\n return false;\n } else {\n this._openNode(node, false, null);\n\n return level !== maxLevel;\n }\n });\n\n if (loadingCount === 0) {\n cbFinished();\n }\n };\n\n openNodes();\n };\n\n if (!restoreState()) {\n autoOpenNodes();\n }\n }\n\n private getAutoOpenMaxLevel(): number {\n if (this.options.autoOpen === true) {\n return -1;\n } else if (typeof this.options.autoOpen === \"number\") {\n return this.options.autoOpen;\n } else if (typeof this.options.autoOpen === \"string\") {\n return parseInt(this.options.autoOpen, 10);\n } else {\n return 0;\n }\n }\n\n private handleClick = (\n e: JQuery.ClickEvent\n ): void => {\n const clickTarget = this.getClickTarget(e.target);\n\n if (clickTarget) {\n if (clickTarget.type === \"button\") {\n this.toggle(clickTarget.node, this.options.slide);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (clickTarget.type === \"label\") {\n const node = clickTarget.node;\n const event = this._triggerEvent(\"tree.click\", {\n node,\n click_event: e,\n });\n\n if (!event.isDefaultPrevented()) {\n this.doSelectNode(node);\n }\n }\n }\n };\n\n private handleDblclick = (\n e: JQuery.DoubleClickEvent\n ): void => {\n const clickTarget = this.getClickTarget(e.target);\n\n if (clickTarget?.type === \"label\") {\n this._triggerEvent(\"tree.dblclick\", {\n node: clickTarget.node,\n click_event: e,\n });\n }\n };\n\n private getClickTarget(element: EventTarget): ClickTarget | null {\n const $target = jQuery(element);\n\n const $button = $target.closest(\".jqtree-toggler\");\n\n if ($button.length) {\n const node = this.getNode($button as JQuery);\n\n if (node) {\n return {\n type: \"button\",\n node,\n };\n }\n } else {\n const $el = $target.closest(\".jqtree-element\");\n if ($el.length) {\n const node = this.getNode($el as JQuery);\n if (node) {\n return {\n type: \"label\",\n node,\n };\n }\n }\n }\n\n return null;\n }\n\n private getNode($element: JQuery): null | Node {\n const $li = $element.closest(\"li.jqtree_common\");\n if ($li.length === 0) {\n return null;\n } else {\n return $li.data(\"node\") as Node;\n }\n }\n\n private handleContextmenu = (\n e: JQuery.ContextMenuEvent\n ) => {\n const $div = jQuery(e.target).closest(\"ul.jqtree-tree .jqtree-element\");\n if ($div.length) {\n const node = this.getNode($div);\n if (node) {\n e.preventDefault();\n e.stopPropagation();\n\n this._triggerEvent(\"tree.contextmenu\", {\n node,\n click_event: e,\n });\n return false;\n }\n }\n\n return null;\n };\n\n private saveState(): void {\n if (this.options.saveState) {\n this.saveStateHandler.saveState();\n }\n }\n\n private selectCurrentNode(mustSetFocus: boolean): void {\n const node = this.getSelectedNode();\n if (node) {\n const nodeElement = this._getNodeElementForNode(node);\n if (nodeElement) {\n nodeElement.select(mustSetFocus);\n }\n }\n }\n\n private deselectCurrentNode(): void {\n const node = this.getSelectedNode();\n if (node) {\n this.removeFromSelection(node);\n }\n }\n\n private getDefaultClosedIcon(): string {\n if (this.options.rtl) {\n // triangle to the left\n return \"◀\";\n } else {\n // triangle to the right\n return \"►\";\n }\n }\n\n private getRtlOption(): boolean {\n if (this.options.rtl != null) {\n return this.options.rtl;\n } else {\n const dataRtl = this.element.data(\"rtl\") as unknown;\n\n if (\n dataRtl !== null &&\n dataRtl !== false &&\n dataRtl !== undefined\n ) {\n return true;\n } else {\n return false;\n }\n }\n }\n\n private doSelectNode(\n node: Node | null,\n optionsParam?: SelectNodeOptions\n ): void {\n const saveState = (): void => {\n if (this.options.saveState) {\n this.saveStateHandler.saveState();\n }\n };\n\n if (!node) {\n // Called with empty node -> deselect current node\n this.deselectCurrentNode();\n saveState();\n return;\n }\n const defaultOptions = { mustSetFocus: true, mustToggle: true };\n const selectOptions = { ...defaultOptions, ...(optionsParam || {}) };\n\n const canSelect = (): boolean => {\n if (this.options.onCanSelectNode) {\n return (\n this.options.selectable === true &&\n this.options.onCanSelectNode(node)\n );\n } else {\n return this.options.selectable === true;\n }\n };\n\n const openParents = (): void => {\n const parent = node.parent;\n\n if (parent && parent.parent && !parent.is_open) {\n this.openNode(parent, false);\n }\n };\n\n if (!canSelect()) {\n return;\n }\n\n if (this.selectNodeHandler.isNodeSelected(node)) {\n if (selectOptions.mustToggle) {\n this.deselectCurrentNode();\n this._triggerEvent(\"tree.select\", {\n node: null,\n previous_node: node,\n });\n }\n } else {\n const deselectedNode = this.getSelectedNode() || null;\n this.deselectCurrentNode();\n this.addToSelection(node, selectOptions.mustSetFocus);\n\n this._triggerEvent(\"tree.select\", {\n node,\n deselected_node: deselectedNode,\n });\n openParents();\n }\n\n saveState();\n }\n\n private doLoadData(data: NodeData[] | null, parentNode: Node | null): void {\n if (data) {\n if (parentNode) {\n this.deselectNodes(parentNode);\n this.loadSubtree(data, parentNode);\n } else {\n this.initTree(data);\n }\n\n if (this.isDragging()) {\n this.dndHandler.refresh();\n }\n }\n\n this._triggerEvent(\"tree.load_data\", {\n tree_data: data,\n parent_node: parentNode,\n });\n }\n\n private deselectNodes(parentNode: Node): void {\n const selectedNodesUnderParent =\n this.selectNodeHandler.getSelectedNodesUnder(parentNode);\n for (const n of selectedNodesUnderParent) {\n this.selectNodeHandler.removeFromSelection(n);\n }\n }\n\n private loadSubtree(data: NodeData[], parentNode: Node): void {\n parentNode.loadFromData(data);\n\n parentNode.load_on_demand = false;\n parentNode.is_loading = false;\n\n this._refreshElements(parentNode);\n }\n\n private doLoadDataFromUrl(\n urlInfoParam: string | JQuery.AjaxSettings | null,\n parentNode: Node | null,\n onFinished: HandleFinishedLoading | null\n ): void {\n const urlInfo = urlInfoParam || this.getDataUrlInfo(parentNode);\n\n this.dataLoader.loadFromUrl(urlInfo, parentNode, onFinished);\n }\n\n private loadFolderOnDemand(\n node: Node,\n slide = true,\n onFinished: OnFinishOpenNode | null\n ): void {\n node.is_loading = true;\n\n this.doLoadDataFromUrl(null, node, () => {\n this._openNode(node, slide, onFinished);\n });\n }\n}\n\nSimpleWidget.register(JqTreeWidget, \"tree\");\n"],"names":["Position","positionNames","before","Before","after","After","inside","Inside","none","None","getPositionName","position","name","Object","prototype","hasOwnProperty","call","isNodeRecordWithChildren","data","_typeof","Array","Node","o","arguments","length","undefined","isRoot","nodeClass","_classCallCheck","_defineProperty","this","isEmptyFolder","load_on_demand","setData","children","parent","idMapping","Map","tree","_createClass","key","value","removeChildren","_step","_iterator","_createForOfIteratorHelper","s","n","done","node","createNode","addChild","loadFromData","err","e","f","push","setParent","index","splice","doRemoveChild","indexOf","hasChildren","callback","_iterate","level","_step2","_iterator2","child","movedNode","targetNode","isParentOf","addChildAtPosition","getChildIndex","getDataFromNodes","nodes","map","tmpNode","k","v","getNodeByCallback","concat","result","iterate","nodeInfo","childIndex","newParent","_step3","originalParent","_iterator3","removeChild","nodeId","get","id","set","_this","_this$tree","removeNodeFromIndex","previousIndex","nextIndex","filter","nextSibling","getNextSibling","getNextNode","is_open","previousSibling","getPreviousSibling","getLastChild","getParent","lastChild","nodeData","_this2","addChildren","childrenData","_step4","_iterator4","initFromData","_this$tree2","addNodeToIndex","_this$tree3","_this$tree4","getNodeClass","DragAndDropHandler","treeWidget","hoveredArea","hitAreas","isDragging","currentItem","positionInfo","$element","jQuery","target","mustCaptureElement","options","onIsMoveHandle","nodeElement","_getNodeElement","onCanMove","_this$treeWidget$opti","pageX","pageY","refresh","offset","left","top","dragElement","DragElement","element","autoEscape","addClass","move","area","findHoveredArea","canMoveToArea","isFolder","stopOpenFolderTimer","mustOpenFolderTimer","startOpenFolderTimer","updateDropHint","removeDropHint","onDragMove","originalEvent","moveItem","clear","removeHover","removeHitAreas","removeClass","onDragStop","generateHitAreas","_getNodeElementForNode","hitAreasGenerator","HitAreasGenerator","getTreeDimensions","bottom","generate","is","onCanMoveTo","positionName","remove","previousGhost","x","y","dimensions","right","low","high","mid","addDropHint","folder","openFolderDelay","openFolderTimer","window","setTimeout","_openNode","slide","clearTimeout","previousParent","doMove","moveNode","empty","_refreshElements","_triggerEvent","move_info","moved_node","target_node","previous_parent","do_move","original_event","isDefaultPrevented","el","width","height","_getScrollLeft","_VisibleNodeIterator","_inherits","_super","_createSuper","currentNode","treeBottom","_this4","_assertThisInitialized","positions","lastTop","previousTop","group","generateHitAreasForGroup","addPosition","getTop","nextNode","positionsInGroup","positionCount","Math","min","areaHeight","round","areaTop","i","VisibleNodeIterator","_this3","isFirstNode","_iterateNode","mustIterateInside","handleFirstNode","handleOpenFolder","handleClosedFolder","handleNode","childrenLength","forEach","_","nextChild","handleAfterOpenFolder","nodeName","offsetX","offsetY","$tree","text","html","css","append","getBoolString","ElementsRenderer","openedIconElement","createButtonElement","openedIcon","closedIconElement","closedIcon","fromNode","renderFromNode","renderFromRoot","createDomElements","$previousLi","li","createLi","getLevel","attachNodeData","isRootNode","ul","createUl","appendChild","classString","role","rtl","dragAndDrop","document","createElement","className","setAttribute","isSelected","Boolean","selectNodeHandler","isNodeSelected","showEmptyFolder","createFolderLi","createNodeLi","onCreateLi","buttonClasses","getButtonClasses","folderClasses","getFolderClasses","iconElement","div","buttonLink","cloneNode","buttonLeft","titleSpan","createTitleSpan","liClasses","join","classes","tabIndex","setTreeItemAriaAttributes","textContent","innerHTML","is_loading","createTextNode","DataLoader","urlInfo","parentNode","onFinished","$el","getDomElement","addLoadingClass","notifyLoading","stopLoading","removeLoadingClass","submitRequest","loadData","parseData","jqXHR","onLoadFailed","isLoading","onLoading","urlInfoInput","handleSuccess","handleError","_ajaxSettings$method","ajaxSettings","_objectSpread","method","cache","dataType","success","error","url","toUpperCase","ajax","dataFilter","parsedData","JSON","parse","KeyHandler","canHandleKeyboard","selectedNode","getSelectedNode","which","DOWN","moveDown","UP","moveUp","RIGHT","moveRight","LEFT","moveLeft","keyboardSupport","on","handleKeyDown","off","selectNode","getNextVisibleNode","getPreviousVisibleNode","openNode","closeNode","scrollHandler","isScrolledIntoView","find","scrollToNode","isFocusOnTree","register","widgetClass","widgetName","getDataKey","getWidgetData","dataKey","widget","SimpleWidget","createWidget","init","fn","argument1","functionName","destroy","removeData","destroyWidget","_len","args","_key","widgetFunction","apply","callFunction","defaults","constructor","deinit","getPositionInfoFromMouseEvent","getPositionInfoFromTouch","touch","MouseWidget","_SimpleWidget","button","handleMouseDown","cancelable","preventDefault","handleMouseMove","handleMouseUp","touches","changedTouches","addEventListener","mouseDown","passive","touchStart","isMouseStarted","mouseDelayTimer","isMouseDelayMet","mouseDownInfo","removeEventListener","removeMouseMoveEventListeners","mouseCapture","handleStartMouse","mouseMove","touchMove","mouseUp","touchEnd","mouseDelay","getMouseDelay","startMouseDelayTimer","mouseDrag","mouseStart","mouseStop","SaveStateHandler","state","stringify","getState","onSetStateFromStorage","supportsLocalStorage","localStorage","setItem","getKeyName","jsonData","loadFromStorage","parseState","selectedNodeIds","openNodes","open_nodes","selected_node","getSelectedNodes","mustLoadOnDemand","openInitialNodes","resetSelection","selectInitialNodes","cbFinished","doSetInitialStateOnDemand","getStateFromStorage","onGetStateFromStorage","getItem","nodeIds","getNodeById","selectCount","addToSelection","removeFromSelection","nodeIdsParam","selectedNodes","loadingCount","newNodesIds","loadAndOpenNode","saveState","_supportsLocalStorage","sessionStorage","removeItem","testSupport","ScrollHandler","isInitialized","ensureInit","checkVerticalScrolling","checkHorizontalScrolling","$scrollParent","scrollTop","treeTop","elementBottom","viewBottom","elementTop","viewTop","elHeight","scrollParentTop","scrollLeft","_$scrollParent$","setDocumentAsScrollParent","cssAttributes","hasOverFlow","_i","_cssAttributes","attr","overflowValue","parents","getParentWithOverflow","tagName","initScrollParent","scrollParent","offsetHeight","refreshHitAreas","dndHandler","handleVerticalScrollingWithScrollParent","handleVerticalScrollingWithDocument","handleHorizontalScrollingWithParent","handleHorizontalScrollingWithDocument","scrollParentOffset","canScrollRight","clientWidth","scrollWidth","canScrollLeft","rightEdge","leftEdge","isNearRightEdge","isNearLeftEdge","max","$document","windowWidth","SelectNodeHandler","Set","selectedSingleNode","has","includeChildren","add","activeElement","_containsElement","NodeElement","mustShowBorderDropHint","BorderDropHint","GhostDropHint","mustSetFocus","getLi","$span","getSpan","trigger","removeAttr","FolderElement","_NodeElement","animationSpeed","$button","getButton","buttonEl","renderer","icon","doOpen","getUl","slideDown","show","doClose","slideUp","hide","$div","elWidth","outerHeight","$hint","$ghost","moveAfter","moveBefore","moveInsideOpenFolder","moveInside","_this$node$children$","childElement","NODE_PARAM_IS_EMPTY","PARAM_IS_EMPTY","JqTreeWidget","_MouseWidget","clickTarget","getClickTarget","type","toggle","stopPropagation","click_event","doSelectNode","closest","getNode","slideParam","Error","optionsParam","getData","doLoadData","param1","param2","param3","doLoadDataFromUrl","getNodeByName","getNodeByNameMustExist","getNodesByProperty","_parseParams","_this2$options$slide","parseParams","_parseParams2","_slicedToArray","close","newNodeInfo","existingNode","newNode","addAfter","addBefore","addParent","parentNodeParam","prepend","idIsChanged","subtree","positionIndex","saveStateHandler","select","deselect","nodeOffset","nodeTop","treeOffset","scrollToY","setInitialState","option","keyHandler","eventName","values","event","Event","doOpenNode","_node","_slide","_onFinished","open","loadFolderOnDemand","mustSelect","isSelectedNodeInSubtree","render","selectCurrentNode","getScrollLeft","_get","_getPrototypeOf","getRtlOption","getDefaultClosedIcon","dataLoader","initData","handleClick","handleDblclick","useContextMenu","handleContextmenu","checkScrolling","_this$options$startDn","startDndDelay","getDataUrlInfo","dataUrl","setUrlInfoData","selectedNodeId","getNodeIdToBeSelected","_this5","doInit","setInitialStateOnDemand","_this6","_restoreState2","restoreState","isRestored","autoOpen","maxLevel","getAutoOpenMaxLevel","autoOpenNodes","_this7","parseInt","$target","$li","dataRtl","_this8","deselectCurrentNode","selectOptions","mustToggle","onCanSelectNode","selectable","previous_node","deselectedNode","deselected_node","deselectNodes","loadSubtree","initTree","tree_data","parent_node","getSelectedNodesUnder","urlInfoParam","loadFromUrl","_this9"],"mappings":"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"}
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
index b0d3f44f..cd2d7da7 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -11,6 +11,7 @@
"noImplicitAny": true,
"noImplicitReturns": true,
"noImplicitThis": true,
+ "noUncheckedIndexedAccess": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"rootDir": "src",