You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2022/04/09 01:21:54 UTC
[camel-karavan] branch main updated: Tour (#296)
This is an automated email from the ASF dual-hosted git repository.
marat pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
The following commit(s) were added to refs/heads/main by this push:
new 1e03a28 Tour (#296)
1e03a28 is described below
commit 1e03a288fcc35648d664f51a01f76bf8d0ac9850
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Fri Apr 8 21:21:51 2022 -0400
Tour (#296)
* First try
* vscode tour config
* Works in VSCode
---
karavan-designer/package-lock.json | 638 ++++++++++++++-
karavan-designer/package.json | 1 +
karavan-designer/src/App.tsx | 48 +-
karavan-designer/src/designer/KaravanDesigner.tsx | 185 ++---
karavan-designer/src/designer/KaravanTour.tsx | 213 +++++
karavan-designer/src/designer/karavan.css | 15 +
.../src/designer/rest/RestDesigner.tsx | 2 +-
karavan-designer/src/designer/route/DslElement.tsx | 26 +-
.../src/designer/route/DslProperties.tsx | 16 +-
.../src/designer/route/DslSelector.tsx | 7 +-
.../src/designer/route/RouteDesigner.tsx | 82 +-
.../designer/route/property/DslPropertyField.tsx | 1 +
.../route/property/KameletPropertyField.tsx | 1 +
karavan-designer/src/designer/utils/CamelUi.ts | 7 +-
karavan-designer/src/designer/utils/EventBus.ts | 22 +
.../src/designer/utils/KaravanIcons.tsx | 125 ++-
karavan-vscode/package-lock.json | 870 ++++++++++++++++-----
karavan-vscode/package.json | 6 +
karavan-vscode/src/designerView.ts | 9 +
karavan-vscode/src/extension.ts | 1 -
karavan-vscode/src/utils.ts | 9 +-
karavan-vscode/webview/App.tsx | 17 +-
karavan-vscode/webview/index.css | 79 +-
23 files changed, 1884 insertions(+), 496 deletions(-)
diff --git a/karavan-designer/package-lock.json b/karavan-designer/package-lock.json
index 1340a50..1a548f3 100644
--- a/karavan-designer/package-lock.json
+++ b/karavan-designer/package-lock.json
@@ -1,16 +1,17 @@
{
"name": "karavan-designer",
- "version": "0.0.13",
+ "version": "0.0.14",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "karavan-designer",
- "version": "0.0.13",
+ "version": "0.0.14",
"license": "Apache-2.0",
"dependencies": {
"@patternfly/patternfly": "4.171.1",
"@patternfly/react-core": "4.192.7",
+ "@reactour/tour": "^2.10.2",
"@types/js-yaml": "^4.0.5",
"@types/uuid": "8.3.4",
"axios": "^0.25.0",
@@ -32,7 +33,7 @@
}
},
"../karavan-core": {
- "version": "0.0.10",
+ "version": "0.0.14",
"license": "Apache-2.0",
"dependencies": {
"@types/js-yaml": "^4.0.5",
@@ -45,6 +46,7 @@
"@types/dagre": "^0.7.47",
"@types/localforage": "0.0.34",
"@types/mocha": "^9.1.0",
+ "@types/node": "^17.0.23",
"chai": "^4.3.4",
"fs": "^0.0.1-security",
"mocha": "^9.2.0",
@@ -1946,6 +1948,157 @@
"postcss": "^8.3"
}
},
+ "node_modules/@emotion/babel-plugin": {
+ "version": "11.7.2",
+ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.7.2.tgz",
+ "integrity": "sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==",
+ "peer": true,
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.12.13",
+ "@babel/plugin-syntax-jsx": "^7.12.13",
+ "@babel/runtime": "^7.13.10",
+ "@emotion/hash": "^0.8.0",
+ "@emotion/memoize": "^0.7.5",
+ "@emotion/serialize": "^1.0.2",
+ "babel-plugin-macros": "^2.6.1",
+ "convert-source-map": "^1.5.0",
+ "escape-string-regexp": "^4.0.0",
+ "find-root": "^1.1.0",
+ "source-map": "^0.5.7",
+ "stylis": "4.0.13"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@emotion/babel-plugin/node_modules/babel-plugin-macros": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz",
+ "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==",
+ "peer": true,
+ "dependencies": {
+ "@babel/runtime": "^7.7.2",
+ "cosmiconfig": "^6.0.0",
+ "resolve": "^1.12.0"
+ }
+ },
+ "node_modules/@emotion/babel-plugin/node_modules/cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "peer": true,
+ "dependencies": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "peer": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@emotion/cache": {
+ "version": "11.7.1",
+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz",
+ "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==",
+ "peer": true,
+ "dependencies": {
+ "@emotion/memoize": "^0.7.4",
+ "@emotion/sheet": "^1.1.0",
+ "@emotion/utils": "^1.0.0",
+ "@emotion/weak-memoize": "^0.2.5",
+ "stylis": "4.0.13"
+ }
+ },
+ "node_modules/@emotion/hash": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
+ "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==",
+ "peer": true
+ },
+ "node_modules/@emotion/memoize": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz",
+ "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==",
+ "peer": true
+ },
+ "node_modules/@emotion/react": {
+ "version": "11.8.2",
+ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.8.2.tgz",
+ "integrity": "sha512-+1bcHBaNJv5nkIIgnGKVsie3otS0wF9f1T1hteF3WeVvMNQEtfZ4YyFpnphGoot3ilU/wWMgP2SgIDuHLE/wAA==",
+ "peer": true,
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@emotion/babel-plugin": "^11.7.1",
+ "@emotion/cache": "^11.7.1",
+ "@emotion/serialize": "^1.0.2",
+ "@emotion/utils": "^1.1.0",
+ "@emotion/weak-memoize": "^0.2.5",
+ "hoist-non-react-statics": "^3.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0",
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@emotion/serialize": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz",
+ "integrity": "sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==",
+ "peer": true,
+ "dependencies": {
+ "@emotion/hash": "^0.8.0",
+ "@emotion/memoize": "^0.7.4",
+ "@emotion/unitless": "^0.7.5",
+ "@emotion/utils": "^1.0.0",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@emotion/sheet": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.0.tgz",
+ "integrity": "sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==",
+ "peer": true
+ },
+ "node_modules/@emotion/unitless": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
+ "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==",
+ "peer": true
+ },
+ "node_modules/@emotion/utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz",
+ "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==",
+ "peer": true
+ },
+ "node_modules/@emotion/weak-memoize": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz",
+ "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==",
+ "peer": true
+ },
"node_modules/@eslint/eslintrc": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz",
@@ -2832,6 +2985,142 @@
"node": ">= 8"
}
},
+ "node_modules/@react-aria/focus": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.5.0.tgz",
+ "integrity": "sha512-Eib75Q6QgQdn8VVVByg5Vipaaj/C//8Bs++sQY7nkomRx4sdArOnXbDppul3YHP6mRfU9VRLvAigEUlReQF/Xw==",
+ "dependencies": {
+ "@babel/runtime": "^7.6.2",
+ "@react-aria/interactions": "^3.6.0",
+ "@react-aria/utils": "^3.9.0",
+ "@react-types/shared": "^3.9.0",
+ "clsx": "^1.1.1"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/interactions": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.8.3.tgz",
+ "integrity": "sha512-zffWRqhEk4SQNbr5sv3BnMIsmQjtdhXvv3FLn9Ch0HxxGb8VStjrVPEv7r9OtVodab+ThcUehL4NJ8zU/U/4ew==",
+ "dependencies": {
+ "@babel/runtime": "^7.6.2",
+ "@react-aria/utils": "^3.11.3",
+ "@react-types/shared": "^3.11.2"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/ssr": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.1.2.tgz",
+ "integrity": "sha512-amXY11ImpokvkTMeKRHjsSsG7v1yzzs6yeqArCyBIk60J3Yhgxwx9Cah+Uu/804ATFwqzN22AXIo7SdtIaMP+g==",
+ "dependencies": {
+ "@babel/runtime": "^7.6.2"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/utils": {
+ "version": "3.11.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.11.3.tgz",
+ "integrity": "sha512-EH3SyA3FtbhuOj1cgGveiEYidKe3CgGYkP8D57O46rlTWcgTxhGHUEibGeJw3PFXxmbgm5RIOdBo29YwItvtcQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.6.2",
+ "@react-aria/ssr": "^3.1.2",
+ "@react-stately/utils": "^3.4.1",
+ "@react-types/shared": "^3.11.2",
+ "clsx": "^1.1.1"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-stately/utils": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.4.1.tgz",
+ "integrity": "sha512-mjFbKklj/W8KRw1CQSpUJxHd7lhUge4i00NwJTwGxbzmiJgsTWlKKS/1rBf48ey9hUBopXT5x5vG/AxQfWTQug==",
+ "dependencies": {
+ "@babel/runtime": "^7.6.2"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-types/shared": {
+ "version": "3.11.2",
+ "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.11.2.tgz",
+ "integrity": "sha512-MIjjjkFi/DTzMVmeFJJrpc51eS/PLNzLZEv6o/QJPhQ9uOMElYqA790qAcG75u3tR0XGU2Vv9RyeOC7+ppw8/Q==",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1"
+ }
+ },
+ "node_modules/@reactour/mask": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@reactour/mask/-/mask-0.5.0.tgz",
+ "integrity": "sha512-4Gj3exig5wvOsy6kT5cTHUwCcMI5DF43ro+e8cYMVI9l4VdFGjfz7THF8HjDXClQTK3qcCkPqeKMFhRrZ7Uc0Q==",
+ "dependencies": {
+ "@reactour/utils": "*"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11",
+ "react": "16.x || 17.x"
+ }
+ },
+ "node_modules/@reactour/popover": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@reactour/popover/-/popover-0.4.0.tgz",
+ "integrity": "sha512-UQ7QyNZN/kxuesb3bLU01iYyQG5PTN+bZ/PazUak1tC3dey/dTMnsbbKwH0Yjub+5W8F9YnZAmFXylRWE9jsCg==",
+ "dependencies": {
+ "@reactour/utils": "*"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11",
+ "react": "16.x || 17.x"
+ }
+ },
+ "node_modules/@reactour/tour": {
+ "version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@reactour/tour/-/tour-2.10.2.tgz",
+ "integrity": "sha512-AdzSEef37TkpEuCCF8b/XQukytQrcyxBNlz6zTscuI/M+L/KYzhgvhQZmYWaQiOdRQN17ARTGNtFF4P36ujSuw==",
+ "dependencies": {
+ "@react-aria/focus": "3.5.0",
+ "@reactour/mask": "*",
+ "@reactour/popover": "*",
+ "@reactour/utils": "*"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11",
+ "react": "16.x || 17.x"
+ }
+ },
+ "node_modules/@reactour/utils": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@reactour/utils/-/utils-0.3.0.tgz",
+ "integrity": "sha512-3pukl5fY5ju9/4GUykiXbqIQAd2RWDBpo1XKTy9nWndqvn51hL31lGUVAnWakQ+qvJhTA2Jb3RvvHqcWW6ZvCA==",
+ "dependencies": {
+ "@rooks/use-mutation-observer": "4.11.2",
+ "resize-observer-polyfill": "1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": "16.x || 17.x"
+ }
+ },
"node_modules/@rollup/plugin-babel": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz",
@@ -2906,6 +3195,14 @@
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
"integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="
},
+ "node_modules/@rooks/use-mutation-observer": {
+ "version": "4.11.2",
+ "resolved": "https://registry.npmjs.org/@rooks/use-mutation-observer/-/use-mutation-observer-4.11.2.tgz",
+ "integrity": "sha512-vpsdrZdr6TkB1zZJcHx+fR1YC/pHs2BaqcuYiEGjBVbwY5xcC49+h0hAUtQKHth3oJqXfIX/Ng8S7s5HFHdM/A==",
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ }
+ },
"node_modules/@rushstack/eslint-patch": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz",
@@ -5003,6 +5300,14 @@
"wrap-ansi": "^7.0.0"
}
},
+ "node_modules/clsx": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
+ "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -5668,8 +5973,7 @@
"node_modules/csstype": {
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz",
- "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==",
- "dev": true
+ "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA=="
},
"node_modules/dagre": {
"version": "0.8.5",
@@ -7250,6 +7554,12 @@
"url": "https://github.com/avajs/find-cache-dir?sponsor=1"
}
},
+ "node_modules/find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
+ "peer": true
+ },
"node_modules/find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -7291,9 +7601,9 @@
}
},
"node_modules/follow-redirects": {
- "version": "1.14.7",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz",
- "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==",
+ "version": "1.14.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
+ "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==",
"funding": [
{
"type": "individual",
@@ -7822,6 +8132,15 @@
"@babel/runtime": "^7.7.6"
}
},
+ "node_modules/hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "peer": true,
+ "dependencies": {
+ "react-is": "^16.7.0"
+ }
+ },
"node_modules/hoopy": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
@@ -10858,9 +11177,9 @@
}
},
"node_modules/minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"node_modules/mkdirp": {
"version": "0.5.5",
@@ -10934,9 +11253,9 @@
}
},
"node_modules/node-forge": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz",
- "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
+ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
"engines": {
"node": ">= 6.13.0"
}
@@ -13327,6 +13646,11 @@
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
},
+ "node_modules/resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+ },
"node_modules/resolve": {
"version": "1.22.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
@@ -14194,6 +14518,12 @@
"postcss": "^8.2.15"
}
},
+ "node_modules/stylis": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz",
+ "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==",
+ "peer": true
+ },
"node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -17195,6 +17525,135 @@
"postcss-value-parser": "^4.2.0"
}
},
+ "@emotion/babel-plugin": {
+ "version": "11.7.2",
+ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.7.2.tgz",
+ "integrity": "sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==",
+ "peer": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.12.13",
+ "@babel/plugin-syntax-jsx": "^7.12.13",
+ "@babel/runtime": "^7.13.10",
+ "@emotion/hash": "^0.8.0",
+ "@emotion/memoize": "^0.7.5",
+ "@emotion/serialize": "^1.0.2",
+ "babel-plugin-macros": "^2.6.1",
+ "convert-source-map": "^1.5.0",
+ "escape-string-regexp": "^4.0.0",
+ "find-root": "^1.1.0",
+ "source-map": "^0.5.7",
+ "stylis": "4.0.13"
+ },
+ "dependencies": {
+ "babel-plugin-macros": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz",
+ "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==",
+ "peer": true,
+ "requires": {
+ "@babel/runtime": "^7.7.2",
+ "cosmiconfig": "^6.0.0",
+ "resolve": "^1.12.0"
+ }
+ },
+ "cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "peer": true,
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "peer": true
+ }
+ }
+ },
+ "@emotion/cache": {
+ "version": "11.7.1",
+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz",
+ "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==",
+ "peer": true,
+ "requires": {
+ "@emotion/memoize": "^0.7.4",
+ "@emotion/sheet": "^1.1.0",
+ "@emotion/utils": "^1.0.0",
+ "@emotion/weak-memoize": "^0.2.5",
+ "stylis": "4.0.13"
+ }
+ },
+ "@emotion/hash": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
+ "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==",
+ "peer": true
+ },
+ "@emotion/memoize": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz",
+ "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==",
+ "peer": true
+ },
+ "@emotion/react": {
+ "version": "11.8.2",
+ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.8.2.tgz",
+ "integrity": "sha512-+1bcHBaNJv5nkIIgnGKVsie3otS0wF9f1T1hteF3WeVvMNQEtfZ4YyFpnphGoot3ilU/wWMgP2SgIDuHLE/wAA==",
+ "peer": true,
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@emotion/babel-plugin": "^11.7.1",
+ "@emotion/cache": "^11.7.1",
+ "@emotion/serialize": "^1.0.2",
+ "@emotion/utils": "^1.1.0",
+ "@emotion/weak-memoize": "^0.2.5",
+ "hoist-non-react-statics": "^3.3.1"
+ }
+ },
+ "@emotion/serialize": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz",
+ "integrity": "sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==",
+ "peer": true,
+ "requires": {
+ "@emotion/hash": "^0.8.0",
+ "@emotion/memoize": "^0.7.4",
+ "@emotion/unitless": "^0.7.5",
+ "@emotion/utils": "^1.0.0",
+ "csstype": "^3.0.2"
+ }
+ },
+ "@emotion/sheet": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.0.tgz",
+ "integrity": "sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==",
+ "peer": true
+ },
+ "@emotion/unitless": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
+ "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==",
+ "peer": true
+ },
+ "@emotion/utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz",
+ "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==",
+ "peer": true
+ },
+ "@emotion/weak-memoize": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz",
+ "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==",
+ "peer": true
+ },
"@eslint/eslintrc": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz",
@@ -17833,6 +18292,98 @@
}
}
},
+ "@react-aria/focus": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.5.0.tgz",
+ "integrity": "sha512-Eib75Q6QgQdn8VVVByg5Vipaaj/C//8Bs++sQY7nkomRx4sdArOnXbDppul3YHP6mRfU9VRLvAigEUlReQF/Xw==",
+ "requires": {
+ "@babel/runtime": "^7.6.2",
+ "@react-aria/interactions": "^3.6.0",
+ "@react-aria/utils": "^3.9.0",
+ "@react-types/shared": "^3.9.0",
+ "clsx": "^1.1.1"
+ }
+ },
+ "@react-aria/interactions": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.8.3.tgz",
+ "integrity": "sha512-zffWRqhEk4SQNbr5sv3BnMIsmQjtdhXvv3FLn9Ch0HxxGb8VStjrVPEv7r9OtVodab+ThcUehL4NJ8zU/U/4ew==",
+ "requires": {
+ "@babel/runtime": "^7.6.2",
+ "@react-aria/utils": "^3.11.3",
+ "@react-types/shared": "^3.11.2"
+ }
+ },
+ "@react-aria/ssr": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.1.2.tgz",
+ "integrity": "sha512-amXY11ImpokvkTMeKRHjsSsG7v1yzzs6yeqArCyBIk60J3Yhgxwx9Cah+Uu/804ATFwqzN22AXIo7SdtIaMP+g==",
+ "requires": {
+ "@babel/runtime": "^7.6.2"
+ }
+ },
+ "@react-aria/utils": {
+ "version": "3.11.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.11.3.tgz",
+ "integrity": "sha512-EH3SyA3FtbhuOj1cgGveiEYidKe3CgGYkP8D57O46rlTWcgTxhGHUEibGeJw3PFXxmbgm5RIOdBo29YwItvtcQ==",
+ "requires": {
+ "@babel/runtime": "^7.6.2",
+ "@react-aria/ssr": "^3.1.2",
+ "@react-stately/utils": "^3.4.1",
+ "@react-types/shared": "^3.11.2",
+ "clsx": "^1.1.1"
+ }
+ },
+ "@react-stately/utils": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.4.1.tgz",
+ "integrity": "sha512-mjFbKklj/W8KRw1CQSpUJxHd7lhUge4i00NwJTwGxbzmiJgsTWlKKS/1rBf48ey9hUBopXT5x5vG/AxQfWTQug==",
+ "requires": {
+ "@babel/runtime": "^7.6.2"
+ }
+ },
+ "@react-types/shared": {
+ "version": "3.11.2",
+ "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.11.2.tgz",
+ "integrity": "sha512-MIjjjkFi/DTzMVmeFJJrpc51eS/PLNzLZEv6o/QJPhQ9uOMElYqA790qAcG75u3tR0XGU2Vv9RyeOC7+ppw8/Q==",
+ "requires": {}
+ },
+ "@reactour/mask": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@reactour/mask/-/mask-0.5.0.tgz",
+ "integrity": "sha512-4Gj3exig5wvOsy6kT5cTHUwCcMI5DF43ro+e8cYMVI9l4VdFGjfz7THF8HjDXClQTK3qcCkPqeKMFhRrZ7Uc0Q==",
+ "requires": {
+ "@reactour/utils": "*"
+ }
+ },
+ "@reactour/popover": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@reactour/popover/-/popover-0.4.0.tgz",
+ "integrity": "sha512-UQ7QyNZN/kxuesb3bLU01iYyQG5PTN+bZ/PazUak1tC3dey/dTMnsbbKwH0Yjub+5W8F9YnZAmFXylRWE9jsCg==",
+ "requires": {
+ "@reactour/utils": "*"
+ }
+ },
+ "@reactour/tour": {
+ "version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@reactour/tour/-/tour-2.10.2.tgz",
+ "integrity": "sha512-AdzSEef37TkpEuCCF8b/XQukytQrcyxBNlz6zTscuI/M+L/KYzhgvhQZmYWaQiOdRQN17ARTGNtFF4P36ujSuw==",
+ "requires": {
+ "@react-aria/focus": "3.5.0",
+ "@reactour/mask": "*",
+ "@reactour/popover": "*",
+ "@reactour/utils": "*"
+ }
+ },
+ "@reactour/utils": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@reactour/utils/-/utils-0.3.0.tgz",
+ "integrity": "sha512-3pukl5fY5ju9/4GUykiXbqIQAd2RWDBpo1XKTy9nWndqvn51hL31lGUVAnWakQ+qvJhTA2Jb3RvvHqcWW6ZvCA==",
+ "requires": {
+ "@rooks/use-mutation-observer": "4.11.2",
+ "resize-observer-polyfill": "1.5.1"
+ }
+ },
"@rollup/plugin-babel": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz",
@@ -17881,6 +18432,12 @@
}
}
},
+ "@rooks/use-mutation-observer": {
+ "version": "4.11.2",
+ "resolved": "https://registry.npmjs.org/@rooks/use-mutation-observer/-/use-mutation-observer-4.11.2.tgz",
+ "integrity": "sha512-vpsdrZdr6TkB1zZJcHx+fR1YC/pHs2BaqcuYiEGjBVbwY5xcC49+h0hAUtQKHth3oJqXfIX/Ng8S7s5HFHdM/A==",
+ "requires": {}
+ },
"@rushstack/eslint-patch": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz",
@@ -19487,6 +20044,11 @@
"wrap-ansi": "^7.0.0"
}
},
+ "clsx": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
+ "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA=="
+ },
"co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -19958,8 +20520,7 @@
"csstype": {
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz",
- "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==",
- "dev": true
+ "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA=="
},
"dagre": {
"version": "0.8.5",
@@ -21139,6 +21700,12 @@
"pkg-dir": "^4.1.0"
}
},
+ "find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
+ "peer": true
+ },
"find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -21171,9 +21738,9 @@
}
},
"follow-redirects": {
- "version": "1.14.7",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz",
- "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ=="
+ "version": "1.14.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
+ "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="
},
"fork-ts-checker-webpack-plugin": {
"version": "6.5.0",
@@ -21530,6 +22097,15 @@
"@babel/runtime": "^7.7.6"
}
},
+ "hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "peer": true,
+ "requires": {
+ "react-is": "^16.7.0"
+ }
+ },
"hoopy": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
@@ -23437,6 +24013,7 @@
"@types/js-yaml": "^4.0.5",
"@types/localforage": "0.0.34",
"@types/mocha": "^9.1.0",
+ "@types/node": "^17.0.23",
"@types/uuid": "^8.3.4",
"chai": "^4.3.4",
"fs": "^0.0.1-security",
@@ -23735,9 +24312,9 @@
}
},
"minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"mkdirp": {
"version": "0.5.5",
@@ -23796,9 +24373,9 @@
}
},
"node-forge": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz",
- "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w=="
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
+ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA=="
},
"node-int64": {
"version": "0.4.0",
@@ -25401,6 +25978,11 @@
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
},
+ "resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+ },
"resolve": {
"version": "1.22.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
@@ -26037,6 +26619,12 @@
"postcss-selector-parser": "^6.0.4"
}
},
+ "stylis": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz",
+ "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==",
+ "peer": true
+ },
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
diff --git a/karavan-designer/package.json b/karavan-designer/package.json
index c0a8aa6..2a5554f 100644
--- a/karavan-designer/package.json
+++ b/karavan-designer/package.json
@@ -28,6 +28,7 @@
"dependencies": {
"@patternfly/patternfly": "4.171.1",
"@patternfly/react-core": "4.192.7",
+ "@reactour/tour": "^2.10.2",
"@types/js-yaml": "^4.0.5",
"@types/uuid": "8.3.4",
"axios": "^0.25.0",
diff --git a/karavan-designer/src/App.tsx b/karavan-designer/src/App.tsx
index e426ae8..e078a66 100644
--- a/karavan-designer/src/App.tsx
+++ b/karavan-designer/src/App.tsx
@@ -21,6 +21,7 @@ import {
import {KameletApi} from "karavan-core/lib/api/KameletApi";
import {ComponentApi} from "karavan-core/lib/api/ComponentApi";
import {KaravanDesigner} from "./designer/KaravanDesigner";
+import {TourProvider, useTour} from "@reactour/tour";
interface Props {
}
@@ -36,27 +37,29 @@ class App extends React.Component<Props, State> {
public state: State = {
name: 'demo.yaml',
key: '',
- yaml: 'apiVersion: camel.apache.org/v1\n' +
- 'kind: Integration\n' +
- 'metadata:\n' +
- ' name: postman.yaml\n' +
- 'spec:\n' +
- ' flows:\n' +
- ' - route:\n' +
- ' from:\n' +
- ' uri: direct:post\n' +
- ' steps:\n' +
- ' - log:\n' +
- ' message: \'Received: ${body}\'\n' +
- ' - log:\n' +
- ' message: \'Received: ${body}\'\n' +
- ' - log:\n' +
- ' message: \'Received: ${body}\'\n' +
- ' - to:\n' +
- ' uri: kamelet:kafka-sink\n' +
- ' parameters:\n' +
- ' topic: topic1\n' +
- ' id: post\n'
+ yaml:
+ // 'apiVersion: camel.apache.org/v1\n' +
+ // 'kind: Integration\n' +
+ // 'metadata:\n' +
+ // ' name: postman.yaml\n' +
+ // 'spec:\n' +
+ // ' flows:\n' +
+ // ' - route:\n' +
+ // ' from:\n' +
+ // ' uri: direct:post\n' +
+ // ' steps:\n' +
+ // ' - log:\n' +
+ // ' message: \'Received: ${body}\'\n' +
+ // ' - log:\n' +
+ // ' message: \'Received: ${body}\'\n' +
+ // ' - log:\n' +
+ // ' message: \'Received: ${body}\'\n' +
+ // ' - to:\n' +
+ // ' uri: kamelet:kafka-sink\n' +
+ // ' parameters:\n' +
+ // ' topic: topic1\n' +
+ // ' id: post\n' +
+ ''
};
componentDidMount() {
@@ -66,6 +69,7 @@ class App extends React.Component<Props, State> {
"http-secured-source.kamelet.yaml",
"http-sink.kamelet.yaml",
"http-source.kamelet.yaml",
+ "mqtt-source.kamelet.yaml",
"insert-header-action.kamelet.yaml",
"kafka-not-secured-sink.kamelet.yaml",
"kafka-not-secured-source.kamelet.yaml",
@@ -111,7 +115,7 @@ class App extends React.Component<Props, State> {
<KaravanDesigner key={this.state.key} filename={this.state.name} yaml={this.state.yaml}
onSave={(filename, yaml, propertyOnly) => this.save(filename, yaml, propertyOnly)}
dark={document.body.className.includes('vscode-dark')}
- />
+ showStartHelp={true}/>
</Page>
);
}
diff --git a/karavan-designer/src/designer/KaravanDesigner.tsx b/karavan-designer/src/designer/KaravanDesigner.tsx
index 73dfa34..c3840df 100644
--- a/karavan-designer/src/designer/KaravanDesigner.tsx
+++ b/karavan-designer/src/designer/KaravanDesigner.tsx
@@ -16,8 +16,8 @@
*/
import React from 'react';
import {
- Badge,
- PageSection, PageSectionVariants, Tab, Tabs, TabTitleIcon, TabTitleText, Tooltip,
+ Badge, Button, Checkbox, Modal, ModalVariant,
+ PageSection, PageSectionVariants, Tab, Tabs, TabTitleIcon, TabTitleText, Title, Tooltip,
} from '@patternfly/react-core';
import './karavan.css';
import {RouteDesigner} from "./route/RouteDesigner";
@@ -28,23 +28,31 @@ import {CamelUi} from "./utils/CamelUi";
import {BeansDesigner} from "./beans/BeansDesigner";
import {RestDesigner} from "./rest/RestDesigner";
import {ErrorDesigner} from "./error/ErrorDesigner";
-import {TemplatesDesigner} from "./templates/TemplatesDesigner";
import {ExceptionDesigner} from "./exception/ExceptionDesigner";
import {DependenciesDesigner} from "./dependencies/DependenciesDesigner";
import {TraitsDesigner} from "./traits/TraitsDesigner";
+import KaravanTour from "./KaravanTour";
+import WandIcon from "@patternfly/react-icons/dist/js/icons/magic-icon";
+import {getDesignerIcon} from "./utils/KaravanIcons";
interface Props {
onSave?: (filename: string, yaml: string, propertyOnly: boolean) => void
+ onDisableHelp?: () => void
filename: string
yaml: string
dark: boolean
+ showStartHelp: boolean
}
interface State {
- tab: string,
- integration: Integration,
+ tab: string
+ integration: Integration
key: string
propertyOnly: boolean
+ showTour: boolean
+ showStartHelp: boolean
+ cancelTour: boolean
+ write: boolean
}
export class KaravanDesigner extends React.Component<Props, State> {
@@ -55,17 +63,21 @@ export class KaravanDesigner extends React.Component<Props, State> {
? CamelDefinitionYaml.yamlToIntegration(this.props.filename, this.props.yaml)
: Integration.createNew(this.props.filename),
key: "",
- propertyOnly: false
+ propertyOnly: false,
+ showTour: false,
+ showStartHelp: this.props.showStartHelp,
+ cancelTour: false,
+ write: true
};
componentDidUpdate = (prevProps: Readonly<Props>, prevState: Readonly<State>, snapshot?: any) => {
- if (prevState.key !== this.state.key) {
+ if (prevState.key !== this.state.key && this.state.write === true) {
this.props.onSave?.call(this, this.props.filename, this.getCode(this.state.integration), this.state.propertyOnly);
}
}
- save = (integration: Integration, propertyOnly: boolean): void => {
- this.setState({key: Math.random().toString(), integration: integration, propertyOnly: propertyOnly});
+ save = (integration: Integration, propertyOnly: boolean, write: boolean = true): void => {
+ this.setState({key: Math.random().toString(), integration: integration, propertyOnly: propertyOnly, write: write});
}
getCode = (integration: Integration): string => {
@@ -81,7 +93,7 @@ export class KaravanDesigner extends React.Component<Props, State> {
<Tooltip position={"bottom"}
content={<div>{tooltip}</div>}>
<div className="top-menu-item">
- <TabTitleIcon>{this.getIcon(icon)}</TabTitleIcon>
+ <TabTitleIcon>{getDesignerIcon(icon)}</TabTitleIcon>
<TabTitleText>{title}</TabTitleText>
{showCount && <Badge isRead className="count">{counts.get(icon)}</Badge>}
</div>
@@ -90,134 +102,41 @@ export class KaravanDesigner extends React.Component<Props, State> {
)
}
- getIcon(icon: string) {
- if (icon === 'routes') return (
- <svg className="top-icon" width="32px" height="32px" viewBox="0 0 32 32" id="icon">
- <defs>
- <style>{".cls-1{fill:none;}"}</style>
- </defs>
- <path d="M29,10H24v2h5v6H22v2h3v2.142a4,4,0,1,0,2,0V20h2a2.0027,2.0027,0,0,0,2-2V12A2.0023,2.0023,0,0,0,29,10ZM28,26a2,2,0,1,1-2-2A2.0027,2.0027,0,0,1,28,26Z"/>
- <path d="M19,6H14V8h5v6H12v2h3v6.142a4,4,0,1,0,2,0V16h2a2.0023,2.0023,0,0,0,2-2V8A2.0023,2.0023,0,0,0,19,6ZM18,26a2,2,0,1,1-2-2A2.0027,2.0027,0,0,1,18,26Z"/>
- <path
- d="M9,2H3A2.002,2.002,0,0,0,1,4v6a2.002,2.002,0,0,0,2,2H5V22.142a4,4,0,1,0,2,0V12H9a2.002,2.002,0,0,0,2-2V4A2.002,2.002,0,0,0,9,2ZM8,26a2,2,0,1,1-2-2A2.0023,2.0023,0,0,1,8,26ZM3,10V4H9l.0015,6Z"/>
- <rect id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>" className="cls-1" width="32" height="32"/>
- </svg>)
- if (icon === 'rest') return (
- <svg className="top-icon" viewBox="0 0 32 32">
- <g className="layer">
- <title>Layer 1</title>
- <path
- d="m23.50007,22l-0.5,0l0,-2l0.5,0a4.4975,4.4975 0 0 0 0.3564,-8.981l-0.8154,-0.0639l-0.0986,-0.812a6.9938,6.9938 0 0 0 -13.8838,0l-0.0991,0.812l-0.8155,0.0639a4.4975,4.4975 0 0 0 0.356,8.981l0.5,0l0,2l-0.5,0a6.4973,6.4973 0 0 1 -1.3,-12.8638a8.9943,8.9943 0 0 1 17.6006,0a6.4974,6.4974 0 0 1 -1.3006,12.8638z"
- id="svg_1"/>
- <path
- d="m22.9724,22.26637l0,-2l-2.1011,0a4.9678,4.9678 0 0 0 -0.7319,-1.7529l1.49,-1.49l-1.414,-1.414l-1.49,1.49a4.9678,4.9678 0 0 0 -1.753,-0.732l0,-2.1011l-2,0l0,2.1011a4.9678,4.9678 0 0 0 -1.7529,0.7319l-1.49,-1.49l-1.414,1.414l1.49,1.49a4.9678,4.9678 0 0 0 -0.732,1.753l-2.1011,0l0,2l2.1011,0a4.9678,4.9678 0 0 0 0.7319,1.7529l-1.49,1.49l1.414,1.414l1.49,-1.49a4.9678,4.9678 0 0 0 1.753,0.732l0,2.1011l2,0l0,-2.1011a4.9678,4.9678 0 0 0 1.7529,-0.7319l1.49,1.49l1.414,-1 [...]
- id="svg_2" transform="rotate(25 15.9724 21.2664)" xmlns="http://www.w3.org/2000/svg"/>
- </g>
- </svg>
- )
- if (icon === 'beans') return (
- <svg className="top-icon" width="32px" height="32px" viewBox="0 0 32 32" id="icon">
- <defs>
- <style>{".cls-1 {fill: none;}"}</style>
- </defs>
- <title>data--1</title>
- <rect x="15" y="6" width="13" height="2"/>
- <rect x="15" y="24" width="13" height="2"/>
- <rect x="4" y="15" width="13" height="2"/>
- <path d="M7,11a4,4,0,1,1,4-4A4,4,0,0,1,7,11ZM7,5A2,2,0,1,0,9,7,2,2,0,0,0,7,5Z" transform="translate(0 0)"/>
- <path d="M7,29a4,4,0,1,1,4-4A4,4,0,0,1,7,29Zm0-6a2,2,0,1,0,2,2A2,2,0,0,0,7,23Z" transform="translate(0 0)"/>
- <path d="M25,20a4,4,0,1,1,4-4A4,4,0,0,1,25,20Zm0-6a2,2,0,1,0,2,2A2,2,0,0,0,25,14Z" transform="translate(0 0)"/>
- <g id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>">
- <rect className="cls-1" width="32" height="32"/>
- </g>
- </svg>
- )
- if (icon === 'dependencies') return (
- <svg className="top-icon" width="32px" height="32px" viewBox="0 0 32 32" id="icon">
- <defs>
- <style>{".cls-1 {fill: none;}"}</style>
- </defs>
- <title>application</title>
- <path d="M16,18H6a2,2,0,0,1-2-2V6A2,2,0,0,1,6,4H16a2,2,0,0,1,2,2V16A2,2,0,0,1,16,18ZM6,6V16H16V6Z" transform="translate(0 0)"/>
- <path d="M26,12v4H22V12h4m0-2H22a2,2,0,0,0-2,2v4a2,2,0,0,0,2,2h4a2,2,0,0,0,2-2V12a2,2,0,0,0-2-2Z" transform="translate(0 0)"/>
- <path d="M26,22v4H22V22h4m0-2H22a2,2,0,0,0-2,2v4a2,2,0,0,0,2,2h4a2,2,0,0,0,2-2V22a2,2,0,0,0-2-2Z" transform="translate(0 0)"/>
- <path d="M16,22v4H12V22h4m0-2H12a2,2,0,0,0-2,2v4a2,2,0,0,0,2,2h4a2,2,0,0,0,2-2V22a2,2,0,0,0-2-2Z" transform="translate(0 0)"/>
- <g id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>">
- <rect className="cls-1" width="32" height="32"/>
- </g>
- </svg>
- )
- if (icon === 'error') return (
- <svg className="top-icon" width="36px" height="36px" viewBox="0 0 36 36" version="1.1" preserveAspectRatio="xMidYMid meet">
- <circle className="clr-i-outline clr-i-outline-path-1" cx="18" cy="26.06" r="1.33"/>
- <path className="clr-i-outline clr-i-outline-path-2" d="M18,22.61a1,1,0,0,1-1-1v-12a1,1,0,1,1,2,0v12A1,1,0,0,1,18,22.61Z"/>
- <path className="clr-i-outline clr-i-outline-path-3" d="M18,34A16,16,0,1,1,34,18,16,16,0,0,1,18,34ZM18,4A14,14,0,1,0,32,18,14,14,0,0,0,18,4Z"/>
- <rect x="0" y="0" width="36" height="36" fillOpacity="0"/>
- </svg>)
- if (icon === 'exception') return (
- <svg className="top-icon" width="32px" height="32px" viewBox="0 0 32 32" id="icon">
- <defs>
- <style>{".cls-1{fill:none;}"}</style>
- </defs>
- <title>misuse--alt</title>
- <polygon points="21.41 23 16 17.591 10.59 23 9 21.41 14.409 16 9 10.591 10.591 9 16 14.409 21.409 9 23 10.591 17.591 16 23 21.41 21.41 23"/>
- <path d="M16,4A12,12,0,1,1,4,16,12.0136,12.0136,0,0,1,16,4m0-2A14,14,0,1,0,30,16,14,14,0,0,0,16,2Z" transform="translate(0)"/>
- <rect id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>" className="cls-1" width="32" height="32"/>
- </svg>)
- if (icon === 'template') return (
- <svg className="top-icon" width="32px" height="32px" viewBox="0 0 32 32" id="icon" xmlns="http://www.w3.org/2000/svg">
- <defs>
- <style>{".cls-1{fill:none;}"}</style>
- </defs>
- <title>code</title>
- <polygon points="31 16 24 23 22.59 21.59 28.17 16 22.59 10.41 24 9 31 16"/>
- <polygon points="1 16 8 9 9.41 10.41 3.83 16 9.41 21.59 8 23 1 16"/>
- <rect x="5.91" y="15" width="20.17" height="2" transform="translate(-3.6 27.31) rotate(-75)"/>
- <rect id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>" className="cls-1" width="32" height="32" transform="translate(0 32) rotate(-90)"/>
- </svg>)
- if (icon === 'traits') return (
- <svg className="top-icon" width="32px" height="32px" viewBox="0 0 32 32" id="icon">
- <defs>
- <style>{".cls-1{fill:none;}"}</style>
- </defs>
- <title>settings</title>
- <path
- d="M27,16.76c0-.25,0-.5,0-.76s0-.51,0-.77l1.92-1.68A2,2,0,0,0,29.3,11L26.94,7a2,2,0,0,0-1.73-1,2,2,0,0,0-.64.1l-2.43.82a11.35,11.35,0,0,0-1.31-.75l-.51-2.52a2,2,0,0,0-2-1.61H13.64a2,2,0,0,0-2,1.61l-.51,2.52a11.48,11.48,0,0,0-1.32.75L7.43,6.06A2,2,0,0,0,6.79,6,2,2,0,0,0,5.06,7L2.7,11a2,2,0,0,0,.41,2.51L5,15.24c0,.25,0,.5,0,.76s0,.51,0,.77L3.11,18.45A2,2,0,0,0,2.7,21L5.06,25a2,2,0,0,0,1.73,1,2,2,0,0,0,.64-.1l2.43-.82a11.35,11.35,0,0,0,1.31.75l.51,2.52a2,2,0,0,0,2,1.61h4 [...]
- transform="translate(0 0)"/>
- <path d="M16,22a6,6,0,1,1,6-6A5.94,5.94,0,0,1,16,22Zm0-10a3.91,3.91,0,0,0-4,4,3.91,3.91,0,0,0,4,4,3.91,3.91,0,0,0,4-4A3.91,3.91,0,0,0,16,12Z"
- transform="translate(0 0)"/>
- <rect id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>" className="cls-1" width="32" height="32"/>
- </svg>)
- if (icon === 'yaml') return (
- <svg className="top-icon" x="0px" y="0px" width="32px" height="32px"
- viewBox="0 0 32 32">
- <style type="text/css">{".st0{fill:none;}"}</style>
- <title>document</title>
- <path
- d="M25.7,9.3l-7-7C18.5,2.1,18.3,2,18,2H8C6.9,2,6,2.9,6,4v24c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V10C26,9.7,25.9,9.5,25.7,9.3 z M18,4.4l5.6,5.6H18V4.4z M24,28H8V4h8v6c0,1.1,0.9,2,2,2h6V28z"/>
- <rect x="10" y="22" width="12" height="2"/>
- <rect x="10" y="16" width="12" height="2"/>
- <rect className="st0" width="32" height="32"/>
- </svg>)
- if (icon === 'code') return (
- <svg className="top-icon" width="32px" height="32px" viewBox="0 0 32 32" id="icon">
- <defs>
- <style>{".cls-1{fill:none;}"}</style>
- </defs>
- <title>code</title>
- <polygon points="31 16 24 23 22.59 21.59 28.17 16 22.59 10.41 24 9 31 16"/>
- <polygon points="1 16 8 9 9.41 10.41 3.83 16 9.41 21.59 8 23 1 16"/>
- <rect x="5.91" y="15" width="20.17" height="2" transform="translate(-3.6 27.31) rotate(-75)"/>
- <rect id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>" className="cls-1" width="32" height="32" transform="translate(0 32) rotate(-90)"/>
- </svg>)
+ closeHelpWindow(showTour: boolean){
+ this.setState({showStartHelp: false, showTour: showTour});
+ if (this.state.cancelTour) this.props.onDisableHelp?.call(this);
+ }
+
+ getHelpWindow() {
+ const show = this.state.showStartHelp && this.state.integration.spec.flows?.filter(f => f.dslName === 'RouteDefinition').length === 0;
+ return (<Modal
+ className="modal-help"
+ title="Welcome to Karavan!"
+ header={<div style={{display:"flex"}}><WandIcon style={{marginTop:"auto", marginBottom:"auto", marginRight:"10px"}}/><Title headingLevel={"h2"}>Welcome to Karavan!</Title></div>}
+ variant={ModalVariant.small}
+ isOpen={show}
+ onClose={() => this.closeHelpWindow(false)}
+ actions={[
+ <Checkbox className="dont-show" label="Don't show again" isChecked={this.state.cancelTour} onChange={checked => this.setState({cancelTour: checked})} aria-label="Don't show again" id="dont-show"/>,
+ <Button variant={"secondary"} isSmall onClick={e => this.closeHelpWindow(false)}>Skip tour</Button>,
+ <Button autoFocus={true} variant={"primary"} isSmall onClick={e => this.closeHelpWindow(true)}>Get started</Button>
+ ]}
+ onEscapePress={e => this.closeHelpWindow(false)}>
+ Get started with a tour of the key areas that can help you complete integration and be more productive.
+ </Modal>)
}
render() {
const tab = this.state.tab;
return (
<PageSection variant={this.props.dark ? PageSectionVariants.darker : PageSectionVariants.light} className="page" isFilled padding={{default: 'noPadding'}}>
+ {this.state.showTour && <KaravanTour tab="routes"
+ integration={this.state.integration}
+ onSave={(integration, propertyOnly, write) => this.save(integration, propertyOnly, write)}
+ showTour={this.state.showTour}
+ onClose={() => this.setState({showTour: false})} />}
<Tabs className="main-tabs" activeKey={tab} onSelect={(event, tabIndex) => this.setState({tab: tabIndex.toString()})} style={{width: "100%"}}>
- <Tab eventKey='routes' title={this.getTab("Routes", "Integration flows", "routes")}></Tab>
+ <Tab data-tour="routes" eventKey='routes' title={this.getTab("Routes", "Integration flows", "routes")}></Tab>
<Tab eventKey='rest' title={this.getTab("REST", "REST services", "rest")}></Tab>
<Tab eventKey='beans' title={this.getTab("Beans", "Beans Configuration", "beans")}></Tab>
<Tab eventKey='dependencies' title={this.getTab("Dependencies", "Dependencies", "dependencies")}></Tab>
@@ -227,6 +146,7 @@ export class KaravanDesigner extends React.Component<Props, State> {
{/*<Tab eventKey='code' title={this.getTab("Code", "Code", "code")}></Tab>*/}
</Tabs>
{tab === 'routes' && <RouteDesigner integration={this.state.integration}
+ showTour={this.state.showTour}
onSave={(integration, propertyOnly) => this.save(integration, propertyOnly)}
dark={this.props.dark}/>}
{tab === 'rest' && <RestDesigner integration={this.state.integration}
@@ -247,7 +167,8 @@ export class KaravanDesigner extends React.Component<Props, State> {
{tab === 'traits' && <TraitsDesigner integration={this.state.integration}
onSave={(integration, propertyOnly) => this.save(integration, propertyOnly)}
dark={this.props.dark}/>}
+ {this.getHelpWindow()}
</PageSection>
- );
+ )
}
}
diff --git a/karavan-designer/src/designer/KaravanTour.tsx b/karavan-designer/src/designer/KaravanTour.tsx
new file mode 100644
index 0000000..49eec35
--- /dev/null
+++ b/karavan-designer/src/designer/KaravanTour.tsx
@@ -0,0 +1,213 @@
+import React from "react";
+import Tour from "@reactour/tour";
+import {EventBus} from "./utils/EventBus";
+import {TextContent, TextVariants, Title, Text} from "@patternfly/react-core";
+import ArrowIcon from "@patternfly/react-icons/dist/js/icons/arrow-right-icon";
+import CloseIcon from "@patternfly/react-icons/dist/js/icons/times-icon";
+import {Integration} from "karavan-core/lib/model/IntegrationDefinition";
+import {CamelDefinitionApi} from "karavan-core/lib/api/CamelDefinitionApi";
+import {CamelDefinitionApiExt} from "karavan-core/lib/api/CamelDefinitionApiExt";
+import {CamelUtil} from "karavan-core/lib/api/CamelUtil";
+import {FromDefinition} from "karavan-core/lib/model/CamelDefinition";
+
+
+function getContent(text: string, title?: string){
+ return (
+ <div>
+ {title && <Title headingLevel="h3">{title}</Title>}
+ <TextContent>
+ <Text component={TextVariants.p}>
+ {text}
+ </Text>
+ <Text component={TextVariants.blockquote}>
+ <div style={{display: "flex", flexDirection: "row", justifyContent: "space-between"}}>
+ <div>Follow the tour by clicking</div>
+ <ArrowIcon style={{margin: "auto"}}/>
+ <div>button</div>
+ </div>
+ </Text>
+ </TextContent>
+ </div>
+ )
+}
+
+const STEPS: Map<string, any[]> = new Map([
+ ['routes', [
+ {selector: '[data-tour="routes"]', content: getContent("Create a route from MQTT to Kafka for messages with header 'approved' equals to 'true'", "Tour use case")},
+ {selector: '[data-tour="add-route"]', content: getContent("Click button to add new route")},
+ {selector: '[data-tour="selector-tabs"]', content: getContent("Select Source Kamelet")},
+ {selector: '[data-tour="mqtt-source"]', content: getContent("Click on MQTT Source")},
+ {selector: '[data-tour="route-created"]', content: getContent("Route created")},
+ {selector: '[data-tour="FromDefinition-icon"]', content: getContent("Click on MQTT Source icon to select")},
+ {selector: '[data-tour="properties"]', content: getContent("Set MQTT Source broker and topic")},
+ {highlightedSelectors: ['[data-tour="topic"]', '[data-tour="brokerUrl"]'], content: getContent("MQTT Source broker and topic are set")},
+ {selector: '[data-tour="add-step"]', content: getContent("Click button to add step")},
+ {selector: '[data-tour="selector-tabs"]', content: getContent("Select Integration Pattern")},
+ {selector: '[data-tour="filter"]', content: getContent("Click on Filter")},
+ {selector: '[data-tour="FilterDefinition"]', content: getContent("Filter added")},
+ {selector: '[data-tour="properties"]', content: getContent("Set Filter expression")},
+ {selector: '[data-tour="expression"]', content: getContent("Filter expression is set")},
+ {selector: '[data-tour="add-step"]', content: getContent("Click button to add step")},
+ {selector: '[data-tour="selector-tabs"]', content: getContent("Select source Kamelet")},
+ {selector: '[data-tour="kafka-not-secured-sink"]', content: getContent("Click on Kafka Sink")},
+ {selector: '[data-tour="ToDefinition"]', content: getContent("Kafka Sink added")},
+ {selector: '[data-tour="properties"]', content: getContent("Set Kafka Sink bootstrap servers and topic")},
+ {highlightedSelectors: ['[data-tour="topic"]', '[data-tour="bootstrapServers"]'], content: getContent("Kafka Sink bootstrap servers and topic are set")},
+ {selector: '[data-tour="route-created"]', content: getContent("Route filtered messages from MQTT to Kafka is done", "Tour use case")},
+ {
+ selector: '[data-tour="route-created"]', content:
+ <div>
+ <Title headingLevel="h3">Tour use case:</Title>
+ <TextContent>
+ <Text component={TextVariants.p}>
+ Route from MQTT to Kafka for messages with header 'approved' equals to 'true' created
+ </Text>
+ <Text component={TextVariants.blockquote} size={14}>
+ <div style={{display: "flex", flexDirection: "row", justifyContent: "space-between"}}>
+ <div>Close the tour by clicking</div>
+ <CloseIcon style={{margin: "auto"}}/>
+ <div>button</div>
+ </div>
+ </Text>
+ </TextContent>
+ </div>
+ },
+ ]],
+ ['rest', []],
+]);
+
+
+interface Props {
+ onSave?: (integration: Integration, propertyOnly: boolean, write: boolean) => void
+ integration: Integration
+ showTour: boolean
+ tab: string
+ onClose: () => void
+}
+
+interface State {
+ showTour: boolean
+ steps: any[]
+ currentStep: number
+}
+
+export class KaravanTour extends React.Component<Props, State> {
+
+ public state: State = {
+ showTour: this.props.showTour,
+ currentStep: 0,
+ steps: STEPS.get(this.props.tab) || []
+ }
+
+ setCurrentStep(step: number) {
+ if (step > this.state.currentStep) {
+ switch (this.props.tab) {
+ case "routes":
+ this.routeSteps(step);
+ }
+ this.setState({currentStep: step})
+ }
+ }
+
+ routeSteps(step: number) {
+ switch (step) {
+ case 2:
+ EventBus.sendTourEvent("routes", "openSelector", "kamelet");
+ break;
+ case 4:
+ const route = CamelDefinitionApi.createRouteDefinition({from: new FromDefinition({uri: "kamelet:mqtt-source"})});
+ const i = CamelDefinitionApiExt.addStepToIntegration(this.props.integration, route, '');
+ const clone = CamelUtil.cloneIntegration(i);
+ this.props.onSave?.call(this, clone, true, false);
+ EventBus.sendTourEvent("routes", "closeSelector");
+ break;
+ case 6:
+ const from = this.props.integration.spec.flows?.[0].from;
+ EventBus.sendTourEvent("routes", "selectElement", undefined, from);
+ break;
+ case 7:
+ const mqtt = this.props.integration.spec.flows?.[0].from;
+ mqtt.parameters.brokerUrl = "tcp://localhost:1883";
+ mqtt.parameters.topic = "topic1";
+ const i2 = CamelDefinitionApiExt.updateIntegrationRouteElement(this.props.integration, mqtt);
+ const clone2 = CamelUtil.cloneIntegration(i2);
+ this.props.onSave?.call(this, clone2, true, false);
+ break;
+ case 9:
+ EventBus.sendTourEvent("routes", "openSelector", "routing");
+ break;
+ case 11:
+ const filter = CamelDefinitionApi.createFilterDefinition({});
+ const from3 = this.props.integration.spec.flows?.[0].from;
+ const clone3 = CamelUtil.cloneIntegration(this.props.integration);
+ const i3 = CamelDefinitionApiExt.addStepToIntegration(clone3, filter, from3.uuid);
+ this.props.onSave?.call(this, i3, true, false);
+ EventBus.sendTourEvent("routes", "closeSelector", undefined, filter);
+ break;
+ case 12:
+ const filter0 = this.props.integration.spec.flows?.[0].from.steps[0];
+ EventBus.sendTourEvent("routes", "selectElement", undefined, filter0);
+ break;
+ case 13:
+ const filter1 = this.props.integration.spec.flows?.[0].from.steps[0];
+ filter1.expression = CamelDefinitionApi.createExpressionDefinition({simple: CamelDefinitionApi.createSimpleExpression({expression: "${header.approved} != 'true'"})});
+ const clone4 = CamelUtil.cloneIntegration(this.props.integration);
+ const i4 = CamelDefinitionApiExt.updateIntegrationRouteElement(clone4, filter1);
+ this.props.onSave?.call(this, i4, true, false);
+ break;
+ case 15:
+ EventBus.sendTourEvent("routes", "openSelector", "kamelet");
+ break;
+ case 17:
+ const kafka = CamelDefinitionApi.createToDefinition({uri: "kamelet:kafka-not-secured-sink"});
+ const filter2 = this.props.integration.spec.flows?.[0].from.steps[0];
+ const clone5 = CamelUtil.cloneIntegration(this.props.integration);
+ const i5 = CamelDefinitionApiExt.addStepToIntegration(clone5, kafka, filter2.uuid);
+ this.props.onSave?.call(this, i5, true, false);
+ EventBus.sendTourEvent("routes", "closeSelector", undefined, kafka);
+ EventBus.sendTourEvent("routes", "selectElement", undefined, kafka);
+ break;
+ case 19:
+ const kafka1 = this.props.integration.spec.flows?.[0].from.steps[0].steps[0];
+ kafka1.parameters.bootstrapServers = "localhost:9092"
+ kafka1.parameters.topic = "topic1"
+ const clone6 = CamelUtil.cloneIntegration(this.props.integration);
+ const i6 = CamelDefinitionApiExt.updateIntegrationRouteElement(clone6, kafka1);
+ this.props.onSave?.call(this, i6, true, false);
+ break;
+ case 21:
+ this.props.onSave?.call(this, this.props.integration, true, true );
+ this.close();
+ break;
+ }
+ }
+
+ close() {
+ this.props.onClose?.call(this);
+ }
+
+ render() {
+ return (
+ <Tour
+ scrollSmooth={true}
+ currentStep={this.state.currentStep}
+ setIsOpen={value => {}}
+ disabledActions={false}
+ setCurrentStep={value => this.setCurrentStep(value as number)}
+ setDisabledActions={value => {}}
+ setSteps={value => {}}
+ steps={this.state.steps}
+ isOpen={this.state.showTour}
+ badgeContent={b => `${b.currentStep + 1}/${b.totalSteps}`}
+ onClickHighlighted={e => e.stopPropagation()}
+ disableInteraction
+ disableDotsNavigation
+ onClickClose={clickProps => this.close()}
+ prevButton={props => props.setIsOpen(false)}
+ >
+ </Tour>
+ )
+ }
+}
+
+export default KaravanTour;
\ No newline at end of file
diff --git a/karavan-designer/src/designer/karavan.css b/karavan-designer/src/designer/karavan.css
index 931297c..a5f2beb 100644
--- a/karavan-designer/src/designer/karavan.css
+++ b/karavan-designer/src/designer/karavan.css
@@ -1066,4 +1066,19 @@
.karavan .error-page-columns .pf-c-empty-state {
margin: auto;
height: 100%;
+}
+
+/* Help */
+.dont-show {
+ margin-right: auto;
+}
+
+/*Tour*/
+
+reactour-portal .reactour__popover button {
+ top: 1px;
+ right: 7px;
+}
+reactour-portal .reactour__popover button:focus-visible {
+ outline: none;
}
\ No newline at end of file
diff --git a/karavan-designer/src/designer/rest/RestDesigner.tsx b/karavan-designer/src/designer/rest/RestDesigner.tsx
index 083717c..5f733a8 100644
--- a/karavan-designer/src/designer/rest/RestDesigner.tsx
+++ b/karavan-designer/src/designer/rest/RestDesigner.tsx
@@ -73,7 +73,7 @@ export class RestDesigner extends React.Component<Props, State> {
this.setState({selectedStep: element})
}
- onPropertyUpdate = (element: CamelElement, updatedUuid: string, newRoute?: RouteToCreate) => {
+ onPropertyUpdate = (element: CamelElement, newRoute?: RouteToCreate) => {
if (newRoute) {
let i = CamelDefinitionApiExt.updateIntegrationRestElement(this.state.integration, element);
const f = CamelDefinitionApi.createFromDefinition({uri: newRoute.componentName + ":" + newRoute.name})
diff --git a/karavan-designer/src/designer/route/DslElement.tsx b/karavan-designer/src/designer/route/DslElement.tsx
index 078f037..ddc391a 100644
--- a/karavan-designer/src/designer/route/DslElement.tsx
+++ b/karavan-designer/src/designer/route/DslElement.tsx
@@ -39,6 +39,7 @@ interface Props {
selectedUuid: string
inSteps: boolean
position: number
+ showTour: boolean
}
interface State {
@@ -190,9 +191,12 @@ export class DslElement extends React.Component<Props, State> {
const headerClass = step.dslName === 'RouteDefinition' ? "header-route" : "header"
const headerClasses = this.isSelected() ? headerClass + " selected" : headerClass;
return (
- <div className={headerClasses} style={this.getHeaderStyle()}>
+ <div className={headerClasses} style={this.getHeaderStyle()} data-tour={step.dslName}>
{this.state.step.dslName !== 'RouteDefinition' &&
- <div ref={el => this.sendPosition(el)} className={"header-icon"} style={this.isWide() ? {width: ""} : {}}>
+ <div ref={el => this.sendPosition(el)}
+ data-tour={step.dslName + "-icon"}
+ className={"header-icon"}
+ style={this.isWide() ? {width: ""} : {}}>
<img draggable={false} src={CamelUi.getIcon(step)} className="icon" alt="icon"/>
</div>
}
@@ -304,6 +308,7 @@ export class DslElement extends React.Component<Props, State> {
inSteps={child.name === 'steps'}
position={index}
step={element}
+ showTour={this.props.showTour}
parent={step}/>
</div>
))}
@@ -320,10 +325,13 @@ export class DslElement extends React.Component<Props, State> {
}
getAddStepButton() {
+ const tourClass = this.props.showTour ? "add-button-tour" : "";
return (
<Tooltip position={"bottom"}
content={<div>{"Add step to " + CamelUi.getTitle(this.state.step)}</div>}>
- <button type="button" aria-label="Add" onClick={e => this.openSelector(e)}
+ <button data-tour="add-step"
+ type="button" aria-label="Add" onClick={e => this.openSelector(e)}
+ style={{visibility: this.props.showTour ? "visible" : "initial"}}
className={this.isAddStepButtonLeft() ? "add-button add-button-left" : "add-button add-button-bottom"}>
<AddIcon noVerticalAlign/>
</button>
@@ -334,7 +342,13 @@ export class DslElement extends React.Component<Props, State> {
getAddElementButton() {
return (
<Tooltip position={"bottom"} content={<div>{"Add DSL element to " + CamelUi.getTitle(this.state.step)}</div>}>
- <button type="button" aria-label="Add" onClick={e => this.openSelector(e, false)} className={"add-element-button"}><AddIcon noVerticalAlign/>
+ <button
+ data-tour="add-element"
+ type="button"
+ aria-label="Add"
+ onClick={e => this.openSelector(e, false)}
+ className={"add-element-button"}>
+ <AddIcon noVerticalAlign/>
</button>
</Tooltip>
)
@@ -360,7 +374,9 @@ export class DslElement extends React.Component<Props, State> {
render() {
const element: CamelElement = this.state.step;
return (
- <div key={"root" + element.uuid} className={this.isSelected() ? "step-element step-element-selected" : "step-element"}
+ <div key={"root" + element.uuid}
+ data-tour={this.props.parent ? "" : "route-created"}
+ className={this.isSelected() ? "step-element step-element-selected" : "step-element"}
ref={el => this.sendPosition(el)}
style={{
borderStyle: this.hasBorder() ? "dotted" : "none",
diff --git a/karavan-designer/src/designer/route/DslProperties.tsx b/karavan-designer/src/designer/route/DslProperties.tsx
index 1c5edc6..a1e7bb6 100644
--- a/karavan-designer/src/designer/route/DslProperties.tsx
+++ b/karavan-designer/src/designer/route/DslProperties.tsx
@@ -44,7 +44,7 @@ interface Props {
integration: Integration,
step?: CamelElement,
onIntegrationUpdate?: any,
- onPropertyUpdate?: (element: CamelElement, updatedUuid: string, newRoute?: RouteToCreate) => void
+ onPropertyUpdate?: (element: CamelElement, newRoute?: RouteToCreate) => void
clipboardStep?: CamelElement
onSaveClipboardStep?: (element?: CamelElement) => void
onClone?: (element: CamelElement) => void
@@ -70,7 +70,7 @@ export class DslProperties extends React.Component<Props, State> {
const clone = CamelUtil.cloneStep(this.state.step);
(clone as any)[fieldId] = value;
this.setStep(clone)
- this.props.onPropertyUpdate?.call(this, clone, this.state.step.uuid, newRoute);
+ this.props.onPropertyUpdate?.call(this, clone, newRoute);
}
}
@@ -79,14 +79,14 @@ export class DslProperties extends React.Component<Props, State> {
const clone = CamelUtil.cloneStep(this.props.clipboardStep);
clone.uuid = this.state.step.uuid;
this.setStep(clone)
- this.props.onPropertyUpdate?.call(this, clone, this.state.step.uuid);
+ this.props.onPropertyUpdate?.call(this, clone);
}
}
dataFormatChanged = (value: DataFormatDefinition) => {
value.uuid = this.state.step?.uuid ? this.state.step?.uuid : value.uuid;
this.setStep(value);
- this.props.onPropertyUpdate?.call(this, value, value.uuid);
+ this.props.onPropertyUpdate?.call(this, value);
}
expressionChanged = (propertyName: string, exp: ExpressionDefinition) => {
@@ -94,7 +94,7 @@ export class DslProperties extends React.Component<Props, State> {
const clone = (CamelUtil.cloneStep(this.state.step));
(clone as any)[propertyName] = exp;
this.setStep(clone);
- this.props.onPropertyUpdate?.call(this, clone, this.state.step.uuid);
+ this.props.onPropertyUpdate?.call(this, clone);
}
}
@@ -109,7 +109,7 @@ export class DslProperties extends React.Component<Props, State> {
parameters[parameter] = value;
(clone as any).parameters = parameters;
this.setStep(clone);
- this.props.onPropertyUpdate?.call(this, clone, this.state.step.uuid);
+ this.props.onPropertyUpdate?.call(this, clone);
}
}
}
@@ -206,7 +206,9 @@ export class DslProperties extends React.Component<Props, State> {
const propertiesMain = properties.filter(p => !p.label.includes("advanced"));
const propertiesAdvanced = properties.filter(p => p.label.includes("advanced"));
return (
- <div key={this.state.step ? this.state.step.uuid : 'integration'} className='properties'>
+ <div key={this.state.step ? this.state.step.uuid : 'integration'}
+ data-tour="properties"
+ className='properties'>
<Form autoComplete="off" onSubmit={event => event.preventDefault()}>
{this.state.step === undefined && <IntegrationHeader integration={this.props.integration}/>}
{this.state.step && this.getComponentHeader()}
diff --git a/karavan-designer/src/designer/route/DslSelector.tsx b/karavan-designer/src/designer/route/DslSelector.tsx
index 43004c7..45d9142 100644
--- a/karavan-designer/src/designer/route/DslSelector.tsx
+++ b/karavan-designer/src/designer/route/DslSelector.tsx
@@ -33,6 +33,7 @@ interface Props {
showSteps: boolean,
dark: boolean,
position?: number
+ tabIndex?: string | number
}
interface State {
@@ -43,7 +44,7 @@ interface State {
export class DslSelector extends React.Component<Props, State> {
public state: State = {
- tabIndex: CamelUi.getSelectorModelTypes(this.props.parentDsl, this.props.showSteps)[0][0],
+ tabIndex: this.props.tabIndex ? this.props.tabIndex : CamelUi.getSelectorModelTypes(this.props.parentDsl, this.props.showSteps)[0][0],
};
@@ -98,7 +99,7 @@ export class DslSelector extends React.Component<Props, State> {
getCard(dsl: DslMetaModel, index: number) {
return (
- <Card key={dsl.dsl + index} isHoverable isCompact className="dsl-card"
+ <Card data-tour={dsl.name} key={dsl.dsl + index} isHoverable isCompact className="dsl-card"
onClick={event => this.selectDsl(event, dsl)}>
<CardHeader>
<img draggable={false}
@@ -131,7 +132,7 @@ export class DslSelector extends React.Component<Props, State> {
return (
<PageSection variant={this.props.dark ? "darker" : "light"}>
{this.searchInput()}
- <Tabs style={{overflow: 'hidden'}} activeKey={this.state.tabIndex} onSelect={this.selectTab}>
+ <Tabs data-tour="selector-tabs" style={{overflow: 'hidden'}} activeKey={this.state.tabIndex} onSelect={this.selectTab}>
{CamelUi.getSelectorModelTypes(parentDsl, this.props.showSteps).map((label: [string, number], index: number) => {
const labelText = label[0];
const count = label[1];
diff --git a/karavan-designer/src/designer/route/RouteDesigner.tsx b/karavan-designer/src/designer/route/RouteDesigner.tsx
index 726d501..941aa85 100644
--- a/karavan-designer/src/designer/route/RouteDesigner.tsx
+++ b/karavan-designer/src/designer/route/RouteDesigner.tsx
@@ -20,9 +20,6 @@ import {
DrawerPanelContent,
DrawerContent,
DrawerContentBody,
- DrawerHead,
- DrawerActions,
- DrawerCloseButton,
Button, Modal,
PageSection
} from '@patternfly/react-core';
@@ -38,14 +35,16 @@ import {CamelDefinitionApi} from "karavan-core/lib/api/CamelDefinitionApi";
import {DslConnections} from "./DslConnections";
import PlusIcon from "@patternfly/react-icons/dist/esm/icons/plus-icon";
import {DslElement} from "./DslElement";
-import {EventBus} from "../utils/EventBus";
+import {EventBus, TourEvent} from "../utils/EventBus";
import {CamelUi, RouteToCreate} from "../utils/CamelUi";
import {findDOMNode} from "react-dom";
+import {Subscription} from "rxjs";
interface Props {
onSave?: (integration: Integration, propertyOnly: boolean) => void
integration: Integration
dark: boolean
+ showTour: boolean
}
interface State {
@@ -67,6 +66,9 @@ interface State {
clipboardStep?: CamelElement
ref?: any
propertyOnly: boolean
+ sub?: Subscription
+ selectorTabIndex?: string | number
+ showTour: boolean
}
export class RouteDesigner extends React.Component<Props, State> {
@@ -85,10 +87,13 @@ export class RouteDesigner extends React.Component<Props, State> {
top: 0,
left: 0,
ref: React.createRef(),
- propertyOnly: false
+ propertyOnly: false,
+ showTour: this.props.showTour,
};
componentDidMount() {
+ const sub = EventBus.onTourEvent()?.subscribe((evt: TourEvent) => this.handleTourEvent(evt));
+ this.setState({sub: sub});
window.addEventListener('resize', this.handleResize);
const element = findDOMNode(this.state.ref.current)?.parentElement?.parentElement;
const checkResize = (mutations: any) => {
@@ -104,6 +109,7 @@ export class RouteDesigner extends React.Component<Props, State> {
}
componentWillUnmount() {
+ this.state.sub?.unsubscribe();
window.removeEventListener('resize', this.handleResize);
}
@@ -111,8 +117,28 @@ export class RouteDesigner extends React.Component<Props, State> {
this.setState({key: Math.random().toString()});
}
+ handleTourEvent = (event: TourEvent) => {
+ const step = this.state.selectedStep;
+ switch (event.command) {
+ case "openSelector":
+ this.openSelector(step?.uuid, !step?.dslName ? undefined : "FromDefinition", true, undefined, event.selectorTabIndex)
+ break;
+ case "closeSelector":
+ if (event.step){
+ const clone = CamelUtil.cloneIntegration(this.props.integration);
+ this.setState({integration: clone, key: Math.random().toString(), showSelector: false, selectedStep: event.step, selectedUuid: event.step.uuid, propertyOnly: false });
+ } else {
+ this.setState({showSelector: false, key: Math.random().toString()});
+ }
+ break;
+ case "selectElement":
+ if (event.step) this.selectElement( event.step);
+ break;
+ }
+ }
+
componentDidUpdate = (prevProps: Readonly<Props>, prevState: Readonly<State>, snapshot?: any) => {
- if (prevState.key !== this.state.key) {
+ if (prevState.key !== this.state.key && !this.props.showTour) {
this.props.onSave?.call(this, this.state.integration, this.state.propertyOnly);
}
}
@@ -128,7 +154,7 @@ export class RouteDesigner extends React.Component<Props, State> {
}
};
- onPropertyUpdate = (element: CamelElement, updatedUuid: string, newRoute?: RouteToCreate) => {
+ onPropertyUpdate = (element: CamelElement, newRoute?: RouteToCreate) => {
if (newRoute) {
let i = CamelDefinitionApiExt.updateIntegrationRouteElement(this.state.integration, element);
const f = CamelDefinitionApi.createFromDefinition({uri: newRoute.componentName + ":" + newRoute.name})
@@ -195,8 +221,8 @@ export class RouteDesigner extends React.Component<Props, State> {
this.setState({selectedStep: element, selectedUuid: element.uuid, showSelector: false})
}
- openSelector = (parentId: string | undefined, parentDsl: string | undefined, showSteps: boolean = true, position?: number | undefined) => {
- this.setState({showSelector: true, parentId: parentId || '', parentDsl: parentDsl, showSteps: showSteps, selectedPosition: position})
+ openSelector = (parentId: string | undefined, parentDsl: string | undefined, showSteps: boolean = true, position?: number | undefined, selectorTabIndex?: string | number) => {
+ this.setState({showSelector: true, parentId: parentId || '', parentDsl: parentDsl, showSteps: showSteps, selectedPosition: position, selectorTabIndex: selectorTabIndex})
}
closeDslSelector = () => {
@@ -269,6 +295,7 @@ export class RouteDesigner extends React.Component<Props, State> {
getSelectorModal() {
return (
<Modal
+ data-tour="selector"
title={this.state.parentDsl === undefined ? "Select source/from" : "Select step"}
width={'90%'}
className='dsl-modal'
@@ -281,6 +308,7 @@ export class RouteDesigner extends React.Component<Props, State> {
parentDsl={this.state.parentDsl}
showSteps={this.state.showSteps}
position={this.state.selectedPosition}
+ tabIndex={this.state.selectorTabIndex}
onDslSelect={this.onDslSelect}/>
</Modal>)
}
@@ -304,6 +332,22 @@ export class RouteDesigner extends React.Component<Props, State> {
</Modal>)
}
+ getPropertiesPanel() {
+ return (
+ <DrawerPanelContent isResizable hasNoBorder defaultSize={'400px'} maxSize={'800px'} minSize={'300px'}>
+ <DslProperties ref={this.state.ref}
+ integration={this.state.integration}
+ step={this.state.selectedStep}
+ onIntegrationUpdate={this.onIntegrationUpdate}
+ onPropertyUpdate={this.onPropertyUpdate}
+ clipboardStep={this.state.clipboardStep}
+ isRouteDesigner={true}
+ onSaveClipboardStep={this.saveToClipboard}
+ />
+ </DrawerPanelContent>
+ )
+ }
+
getGraph() {
const routes = CamelUi.getRoutes(this.state.integration);
return (
@@ -321,12 +365,14 @@ export class RouteDesigner extends React.Component<Props, State> {
inSteps={false}
position={index}
step={route}
+ showTour={this.state.showTour}
parent={undefined}/>
))}
<div className="add-flow">
<Button
variant={routes.length === 0 ? "primary" : "secondary"}
data-click="ADD_ROUTE"
+ data-tour="add-route"
icon={<PlusIcon/>}
onClick={e => this.openSelector(undefined, undefined)}>Create new route
</Button>
@@ -335,26 +381,10 @@ export class RouteDesigner extends React.Component<Props, State> {
</div>)
}
- getPropertiesPanel() {
- return (
- <DrawerPanelContent isResizable hasNoBorder defaultSize={'400px'} maxSize={'800px'} minSize={'300px'}>
- <DslProperties ref={this.state.ref}
- integration={this.state.integration}
- step={this.state.selectedStep}
- onIntegrationUpdate={this.onIntegrationUpdate}
- onPropertyUpdate={this.onPropertyUpdate}
- clipboardStep={this.state.clipboardStep}
- isRouteDesigner={true}
- onSaveClipboardStep={this.saveToClipboard}
- />
- </DrawerPanelContent>
- )
- }
-
render() {
return (
<PageSection className="dsl-page" isFilled padding={{default: 'noPadding'}}>
- <div className="dsl-page-columns">
+ <div className="dsl-page-columns" data-tour="designer">
<Drawer isExpanded isInline>
<DrawerContent panelContent={this.getPropertiesPanel()}>
<DrawerContentBody>{this.getGraph()}</DrawerContentBody>
diff --git a/karavan-designer/src/designer/route/property/DslPropertyField.tsx b/karavan-designer/src/designer/route/property/DslPropertyField.tsx
index d39ed09..4bb6693 100644
--- a/karavan-designer/src/designer/route/property/DslPropertyField.tsx
+++ b/karavan-designer/src/designer/route/property/DslPropertyField.tsx
@@ -508,6 +508,7 @@ export class DslPropertyField extends React.Component<Props, State> {
const value = this.props.value;
return (
<FormGroup
+ data-tour={property.name}
label={this.props.hideLabel ? undefined : this.getLabel(property, value)}
isRequired={property.required}
fieldId={property.name}
diff --git a/karavan-designer/src/designer/route/property/KameletPropertyField.tsx b/karavan-designer/src/designer/route/property/KameletPropertyField.tsx
index 4e5c0f0..101321c 100644
--- a/karavan-designer/src/designer/route/property/KameletPropertyField.tsx
+++ b/karavan-designer/src/designer/route/property/KameletPropertyField.tsx
@@ -58,6 +58,7 @@ export class KameletPropertyField extends React.Component<Props, State> {
const id = prefix + "-" + property.id;
return (
<FormGroup
+ data-tour={property.id}
key={id}
label={property.title}
fieldId={id}
diff --git a/karavan-designer/src/designer/utils/CamelUi.ts b/karavan-designer/src/designer/utils/CamelUi.ts
index ad02ebb..34fedef 100644
--- a/karavan-designer/src/designer/utils/CamelUi.ts
+++ b/karavan-designer/src/designer/utils/CamelUi.ts
@@ -15,14 +15,13 @@
* limitations under the License.
*/
import {KameletApi} from "karavan-core/lib/api/KameletApi";
-import {KameletModel, Property} from "karavan-core/lib/model/KameletModels";
+import {KameletModel} from "karavan-core/lib/model/KameletModels";
import {DslMetaModel} from "./DslMetaModel";
import {ComponentApi} from "karavan-core/lib/api/ComponentApi";
-import {ComponentProperty} from "karavan-core/lib/model/ComponentModels";
import {CamelMetadataApi} from "karavan-core/lib/model/CamelMetadata";
import {CamelUtil} from "karavan-core/lib/api/CamelUtil";
import {CamelDefinitionApiExt} from "karavan-core/lib/api/CamelDefinitionApiExt";
-import {KameletDefinition, NamedBeanDefinition, RouteDefinition, SagaDefinition, ToDefinition} from "karavan-core/lib/model/CamelDefinition";
+import {NamedBeanDefinition, RouteDefinition, SagaDefinition, ToDefinition} from "karavan-core/lib/model/CamelDefinition";
import {CamelElement, Dependency, Integration} from "karavan-core/lib/model/IntegrationDefinition";
import {Trait} from "karavan-core/src/core/model/TraitDefinition";
@@ -133,7 +132,7 @@ export class CamelUi {
static getDslMetaModel = (className: string): DslMetaModel => {
const el = CamelMetadataApi.getCamelModelMetadataByClassName(className);
- return new DslMetaModel({dsl: className, title: el?.title, description: el?.description, labels: el?.labels, navigation: el?.labels, type: "DSL"})
+ return new DslMetaModel({dsl: className, name: el?.name, title: el?.title, description: el?.description, labels: el?.labels, navigation: el?.labels, type: "DSL"})
}
static getComponentsDslMetaModel = (type: 'consumer' | "producer"): DslMetaModel[] => {
diff --git a/karavan-designer/src/designer/utils/EventBus.ts b/karavan-designer/src/designer/utils/EventBus.ts
index a38c866..4fc928f 100644
--- a/karavan-designer/src/designer/utils/EventBus.ts
+++ b/karavan-designer/src/designer/utils/EventBus.ts
@@ -16,8 +16,10 @@
*/
import {Subject} from 'rxjs';
import {CamelElement} from "karavan-core/lib/model/IntegrationDefinition";
+import {DslMetaModel} from "./DslMetaModel";
const positions = new Subject<DslPosition>();
+const tourEvents = new Subject<TourEvent>();
export class DslPosition {
step: CamelElement = new CamelElement("");
@@ -45,6 +47,21 @@ export class DslPosition {
}
}
+export class TourEvent {
+ tab: "routes" | "rest" | "beans" | "dependencies"
+ command: string
+ selectorTabIndex?: string | number
+ step?: CamelElement
+
+ constructor(tab: "routes" | "rest" | "beans" | "dependencies", command: string, selectorTabIndex?: string | number, step?: CamelElement) {
+ this.command = command;
+ this.tab = tab;
+ this.selectorTabIndex = selectorTabIndex;
+ this.step = step;
+ }
+
+}
+
export const EventBus = {
sendPosition: (command: "add" | "delete",
step: CamelElement,
@@ -54,4 +71,9 @@ export const EventBus = {
position: number,
inSteps: boolean = false) => positions.next(new DslPosition(command, step, parent, rect, headerRect, position, inSteps)),
onPosition: () => positions.asObservable(),
+
+
+ sendTourEvent: (tab: "routes" | "rest" | "beans" | "dependencies", command: string, selectorTabIndex?: string | number, step?: CamelElement) =>
+ tourEvents.next(new TourEvent(tab, command, selectorTabIndex, step)),
+ onTourEvent: () => tourEvents.asObservable(),
};
diff --git a/karavan-designer/src/designer/utils/KaravanIcons.tsx b/karavan-designer/src/designer/utils/KaravanIcons.tsx
index 771f0c0..2246fee 100644
--- a/karavan-designer/src/designer/utils/KaravanIcons.tsx
+++ b/karavan-designer/src/designer/utils/KaravanIcons.tsx
@@ -16,6 +16,128 @@
*/
import React from 'react';
+export function getDesignerIcon(icon: string) {
+ if (icon === 'routes') return (
+ <svg className="top-icon" width="32px" height="32px" viewBox="0 0 32 32" id="icon">
+ <defs>
+ <style>{".cls-1{fill:none;}"}</style>
+ </defs>
+ <path d="M29,10H24v2h5v6H22v2h3v2.142a4,4,0,1,0,2,0V20h2a2.0027,2.0027,0,0,0,2-2V12A2.0023,2.0023,0,0,0,29,10ZM28,26a2,2,0,1,1-2-2A2.0027,2.0027,0,0,1,28,26Z"/>
+ <path d="M19,6H14V8h5v6H12v2h3v6.142a4,4,0,1,0,2,0V16h2a2.0023,2.0023,0,0,0,2-2V8A2.0023,2.0023,0,0,0,19,6ZM18,26a2,2,0,1,1-2-2A2.0027,2.0027,0,0,1,18,26Z"/>
+ <path
+ d="M9,2H3A2.002,2.002,0,0,0,1,4v6a2.002,2.002,0,0,0,2,2H5V22.142a4,4,0,1,0,2,0V12H9a2.002,2.002,0,0,0,2-2V4A2.002,2.002,0,0,0,9,2ZM8,26a2,2,0,1,1-2-2A2.0023,2.0023,0,0,1,8,26ZM3,10V4H9l.0015,6Z"/>
+ <rect id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>" className="cls-1" width="32" height="32"/>
+ </svg>)
+ if (icon === 'rest') return (
+ <svg className="top-icon" viewBox="0 0 32 32">
+ <g className="layer">
+ <title>Layer 1</title>
+ <path
+ d="m23.50007,22l-0.5,0l0,-2l0.5,0a4.4975,4.4975 0 0 0 0.3564,-8.981l-0.8154,-0.0639l-0.0986,-0.812a6.9938,6.9938 0 0 0 -13.8838,0l-0.0991,0.812l-0.8155,0.0639a4.4975,4.4975 0 0 0 0.356,8.981l0.5,0l0,2l-0.5,0a6.4973,6.4973 0 0 1 -1.3,-12.8638a8.9943,8.9943 0 0 1 17.6006,0a6.4974,6.4974 0 0 1 -1.3006,12.8638z"
+ id="svg_1"/>
+ <path
+ d="m22.9724,22.26637l0,-2l-2.1011,0a4.9678,4.9678 0 0 0 -0.7319,-1.7529l1.49,-1.49l-1.414,-1.414l-1.49,1.49a4.9678,4.9678 0 0 0 -1.753,-0.732l0,-2.1011l-2,0l0,2.1011a4.9678,4.9678 0 0 0 -1.7529,0.7319l-1.49,-1.49l-1.414,1.414l1.49,1.49a4.9678,4.9678 0 0 0 -0.732,1.753l-2.1011,0l0,2l2.1011,0a4.9678,4.9678 0 0 0 0.7319,1.7529l-1.49,1.49l1.414,1.414l1.49,-1.49a4.9678,4.9678 0 0 0 1.753,0.732l0,2.1011l2,0l0,-2.1011a4.9678,4.9678 0 0 0 1.7529,-0.7319l1.49,1.49l1.414,-1.414 [...]
+ id="svg_2" transform="rotate(25 15.9724 21.2664)" xmlns="http://www.w3.org/2000/svg"/>
+ </g>
+ </svg>
+ )
+ if (icon === 'beans') return (
+ <svg className="top-icon" width="32px" height="32px" viewBox="0 0 32 32" id="icon">
+ <defs>
+ <style>{".cls-1 {fill: none;}"}</style>
+ </defs>
+ <title>data--1</title>
+ <rect x="15" y="6" width="13" height="2"/>
+ <rect x="15" y="24" width="13" height="2"/>
+ <rect x="4" y="15" width="13" height="2"/>
+ <path d="M7,11a4,4,0,1,1,4-4A4,4,0,0,1,7,11ZM7,5A2,2,0,1,0,9,7,2,2,0,0,0,7,5Z" transform="translate(0 0)"/>
+ <path d="M7,29a4,4,0,1,1,4-4A4,4,0,0,1,7,29Zm0-6a2,2,0,1,0,2,2A2,2,0,0,0,7,23Z" transform="translate(0 0)"/>
+ <path d="M25,20a4,4,0,1,1,4-4A4,4,0,0,1,25,20Zm0-6a2,2,0,1,0,2,2A2,2,0,0,0,25,14Z" transform="translate(0 0)"/>
+ <g id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>">
+ <rect className="cls-1" width="32" height="32"/>
+ </g>
+ </svg>
+ )
+ if (icon === 'dependencies') return (
+ <svg className="top-icon" width="32px" height="32px" viewBox="0 0 32 32" id="icon">
+ <defs>
+ <style>{".cls-1 {fill: none;}"}</style>
+ </defs>
+ <title>application</title>
+ <path d="M16,18H6a2,2,0,0,1-2-2V6A2,2,0,0,1,6,4H16a2,2,0,0,1,2,2V16A2,2,0,0,1,16,18ZM6,6V16H16V6Z" transform="translate(0 0)"/>
+ <path d="M26,12v4H22V12h4m0-2H22a2,2,0,0,0-2,2v4a2,2,0,0,0,2,2h4a2,2,0,0,0,2-2V12a2,2,0,0,0-2-2Z" transform="translate(0 0)"/>
+ <path d="M26,22v4H22V22h4m0-2H22a2,2,0,0,0-2,2v4a2,2,0,0,0,2,2h4a2,2,0,0,0,2-2V22a2,2,0,0,0-2-2Z" transform="translate(0 0)"/>
+ <path d="M16,22v4H12V22h4m0-2H12a2,2,0,0,0-2,2v4a2,2,0,0,0,2,2h4a2,2,0,0,0,2-2V22a2,2,0,0,0-2-2Z" transform="translate(0 0)"/>
+ <g id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>">
+ <rect className="cls-1" width="32" height="32"/>
+ </g>
+ </svg>
+ )
+ if (icon === 'error') return (
+ <svg className="top-icon" width="36px" height="36px" viewBox="0 0 36 36" version="1.1" preserveAspectRatio="xMidYMid meet">
+ <circle className="clr-i-outline clr-i-outline-path-1" cx="18" cy="26.06" r="1.33"/>
+ <path className="clr-i-outline clr-i-outline-path-2" d="M18,22.61a1,1,0,0,1-1-1v-12a1,1,0,1,1,2,0v12A1,1,0,0,1,18,22.61Z"/>
+ <path className="clr-i-outline clr-i-outline-path-3" d="M18,34A16,16,0,1,1,34,18,16,16,0,0,1,18,34ZM18,4A14,14,0,1,0,32,18,14,14,0,0,0,18,4Z"/>
+ <rect x="0" y="0" width="36" height="36" fillOpacity="0"/>
+ </svg>)
+ if (icon === 'exception') return (
+ <svg className="top-icon" width="32px" height="32px" viewBox="0 0 32 32" id="icon">
+ <defs>
+ <style>{".cls-1{fill:none;}"}</style>
+ </defs>
+ <title>misuse--alt</title>
+ <polygon points="21.41 23 16 17.591 10.59 23 9 21.41 14.409 16 9 10.591 10.591 9 16 14.409 21.409 9 23 10.591 17.591 16 23 21.41 21.41 23"/>
+ <path d="M16,4A12,12,0,1,1,4,16,12.0136,12.0136,0,0,1,16,4m0-2A14,14,0,1,0,30,16,14,14,0,0,0,16,2Z" transform="translate(0)"/>
+ <rect id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>" className="cls-1" width="32" height="32"/>
+ </svg>)
+ if (icon === 'template') return (
+ <svg className="top-icon" width="32px" height="32px" viewBox="0 0 32 32" id="icon" xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <style>{".cls-1{fill:none;}"}</style>
+ </defs>
+ <title>code</title>
+ <polygon points="31 16 24 23 22.59 21.59 28.17 16 22.59 10.41 24 9 31 16"/>
+ <polygon points="1 16 8 9 9.41 10.41 3.83 16 9.41 21.59 8 23 1 16"/>
+ <rect x="5.91" y="15" width="20.17" height="2" transform="translate(-3.6 27.31) rotate(-75)"/>
+ <rect id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>" className="cls-1" width="32" height="32" transform="translate(0 32) rotate(-90)"/>
+ </svg>)
+ if (icon === 'traits') return (
+ <svg className="top-icon" width="32px" height="32px" viewBox="0 0 32 32" id="icon">
+ <defs>
+ <style>{".cls-1{fill:none;}"}</style>
+ </defs>
+ <title>settings</title>
+ <path
+ d="M27,16.76c0-.25,0-.5,0-.76s0-.51,0-.77l1.92-1.68A2,2,0,0,0,29.3,11L26.94,7a2,2,0,0,0-1.73-1,2,2,0,0,0-.64.1l-2.43.82a11.35,11.35,0,0,0-1.31-.75l-.51-2.52a2,2,0,0,0-2-1.61H13.64a2,2,0,0,0-2,1.61l-.51,2.52a11.48,11.48,0,0,0-1.32.75L7.43,6.06A2,2,0,0,0,6.79,6,2,2,0,0,0,5.06,7L2.7,11a2,2,0,0,0,.41,2.51L5,15.24c0,.25,0,.5,0,.76s0,.51,0,.77L3.11,18.45A2,2,0,0,0,2.7,21L5.06,25a2,2,0,0,0,1.73,1,2,2,0,0,0,.64-.1l2.43-.82a11.35,11.35,0,0,0,1.31.75l.51,2.52a2,2,0,0,0,2,1.61h4.72a [...]
+ transform="translate(0 0)"/>
+ <path d="M16,22a6,6,0,1,1,6-6A5.94,5.94,0,0,1,16,22Zm0-10a3.91,3.91,0,0,0-4,4,3.91,3.91,0,0,0,4,4,3.91,3.91,0,0,0,4-4A3.91,3.91,0,0,0,16,12Z"
+ transform="translate(0 0)"/>
+ <rect id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>" className="cls-1" width="32" height="32"/>
+ </svg>)
+ if (icon === 'yaml') return (
+ <svg className="top-icon" x="0px" y="0px" width="32px" height="32px"
+ viewBox="0 0 32 32">
+ <style type="text/css">{".st0{fill:none;}"}</style>
+ <title>document</title>
+ <path
+ d="M25.7,9.3l-7-7C18.5,2.1,18.3,2,18,2H8C6.9,2,6,2.9,6,4v24c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V10C26,9.7,25.9,9.5,25.7,9.3 z M18,4.4l5.6,5.6H18V4.4z M24,28H8V4h8v6c0,1.1,0.9,2,2,2h6V28z"/>
+ <rect x="10" y="22" width="12" height="2"/>
+ <rect x="10" y="16" width="12" height="2"/>
+ <rect className="st0" width="32" height="32"/>
+ </svg>)
+ if (icon === 'code') return (
+ <svg className="top-icon" width="32px" height="32px" viewBox="0 0 32 32" id="icon">
+ <defs>
+ <style>{".cls-1{fill:none;}"}</style>
+ </defs>
+ <title>code</title>
+ <polygon points="31 16 24 23 22.59 21.59 28.17 16 22.59 10.41 24 9 31 16"/>
+ <polygon points="1 16 8 9 9.41 10.41 3.83 16 9.41 21.59 8 23 1 16"/>
+ <rect x="5.91" y="15" width="20.17" height="2" transform="translate(-3.6 27.31) rotate(-75)"/>
+ <rect id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>" className="cls-1" width="32" height="32" transform="translate(0 32) rotate(-90)"/>
+ </svg>)
+}
+
export class BeanIcon extends React.Component<any> {
@@ -39,6 +161,7 @@ export class BeanIcon extends React.Component<any> {
)
}
}
+
export class DependencyIcon extends React.Component<any> {
render() {
@@ -83,7 +206,7 @@ export class ConceptIcon extends React.Component<any> {
render() {
return (
- <svg className="icon" width="32px" height="32px" viewBox="0 0 32 32" >
+ <svg className="icon" width="32px" height="32px" viewBox="0 0 32 32">
<defs>
<style>{".cls-1 {fill: none;}"}</style>
</defs>
diff --git a/karavan-vscode/package-lock.json b/karavan-vscode/package-lock.json
index 9ae3e4c..46df9e5 100644
--- a/karavan-vscode/package-lock.json
+++ b/karavan-vscode/package-lock.json
@@ -1,16 +1,17 @@
{
"name": "karavan",
- "version": "0.0.13",
+ "version": "0.0.14",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "karavan",
- "version": "0.0.13",
+ "version": "0.0.14",
"license": "Apache-2.0",
"dependencies": {
"@patternfly/patternfly": "4.171.1",
"@patternfly/react-core": "4.192.7",
+ "@reactour/tour": "^2.10.2",
"@types/js-yaml": "4.0.5",
"@types/uuid": "8.3.4",
"karavan-core": "file:../karavan-core",
@@ -55,7 +56,7 @@
}
},
"../karavan-core": {
- "version": "0.0.10",
+ "version": "0.0.14",
"license": "Apache-2.0",
"dependencies": {
"@types/js-yaml": "^4.0.5",
@@ -68,6 +69,7 @@
"@types/dagre": "^0.7.47",
"@types/localforage": "0.0.34",
"@types/mocha": "^9.1.0",
+ "@types/node": "^17.0.23",
"chai": "^4.3.4",
"fs": "^0.0.1-security",
"mocha": "^9.2.0",
@@ -78,7 +80,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.0.2.tgz",
"integrity": "sha512-sE8Gx+qSDMLoJvb3QarJJlDQK7SSY4rK3hxp4XsiANeFOmjU46ZI7Y9adAQRJrmbz8zbtZkp3mJTT+rGxtF0XA==",
- "dev": true,
"dependencies": {
"@jridgewell/trace-mapping": "^0.2.2",
"sourcemap-codec": "1.4.8"
@@ -91,7 +92,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
"integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
- "dev": true,
"dependencies": {
"@babel/highlight": "^7.16.7"
},
@@ -103,7 +103,6 @@
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz",
"integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==",
- "dev": true,
"engines": {
"node": ">=6.9.0"
}
@@ -112,7 +111,6 @@
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.0.tgz",
"integrity": "sha512-x/5Ea+RO5MvF9ize5DeVICJoVrNv0Mi2RnIABrZEKYvPEpldXwauPkgvYA17cKa6WpU3LoYvYbuEMFtSNFsarA==",
- "dev": true,
"dependencies": {
"@ampproject/remapping": "^2.0.0",
"@babel/code-frame": "^7.16.7",
@@ -142,7 +140,6 @@
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz",
"integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.17.0",
"jsesc": "^2.5.1",
@@ -181,7 +178,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz",
"integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==",
- "dev": true,
"dependencies": {
"@babel/compat-data": "^7.16.4",
"@babel/helper-validator-option": "^7.16.7",
@@ -255,7 +251,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz",
"integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -279,7 +274,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz",
"integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==",
- "dev": true,
"dependencies": {
"@babel/helper-get-function-arity": "^7.16.7",
"@babel/template": "^7.16.7",
@@ -293,7 +287,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz",
"integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -305,7 +298,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
"integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -329,7 +321,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz",
"integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -341,7 +332,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz",
"integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==",
- "dev": true,
"dependencies": {
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
@@ -372,7 +362,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz",
"integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==",
- "dev": true,
"engines": {
"node": ">=6.9.0"
}
@@ -411,7 +400,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz",
"integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -435,7 +423,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
"integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -447,7 +434,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
"integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
- "dev": true,
"engines": {
"node": ">=6.9.0"
}
@@ -456,7 +442,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz",
"integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==",
- "dev": true,
"engines": {
"node": ">=6.9.0"
}
@@ -480,7 +465,6 @@
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.0.tgz",
"integrity": "sha512-Xe/9NFxjPwELUvW2dsukcMZIp6XwPSbI4ojFBJuX5ramHuVE22SVcZIwqzdWo5uCgeTXW8qV97lMvSOjq+1+nQ==",
- "dev": true,
"dependencies": {
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.17.0",
@@ -494,7 +478,6 @@
"version": "7.16.10",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz",
"integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==",
- "dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.16.7",
"chalk": "^2.0.0",
@@ -508,7 +491,6 @@
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz",
"integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==",
- "dev": true,
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -875,7 +857,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz",
"integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.16.7"
},
@@ -1751,7 +1732,6 @@
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.0.tgz",
"integrity": "sha512-etcO/ohMNaNA2UBdaXBBSX/3aEzFMRrVfaPv8Ptc0k+cWpWW0QFiGZ2XnVqQZI1Cf734LbPGmqBKWESfW4x/dQ==",
- "dev": true,
"dependencies": {
"regenerator-runtime": "^0.13.4"
},
@@ -1763,7 +1743,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
"integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==",
- "dev": true,
"dependencies": {
"@babel/code-frame": "^7.16.7",
"@babel/parser": "^7.16.7",
@@ -1777,7 +1756,6 @@
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz",
"integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==",
- "dev": true,
"dependencies": {
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.17.0",
@@ -1798,7 +1776,6 @@
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz",
"integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==",
- "dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.16.7",
"to-fast-properties": "^2.0.0"
@@ -1816,6 +1793,130 @@
"node": ">=10.0.0"
}
},
+ "node_modules/@emotion/babel-plugin": {
+ "version": "11.7.2",
+ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.7.2.tgz",
+ "integrity": "sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==",
+ "peer": true,
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.12.13",
+ "@babel/plugin-syntax-jsx": "^7.12.13",
+ "@babel/runtime": "^7.13.10",
+ "@emotion/hash": "^0.8.0",
+ "@emotion/memoize": "^0.7.5",
+ "@emotion/serialize": "^1.0.2",
+ "babel-plugin-macros": "^2.6.1",
+ "convert-source-map": "^1.5.0",
+ "escape-string-regexp": "^4.0.0",
+ "find-root": "^1.1.0",
+ "source-map": "^0.5.7",
+ "stylis": "4.0.13"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "peer": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@emotion/cache": {
+ "version": "11.7.1",
+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz",
+ "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==",
+ "peer": true,
+ "dependencies": {
+ "@emotion/memoize": "^0.7.4",
+ "@emotion/sheet": "^1.1.0",
+ "@emotion/utils": "^1.0.0",
+ "@emotion/weak-memoize": "^0.2.5",
+ "stylis": "4.0.13"
+ }
+ },
+ "node_modules/@emotion/hash": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
+ "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==",
+ "peer": true
+ },
+ "node_modules/@emotion/memoize": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz",
+ "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==",
+ "peer": true
+ },
+ "node_modules/@emotion/react": {
+ "version": "11.9.0",
+ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.9.0.tgz",
+ "integrity": "sha512-lBVSF5d0ceKtfKCDQJveNAtkC7ayxpVlgOohLgXqRwqWr9bOf4TZAFFyIcNngnV6xK6X4x2ZeXq7vliHkoVkxQ==",
+ "peer": true,
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@emotion/babel-plugin": "^11.7.1",
+ "@emotion/cache": "^11.7.1",
+ "@emotion/serialize": "^1.0.3",
+ "@emotion/utils": "^1.1.0",
+ "@emotion/weak-memoize": "^0.2.5",
+ "hoist-non-react-statics": "^3.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0",
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@emotion/serialize": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.3.tgz",
+ "integrity": "sha512-2mSSvgLfyV3q+iVh3YWgNlUc2a9ZlDU7DjuP5MjK3AXRR0dYigCrP99aeFtaB2L/hjfEZdSThn5dsZ0ufqbvsA==",
+ "peer": true,
+ "dependencies": {
+ "@emotion/hash": "^0.8.0",
+ "@emotion/memoize": "^0.7.4",
+ "@emotion/unitless": "^0.7.5",
+ "@emotion/utils": "^1.0.0",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@emotion/sheet": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.0.tgz",
+ "integrity": "sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==",
+ "peer": true
+ },
+ "node_modules/@emotion/unitless": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
+ "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==",
+ "peer": true
+ },
+ "node_modules/@emotion/utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz",
+ "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==",
+ "peer": true
+ },
+ "node_modules/@emotion/weak-memoize": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz",
+ "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==",
+ "peer": true
+ },
"node_modules/@eslint/eslintrc": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
@@ -1884,7 +1985,6 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz",
"integrity": "sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==",
- "dev": true,
"engines": {
"node": ">=6.0.0"
}
@@ -1893,7 +1993,6 @@
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.2.5.tgz",
"integrity": "sha512-K+Eths78fXDFOvQ2hgJhCiI5s+g81r2yXmACBpbn+f2+Qt94PNoTgUcAXPT8DZkhXCsZRsHVWVtY5KIBMcpDqQ==",
- "dev": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.0.3",
"sourcemap-codec": "1.4.8"
@@ -1976,6 +2075,150 @@
"resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-4.44.15.tgz",
"integrity": "sha512-Xp82baZURMISkvpNaWNu3w4cMfc2NIsDYh9K5QpVMQ94vphQrAd54UoO5NQI574+/QY2IPGKWadfvix8324J0Q=="
},
+ "node_modules/@react-aria/focus": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.5.0.tgz",
+ "integrity": "sha512-Eib75Q6QgQdn8VVVByg5Vipaaj/C//8Bs++sQY7nkomRx4sdArOnXbDppul3YHP6mRfU9VRLvAigEUlReQF/Xw==",
+ "dependencies": {
+ "@babel/runtime": "^7.6.2",
+ "@react-aria/interactions": "^3.6.0",
+ "@react-aria/utils": "^3.9.0",
+ "@react-types/shared": "^3.9.0",
+ "clsx": "^1.1.1"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/interactions": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.8.3.tgz",
+ "integrity": "sha512-zffWRqhEk4SQNbr5sv3BnMIsmQjtdhXvv3FLn9Ch0HxxGb8VStjrVPEv7r9OtVodab+ThcUehL4NJ8zU/U/4ew==",
+ "dependencies": {
+ "@babel/runtime": "^7.6.2",
+ "@react-aria/utils": "^3.11.3",
+ "@react-types/shared": "^3.11.2"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/ssr": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.1.2.tgz",
+ "integrity": "sha512-amXY11ImpokvkTMeKRHjsSsG7v1yzzs6yeqArCyBIk60J3Yhgxwx9Cah+Uu/804ATFwqzN22AXIo7SdtIaMP+g==",
+ "dependencies": {
+ "@babel/runtime": "^7.6.2"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/utils": {
+ "version": "3.11.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.11.3.tgz",
+ "integrity": "sha512-EH3SyA3FtbhuOj1cgGveiEYidKe3CgGYkP8D57O46rlTWcgTxhGHUEibGeJw3PFXxmbgm5RIOdBo29YwItvtcQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.6.2",
+ "@react-aria/ssr": "^3.1.2",
+ "@react-stately/utils": "^3.4.1",
+ "@react-types/shared": "^3.11.2",
+ "clsx": "^1.1.1"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-stately/utils": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.4.1.tgz",
+ "integrity": "sha512-mjFbKklj/W8KRw1CQSpUJxHd7lhUge4i00NwJTwGxbzmiJgsTWlKKS/1rBf48ey9hUBopXT5x5vG/AxQfWTQug==",
+ "dependencies": {
+ "@babel/runtime": "^7.6.2"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-types/shared": {
+ "version": "3.11.2",
+ "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.11.2.tgz",
+ "integrity": "sha512-MIjjjkFi/DTzMVmeFJJrpc51eS/PLNzLZEv6o/QJPhQ9uOMElYqA790qAcG75u3tR0XGU2Vv9RyeOC7+ppw8/Q==",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1"
+ }
+ },
+ "node_modules/@reactour/mask": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@reactour/mask/-/mask-0.5.0.tgz",
+ "integrity": "sha512-4Gj3exig5wvOsy6kT5cTHUwCcMI5DF43ro+e8cYMVI9l4VdFGjfz7THF8HjDXClQTK3qcCkPqeKMFhRrZ7Uc0Q==",
+ "dependencies": {
+ "@reactour/utils": "*"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11",
+ "react": "16.x || 17.x"
+ }
+ },
+ "node_modules/@reactour/popover": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@reactour/popover/-/popover-0.4.0.tgz",
+ "integrity": "sha512-UQ7QyNZN/kxuesb3bLU01iYyQG5PTN+bZ/PazUak1tC3dey/dTMnsbbKwH0Yjub+5W8F9YnZAmFXylRWE9jsCg==",
+ "dependencies": {
+ "@reactour/utils": "*"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11",
+ "react": "16.x || 17.x"
+ }
+ },
+ "node_modules/@reactour/tour": {
+ "version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@reactour/tour/-/tour-2.10.2.tgz",
+ "integrity": "sha512-AdzSEef37TkpEuCCF8b/XQukytQrcyxBNlz6zTscuI/M+L/KYzhgvhQZmYWaQiOdRQN17ARTGNtFF4P36ujSuw==",
+ "dependencies": {
+ "@react-aria/focus": "3.5.0",
+ "@reactour/mask": "*",
+ "@reactour/popover": "*",
+ "@reactour/utils": "*"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11",
+ "react": "16.x || 17.x"
+ }
+ },
+ "node_modules/@reactour/utils": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@reactour/utils/-/utils-0.3.0.tgz",
+ "integrity": "sha512-3pukl5fY5ju9/4GUykiXbqIQAd2RWDBpo1XKTy9nWndqvn51hL31lGUVAnWakQ+qvJhTA2Jb3RvvHqcWW6ZvCA==",
+ "dependencies": {
+ "@rooks/use-mutation-observer": "4.11.2",
+ "resize-observer-polyfill": "1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": "16.x || 17.x"
+ }
+ },
+ "node_modules/@rooks/use-mutation-observer": {
+ "version": "4.11.2",
+ "resolved": "https://registry.npmjs.org/@rooks/use-mutation-observer/-/use-mutation-observer-4.11.2.tgz",
+ "integrity": "sha512-vpsdrZdr6TkB1zZJcHx+fR1YC/pHs2BaqcuYiEGjBVbwY5xcC49+h0hAUtQKHth3oJqXfIX/Ng8S7s5HFHdM/A==",
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ }
+ },
"node_modules/@svgr/babel-plugin-add-jsx-attribute": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz",
@@ -2317,8 +2560,7 @@
"node_modules/@types/parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
- "dev": true
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
},
"node_modules/@types/prop-types": {
"version": "15.7.4",
@@ -2830,7 +3072,6 @@
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -2934,6 +3175,33 @@
"object.assign": "^4.1.0"
}
},
+ "node_modules/babel-plugin-macros": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz",
+ "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==",
+ "peer": true,
+ "dependencies": {
+ "@babel/runtime": "^7.7.2",
+ "cosmiconfig": "^6.0.0",
+ "resolve": "^1.12.0"
+ }
+ },
+ "node_modules/babel-plugin-macros/node_modules/cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "peer": true,
+ "dependencies": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/babel-plugin-polyfill-corejs2": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz",
@@ -3063,7 +3331,6 @@
"version": "4.19.1",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz",
"integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==",
- "dev": true,
"dependencies": {
"caniuse-lite": "^1.0.30001286",
"electron-to-chromium": "^1.4.17",
@@ -3123,7 +3390,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -3144,7 +3410,6 @@
"version": "1.0.30001307",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001307.tgz",
"integrity": "sha512-+MXEMczJ4FuxJAUp0jvAl6Df0NI/OfW1RWEE61eSmzS7hw6lz4IKutbhbXendwq8BljfFuHtu26VWsg4afQ7Ng==",
- "dev": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/browserslist"
@@ -3166,7 +3431,6 @@
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -3276,11 +3540,18 @@
"node": ">=6"
}
},
+ "node_modules/clsx": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
+ "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
"dependencies": {
"color-name": "1.1.3"
}
@@ -3288,8 +3559,7 @@
"node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"node_modules/colorette": {
"version": "2.0.16",
@@ -3316,7 +3586,6 @@
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
"integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
- "dev": true,
"dependencies": {
"safe-buffer": "~5.1.1"
}
@@ -3542,14 +3811,12 @@
"node_modules/csstype": {
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz",
- "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==",
- "dev": true
+ "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA=="
},
"node_modules/debug": {
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
"integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
"dependencies": {
"ms": "2.1.2"
},
@@ -3711,8 +3978,7 @@
"node_modules/electron-to-chromium": {
"version": "1.4.64",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.64.tgz",
- "integrity": "sha512-8mec/99xgLUZCIZZq3wt61Tpxg55jnOSpxGYapE/1Ma9MpFEYYaz4QNYm0CM1rrnCo7i3FRHhbaWjeCLsveGjQ==",
- "dev": true
+ "integrity": "sha512-8mec/99xgLUZCIZZq3wt61Tpxg55jnOSpxGYapE/1Ma9MpFEYYaz4QNYm0CM1rrnCo7i3FRHhbaWjeCLsveGjQ=="
},
"node_modules/emoji-regex": {
"version": "8.0.0",
@@ -3795,7 +4061,6 @@
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
"dependencies": {
"is-arrayish": "^0.2.1"
}
@@ -3861,7 +4126,6 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -3870,7 +4134,6 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true,
"engines": {
"node": ">=0.8.0"
}
@@ -4477,6 +4740,12 @@
"node": ">=8"
}
},
+ "node_modules/find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
+ "peer": true
+ },
"node_modules/find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -4579,8 +4848,7 @@
"node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"node_modules/functional-red-black-tree": {
"version": "1.0.1",
@@ -4592,7 +4860,6 @@
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
"engines": {
"node": ">=6.9.0"
}
@@ -4690,7 +4957,6 @@
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -4734,7 +5000,6 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
"dependencies": {
"function-bind": "^1.1.1"
},
@@ -4755,7 +5020,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -4796,6 +5060,15 @@
"he": "bin/he"
}
},
+ "node_modules/hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "peer": true,
+ "dependencies": {
+ "react-is": "^16.7.0"
+ }
+ },
"node_modules/htmlparser2": {
"version": "3.10.1",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
@@ -4877,7 +5150,6 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
"integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "dev": true,
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -4959,8 +5231,7 @@
"node_modules/is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
- "dev": true
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
},
"node_modules/is-bigint": {
"version": "1.0.4",
@@ -5018,7 +5289,6 @@
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
"integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
- "dev": true,
"dependencies": {
"has": "^1.0.3"
},
@@ -5288,7 +5558,6 @@
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true,
"bin": {
"jsesc": "bin/jsesc"
},
@@ -5305,8 +5574,7 @@
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
},
"node_modules/json-schema-traverse": {
"version": "0.4.1",
@@ -5324,7 +5592,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
"integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
- "dev": true,
"dependencies": {
"minimist": "^1.2.5"
},
@@ -5377,8 +5644,7 @@
"node_modules/lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
},
"node_modules/listenercount": {
"version": "1.0.1",
@@ -5748,10 +6014,9 @@
}
},
"node_modules/minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
- "dev": true
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"node_modules/mkdirp": {
"version": "0.5.5",
@@ -5904,8 +6169,7 @@
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/nanoid": {
"version": "3.1.20",
@@ -5934,8 +6198,7 @@
"node_modules/node-releases": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
- "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==",
- "dev": true
+ "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA=="
},
"node_modules/normalize-path": {
"version": "3.0.0",
@@ -6156,7 +6419,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
"dependencies": {
"callsites": "^3.0.0"
},
@@ -6168,7 +6430,6 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
"integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
"dependencies": {
"@babel/code-frame": "^7.0.0",
"error-ex": "^1.3.1",
@@ -6217,14 +6478,12 @@
"node_modules/path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"node_modules/path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -6232,8 +6491,7 @@
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
},
"node_modules/picomatch": {
"version": "2.3.1",
@@ -6659,8 +6917,7 @@
"node_modules/regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
- "dev": true
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
"node_modules/regenerator-transform": {
"version": "0.14.5",
@@ -6770,11 +7027,15 @@
"node": "*"
}
},
+ "node_modules/resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+ },
"node_modules/resolve": {
"version": "1.22.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
"integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
- "dev": true,
"dependencies": {
"is-core-module": "^2.8.1",
"path-parse": "^1.0.7",
@@ -6812,7 +7073,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -6876,8 +7136,7 @@
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/scheduler": {
"version": "0.20.2",
@@ -6910,7 +7169,6 @@
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
"bin": {
"semver": "bin/semver.js"
}
@@ -7052,7 +7310,6 @@
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -7088,8 +7345,7 @@
"node_modules/sourcemap-codec": {
"version": "1.4.8",
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
- "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
- "dev": true
+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
},
"node_modules/sprintf-js": {
"version": "1.0.3",
@@ -7273,11 +7529,16 @@
"webpack": "^4.0.0 || ^5.0.0"
}
},
+ "node_modules/stylis": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz",
+ "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==",
+ "peer": true
+ },
"node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -7289,7 +7550,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
"engines": {
"node": ">= 0.4"
},
@@ -7595,7 +7855,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -8215,9 +8474,9 @@
}
},
"node_modules/wide-align/node_modules/ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
"dev": true,
"engines": {
"node": ">=4"
@@ -8353,7 +8612,6 @@
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
- "dev": true,
"engines": {
"node": ">= 6"
}
@@ -8418,7 +8676,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.0.2.tgz",
"integrity": "sha512-sE8Gx+qSDMLoJvb3QarJJlDQK7SSY4rK3hxp4XsiANeFOmjU46ZI7Y9adAQRJrmbz8zbtZkp3mJTT+rGxtF0XA==",
- "dev": true,
"requires": {
"@jridgewell/trace-mapping": "^0.2.2",
"sourcemap-codec": "1.4.8"
@@ -8428,7 +8685,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
"integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
- "dev": true,
"requires": {
"@babel/highlight": "^7.16.7"
}
@@ -8436,14 +8692,12 @@
"@babel/compat-data": {
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz",
- "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==",
- "dev": true
+ "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng=="
},
"@babel/core": {
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.0.tgz",
"integrity": "sha512-x/5Ea+RO5MvF9ize5DeVICJoVrNv0Mi2RnIABrZEKYvPEpldXwauPkgvYA17cKa6WpU3LoYvYbuEMFtSNFsarA==",
- "dev": true,
"requires": {
"@ampproject/remapping": "^2.0.0",
"@babel/code-frame": "^7.16.7",
@@ -8466,7 +8720,6 @@
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz",
"integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==",
- "dev": true,
"requires": {
"@babel/types": "^7.17.0",
"jsesc": "^2.5.1",
@@ -8496,7 +8749,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz",
"integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==",
- "dev": true,
"requires": {
"@babel/compat-data": "^7.16.4",
"@babel/helper-validator-option": "^7.16.7",
@@ -8549,7 +8801,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz",
"integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==",
- "dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
@@ -8567,7 +8818,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz",
"integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==",
- "dev": true,
"requires": {
"@babel/helper-get-function-arity": "^7.16.7",
"@babel/template": "^7.16.7",
@@ -8578,7 +8828,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz",
"integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==",
- "dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
@@ -8587,7 +8836,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
"integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==",
- "dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
@@ -8605,7 +8853,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz",
"integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==",
- "dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
@@ -8614,7 +8861,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz",
"integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==",
- "dev": true,
"requires": {
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
@@ -8638,8 +8884,7 @@
"@babel/helper-plugin-utils": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz",
- "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==",
- "dev": true
+ "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA=="
},
"@babel/helper-remap-async-to-generator": {
"version": "7.16.8",
@@ -8669,7 +8914,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz",
"integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==",
- "dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
@@ -8687,7 +8931,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
"integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==",
- "dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
@@ -8695,14 +8938,12 @@
"@babel/helper-validator-identifier": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
- "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
- "dev": true
+ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw=="
},
"@babel/helper-validator-option": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz",
- "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==",
- "dev": true
+ "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ=="
},
"@babel/helper-wrap-function": {
"version": "7.16.8",
@@ -8720,7 +8961,6 @@
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.0.tgz",
"integrity": "sha512-Xe/9NFxjPwELUvW2dsukcMZIp6XwPSbI4ojFBJuX5ramHuVE22SVcZIwqzdWo5uCgeTXW8qV97lMvSOjq+1+nQ==",
- "dev": true,
"requires": {
"@babel/template": "^7.16.7",
"@babel/traverse": "^7.17.0",
@@ -8731,7 +8971,6 @@
"version": "7.16.10",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz",
"integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==",
- "dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
"chalk": "^2.0.0",
@@ -8741,8 +8980,7 @@
"@babel/parser": {
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz",
- "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==",
- "dev": true
+ "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw=="
},
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
"version": "7.16.7",
@@ -8980,7 +9218,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz",
"integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.16.7"
}
@@ -9565,7 +9802,6 @@
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.0.tgz",
"integrity": "sha512-etcO/ohMNaNA2UBdaXBBSX/3aEzFMRrVfaPv8Ptc0k+cWpWW0QFiGZ2XnVqQZI1Cf734LbPGmqBKWESfW4x/dQ==",
- "dev": true,
"requires": {
"regenerator-runtime": "^0.13.4"
}
@@ -9574,7 +9810,6 @@
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
"integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==",
- "dev": true,
"requires": {
"@babel/code-frame": "^7.16.7",
"@babel/parser": "^7.16.7",
@@ -9585,7 +9820,6 @@
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz",
"integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==",
- "dev": true,
"requires": {
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.17.0",
@@ -9603,7 +9837,6 @@
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz",
"integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==",
- "dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
"to-fast-properties": "^2.0.0"
@@ -9615,6 +9848,111 @@
"integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==",
"dev": true
},
+ "@emotion/babel-plugin": {
+ "version": "11.7.2",
+ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.7.2.tgz",
+ "integrity": "sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==",
+ "peer": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.12.13",
+ "@babel/plugin-syntax-jsx": "^7.12.13",
+ "@babel/runtime": "^7.13.10",
+ "@emotion/hash": "^0.8.0",
+ "@emotion/memoize": "^0.7.5",
+ "@emotion/serialize": "^1.0.2",
+ "babel-plugin-macros": "^2.6.1",
+ "convert-source-map": "^1.5.0",
+ "escape-string-regexp": "^4.0.0",
+ "find-root": "^1.1.0",
+ "source-map": "^0.5.7",
+ "stylis": "4.0.13"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "peer": true
+ }
+ }
+ },
+ "@emotion/cache": {
+ "version": "11.7.1",
+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz",
+ "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==",
+ "peer": true,
+ "requires": {
+ "@emotion/memoize": "^0.7.4",
+ "@emotion/sheet": "^1.1.0",
+ "@emotion/utils": "^1.0.0",
+ "@emotion/weak-memoize": "^0.2.5",
+ "stylis": "4.0.13"
+ }
+ },
+ "@emotion/hash": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
+ "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==",
+ "peer": true
+ },
+ "@emotion/memoize": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz",
+ "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==",
+ "peer": true
+ },
+ "@emotion/react": {
+ "version": "11.9.0",
+ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.9.0.tgz",
+ "integrity": "sha512-lBVSF5d0ceKtfKCDQJveNAtkC7ayxpVlgOohLgXqRwqWr9bOf4TZAFFyIcNngnV6xK6X4x2ZeXq7vliHkoVkxQ==",
+ "peer": true,
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@emotion/babel-plugin": "^11.7.1",
+ "@emotion/cache": "^11.7.1",
+ "@emotion/serialize": "^1.0.3",
+ "@emotion/utils": "^1.1.0",
+ "@emotion/weak-memoize": "^0.2.5",
+ "hoist-non-react-statics": "^3.3.1"
+ }
+ },
+ "@emotion/serialize": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.3.tgz",
+ "integrity": "sha512-2mSSvgLfyV3q+iVh3YWgNlUc2a9ZlDU7DjuP5MjK3AXRR0dYigCrP99aeFtaB2L/hjfEZdSThn5dsZ0ufqbvsA==",
+ "peer": true,
+ "requires": {
+ "@emotion/hash": "^0.8.0",
+ "@emotion/memoize": "^0.7.4",
+ "@emotion/unitless": "^0.7.5",
+ "@emotion/utils": "^1.0.0",
+ "csstype": "^3.0.2"
+ }
+ },
+ "@emotion/sheet": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.0.tgz",
+ "integrity": "sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==",
+ "peer": true
+ },
+ "@emotion/unitless": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
+ "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==",
+ "peer": true
+ },
+ "@emotion/utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz",
+ "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==",
+ "peer": true
+ },
+ "@emotion/weak-memoize": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz",
+ "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==",
+ "peer": true
+ },
"@eslint/eslintrc": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
@@ -9669,14 +10007,12 @@
"@jridgewell/resolve-uri": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz",
- "integrity": "sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==",
- "dev": true
+ "integrity": "sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg=="
},
"@jridgewell/trace-mapping": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.2.5.tgz",
"integrity": "sha512-K+Eths78fXDFOvQ2hgJhCiI5s+g81r2yXmACBpbn+f2+Qt94PNoTgUcAXPT8DZkhXCsZRsHVWVtY5KIBMcpDqQ==",
- "dev": true,
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
"sourcemap-codec": "1.4.8"
@@ -9743,6 +10079,104 @@
"resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-4.44.15.tgz",
"integrity": "sha512-Xp82baZURMISkvpNaWNu3w4cMfc2NIsDYh9K5QpVMQ94vphQrAd54UoO5NQI574+/QY2IPGKWadfvix8324J0Q=="
},
+ "@react-aria/focus": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.5.0.tgz",
+ "integrity": "sha512-Eib75Q6QgQdn8VVVByg5Vipaaj/C//8Bs++sQY7nkomRx4sdArOnXbDppul3YHP6mRfU9VRLvAigEUlReQF/Xw==",
+ "requires": {
+ "@babel/runtime": "^7.6.2",
+ "@react-aria/interactions": "^3.6.0",
+ "@react-aria/utils": "^3.9.0",
+ "@react-types/shared": "^3.9.0",
+ "clsx": "^1.1.1"
+ }
+ },
+ "@react-aria/interactions": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.8.3.tgz",
+ "integrity": "sha512-zffWRqhEk4SQNbr5sv3BnMIsmQjtdhXvv3FLn9Ch0HxxGb8VStjrVPEv7r9OtVodab+ThcUehL4NJ8zU/U/4ew==",
+ "requires": {
+ "@babel/runtime": "^7.6.2",
+ "@react-aria/utils": "^3.11.3",
+ "@react-types/shared": "^3.11.2"
+ }
+ },
+ "@react-aria/ssr": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.1.2.tgz",
+ "integrity": "sha512-amXY11ImpokvkTMeKRHjsSsG7v1yzzs6yeqArCyBIk60J3Yhgxwx9Cah+Uu/804ATFwqzN22AXIo7SdtIaMP+g==",
+ "requires": {
+ "@babel/runtime": "^7.6.2"
+ }
+ },
+ "@react-aria/utils": {
+ "version": "3.11.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.11.3.tgz",
+ "integrity": "sha512-EH3SyA3FtbhuOj1cgGveiEYidKe3CgGYkP8D57O46rlTWcgTxhGHUEibGeJw3PFXxmbgm5RIOdBo29YwItvtcQ==",
+ "requires": {
+ "@babel/runtime": "^7.6.2",
+ "@react-aria/ssr": "^3.1.2",
+ "@react-stately/utils": "^3.4.1",
+ "@react-types/shared": "^3.11.2",
+ "clsx": "^1.1.1"
+ }
+ },
+ "@react-stately/utils": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.4.1.tgz",
+ "integrity": "sha512-mjFbKklj/W8KRw1CQSpUJxHd7lhUge4i00NwJTwGxbzmiJgsTWlKKS/1rBf48ey9hUBopXT5x5vG/AxQfWTQug==",
+ "requires": {
+ "@babel/runtime": "^7.6.2"
+ }
+ },
+ "@react-types/shared": {
+ "version": "3.11.2",
+ "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.11.2.tgz",
+ "integrity": "sha512-MIjjjkFi/DTzMVmeFJJrpc51eS/PLNzLZEv6o/QJPhQ9uOMElYqA790qAcG75u3tR0XGU2Vv9RyeOC7+ppw8/Q==",
+ "requires": {}
+ },
+ "@reactour/mask": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@reactour/mask/-/mask-0.5.0.tgz",
+ "integrity": "sha512-4Gj3exig5wvOsy6kT5cTHUwCcMI5DF43ro+e8cYMVI9l4VdFGjfz7THF8HjDXClQTK3qcCkPqeKMFhRrZ7Uc0Q==",
+ "requires": {
+ "@reactour/utils": "*"
+ }
+ },
+ "@reactour/popover": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@reactour/popover/-/popover-0.4.0.tgz",
+ "integrity": "sha512-UQ7QyNZN/kxuesb3bLU01iYyQG5PTN+bZ/PazUak1tC3dey/dTMnsbbKwH0Yjub+5W8F9YnZAmFXylRWE9jsCg==",
+ "requires": {
+ "@reactour/utils": "*"
+ }
+ },
+ "@reactour/tour": {
+ "version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@reactour/tour/-/tour-2.10.2.tgz",
+ "integrity": "sha512-AdzSEef37TkpEuCCF8b/XQukytQrcyxBNlz6zTscuI/M+L/KYzhgvhQZmYWaQiOdRQN17ARTGNtFF4P36ujSuw==",
+ "requires": {
+ "@react-aria/focus": "3.5.0",
+ "@reactour/mask": "*",
+ "@reactour/popover": "*",
+ "@reactour/utils": "*"
+ }
+ },
+ "@reactour/utils": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@reactour/utils/-/utils-0.3.0.tgz",
+ "integrity": "sha512-3pukl5fY5ju9/4GUykiXbqIQAd2RWDBpo1XKTy9nWndqvn51hL31lGUVAnWakQ+qvJhTA2Jb3RvvHqcWW6ZvCA==",
+ "requires": {
+ "@rooks/use-mutation-observer": "4.11.2",
+ "resize-observer-polyfill": "1.5.1"
+ }
+ },
+ "@rooks/use-mutation-observer": {
+ "version": "4.11.2",
+ "resolved": "https://registry.npmjs.org/@rooks/use-mutation-observer/-/use-mutation-observer-4.11.2.tgz",
+ "integrity": "sha512-vpsdrZdr6TkB1zZJcHx+fR1YC/pHs2BaqcuYiEGjBVbwY5xcC49+h0hAUtQKHth3oJqXfIX/Ng8S7s5HFHdM/A==",
+ "requires": {}
+ },
"@svgr/babel-plugin-add-jsx-attribute": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz",
@@ -9955,8 +10389,7 @@
"@types/parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
- "dev": true
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
},
"@types/prop-types": {
"version": "15.7.4",
@@ -10350,7 +10783,6 @@
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
"requires": {
"color-convert": "^1.9.0"
}
@@ -10427,6 +10859,32 @@
"object.assign": "^4.1.0"
}
},
+ "babel-plugin-macros": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz",
+ "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==",
+ "peer": true,
+ "requires": {
+ "@babel/runtime": "^7.7.2",
+ "cosmiconfig": "^6.0.0",
+ "resolve": "^1.12.0"
+ },
+ "dependencies": {
+ "cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "peer": true,
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
+ }
+ }
+ }
+ },
"babel-plugin-polyfill-corejs2": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz",
@@ -10532,7 +10990,6 @@
"version": "4.19.1",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz",
"integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==",
- "dev": true,
"requires": {
"caniuse-lite": "^1.0.30001286",
"electron-to-chromium": "^1.4.17",
@@ -10572,8 +11029,7 @@
"callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
},
"camelcase": {
"version": "6.3.0",
@@ -10584,8 +11040,7 @@
"caniuse-lite": {
"version": "1.0.30001307",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001307.tgz",
- "integrity": "sha512-+MXEMczJ4FuxJAUp0jvAl6Df0NI/OfW1RWEE61eSmzS7hw6lz4IKutbhbXendwq8BljfFuHtu26VWsg4afQ7Ng==",
- "dev": true
+ "integrity": "sha512-+MXEMczJ4FuxJAUp0jvAl6Df0NI/OfW1RWEE61eSmzS7hw6lz4IKutbhbXendwq8BljfFuHtu26VWsg4afQ7Ng=="
},
"chainsaw": {
"version": "0.1.0",
@@ -10600,7 +11055,6 @@
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -10694,11 +11148,15 @@
"shallow-clone": "^3.0.0"
}
},
+ "clsx": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
+ "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA=="
+ },
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
"requires": {
"color-name": "1.1.3"
}
@@ -10706,8 +11164,7 @@
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"colorette": {
"version": "2.0.16",
@@ -10731,7 +11188,6 @@
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
"integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
- "dev": true,
"requires": {
"safe-buffer": "~5.1.1"
}
@@ -10895,14 +11351,12 @@
"csstype": {
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz",
- "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==",
- "dev": true
+ "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA=="
},
"debug": {
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
"integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
"requires": {
"ms": "2.1.2"
}
@@ -11039,8 +11493,7 @@
"electron-to-chromium": {
"version": "1.4.64",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.64.tgz",
- "integrity": "sha512-8mec/99xgLUZCIZZq3wt61Tpxg55jnOSpxGYapE/1Ma9MpFEYYaz4QNYm0CM1rrnCo7i3FRHhbaWjeCLsveGjQ==",
- "dev": true
+ "integrity": "sha512-8mec/99xgLUZCIZZq3wt61Tpxg55jnOSpxGYapE/1Ma9MpFEYYaz4QNYm0CM1rrnCo7i3FRHhbaWjeCLsveGjQ=="
},
"emoji-regex": {
"version": "8.0.0",
@@ -11099,7 +11552,6 @@
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
"requires": {
"is-arrayish": "^0.2.1"
}
@@ -11152,14 +11604,12 @@
"escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"eslint": {
"version": "7.32.0",
@@ -11603,6 +12053,12 @@
"to-regex-range": "^5.0.1"
}
},
+ "find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
+ "peer": true
+ },
"find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -11682,8 +12138,7 @@
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"functional-red-black-tree": {
"version": "1.0.1",
@@ -11694,8 +12149,7 @@
"gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
},
"get-caller-file": {
"version": "2.0.5",
@@ -11762,8 +12216,7 @@
"globals": {
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
},
"globby": {
"version": "11.1.0",
@@ -11795,7 +12248,6 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
"requires": {
"function-bind": "^1.1.1"
}
@@ -11809,8 +12261,7 @@
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
},
"has-symbols": {
"version": "1.0.2",
@@ -11833,6 +12284,15 @@
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
"dev": true
},
+ "hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "peer": true,
+ "requires": {
+ "react-is": "^16.7.0"
+ }
+ },
"htmlparser2": {
"version": "3.10.1",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
@@ -11899,7 +12359,6 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
"integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "dev": true,
"requires": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -11957,8 +12416,7 @@
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
- "dev": true
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
},
"is-bigint": {
"version": "1.0.4",
@@ -11998,7 +12456,6 @@
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
"integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
- "dev": true,
"requires": {
"has": "^1.0.3"
}
@@ -12182,8 +12639,7 @@
"jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
},
"json-parse-better-errors": {
"version": "1.0.2",
@@ -12194,8 +12650,7 @@
"json-parse-even-better-errors": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
},
"json-schema-traverse": {
"version": "0.4.1",
@@ -12213,7 +12668,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
"integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
- "dev": true,
"requires": {
"minimist": "^1.2.5"
}
@@ -12236,6 +12690,7 @@
"@types/js-yaml": "^4.0.5",
"@types/localforage": "0.0.34",
"@types/mocha": "^9.1.0",
+ "@types/node": "^17.0.23",
"@types/uuid": "^8.3.4",
"chai": "^4.3.4",
"fs": "^0.0.1-security",
@@ -12264,8 +12719,7 @@
"lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
},
"listenercount": {
"version": "1.0.1",
@@ -12566,10 +13020,9 @@
}
},
"minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
- "dev": true
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"mkdirp": {
"version": "0.5.5",
@@ -12686,8 +13139,7 @@
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"nanoid": {
"version": "3.1.20",
@@ -12710,8 +13162,7 @@
"node-releases": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
- "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==",
- "dev": true
+ "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA=="
},
"normalize-path": {
"version": "3.0.0",
@@ -12869,7 +13320,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
"requires": {
"callsites": "^3.0.0"
}
@@ -12878,7 +13328,6 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
"integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
"error-ex": "^1.3.1",
@@ -12912,20 +13361,17 @@
"path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
},
"picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
},
"picomatch": {
"version": "2.3.1",
@@ -13224,8 +13670,7 @@
"regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
- "dev": true
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
"regenerator-transform": {
"version": "0.14.5",
@@ -13307,11 +13752,15 @@
"integrity": "sha1-rW8wwTvs15cBDEaK+ndcDAprR/o=",
"dev": true
},
+ "resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+ },
"resolve": {
"version": "1.22.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
"integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
- "dev": true,
"requires": {
"is-core-module": "^2.8.1",
"path-parse": "^1.0.7",
@@ -13338,8 +13787,7 @@
"resolve-from": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
},
"reusify": {
"version": "1.0.4",
@@ -13376,8 +13824,7 @@
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"scheduler": {
"version": "0.20.2",
@@ -13402,8 +13849,7 @@
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
},
"serialize-javascript": {
"version": "6.0.0",
@@ -13513,8 +13959,7 @@
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
},
"source-map-js": {
"version": "1.0.2",
@@ -13543,8 +13988,7 @@
"sourcemap-codec": {
"version": "1.4.8",
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
- "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
- "dev": true
+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
},
"sprintf-js": {
"version": "1.0.3",
@@ -13684,11 +14128,16 @@
"schema-utils": "^3.0.0"
}
},
+ "stylis": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz",
+ "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==",
+ "peer": true
+ },
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
"requires": {
"has-flag": "^3.0.0"
}
@@ -13696,8 +14145,7 @@
"supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
},
"svg-parser": {
"version": "2.0.4",
@@ -13908,8 +14356,7 @@
"to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
- "dev": true
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
},
"to-regex-range": {
"version": "5.0.1",
@@ -14366,9 +14813,9 @@
},
"dependencies": {
"ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
"dev": true
},
"is-fullwidth-code-point": {
@@ -14474,8 +14921,7 @@
"yaml": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
- "dev": true
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
},
"yargs": {
"version": "16.2.0",
diff --git a/karavan-vscode/package.json b/karavan-vscode/package.json
index 32ad61a..b4c8414 100644
--- a/karavan-vscode/package.json
+++ b/karavan-vscode/package.json
@@ -94,6 +94,11 @@
"type": "string",
"default": "",
"description": "Custom Kamelets Path"
+ },
+ "Karavan.showStartHelp": {
+ "type": "boolean",
+ "default": true,
+ "description": "Show Karavan help tour"
}
}
},
@@ -323,6 +328,7 @@
"dependencies": {
"@patternfly/patternfly": "4.171.1",
"@patternfly/react-core": "4.192.7",
+ "@reactour/tour": "^2.10.2",
"@types/js-yaml": "4.0.5",
"@types/uuid": "8.3.4",
"karavan-core": "file:../karavan-core",
diff --git a/karavan-vscode/src/designerView.ts b/karavan-vscode/src/designerView.ts
index ce07170..09a63d2 100644
--- a/karavan-vscode/src/designerView.ts
+++ b/karavan-vscode/src/designerView.ts
@@ -121,6 +121,10 @@ export class DesignerView {
case 'getData':
this.sendData(panel, filename, relativePath, yaml);
break;
+ case 'disableStartHelp':
+ console.log("!!!! 2");
+ utils.disableStartHelp();
+ break;
}
},
undefined,
@@ -146,8 +150,13 @@ export class DesignerView {
// Read and send Components
panel.webview.postMessage({ command: 'components', components: utils.readComponents(this.context) });
+ // Send showStartHelp
+ const showStartHelp = vscode.workspace.getConfiguration().get("Karavan.showStartHelp");
+ panel.webview.postMessage({ command: 'showStartHelp', showStartHelp: showStartHelp});
+
// Send integration
panel.webview.postMessage({ command: 'open', filename: filename, relativePath: relativePath, yaml: yaml });
+
}
}
\ No newline at end of file
diff --git a/karavan-vscode/src/extension.ts b/karavan-vscode/src/extension.ts
index 4637c46..c0a195c 100644
--- a/karavan-vscode/src/extension.ts
+++ b/karavan-vscode/src/extension.ts
@@ -21,7 +21,6 @@ import {IntegrationView} from "./integrationView";
import { KameletView } from "./kameletView";
import { ComponentView } from "./componentView";
import { EipView } from "./eipView";
-import { ViewColumn } from "vscode";
const KARAVAN_LOADED = "karavan:loaded";
diff --git a/karavan-vscode/src/utils.ts b/karavan-vscode/src/utils.ts
index 04f1165..fb83026 100644
--- a/karavan-vscode/src/utils.ts
+++ b/karavan-vscode/src/utils.ts
@@ -31,7 +31,6 @@ export function save(relativePath: string, yaml: string){
}
}
-
export function getRalativePath(fullPath: string): string {
const root = vscode.workspace.workspaceFolders ? vscode.workspace.workspaceFolders[0].uri.path : "";
const normalizedRoot = vscode.Uri.file(root).fsPath ;
@@ -68,6 +67,14 @@ export function parceYaml(filename: string, yaml: string): [boolean, string?] {
}
}
+export function disableStartHelp(){
+ console.log("!!!! 3");
+ const config = vscode.workspace.getConfiguration();
+ console.log(config);
+ config.update("Karavan.showStartHelp", false);
+ console.log("!!!! 4", vscode.workspace.getConfiguration().get("Karavan.showStartHelp"));
+}
+
export function runCamelJbang(filename: string) {
const version = vscode.workspace.getConfiguration().get("camel.version");
const maxMessages: number = vscode.workspace.getConfiguration().get("camel.maxMessages") || -1;
diff --git a/karavan-vscode/webview/App.tsx b/karavan-vscode/webview/App.tsx
index 92d2719..0d33792 100644
--- a/karavan-vscode/webview/App.tsx
+++ b/karavan-vscode/webview/App.tsx
@@ -36,6 +36,7 @@ interface State {
interval?: NodeJS.Timer
scheduledYaml: string
hasChanges: boolean
+ showStartHelp: boolean
}
class App extends React.Component<Props, State> {
@@ -47,19 +48,20 @@ class App extends React.Component<Props, State> {
key: '',
loaded: false,
scheduledYaml: '',
- hasChanges: false
+ hasChanges: false,
+ showStartHelp: false
};
saveScheduledChanges = () => {
if (this.state.hasChanges){
this.save(this.state.relativePath, this.state.scheduledYaml, false);
}
- };
+ }
componentDidMount() {
window.addEventListener('message', this.onMessage, false);
vscode.postMessage({ command: 'getData' });
- this.setState({interval: setInterval(this.saveScheduledChanges, 3000)});
+ this.setState({interval: setInterval(this.saveScheduledChanges, 2000)});
}
componentWillUnmount() {
@@ -76,6 +78,9 @@ class App extends React.Component<Props, State> {
case 'components':
ComponentApi.saveComponents(message.components);
break;
+ case 'showStartHelp':
+ this.setState({showStartHelp: message.showStartHelp});
+ break;
case 'open':
if (this.state.filename === '' && this.state.key === '') {
this.setState({ filename: message.filename, yaml: message.yaml, scheduledYaml: message.yaml, relativePath: message.relativePath, key: Math.random().toString(), loaded: true });
@@ -93,6 +98,10 @@ class App extends React.Component<Props, State> {
}
}
+ disableStartHelp() {
+ vscode.postMessage({ command: 'disableStartHelp'});
+ }
+
public render() {
return (
<Page className="karavan">
@@ -103,10 +112,12 @@ class App extends React.Component<Props, State> {
}
{this.state.loaded &&
<KaravanDesigner
+ showStartHelp={this.state.showStartHelp}
key={this.state.key}
filename={this.state.filename}
yaml={this.state.yaml}
onSave={(filename, yaml, propertyOnly) => this.save(filename, yaml, propertyOnly)}
+ onDisableHelp={this.disableStartHelp}
dark={this.props.dark} />
}
</Page>
diff --git a/karavan-vscode/webview/index.css b/karavan-vscode/webview/index.css
index c06efb1..aff3a4b 100644
--- a/karavan-vscode/webview/index.css
+++ b/karavan-vscode/webview/index.css
@@ -21,6 +21,10 @@ body, :root, #root, .karavan {
--step-border-color-selected:var(--vscode-focusBorder);
}
+.vscode-dark .pf-c-page {
+ background-color: var(--vscode-editor-background);
+}
+
.karavan .pf-c-drawer__content {
background-color: transparent;
}
@@ -72,16 +76,21 @@ body, :root, #root, .karavan {
color: var(--pf-global--palette--black-400);
}
-.vscode-dark .karavan .loading-page {
- background-color: var(--vscode-editor-background);
+.karavan .loading-page {
+ background-color: transparent;
height: 100%;
display: flex;
+ margin: auto;
+ justify-content: center;
flex-direction: column;
}
-.vscode-dark .karavan .progress-stepper {
- margin: auto;
+/* .vscode-light .karavan .loading-page {
+ background-color: transparent;
}
+.vscode-dark .karavan .loading-page {
+ background-color: var(--vscode-editor-background);
+} */
/* Tabs */
.vscode-dark .pf-c-tabs__link::after {
@@ -262,59 +271,23 @@ body, :root, #root, .karavan {
color: var(--vscode-input-foreground);
}
-
-/*
-
-
-
-
-
-
-
-
-
-
-.vscode-dark .karavan .properties .pf-c-switch {
- --pf-c-switch__input--checked__toggle--BackgroundColor: var(--pf-global--active-color--100);
-}
-
-
-
-
-
-.vscode-dark .pf-c-tab-content .pf-c-card__header p {
- color: #cecece;
-}
-
-
-
-
-.vscode-dark .step-element .add-button,
-.vscode-dark .step-element .add-element-button,
-.vscode-dark .step-element .add-button-from {
- background: transparent;
+/* Tour */
+.vscode-dark .reactour__popover {
+ color: var(--vscode-editor-foreground);
+ background-color: var(--vscode-tab-inactiveBackground);
}
-
-
-
-
-
-.vscode-dark .karavan .pf-c-expandable-section__toggle,
-.vscode-dark .karavan .pf-c-expandable-section__toggle-icon {
- color: var(--pf-global--Color--200);
+.vscode-dark .reactour__popover [class$="-DefaultArrow"] {
+ color: var(--vscode-editor-foreground);
}
-.vscode-dark .karavan .properties .expression,
-.vscode-dark .karavan .properties .object,
-.vscode-dark .karavan .properties .dataformat,
-.vscode-dark .karavan .properties .parameters {
- border-style: none;
+/* Help */
+.vscode-light .dont-show,
+.vscode-dark .dont-show {
+ margin-right: auto;
}
-.vscode-dark .modal-delete {
- width: 350px;
- --pf-c-modal-box--BackgroundColor: #505050;
+/* Tour */
+.vscode-dark .reactour__mask {
+ color: var(--vscode-input-placeholderForeground);
}
-*/
-