Merge remote-tracking branch 'origin/develop' into next-auth

# Conflicts:
#	.pnp.cjs
#	packages/client/src/auth/getAuthMethods.js
#	packages/client/src/auth/getNextAuthConfig.js
#	packages/client/src/auth/getProviders.js
#	yarn.lock
This commit is contained in:
Sam 2022-04-29 16:06:44 +02:00
commit 878201bc18
No known key found for this signature in database
GPG Key ID: D004126FCD1A6DF0
120 changed files with 610 additions and 2013 deletions

View File

@ -22,7 +22,7 @@ jobs:
run: yarn build
# format tests don't pass on node 12 since icu is missing and tests don't work with locales
- name: Test packages
run: yarn test --ignore='@lowdefy/engine' --ignore='@lowdefy/format' --ignore='@lowdefy/blocks-*' --ignore='@lowdefy/plugin-aws'
run: yarn test-ci
- name: Upload coverage to codecov
run: bash <(curl -s https://codecov.io/bash)
- name: Upload coverage to codeclimate

View File

@ -19,7 +19,7 @@ jobs:
run: yarn build
- name: Test packages
run: yarn test --ignore='@lowdefy/engine' --ignore='@lowdefy/format' --ignore='@lowdefy/blocks-*' --ignore='@lowdefy/plugin-aws'
run: yarn test-ci
- name: Upload coverage to codecov
run: bash <(curl -s https://codecov.io/bash)

173
.pnp.cjs generated
View File

@ -34,6 +34,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"name": "lowdefy",
"reference": "workspace:packages/cli"
},
{
"name": "@lowdefy/client",
"reference": "workspace:packages/client"
},
{
"name": "@lowdefy/docs",
"reference": "workspace:packages/docs"
@ -198,6 +202,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@lowdefy/blocks-loaders", ["workspace:packages/plugins/blocks/blocks-loaders"]],
["@lowdefy/blocks-markdown", ["workspace:packages/plugins/blocks/blocks-markdown"]],
["@lowdefy/build", ["workspace:packages/build"]],
["@lowdefy/client", ["workspace:packages/client"]],
["@lowdefy/connection-axios-http", ["workspace:packages/plugins/connections/connection-axios-http"]],
["@lowdefy/connection-elasticsearch", ["workspace:packages/plugins/connections/connection-elasticsearch"]],
["@lowdefy/connection-google-sheets", ["workspace:packages/plugins/connections/connection-google-sheets"]],
@ -268,17 +273,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
],
"linkType": "SOFT",
}],
["virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:4.7.0", {
"packageLocation": "./.yarn/__virtual__/@ant-design-icons-virtual-168cfd14dd/0/cache/@ant-design-icons-npm-4.7.0-8ad06c46c5-4264d38e6b.zip/node_modules/@ant-design/icons/",
["virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:4.7.0", {
"packageLocation": "./.yarn/__virtual__/@ant-design-icons-virtual-7e3863ece0/0/cache/@ant-design-icons-npm-4.7.0-8ad06c46c5-4264d38e6b.zip/node_modules/@ant-design/icons/",
"packageDependencies": [
["@ant-design/icons", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:4.7.0"],
["@ant-design/icons", "virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:4.7.0"],
["@ant-design/colors", "npm:6.0.0"],
["@ant-design/icons-svg", "npm:4.2.1"],
["@babel/runtime", "npm:7.16.7"],
["@types/react", null],
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -1510,39 +1515,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["@emotion/react", [
["npm:11.7.1", {
"packageLocation": "./.yarn/cache/@emotion-react-npm-11.7.1-29be6cd15f-3392aa71f9.zip/node_modules/@emotion/react/",
"packageDependencies": [
["@emotion/react", "npm:11.7.1"]
],
"linkType": "SOFT",
}],
["virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:11.7.1", {
"packageLocation": "./.yarn/__virtual__/@emotion-react-virtual-c0347ba1b1/0/cache/@emotion-react-npm-11.7.1-29be6cd15f-3392aa71f9.zip/node_modules/@emotion/react/",
"packageDependencies": [
["@emotion/react", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:11.7.1"],
["@babel/core", null],
["@babel/runtime", "npm:7.16.7"],
["@emotion/cache", "npm:11.7.1"],
["@emotion/serialize", "npm:1.0.2"],
["@emotion/sheet", "npm:1.1.0"],
["@emotion/utils", "npm:1.0.0"],
["@emotion/weak-memoize", "npm:0.2.5"],
["@types/babel__core", null],
["@types/react", null],
["hoist-non-react-statics", "npm:3.3.2"],
["react", "npm:17.0.2"]
],
"packagePeers": [
"@babel/core",
"@types/babel__core",
"@types/react",
"react"
],
"linkType": "HARD",
}]
]],
["@emotion/serialize", [
["npm:1.0.2", {
"packageLocation": "./.yarn/cache/@emotion-serialize-npm-1.0.2-a692afdb82-ff84fbe09e.zip/node_modules/@emotion/serialize/",
@ -2863,10 +2835,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"packageLocation": "./packages/utils/block-utils/",
"packageDependencies": [
["@lowdefy/block-utils", "workspace:packages/utils/block-utils"],
["@ant-design/icons", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:4.7.0"],
["@emotion/css", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:11.7.1"],
["@emotion/jest", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:11.7.1"],
["@emotion/react", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:11.7.1"],
["@lowdefy/helpers", "workspace:packages/utils/helpers"],
["@swc/cli", "virtual:babee6e81435a5d101529cd67f2c6b175f4db37a4ab0b58df15adf73dd11be8917ac14caf44ab4e6882a92c61661055072365b349016e85173e049f006fc2305#npm:0.1.55"],
["@swc/core", "npm:1.2.135"],
@ -2874,7 +2844,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@testing-library/dom", "npm:8.11.3"],
["@testing-library/react", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:13.0.0-alpha.4"],
["@testing-library/user-event", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:14.0.0-alpha.14"],
["classnames", "npm:2.3.1"],
["copyfiles", "npm:2.4.1"],
["dompurify", "npm:2.3.5"],
["jest", "virtual:babee6e81435a5d101529cd67f2c6b175f4db37a4ab0b58df15adf73dd11be8917ac14caf44ab4e6882a92c61661055072365b349016e85173e049f006fc2305#npm:27.5.1"],
["jest-serializer-html", "npm:7.1.0"],
@ -2889,7 +2859,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"packageLocation": "./packages/plugins/blocks/blocks-antd/",
"packageDependencies": [
["@lowdefy/blocks-antd", "workspace:packages/plugins/blocks/blocks-antd"],
["@ant-design/icons", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:4.7.0"],
["@ant-design/icons", "virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:4.7.0"],
["@emotion/jest", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:11.7.1"],
["@lowdefy/block-dev", "workspace:packages/utils/block-dev"],
["@lowdefy/block-utils", "workspace:packages/utils/block-utils"],
@ -3097,6 +3067,34 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "SOFT",
}]
]],
["@lowdefy/client", [
["workspace:packages/client", {
"packageLocation": "./packages/client/",
"packageDependencies": [
["@lowdefy/client", "workspace:packages/client"],
["@ant-design/icons", "virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:4.7.0"],
["@emotion/jest", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:11.7.1"],
["@lowdefy/block-utils", "workspace:packages/utils/block-utils"],
["@lowdefy/engine", "workspace:packages/engine"],
["@lowdefy/helpers", "workspace:packages/utils/helpers"],
["@lowdefy/layout", "workspace:packages/layout"],
["@swc/cli", "virtual:babee6e81435a5d101529cd67f2c6b175f4db37a4ab0b58df15adf73dd11be8917ac14caf44ab4e6882a92c61661055072365b349016e85173e049f006fc2305#npm:0.1.55"],
["@swc/core", "npm:1.2.135"],
["@swc/jest", "virtual:babee6e81435a5d101529cd67f2c6b175f4db37a4ab0b58df15adf73dd11be8917ac14caf44ab4e6882a92c61661055072365b349016e85173e049f006fc2305#npm:0.2.17"],
["@testing-library/dom", "npm:8.11.3"],
["@testing-library/react", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:13.0.0-alpha.4"],
["@testing-library/user-event", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:14.0.0-alpha.14"],
["classnames", "npm:2.3.1"],
["copyfiles", "npm:2.4.1"],
["jest", "virtual:babee6e81435a5d101529cd67f2c6b175f4db37a4ab0b58df15adf73dd11be8917ac14caf44ab4e6882a92c61661055072365b349016e85173e049f006fc2305#npm:27.5.1"],
["jest-serializer-html", "npm:7.1.0"],
["jest-transform-yaml", "npm:1.0.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
"linkType": "SOFT",
}]
]],
["@lowdefy/connection-axios-http", [
["workspace:packages/plugins/connections/connection-axios-http", {
"packageLocation": "./packages/plugins/connections/connection-axios-http/",
@ -3545,14 +3543,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"packageLocation": "./packages/server/",
"packageDependencies": [
["@lowdefy/server", "workspace:packages/server"],
["@lowdefy/actions-core", "workspace:packages/plugins/actions/actions-core"],
["@lowdefy/api", "workspace:packages/api"],
["@lowdefy/block-utils", "workspace:packages/utils/block-utils"],
["@lowdefy/blocks-antd", "workspace:packages/plugins/blocks/blocks-antd"],
["@lowdefy/blocks-basic", "workspace:packages/plugins/blocks/blocks-basic"],
["@lowdefy/blocks-loaders", "workspace:packages/plugins/blocks/blocks-loaders"],
["@lowdefy/build", "workspace:packages/build"],
["@lowdefy/engine", "workspace:packages/engine"],
["@lowdefy/client", "workspace:packages/client"],
["@lowdefy/helpers", "workspace:packages/utils/helpers"],
["@lowdefy/layout", "workspace:packages/layout"],
["@lowdefy/node-utils", "workspace:packages/utils/node-utils"],
@ -3578,8 +3574,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"packageLocation": "./packages/server-dev/",
"packageDependencies": [
["@lowdefy/server-dev", "workspace:packages/server-dev"],
["@lowdefy/actions-core", "workspace:packages/plugins/actions/actions-core"],
["@lowdefy/api", "workspace:packages/api"],
["@lowdefy/block-utils", "workspace:packages/utils/block-utils"],
["@lowdefy/blocks-antd", "workspace:packages/plugins/blocks/blocks-antd"],
["@lowdefy/blocks-basic", "workspace:packages/plugins/blocks/blocks-basic"],
["@lowdefy/blocks-color-selectors", "workspace:packages/plugins/blocks/blocks-color-selectors"],
@ -3587,6 +3583,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@lowdefy/blocks-loaders", "workspace:packages/plugins/blocks/blocks-loaders"],
["@lowdefy/blocks-markdown", "workspace:packages/plugins/blocks/blocks-markdown"],
["@lowdefy/build", "workspace:packages/build"],
["@lowdefy/client", "workspace:packages/client"],
["@lowdefy/connection-axios-http", "workspace:packages/plugins/connections/connection-axios-http"],
["@lowdefy/engine", "workspace:packages/engine"],
["@lowdefy/helpers", "workspace:packages/utils/helpers"],
@ -5380,7 +5377,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"packageDependencies": [
["antd", "virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:4.18.2"],
["@ant-design/colors", "npm:6.0.0"],
["@ant-design/icons", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:4.7.0"],
["@ant-design/icons", "virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:4.7.0"],
["@ant-design/react-slick", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:0.28.4"],
["@babel/runtime", "npm:7.16.7"],
["@ctrl/tinycolor", "npm:3.4.0"],
@ -5422,7 +5419,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["rc-tree-select", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:5.0.0-alpha.4"],
["rc-trigger", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:5.2.10"],
["rc-upload", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:4.3.3"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"],
["scroll-into-view-if-needed", "npm:2.2.29"]
@ -9686,16 +9683,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
["hoist-non-react-statics", [
["npm:3.3.2", {
"packageLocation": "./.yarn/cache/hoist-non-react-statics-npm-3.3.2-e7b709e6c1-b153827042.zip/node_modules/hoist-non-react-statics/",
"packageDependencies": [
["hoist-non-react-statics", "npm:3.3.2"],
["react-is", "npm:16.13.1"]
],
"linkType": "HARD",
}]
]],
["hosted-git-info", [
["npm:2.8.9", {
"packageLocation": "./.yarn/cache/hosted-git-info-npm-2.8.9-62c44fa93f-c955394bda.zip/node_modules/hosted-git-info/",
@ -15303,7 +15290,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["classnames", "npm:2.3.1"],
["dom-align", "npm:1.12.2"],
["lodash", "npm:4.17.21"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"],
["resize-observer-polyfill", "npm:1.5.1"]
@ -15336,7 +15323,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["classnames", "npm:2.3.1"],
["rc-select", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:14.0.0-alpha.26"],
["rc-tree", "virtual:5cbeddbd8d40fd27744ac5bdca3d9c78264e0215780f1acaec203007d4b8b9a2b8d7ca06c3ba60bc09f45c2b2a6810a13a3fc52fd1d0d749ad27d151bb04a198#npm:5.4.3"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -15394,7 +15381,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-motion", "virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:2.4.4"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"],
["shallowequal", "npm:1.1.0"]
@ -15425,7 +15412,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-motion", "virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:2.4.4"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -15454,7 +15441,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react", null],
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -15491,7 +15478,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-trigger", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:5.2.10"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -15512,7 +15499,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-trigger", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:5.2.10"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -15541,7 +15528,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react", null],
["@types/react-dom", null],
["async-validator", "npm:4.0.7"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -15571,7 +15558,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-dialog", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:8.6.0"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -15600,7 +15587,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react", null],
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -15632,7 +15619,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["rc-menu", "virtual:9b08d0103ed0c41ecbb29b80c7f0952f56690458541bdc3b40a8f6e2141ab5571d8e667fc0cbc7e816e99c60fd695931aea6d23c3e10f2a63ed283fcb22856fc#npm:9.3.2"],
["rc-textarea", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:0.3.7"],
["rc-trigger", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:5.2.10"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -15671,7 +15658,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["rc-motion", "virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:2.4.4"],
["rc-overflow", "virtual:f3201355e275fc367612b99835082bfe45b71743479bb8e7dc6b1a0e6ec3b97ac5d71b86ce2047f12fdd63e0e5db39a42431dac4589da3fdb850f063190fb24a#npm:1.2.2"],
["rc-trigger", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:5.2.10"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"],
["shallowequal", "npm:1.1.0"]
@ -15695,7 +15682,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["rc-motion", "virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:2.4.4"],
["rc-overflow", "virtual:f3201355e275fc367612b99835082bfe45b71743479bb8e7dc6b1a0e6ec3b97ac5d71b86ce2047f12fdd63e0e5db39a42431dac4589da3fdb850f063190fb24a#npm:1.2.2"],
["rc-trigger", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:5.2.10"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"],
["shallowequal", "npm:1.1.0"]
@ -15725,7 +15712,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react", null],
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -15755,7 +15742,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-motion", "virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:2.4.4"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -15785,7 +15772,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-resize-observer", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:1.2.0"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -15846,7 +15833,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["dayjs", "npm:1.10.7"],
["moment", "npm:2.29.1"],
["rc-trigger", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:5.2.10"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"],
["shallowequal", "npm:1.1.0"]
@ -15876,7 +15863,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react", null],
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -15905,7 +15892,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react", null],
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -15934,7 +15921,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react", null],
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"],
["resize-observer-polyfill", "npm:1.5.1"]
@ -15967,7 +15954,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["rc-motion", "virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:2.4.4"],
["rc-overflow", "virtual:f3201355e275fc367612b99835082bfe45b71743479bb8e7dc6b1a0e6ec3b97ac5d71b86ce2047f12fdd63e0e5db39a42431dac4589da3fdb850f063190fb24a#npm:1.2.2"],
["rc-trigger", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:5.2.10"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["rc-virtual-list", "virtual:d0ef4ef4df8c18d930d669f36c367285d6797d2976508bea42f22f1b9ec914504bc240ade5dc2e1948c03a2acd136deb6f35e8e33b5236018dd4348224dd538a#npm:3.4.2"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
@ -15998,7 +15985,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-tooltip", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:5.1.1"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"],
["shallowequal", "npm:1.1.0"]
@ -16028,7 +16015,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react", null],
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -16057,7 +16044,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react", null],
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -16087,7 +16074,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-resize-observer", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:1.2.0"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"],
["shallowequal", "npm:1.1.0"]
@ -16120,7 +16107,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["rc-dropdown", "virtual:6177bf62ab342574edbf06853562f14ff0b0d4374742901464f5854325cb786053de94a4bdd4f1901a8f06b14b9e1cd8aa9d26d5858f1f39508db3264a529fcb#npm:3.3.0"],
["rc-menu", "virtual:9b08d0103ed0c41ecbb29b80c7f0952f56690458541bdc3b40a8f6e2141ab5571d8e667fc0cbc7e816e99c60fd695931aea6d23c3e10f2a63ed283fcb22856fc#npm:9.3.2"],
["rc-resize-observer", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:1.2.0"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -16150,7 +16137,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-resize-observer", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:1.2.0"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"],
["shallowequal", "npm:1.1.0"]
@ -16216,7 +16203,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-motion", "virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:2.4.4"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["rc-virtual-list", "virtual:d0ef4ef4df8c18d930d669f36c367285d6797d2976508bea42f22f1b9ec914504bc240ade5dc2e1948c03a2acd136deb6f35e8e33b5236018dd4348224dd538a#npm:3.4.2"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
@ -16238,7 +16225,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-motion", "virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:2.4.4"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["rc-virtual-list", "virtual:d0ef4ef4df8c18d930d669f36c367285d6797d2976508bea42f22f1b9ec914504bc240ade5dc2e1948c03a2acd136deb6f35e8e33b5236018dd4348224dd538a#npm:3.4.2"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
@ -16270,7 +16257,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["classnames", "npm:2.3.1"],
["rc-select", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:14.0.0-alpha.26"],
["rc-tree", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:5.3.8"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -16301,7 +16288,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["classnames", "npm:2.3.1"],
["rc-align", "virtual:a0cde20e0292ef25046285d3616cd7818b95042e3e1ad7ee881431733a28b26e007e8954fb488816772fc720a44a1a192eb293856137e3207c3ad080e640b018#npm:4.0.11"],
["rc-motion", "virtual:f494f6d4e058cb1c8a3b456f6099aff9bd740d65abfc014377b7a3f1e34fcb35eb64a962e127c8bfbedaa0555175b6f2cdc47011e32e2fb5f081d7d32f526c78#npm:2.4.4"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -16330,7 +16317,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react", null],
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],
@ -16351,10 +16338,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
],
"linkType": "SOFT",
}],
["virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0", {
"packageLocation": "./.yarn/__virtual__/rc-util-virtual-c6747a1499/0/cache/rc-util-npm-5.17.0-4477bf5307-c6f083742e.zip/node_modules/rc-util/",
["virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0", {
"packageLocation": "./.yarn/__virtual__/rc-util-virtual-5738260a62/0/cache/rc-util-npm-5.17.0-4477bf5307-c6f083742e.zip/node_modules/rc-util/",
"packageDependencies": [
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["@babel/runtime", "npm:7.16.7"],
["@types/react", null],
["@types/react-dom", null],
@ -16388,7 +16375,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@types/react-dom", null],
["classnames", "npm:2.3.1"],
["rc-resize-observer", "virtual:caddce747241c88958e039daadd2596eb7c11034e7ef35655f4f28f4496d3c6f1fc47b71417570ca9d8f270e1029349bbe942266aaa5cde8b29aef95b1038892#npm:1.2.0"],
["rc-util", "virtual:168cfd14dd9e71b0423112848f69380ff1f0f5dffd5be83d150031464f8b398ca894fd5b87337ea7fc74ec2ed290ef92e6bd13f03f172c30eabf0a35fb94d97e#npm:5.17.0"],
["rc-util", "virtual:7e3863ece061dda54214da8dfaaa3f3663891078cb856975c7f9148a6d7b3bd1799941ca573699ce564591ced647a40f68190f57334e0215ccb39d95b04e29d6#npm:5.17.0"],
["react", "npm:17.0.2"],
["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"]
],

View File

@ -52,9 +52,10 @@
"start:server-dev:docs": "yarn workspace @lowdefy/server-dev start --package-manager yarn --config-directory ../docs",
"start:server:app": "yarn workspace @lowdefy/server build:lowdefy --config-directory ../../app && yarn && yarn workspace @lowdefy/server build:next && yarn workspace @lowdefy/server start",
"start:server:docs": "yarn workspace @lowdefy/server build:lowdefy --config-directory ../docs && yarn && yarn workspace @lowdefy/server build:next && yarn workspace @lowdefy/server start",
"start:server:next-dev:app": "yarn workspace @lowdefy/server build:lowdefy --config-directory ../../app && yarn && yarn workspace @lowdefy/server dev",
"start:server:next-dev:docs": "yarn workspace @lowdefy/server build:lowdefy --config-directory ../docs && yarn && yarn workspace @lowdefy/server dev",
"test": "lerna run test"
"start:server:next-dev:app": "yarn start:cli:build:app && yarn && yarn workspace @lowdefy/server dev",
"start:server:next-dev:docs": "yarn start:cli:build:docs && yarn && yarn workspace @lowdefy/server dev",
"test": "lerna run test",
"test-ci": "yarn test --ignore='@lowdefy/engine' --ignore='@lowdefy/format' --ignore='@lowdefy/blocks-*' --ignore='@lowdefy/plugin-aws'"
},
"devDependencies": {
"@yarnpkg/pnpify": "3.1.1-rc.13",

View File

@ -27,11 +27,11 @@ import validateBlock from './validateBlock.js';
async function buildBlock(block, pageContext) {
validateBlock(block, pageContext);
setBlockId(block, pageContext);
countBlockOperators(block, pageContext);
buildEvents(block, pageContext);
buildRequests(block, pageContext);
moveSubBlocksToArea(block, pageContext);
moveSkeletonBlocksToArea(block, pageContext);
countBlockOperators(block, pageContext);
countBlockTypes(block, pageContext);
await buildSubBlocks(block, pageContext);
}

View File

@ -18,8 +18,7 @@ import countOperators from '../../../utils/countOperators.js';
function countBlockOperators(block, { typeCounters }) {
// eslint-disable-next-line no-unused-vars
const { requests, areas, ...webBlock } = block;
const { requests, areas, blocks, ...webBlock } = block;
countOperators(webBlock, { counter: typeCounters.operators.client });
(requests || []).forEach((request) => {
countOperators(request.payload || {}, { counter: typeCounters.operators.client });

View File

@ -17,6 +17,7 @@
import { nunjucksFunction } from '@lowdefy/nunjucks';
const template = `@import '@lowdefy/layout/style.less';
@import '@lowdefy/client/style.less';
{% for style in styles -%}
@import '{{ style }}';
{% endfor -%}

View File

@ -38,7 +38,7 @@ pages:
title: Welcome to your Lowdefy app
subTitle: We are excited to see what you are going to build
icon:
name: AiTwoToneHeart
name: AiOutlineHeart
color: '#f00'
areas:
extra:

View File

View File

@ -0,0 +1,3 @@
# @lowdefy/client
Lowdefy Client

View File

@ -0,0 +1,16 @@
export default {
clearMocks: true,
collectCoverage: true,
collectCoverageFrom: ['src/**/*.js'],
coverageDirectory: 'coverage',
coveragePathIgnorePatterns: ['<rootDir>/dist/', '<rootDir>/src/test', '<rootDir>/src/index.js'],
coverageReporters: [['lcov', { projectRoot: '../..' }], 'text', 'clover'],
errorOnDeprecated: true,
testEnvironment: 'jsdom',
testPathIgnorePatterns: ['<rootDir>/dist/', '<rootDir>/src/test'],
transform: {
'^.+\\.(t|j)sx?$': ['@swc/jest', { configFile: '../../.swcrc.test' }],
'\\.yaml$': 'jest-transform-yaml',
},
snapshotSerializers: ['@emotion/jest/serializer', 'jest-serializer-html'],
};

View File

@ -0,0 +1,70 @@
{
"name": "@lowdefy/client",
"version": "4.0.0-alpha.8",
"license": "Apache-2.0",
"description": "Lowdefy Client",
"homepage": "https://lowdefy.com",
"keywords": [
"lowdefy"
],
"bugs": {
"url": "https://github.com/lowdefy/lowdefy/issues"
},
"contributors": [
{
"name": "Sam Tolmay",
"url": "https://github.com/SamTolmay"
},
{
"name": "Gerrie van Wyk",
"url": "https://github.com/Gervwyk"
}
],
"repository": {
"type": "git",
"url": "https://github.com/lowdefy/lowdefy.git"
},
"type": "module",
"exports": {
".": "./dist/index.js",
"./*": "./dist/*"
},
"files": [
"dist/*"
],
"scripts": {
"build": "yarn swc",
"clean": "rm -rf dist",
"copyfiles": "copyfiles -u 1 \"./src/**/*\" dist -e \"./src/**/*.js\" -e \"./src/**/*.yaml\" -e \"./src/**/*.snap\"",
"prepare": "yarn build",
"swc": "swc src --out-dir dist --config-file ../../.swcrc --delete-dir-on-start && yarn copyfiles",
"test:watch": "jest --coverage --watch",
"test": "jest --coverage"
},
"dependencies": {
"@ant-design/icons": "4.7.0",
"@lowdefy/block-utils": "4.0.0-alpha.8",
"@lowdefy/engine": "4.0.0-alpha.8",
"@lowdefy/helpers": "4.0.0-alpha.8",
"@lowdefy/layout": "4.0.0-alpha.8",
"classnames": "2.3.1",
"react": "17.0.2",
"react-dom": "17.0.2"
},
"devDependencies": {
"@emotion/jest": "11.7.1",
"@swc/cli": "0.1.55",
"@swc/core": "1.2.135",
"@swc/jest": "0.2.17",
"@testing-library/dom": "8.11.3",
"@testing-library/react": "13.0.0-alpha.4",
"@testing-library/user-event": "14.0.0-alpha.14",
"copyfiles": "2.4.1",
"jest": "27.5.1",
"jest-serializer-html": "7.1.0",
"jest-transform-yaml": "1.0.0"
},
"publishConfig": {
"access": "public"
}
}

View File

@ -16,48 +16,36 @@
import React from 'react';
import { urlQuery } from '@lowdefy/helpers';
import { useRouter } from 'next/router';
import Block from './block/Block.js';
import Context from './Context.js';
import Head from './Head.js';
import ProgressBarController from './ProgressBarController.js';
import Block from './block/Block.js';
import setupLink from '../utils/setupLink.js';
import createComponents from './createComponents.js';
const Page = ({ lowdefy, pageConfig, rootConfig }) => {
const router = useRouter();
lowdefy._internal.window = window;
lowdefy._internal.document = document;
lowdefy._internal.router = router;
lowdefy._internal.link = setupLink(lowdefy);
lowdefy._internal.components = createComponents(lowdefy);
import initLowdefyContext from './initLowdefyContext.js';
lowdefy.basePath = lowdefy._internal.router.basePath;
lowdefy.home = rootConfig.home;
lowdefy.lowdefyGlobal = rootConfig.lowdefyGlobal;
lowdefy.menus = rootConfig.menus;
lowdefy.pageId = pageConfig.pageId;
lowdefy.urlQuery = urlQuery.parse(window.location.search.slice(1));
const Client = ({ Components, config, router, stage, types, window }) => {
const lowdefy = initLowdefyContext({ Components, config, router, types, stage, window });
return (
<ProgressBarController
id="page-loader"
key={pageConfig.id}
key={config.pageConfig.id}
ProgressBar={lowdefy._internal.blockComponents.ProgressBar}
lowdefy={lowdefy}
content={{
content: (progress) => (
<Context config={pageConfig} lowdefy={lowdefy} progress={progress}>
<Context config={config.pageConfig} lowdefy={lowdefy} progress={progress}>
{(context) => {
return (
<>
<Head
properties={context._internal.RootBlocks.map[pageConfig.id].eval.properties}
Component={Components.Head}
properties={
context._internal.RootBlocks.map[config.pageConfig.id].eval.properties
}
/>
<Block
block={context._internal.RootBlocks.map[pageConfig.id]}
block={context._internal.RootBlocks.map[config.pageConfig.id]}
Blocks={context._internal.RootBlocks}
context={context}
lowdefy={lowdefy}
@ -74,4 +62,4 @@ const Page = ({ lowdefy, pageConfig, rootConfig }) => {
);
};
export default Page;
export default Client;

View File

@ -15,13 +15,12 @@
*/
import React from 'react';
import Head from 'next/head';
const BindHead = ({ properties }) => {
const BindHead = ({ Component, properties }) => {
return (
<Head>
<Component>
<title>{properties.title}</title>
</Head>
</Component>
);
};

View File

@ -27,6 +27,10 @@ exports[`Icon default and id 1`] = `
`;
exports[`Icon onClick.loading false 1`] = `
.emotion-0 {
cursor: pointer;
}
<span
class="anticon"
role="img"
@ -41,12 +45,16 @@ exports[`Icon onClick.loading false 1`] = `
`;
exports[`Icon onClick.loading true 1`] = `
.emotion-0 {
cursor: pointer;
}
<span
class="anticon"
role="img"
>
<svg
class="emotion-0"
class="emotion-0 icon-spin"
data-testid="AiOutlineLoading3Quarters"
id="test-id"
title="AiIcon"
@ -98,34 +106,13 @@ exports[`Icon properties.name error 1`] = `
`;
exports[`Icon properties.spin 1`] = `
@keyframes animation-0 {
{
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
{
-webkit-transform: rotate(359deg);
-moz-transform: rotate(359deg);
-ms-transform: rotate(359deg);
transform: rotate(359deg);
}
}
.emotion-1 {
-webkit-animation: animation-0 2s infinite linear;
animation: animation-0 2s infinite linear;
}
<span
class="anticon"
role="img"
>
<svg
class="emotion-0 emotion-1"
data-testid="AiIcon"
class="emotion-0 icon-spin"
data-testid="AiOutlineLoading3Quarters"
id="test-id"
title="AiIcon"
/>

View File

@ -16,9 +16,8 @@
import React, { useState } from 'react';
import { ErrorBoundary } from '@lowdefy/block-utils';
import CategorySwitch from './CategorySwitch.js';
import ErrorBoundary from '../ErrorBoundary.js';
import MountEvents from '../MountEvents.js';
const Block = ({

View File

@ -16,14 +16,11 @@
import React from 'react';
import classNames from 'classnames';
import { keyframes } from '@emotion/react';
import { css } from '@emotion/css';
import { omit, type } from '@lowdefy/helpers';
import Icon from '@ant-design/icons';
import { blockDefaultProps, makeCssClass } from '@lowdefy/block-utils';
import blockDefaultProps from './blockDefaultProps.js';
import ErrorBoundary from './ErrorBoundary.js';
import makeCssClass from './makeCssClass.js';
const lowdefyProps = [
'actionLog',
@ -42,30 +39,23 @@ const lowdefyProps = [
'validation',
];
const spin = keyframes`{
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(359deg);
}
}`;
const spinClass = css`
animation: ${spin} 2s infinite linear;
`;
const createIcon = (Icons) => {
const AiOutlineLoading3Quarters = Icons['AiOutlineLoading3Quarters'];
const AiOutlineExclamationCircle = Icons['AiOutlineExclamationCircle'];
const IconBlock = ({ blockId, events, methods, properties, ...props }) => {
const IconBlock = ({ blockId, events, methods, onClick, properties, ...props }) => {
const propertiesObj = type.isString(properties) ? { name: properties } : properties;
const spin =
(propertiesObj.spin || (events.onClick && events.onClick.loading)) &&
!propertiesObj.disableLoadingIcon;
const iconProps = {
id: blockId,
className: classNames({
[makeCssClass(propertiesObj.style)]: true,
[spinClass]: propertiesObj.spin,
[makeCssClass([
{ cursor: (onClick || events.onClick) && 'pointer' },
propertiesObj.style,
])]: true,
'icon-spin': spin,
}),
rotate: propertiesObj.rotate,
color: propertiesObj.color,
@ -80,8 +70,8 @@ const createIcon = (Icons) => {
}
return (
<>
{events.onClick && events.onClick.loading && !propertiesObj.disableLoadingIcon ? (
<AiOutlineLoading3Quarters {...{ ...iconProps, spin: true }} />
{spin ? (
<AiOutlineLoading3Quarters {...iconProps} />
) : (
<ErrorBoundary
fallback={() => <AiOutlineExclamationCircle {...{ ...iconProps, color: '#F00' }} />}
@ -89,11 +79,12 @@ const createIcon = (Icons) => {
<IconComp
id={blockId}
onClick={
events.onClick &&
(() =>
methods.triggerEvent({
name: 'onClick',
}))
onClick ||
(events.onClick &&
(() =>
methods.triggerEvent({
name: 'onClick',
})))
}
size={propertiesObj.size}
title={propertiesObj.title}

View File

@ -17,9 +17,9 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { makeCssClass } from '@lowdefy/block-utils';
import createIcon from './createIcon.js';
import makeCssClass from './makeCssClass.js';
const methods = {
makeCssClass,

View File

@ -1,9 +1,8 @@
import React from 'react';
import NextLink from 'next/link';
import { createLink } from '@lowdefy/engine';
import { type } from '@lowdefy/helpers';
const createLinkComponent = (lowdefy) => {
const createLinkComponent = (lowdefy, Link) => {
const backLink = ({ ariaLabel, children, className, id, rel }) => (
<a
id={id}
@ -61,7 +60,7 @@ const createLinkComponent = (lowdefy) => {
id={id}
aria-label={ariaLabel}
className={className}
href={`${window.location.origin}${lowdefy.basePath}${pathname}${
href={`${window.location.origin}${lowdefy._internal.router.basePath}${pathname}${
query ? `?${query}` : ''
}`}
rel={rel || 'noopener noreferrer'}
@ -72,11 +71,11 @@ const createLinkComponent = (lowdefy) => {
);
}
return (
<NextLink href={{ pathname, query }} replace={replace} scroll={scroll}>
<Link href={{ pathname, query }} replace={replace} scroll={scroll}>
<a id={id} aria-label={ariaLabel} className={className} rel={rel} onClick={setInput}>
{type.isFunction(children) ? children(pageId || url || id) : children}
</a>
</NextLink>
</Link>
);
};
const noLink = ({ className, children, id }) => (

View File

@ -14,14 +14,6 @@
limitations under the License.
*/
import request from './request.js';
import Client from './Client.js';
function callRequest(apiContext, { pageId, payload, requestId }) {
return request({
url: `${apiContext.config.basePath}/api/request/${pageId}/${requestId}`,
method: 'POST',
body: { payload },
});
}
export default callRequest;
export default Client;

View File

@ -0,0 +1,66 @@
/*
Copyright 2020-2022 Lowdefy, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import { urlQuery } from '@lowdefy/helpers';
import callRequest from './callRequest.js';
import setupLink from './setupLink.js';
import createLinkComponent from './createLinkComponent.js';
import createIcon from './createIcon.js';
const lowdefy = {
_internal: {
callRequest,
components: {},
updaters: {},
displayMessage: ({ content }) => {
console.log(content);
return () => undefined;
},
link: () => undefined,
},
contexts: {},
inputs: {},
lowdefyGlobal: {},
};
function initLowdefyContext({ Components, config, router, stage, types, window }) {
if (stage === 'dev') {
window.lowdefy = lowdefy;
}
lowdefy.basePath = router.basePath;
lowdefy.home = config.rootConfig.home || {};
lowdefy.lowdefyGlobal = config.rootConfig.lowdefyGlobal;
lowdefy.menus = config.rootConfig.menus;
lowdefy.pageId = config.pageConfig.pageId;
lowdefy.urlQuery = urlQuery.parse(window.location.search.slice(1));
lowdefy._internal.window = window;
lowdefy._internal.document = window.document;
lowdefy._internal.router = router;
lowdefy._internal.link = setupLink(router, window);
lowdefy._internal.updateBlock = (blockId) =>
lowdefy._internal.updaters[blockId] && lowdefy._internal.updaters[blockId]();
lowdefy._internal.components.Link = createLinkComponent(lowdefy, Components.Link);
lowdefy._internal.components.Icon = createIcon(types.icons);
lowdefy._internal.actions = types.actions;
lowdefy._internal.blockComponents = types.blocks;
lowdefy._internal.operators = types.operators;
return lowdefy;
}
export default initLowdefyContext;

View File

@ -16,8 +16,7 @@
import { createLink } from '@lowdefy/engine';
function setupLink(lowdefy) {
const { router, window } = lowdefy._internal;
function setupLink(router, window) {
const backLink = () => router.back();
const disabledLink = () => {};
const newOriginLink = ({ url, query, newTab }) => {
@ -31,7 +30,7 @@ function setupLink(lowdefy) {
if (newTab) {
return window
.open(
`${window.location.origin}${lowdefy.basePath}${pathname}${query ? `?${query}` : ''}`,
`${window.location.origin}${router.basePath}${pathname}${query ? `?${query}` : ''}`,
'_blank'
)
.focus();
@ -46,7 +45,7 @@ function setupLink(lowdefy) {
const noLink = () => {
throw new Error(`Invalid Link.`);
};
return createLink({ backLink, disabledLink, lowdefy, newOriginLink, noLink, sameOriginLink });
return createLink({ backLink, disabledLink, router, newOriginLink, noLink, sameOriginLink });
}
export default setupLink;

View File

@ -14,15 +14,16 @@
limitations under the License.
*/
import React from 'react';
import Head from 'next/head';
.icon-spin {
animation: spin 1s infinite linear;
}
const BindHead = ({ properties }) => {
return (
<Head>
<title>{properties.title}</title>
</Head>
);
};
@keyframes spin {
0% {
transform: rotate(0deg);
}
export default BindHead;
100% {
transform: rotate(360deg);
}
}

View File

@ -12,795 +12,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
- { label: 'AiFillAccountBook', value: 'AiFillAccountBook' }
- { label: 'AccountBookOutlined', value: 'AccountBookOutlined' }
- { label: 'AccountBookTwoTone', value: 'AccountBookTwoTone' }
- { label: 'AimOutlined', value: 'AimOutlined' }
- { label: 'AlertFilled', value: 'AlertFilled' }
- { label: 'AlertOutlined', value: 'AlertOutlined' }
- { label: 'AlertTwoTone', value: 'AlertTwoTone' }
- { label: 'AlibabaOutlined', value: 'AlibabaOutlined' }
- { label: 'AlignCenterOutlined', value: 'AlignCenterOutlined' }
- { label: 'AlignLeftOutlined', value: 'AlignLeftOutlined' }
- { label: 'AlignRightOutlined', value: 'AlignRightOutlined' }
- { label: 'AlipayCircleFilled', value: 'AlipayCircleFilled' }
- { label: 'AlipayCircleOutlined', value: 'AlipayCircleOutlined' }
- { label: 'AlipayOutlined', value: 'AlipayOutlined' }
- { label: 'AlipaySquareFilled', value: 'AlipaySquareFilled' }
- { label: 'AliwangwangFilled', value: 'AliwangwangFilled' }
- { label: 'AliwangwangOutlined', value: 'AliwangwangOutlined' }
- { label: 'AliyunOutlined', value: 'AliyunOutlined' }
- { label: 'AmazonCircleFilled', value: 'AmazonCircleFilled' }
- { label: 'AmazonOutlined', value: 'AmazonOutlined' }
- { label: 'AmazonSquareFilled', value: 'AmazonSquareFilled' }
- { label: 'AndroidFilled', value: 'AndroidFilled' }
- { label: 'AndroidOutlined', value: 'AndroidOutlined' }
- { label: 'AntCloudOutlined', value: 'AntCloudOutlined' }
- { label: 'AntDesignOutlined', value: 'AntDesignOutlined' }
- { label: 'ApartmentOutlined', value: 'ApartmentOutlined' }
- { label: 'AiFillApi', value: 'AiFillApi' }
- { label: 'ApiOutlined', value: 'ApiOutlined' }
- { label: 'ApiTwoTone', value: 'ApiTwoTone' }
- { label: 'AiFillApple', value: 'AiFillApple' }
- { label: 'AppleOutlined', value: 'AppleOutlined' }
- { label: 'AppstoreAddOutlined', value: 'AppstoreAddOutlined' }
- { label: 'AppstoreFilled', value: 'AppstoreFilled' }
- { label: 'AppstoreOutlined', value: 'AppstoreOutlined' }
- { label: 'AppstoreTwoTone', value: 'AppstoreTwoTone' }
- { label: 'AreaChartOutlined', value: 'AreaChartOutlined' }
- { label: 'ArrowDownOutlined', value: 'ArrowDownOutlined' }
- { label: 'ArrowLeftOutlined', value: 'ArrowLeftOutlined' }
- { label: 'ArrowRightOutlined', value: 'ArrowRightOutlined' }
- { label: 'ArrowUpOutlined', value: 'ArrowUpOutlined' }
- { label: 'ArrowsAltOutlined', value: 'ArrowsAltOutlined' }
- { label: 'AudioFilled', value: 'AudioFilled' }
- { label: 'AudioMutedOutlined', value: 'AudioMutedOutlined' }
- { label: 'AudioOutlined', value: 'AudioOutlined' }
- { label: 'AudioTwoTone', value: 'AudioTwoTone' }
- { label: 'AuditOutlined', value: 'AuditOutlined' }
- { label: 'BackwardFilled', value: 'BackwardFilled' }
- { label: 'BackwardOutlined', value: 'BackwardOutlined' }
- { label: 'BankFilled', value: 'BankFilled' }
- { label: 'BankOutlined', value: 'BankOutlined' }
- { label: 'BankTwoTone', value: 'BankTwoTone' }
- { label: 'BarChartOutlined', value: 'BarChartOutlined' }
- { label: 'BarcodeOutlined', value: 'BarcodeOutlined' }
- { label: 'BarsOutlined', value: 'BarsOutlined' }
- { label: 'BehanceCircleFilled', value: 'BehanceCircleFilled' }
- { label: 'BehanceOutlined', value: 'BehanceOutlined' }
- { label: 'BehanceSquareFilled', value: 'BehanceSquareFilled' }
- { label: 'BehanceSquareOutlined', value: 'BehanceSquareOutlined' }
- { label: 'BellFilled', value: 'BellFilled' }
- { label: 'BellOutlined', value: 'BellOutlined' }
- { label: 'BellTwoTone', value: 'BellTwoTone' }
- { label: 'BgColorsOutlined', value: 'BgColorsOutlined' }
- { label: 'BlockOutlined', value: 'BlockOutlined' }
- { label: 'BoldOutlined', value: 'BoldOutlined' }
- { label: 'BookFilled', value: 'BookFilled' }
- { label: 'BookOutlined', value: 'BookOutlined' }
- { label: 'BookTwoTone', value: 'BookTwoTone' }
- { label: 'BorderBottomOutlined', value: 'BorderBottomOutlined' }
- { label: 'BorderHorizontalOutlined', value: 'BorderHorizontalOutlined' }
- { label: 'BorderInnerOutlined', value: 'BorderInnerOutlined' }
- { label: 'BorderLeftOutlined', value: 'BorderLeftOutlined' }
- { label: 'BorderOuterOutlined', value: 'BorderOuterOutlined' }
- { label: 'BorderOutlined', value: 'BorderOutlined' }
- { label: 'BorderRightOutlined', value: 'BorderRightOutlined' }
- { label: 'BorderTopOutlined', value: 'BorderTopOutlined' }
- { label: 'BorderVerticleOutlined', value: 'BorderVerticleOutlined' }
- { label: 'BorderlessTableOutlined', value: 'BorderlessTableOutlined' }
- { label: 'BoxPlotFilled', value: 'BoxPlotFilled' }
- { label: 'BoxPlotOutlined', value: 'BoxPlotOutlined' }
- { label: 'BoxPlotTwoTone', value: 'BoxPlotTwoTone' }
- { label: 'BranchesOutlined', value: 'BranchesOutlined' }
- { label: 'BugFilled', value: 'BugFilled' }
- { label: 'BugOutlined', value: 'BugOutlined' }
- { label: 'BugTwoTone', value: 'BugTwoTone' }
- { label: 'BuildFilled', value: 'BuildFilled' }
- { label: 'BuildOutlined', value: 'BuildOutlined' }
- { label: 'BuildTwoTone', value: 'BuildTwoTone' }
- { label: 'BulbFilled', value: 'BulbFilled' }
- { label: 'BulbOutlined', value: 'BulbOutlined' }
- { label: 'BulbTwoTone', value: 'BulbTwoTone' }
- { label: 'CalculatorFilled', value: 'CalculatorFilled' }
- { label: 'CalculatorOutlined', value: 'CalculatorOutlined' }
- { label: 'CalculatorTwoTone', value: 'CalculatorTwoTone' }
- { label: 'CalendarFilled', value: 'CalendarFilled' }
- { label: 'AiOutlineCalendar', value: 'AiOutlineCalendar' }
- { label: 'CalendarTwoTone', value: 'CalendarTwoTone' }
- { label: 'CameraFilled', value: 'CameraFilled' }
- { label: 'CameraOutlined', value: 'CameraOutlined' }
- { label: 'CameraTwoTone', value: 'CameraTwoTone' }
- { label: 'CarFilled', value: 'CarFilled' }
- { label: 'CarOutlined', value: 'CarOutlined' }
- { label: 'CarTwoTone', value: 'CarTwoTone' }
- { label: 'CaretDownFilled', value: 'CaretDownFilled' }
- { label: 'CaretDownOutlined', value: 'CaretDownOutlined' }
- { label: 'CaretLeftFilled', value: 'CaretLeftFilled' }
- { label: 'CaretLeftOutlined', value: 'CaretLeftOutlined' }
- { label: 'CaretRightFilled', value: 'CaretRightFilled' }
- { label: 'CaretRightOutlined', value: 'CaretRightOutlined' }
- { label: 'CaretUpFilled', value: 'CaretUpFilled' }
- { label: 'CaretUpOutlined', value: 'CaretUpOutlined' }
- { label: 'CarryOutFilled', value: 'CarryOutFilled' }
- { label: 'CarryOutOutlined', value: 'CarryOutOutlined' }
- { label: 'CarryOutTwoTone', value: 'CarryOutTwoTone' }
- { label: 'CheckCircleFilled', value: 'CheckCircleFilled' }
- { label: 'CheckCircleOutlined', value: 'CheckCircleOutlined' }
- { label: 'CheckCircleTwoTone', value: 'CheckCircleTwoTone' }
- { label: 'CheckOutlined', value: 'CheckOutlined' }
- { label: 'CheckSquareFilled', value: 'CheckSquareFilled' }
- { label: 'CheckSquareOutlined', value: 'CheckSquareOutlined' }
- { label: 'CheckSquareTwoTone', value: 'CheckSquareTwoTone' }
- { label: 'ChromeFilled', value: 'ChromeFilled' }
- { label: 'ChromeOutlined', value: 'ChromeOutlined' }
- { label: 'CiCircleFilled', value: 'CiCircleFilled' }
- { label: 'CiCircleOutlined', value: 'CiCircleOutlined' }
- { label: 'CiCircleTwoTone', value: 'CiCircleTwoTone' }
- { label: 'CiOutlined', value: 'CiOutlined' }
- { label: 'CiTwoTone', value: 'CiTwoTone' }
- { label: 'ClearOutlined', value: 'ClearOutlined' }
- { label: 'ClockCircleFilled', value: 'ClockCircleFilled' }
- { label: 'ClockCircleOutlined', value: 'ClockCircleOutlined' }
- { label: 'ClockCircleTwoTone', value: 'ClockCircleTwoTone' }
- { label: 'CloseCircleFilled', value: 'CloseCircleFilled' }
- { label: 'CloseCircleOutlined', value: 'CloseCircleOutlined' }
- { label: 'CloseCircleTwoTone', value: 'CloseCircleTwoTone' }
- { label: 'CloseOutlined', value: 'CloseOutlined' }
- { label: 'CloseSquareFilled', value: 'CloseSquareFilled' }
- { label: 'CloseSquareOutlined', value: 'CloseSquareOutlined' }
- { label: 'CloseSquareTwoTone', value: 'CloseSquareTwoTone' }
- { label: 'CloudDownloadOutlined', value: 'CloudDownloadOutlined' }
- { label: 'CloudFilled', value: 'CloudFilled' }
- { label: 'CloudOutlined', value: 'CloudOutlined' }
- { label: 'CloudServerOutlined', value: 'CloudServerOutlined' }
- { label: 'CloudSyncOutlined', value: 'CloudSyncOutlined' }
- { label: 'CloudTwoTone', value: 'CloudTwoTone' }
- { label: 'CloudUploadOutlined', value: 'CloudUploadOutlined' }
- { label: 'ClusterOutlined', value: 'ClusterOutlined' }
- { label: 'CodeFilled', value: 'CodeFilled' }
- { label: 'CodeOutlined', value: 'CodeOutlined' }
- { label: 'CodeSandboxCircleFilled', value: 'CodeSandboxCircleFilled' }
- { label: 'CodeSandboxOutlined', value: 'CodeSandboxOutlined' }
- { label: 'CodeSandboxSquareFilled', value: 'CodeSandboxSquareFilled' }
- { label: 'CodeTwoTone', value: 'CodeTwoTone' }
- { label: 'CodepenCircleFilled', value: 'CodepenCircleFilled' }
- { label: 'CodepenCircleOutlined', value: 'CodepenCircleOutlined' }
- { label: 'CodepenOutlined', value: 'CodepenOutlined' }
- { label: 'CodepenSquareFilled', value: 'CodepenSquareFilled' }
- { label: 'CoffeeOutlined', value: 'CoffeeOutlined' }
- { label: 'ColumnHeightOutlined', value: 'ColumnHeightOutlined' }
- { label: 'ColumnWidthOutlined', value: 'ColumnWidthOutlined' }
- { label: 'CommentOutlined', value: 'CommentOutlined' }
- { label: 'CompassFilled', value: 'CompassFilled' }
- { label: 'CompassOutlined', value: 'CompassOutlined' }
- { label: 'CompassTwoTone', value: 'CompassTwoTone' }
- { label: 'CompressOutlined', value: 'CompressOutlined' }
- { label: 'ConsoleSqlOutlined', value: 'ConsoleSqlOutlined' }
- { label: 'ContactsFilled', value: 'ContactsFilled' }
- { label: 'ContactsOutlined', value: 'ContactsOutlined' }
- { label: 'ContactsTwoTone', value: 'ContactsTwoTone' }
- { label: 'ContainerFilled', value: 'ContainerFilled' }
- { label: 'ContainerOutlined', value: 'ContainerOutlined' }
- { label: 'ContainerTwoTone', value: 'ContainerTwoTone' }
- { label: 'ControlFilled', value: 'ControlFilled' }
- { label: 'ControlOutlined', value: 'ControlOutlined' }
- { label: 'ControlTwoTone', value: 'ControlTwoTone' }
- { label: 'CopyFilled', value: 'CopyFilled' }
- { label: 'CopyOutlined', value: 'CopyOutlined' }
- { label: 'CopyTwoTone', value: 'CopyTwoTone' }
- { label: 'CopyrightCircleFilled', value: 'CopyrightCircleFilled' }
- { label: 'CopyrightCircleOutlined', value: 'CopyrightCircleOutlined' }
- { label: 'CopyrightCircleTwoTone', value: 'CopyrightCircleTwoTone' }
- { label: 'CopyrightOutlined', value: 'CopyrightOutlined' }
- { label: 'CopyrightTwoTone', value: 'CopyrightTwoTone' }
- { label: 'CreditCardFilled', value: 'CreditCardFilled' }
- { label: 'CreditCardOutlined', value: 'CreditCardOutlined' }
- { label: 'CreditCardTwoTone', value: 'CreditCardTwoTone' }
- { label: 'CrownFilled', value: 'CrownFilled' }
- { label: 'CrownOutlined', value: 'CrownOutlined' }
- { label: 'CrownTwoTone', value: 'CrownTwoTone' }
- { label: 'CustomerServiceFilled', value: 'CustomerServiceFilled' }
- { label: 'CustomerServiceOutlined', value: 'CustomerServiceOutlined' }
- { label: 'CustomerServiceTwoTone', value: 'CustomerServiceTwoTone' }
- { label: 'DashOutlined', value: 'DashOutlined' }
- { label: 'DashboardFilled', value: 'DashboardFilled' }
- { label: 'DashboardOutlined', value: 'DashboardOutlined' }
- { label: 'DashboardTwoTone', value: 'DashboardTwoTone' }
- { label: 'DatabaseFilled', value: 'DatabaseFilled' }
- { label: 'DatabaseOutlined', value: 'DatabaseOutlined' }
- { label: 'DatabaseTwoTone', value: 'DatabaseTwoTone' }
- { label: 'DeleteColumnOutlined', value: 'DeleteColumnOutlined' }
- { label: 'DeleteFilled', value: 'DeleteFilled' }
- { label: 'DeleteOutlined', value: 'DeleteOutlined' }
- { label: 'DeleteRowOutlined', value: 'DeleteRowOutlined' }
- { label: 'DeleteTwoTone', value: 'DeleteTwoTone' }
- { label: 'DeliveredProcedureOutlined', value: 'DeliveredProcedureOutlined' }
- { label: 'DeploymentUnitOutlined', value: 'DeploymentUnitOutlined' }
- { label: 'DesktopOutlined', value: 'DesktopOutlined' }
- { label: 'DiffFilled', value: 'DiffFilled' }
- { label: 'DiffOutlined', value: 'DiffOutlined' }
- { label: 'DiffTwoTone', value: 'DiffTwoTone' }
- { label: 'DingdingOutlined', value: 'DingdingOutlined' }
- { label: 'DingtalkCircleFilled', value: 'DingtalkCircleFilled' }
- { label: 'DingtalkOutlined', value: 'DingtalkOutlined' }
- { label: 'DingtalkSquareFilled', value: 'DingtalkSquareFilled' }
- { label: 'DisconnectOutlined', value: 'DisconnectOutlined' }
- { label: 'DislikeFilled', value: 'DislikeFilled' }
- { label: 'DislikeOutlined', value: 'DislikeOutlined' }
- { label: 'DislikeTwoTone', value: 'DislikeTwoTone' }
- { label: 'DollarCircleFilled', value: 'DollarCircleFilled' }
- { label: 'DollarCircleOutlined', value: 'DollarCircleOutlined' }
- { label: 'DollarCircleTwoTone', value: 'DollarCircleTwoTone' }
- { label: 'DollarOutlined', value: 'DollarOutlined' }
- { label: 'DollarTwoTone', value: 'DollarTwoTone' }
- { label: 'DotChartOutlined', value: 'DotChartOutlined' }
- { label: 'DoubleLeftOutlined', value: 'DoubleLeftOutlined' }
- { label: 'DoubleRightOutlined', value: 'DoubleRightOutlined' }
- { label: 'DownCircleFilled', value: 'DownCircleFilled' }
- { label: 'DownCircleOutlined', value: 'DownCircleOutlined' }
- { label: 'DownCircleTwoTone', value: 'DownCircleTwoTone' }
- { label: 'DownOutlined', value: 'DownOutlined' }
- { label: 'DownSquareFilled', value: 'DownSquareFilled' }
- { label: 'DownSquareOutlined', value: 'DownSquareOutlined' }
- { label: 'DownSquareTwoTone', value: 'DownSquareTwoTone' }
- { label: 'DownloadOutlined', value: 'DownloadOutlined' }
- { label: 'DragOutlined', value: 'DragOutlined' }
- { label: 'DribbbleCircleFilled', value: 'DribbbleCircleFilled' }
- { label: 'DribbbleOutlined', value: 'DribbbleOutlined' }
- { label: 'DribbbleSquareFilled', value: 'DribbbleSquareFilled' }
- { label: 'DribbbleSquareOutlined', value: 'DribbbleSquareOutlined' }
- { label: 'DropboxCircleFilled', value: 'DropboxCircleFilled' }
- { label: 'DropboxOutlined', value: 'DropboxOutlined' }
- { label: 'DropboxSquareFilled', value: 'DropboxSquareFilled' }
- { label: 'EditFilled', value: 'EditFilled' }
- { label: 'EditOutlined', value: 'EditOutlined' }
- { label: 'EditTwoTone', value: 'EditTwoTone' }
- { label: 'EllipsisOutlined', value: 'EllipsisOutlined' }
- { label: 'EnterOutlined', value: 'EnterOutlined' }
- { label: 'EnvironmentFilled', value: 'EnvironmentFilled' }
- { label: 'EnvironmentOutlined', value: 'EnvironmentOutlined' }
- { label: 'EnvironmentTwoTone', value: 'EnvironmentTwoTone' }
- { label: 'EuroCircleFilled', value: 'EuroCircleFilled' }
- { label: 'EuroCircleOutlined', value: 'EuroCircleOutlined' }
- { label: 'EuroCircleTwoTone', value: 'EuroCircleTwoTone' }
- { label: 'EuroOutlined', value: 'EuroOutlined' }
- { label: 'EuroTwoTone', value: 'EuroTwoTone' }
- { label: 'ExceptionOutlined', value: 'ExceptionOutlined' }
- { label: 'ExclamationCircleFilled', value: 'ExclamationCircleFilled' }
- { label: 'ExclamationCircleOutlined', value: 'ExclamationCircleOutlined' }
- { label: 'ExclamationCircleTwoTone', value: 'ExclamationCircleTwoTone' }
- { label: 'ExclamationOutlined', value: 'ExclamationOutlined' }
- { label: 'ExpandAltOutlined', value: 'ExpandAltOutlined' }
- { label: 'ExpandOutlined', value: 'ExpandOutlined' }
- { label: 'ExperimentFilled', value: 'ExperimentFilled' }
- { label: 'ExperimentOutlined', value: 'ExperimentOutlined' }
- { label: 'ExperimentTwoTone', value: 'ExperimentTwoTone' }
- { label: 'ExportOutlined', value: 'ExportOutlined' }
- { label: 'EyeFilled', value: 'EyeFilled' }
- { label: 'EyeInvisibleFilled', value: 'EyeInvisibleFilled' }
- { label: 'EyeInvisibleOutlined', value: 'EyeInvisibleOutlined' }
- { label: 'EyeInvisibleTwoTone', value: 'EyeInvisibleTwoTone' }
- { label: 'EyeOutlined', value: 'EyeOutlined' }
- { label: 'EyeTwoTone', value: 'EyeTwoTone' }
- { label: 'FacebookFilled', value: 'FacebookFilled' }
- { label: 'FacebookOutlined', value: 'FacebookOutlined' }
- { label: 'FallOutlined', value: 'FallOutlined' }
- { label: 'FastBackwardFilled', value: 'FastBackwardFilled' }
- { label: 'FastBackwardOutlined', value: 'FastBackwardOutlined' }
- { label: 'FastForwardFilled', value: 'FastForwardFilled' }
- { label: 'FastForwardOutlined', value: 'FastForwardOutlined' }
- { label: 'FieldBinaryOutlined', value: 'FieldBinaryOutlined' }
- { label: 'FieldNumberOutlined', value: 'FieldNumberOutlined' }
- { label: 'FieldStringOutlined', value: 'FieldStringOutlined' }
- { label: 'FieldTimeOutlined', value: 'FieldTimeOutlined' }
- { label: 'FileAddFilled', value: 'FileAddFilled' }
- { label: 'FileAddOutlined', value: 'FileAddOutlined' }
- { label: 'FileAddTwoTone', value: 'FileAddTwoTone' }
- { label: 'FileDoneOutlined', value: 'FileDoneOutlined' }
- { label: 'FileExcelFilled', value: 'FileExcelFilled' }
- { label: 'FileExcelOutlined', value: 'FileExcelOutlined' }
- { label: 'FileExcelTwoTone', value: 'FileExcelTwoTone' }
- { label: 'FileExclamationFilled', value: 'FileExclamationFilled' }
- { label: 'FileExclamationOutlined', value: 'FileExclamationOutlined' }
- { label: 'FileExclamationTwoTone', value: 'FileExclamationTwoTone' }
- { label: 'FileFilled', value: 'FileFilled' }
- { label: 'FileGifOutlined', value: 'FileGifOutlined' }
- { label: 'FileImageFilled', value: 'FileImageFilled' }
- { label: 'FileImageOutlined', value: 'FileImageOutlined' }
- { label: 'FileImageTwoTone', value: 'FileImageTwoTone' }
- { label: 'FileJpgOutlined', value: 'FileJpgOutlined' }
- { label: 'FileMarkdownFilled', value: 'FileMarkdownFilled' }
- { label: 'FileMarkdownOutlined', value: 'FileMarkdownOutlined' }
- { label: 'FileMarkdownTwoTone', value: 'FileMarkdownTwoTone' }
- { label: 'FileOutlined', value: 'FileOutlined' }
- { label: 'FilePdfFilled', value: 'FilePdfFilled' }
- { label: 'FilePdfOutlined', value: 'FilePdfOutlined' }
- { label: 'FilePdfTwoTone', value: 'FilePdfTwoTone' }
- { label: 'FilePptFilled', value: 'FilePptFilled' }
- { label: 'FilePptOutlined', value: 'FilePptOutlined' }
- { label: 'FilePptTwoTone', value: 'FilePptTwoTone' }
- { label: 'FileProtectOutlined', value: 'FileProtectOutlined' }
- { label: 'FileSearchOutlined', value: 'FileSearchOutlined' }
- { label: 'FileSyncOutlined', value: 'FileSyncOutlined' }
- { label: 'FileTextFilled', value: 'FileTextFilled' }
- { label: 'FileTextOutlined', value: 'FileTextOutlined' }
- { label: 'FileTextTwoTone', value: 'FileTextTwoTone' }
- { label: 'FileTwoTone', value: 'FileTwoTone' }
- { label: 'FileUnknownFilled', value: 'FileUnknownFilled' }
- { label: 'FileUnknownOutlined', value: 'FileUnknownOutlined' }
- { label: 'FileUnknownTwoTone', value: 'FileUnknownTwoTone' }
- { label: 'FileWordFilled', value: 'FileWordFilled' }
- { label: 'FileWordOutlined', value: 'FileWordOutlined' }
- { label: 'FileWordTwoTone', value: 'FileWordTwoTone' }
- { label: 'FileZipFilled', value: 'FileZipFilled' }
- { label: 'FileZipOutlined', value: 'FileZipOutlined' }
- { label: 'FileZipTwoTone', value: 'FileZipTwoTone' }
- { label: 'FilterFilled', value: 'FilterFilled' }
- { label: 'FilterOutlined', value: 'FilterOutlined' }
- { label: 'FilterTwoTone', value: 'FilterTwoTone' }
- { label: 'FireFilled', value: 'FireFilled' }
- { label: 'AiOutlineFire', value: 'AiOutlineFire' }
- { label: 'FireTwoTone', value: 'FireTwoTone' }
- { label: 'FlagFilled', value: 'FlagFilled' }
- { label: 'FlagOutlined', value: 'FlagOutlined' }
- { label: 'FlagTwoTone', value: 'FlagTwoTone' }
- { label: 'FolderAddFilled', value: 'FolderAddFilled' }
- { label: 'FolderAddOutlined', value: 'FolderAddOutlined' }
- { label: 'FolderAddTwoTone', value: 'FolderAddTwoTone' }
- { label: 'FolderFilled', value: 'FolderFilled' }
- { label: 'FolderOpenFilled', value: 'FolderOpenFilled' }
- { label: 'FolderOpenOutlined', value: 'FolderOpenOutlined' }
- { label: 'FolderOpenTwoTone', value: 'FolderOpenTwoTone' }
- { label: 'FolderOutlined', value: 'FolderOutlined' }
- { label: 'FolderTwoTone', value: 'FolderTwoTone' }
- { label: 'FolderViewOutlined', value: 'FolderViewOutlined' }
- { label: 'FontColorsOutlined', value: 'FontColorsOutlined' }
- { label: 'FontSizeOutlined', value: 'FontSizeOutlined' }
- { label: 'ForkOutlined', value: 'ForkOutlined' }
- { label: 'FormOutlined', value: 'FormOutlined' }
- { label: 'FormatPainterFilled', value: 'FormatPainterFilled' }
- { label: 'FormatPainterOutlined', value: 'FormatPainterOutlined' }
- { label: 'ForwardFilled', value: 'ForwardFilled' }
- { label: 'ForwardOutlined', value: 'ForwardOutlined' }
- { label: 'FrownFilled', value: 'FrownFilled' }
- { label: 'FrownOutlined', value: 'FrownOutlined' }
- { label: 'FrownTwoTone', value: 'FrownTwoTone' }
- { label: 'FullscreenExitOutlined', value: 'FullscreenExitOutlined' }
- { label: 'FullscreenOutlined', value: 'FullscreenOutlined' }
- { label: 'FunctionOutlined', value: 'FunctionOutlined' }
- { label: 'FundFilled', value: 'FundFilled' }
- { label: 'FundOutlined', value: 'FundOutlined' }
- {
label: 'FundProjectionScreenOutlined',
value: 'FundProjectionScreenOutlined',
}
- { label: 'FundTwoTone', value: 'FundTwoTone' }
- { label: 'FundViewOutlined', value: 'FundViewOutlined' }
- { label: 'FunnelPlotFilled', value: 'FunnelPlotFilled' }
- { label: 'FunnelPlotOutlined', value: 'FunnelPlotOutlined' }
- { label: 'FunnelPlotTwoTone', value: 'FunnelPlotTwoTone' }
- { label: 'GatewayOutlined', value: 'GatewayOutlined' }
- { label: 'GifOutlined', value: 'GifOutlined' }
- { label: 'GiftFilled', value: 'GiftFilled' }
- { label: 'GiftOutlined', value: 'GiftOutlined' }
- { label: 'GiftTwoTone', value: 'GiftTwoTone' }
- { label: 'GithubFilled', value: 'GithubFilled' }
- { label: 'GithubOutlined', value: 'GithubOutlined' }
- { label: 'GitlabFilled', value: 'GitlabFilled' }
- { label: 'GitlabOutlined', value: 'GitlabOutlined' }
- { label: 'GlobalOutlined', value: 'GlobalOutlined' }
- { label: 'GoldFilled', value: 'GoldFilled' }
- { label: 'GoldOutlined', value: 'GoldOutlined' }
- { label: 'GoldTwoTone', value: 'GoldTwoTone' }
- { label: 'GoldenFilled', value: 'GoldenFilled' }
- { label: 'GoogleCircleFilled', value: 'GoogleCircleFilled' }
- { label: 'GoogleOutlined', value: 'GoogleOutlined' }
- { label: 'GooglePlusCircleFilled', value: 'GooglePlusCircleFilled' }
- { label: 'AiOutlineGooglePlus', value: 'AiOutlineGooglePlus' }
- { label: 'GooglePlusSquareFilled', value: 'GooglePlusSquareFilled' }
- { label: 'GoogleSquareFilled', value: 'GoogleSquareFilled' }
- { label: 'GroupOutlined', value: 'GroupOutlined' }
- { label: 'HddFilled', value: 'HddFilled' }
- { label: 'HddOutlined', value: 'HddOutlined' }
- { label: 'HddTwoTone', value: 'HddTwoTone' }
- { label: 'HeartFilled', value: 'HeartFilled' }
- { label: 'HeartOutlined', value: 'HeartOutlined' }
- { label: 'HeartTwoTone', value: 'HeartTwoTone' }
- { label: 'HeatMapOutlined', value: 'HeatMapOutlined' }
- { label: 'HighlightFilled', value: 'HighlightFilled' }
- { label: 'HighlightOutlined', value: 'HighlightOutlined' }
- { label: 'HighlightTwoTone', value: 'HighlightTwoTone' }
- { label: 'HistoryOutlined', value: 'HistoryOutlined' }
- { label: 'HolderOutlined', value: 'HolderOutlined' }
- { label: 'HomeFilled', value: 'HomeFilled' }
- { label: 'HomeOutlined', value: 'HomeOutlined' }
- { label: 'HomeTwoTone', value: 'HomeTwoTone' }
- { label: 'HourglassFilled', value: 'HourglassFilled' }
- { label: 'HourglassOutlined', value: 'HourglassOutlined' }
- { label: 'HourglassTwoTone', value: 'HourglassTwoTone' }
- { label: 'Html5Filled', value: 'Html5Filled' }
- { label: 'Html5Outlined', value: 'Html5Outlined' }
- { label: 'Html5TwoTone', value: 'Html5TwoTone' }
- { label: 'IdcardFilled', value: 'IdcardFilled' }
- { label: 'IdcardOutlined', value: 'IdcardOutlined' }
- { label: 'IdcardTwoTone', value: 'IdcardTwoTone' }
- { label: 'IeCircleFilled', value: 'IeCircleFilled' }
- { label: 'IeOutlined', value: 'IeOutlined' }
- { label: 'IeSquareFilled', value: 'IeSquareFilled' }
- { label: 'ImportOutlined', value: 'ImportOutlined' }
- { label: 'InboxOutlined', value: 'InboxOutlined' }
- { label: 'InfoCircleFilled', value: 'InfoCircleFilled' }
- { label: 'InfoCircleOutlined', value: 'InfoCircleOutlined' }
- { label: 'InfoCircleTwoTone', value: 'InfoCircleTwoTone' }
- { label: 'InfoOutlined', value: 'InfoOutlined' }
- { label: 'InsertRowAboveOutlined', value: 'InsertRowAboveOutlined' }
- { label: 'InsertRowBelowOutlined', value: 'InsertRowBelowOutlined' }
- { label: 'InsertRowLeftOutlined', value: 'InsertRowLeftOutlined' }
- { label: 'InsertRowRightOutlined', value: 'InsertRowRightOutlined' }
- { label: 'InstagramFilled', value: 'InstagramFilled' }
- { label: 'InstagramOutlined', value: 'InstagramOutlined' }
- { label: 'InsuranceFilled', value: 'InsuranceFilled' }
- { label: 'InsuranceOutlined', value: 'InsuranceOutlined' }
- { label: 'InsuranceTwoTone', value: 'InsuranceTwoTone' }
- { label: 'InteractionFilled', value: 'InteractionFilled' }
- { label: 'InteractionOutlined', value: 'InteractionOutlined' }
- { label: 'InteractionTwoTone', value: 'InteractionTwoTone' }
- { label: 'IssuesCloseOutlined', value: 'IssuesCloseOutlined' }
- { label: 'ItalicOutlined', value: 'ItalicOutlined' }
- { label: 'KeyOutlined', value: 'KeyOutlined' }
- { label: 'LaptopOutlined', value: 'LaptopOutlined' }
- { label: 'LayoutFilled', value: 'LayoutFilled' }
- { label: 'LayoutOutlined', value: 'LayoutOutlined' }
- { label: 'LayoutTwoTone', value: 'LayoutTwoTone' }
- { label: 'LeftCircleFilled', value: 'LeftCircleFilled' }
- { label: 'LeftCircleOutlined', value: 'LeftCircleOutlined' }
- { label: 'LeftCircleTwoTone', value: 'LeftCircleTwoTone' }
- { label: 'LeftOutlined', value: 'LeftOutlined' }
- { label: 'LeftSquareFilled', value: 'LeftSquareFilled' }
- { label: 'LeftSquareOutlined', value: 'LeftSquareOutlined' }
- { label: 'LeftSquareTwoTone', value: 'LeftSquareTwoTone' }
- { label: 'LikeFilled', value: 'LikeFilled' }
- { label: 'LikeOutlined', value: 'LikeOutlined' }
- { label: 'LikeTwoTone', value: 'LikeTwoTone' }
- { label: 'LineChartOutlined', value: 'LineChartOutlined' }
- { label: 'LineHeightOutlined', value: 'LineHeightOutlined' }
- { label: 'LineOutlined', value: 'LineOutlined' }
- { label: 'AiOutlineLink', value: 'AiOutlineLink' }
- { label: 'LinkedinFilled', value: 'LinkedinFilled' }
- { label: 'LinkedinOutlined', value: 'LinkedinOutlined' }
- { label: 'Loading3QuartersOutlined', value: 'Loading3QuartersOutlined' }
- { label: 'LoadingOutlined', value: 'LoadingOutlined' }
- { label: 'LockFilled', value: 'LockFilled' }
- { label: 'LockOutlined', value: 'LockOutlined' }
- { label: 'LockTwoTone', value: 'LockTwoTone' }
- { label: 'LoginOutlined', value: 'LoginOutlined' }
- { label: 'LogoutOutlined', value: 'LogoutOutlined' }
- { label: 'MacCommandFilled', value: 'MacCommandFilled' }
- { label: 'MacCommandOutlined', value: 'MacCommandOutlined' }
- { label: 'MailFilled', value: 'MailFilled' }
- { label: 'MailOutlined', value: 'MailOutlined' }
- { label: 'MailTwoTone', value: 'MailTwoTone' }
- { label: 'ManOutlined', value: 'ManOutlined' }
- { label: 'MedicineBoxFilled', value: 'MedicineBoxFilled' }
- { label: 'MedicineBoxOutlined', value: 'MedicineBoxOutlined' }
- { label: 'MedicineBoxTwoTone', value: 'MedicineBoxTwoTone' }
- { label: 'MediumCircleFilled', value: 'MediumCircleFilled' }
- { label: 'MediumOutlined', value: 'MediumOutlined' }
- { label: 'MediumSquareFilled', value: 'MediumSquareFilled' }
- { label: 'MediumWorkmarkOutlined', value: 'MediumWorkmarkOutlined' }
- { label: 'MehFilled', value: 'MehFilled' }
- { label: 'MehOutlined', value: 'MehOutlined' }
- { label: 'MehTwoTone', value: 'MehTwoTone' }
- { label: 'MenuFoldOutlined', value: 'MenuFoldOutlined' }
- { label: 'MenuOutlined', value: 'MenuOutlined' }
- { label: 'MenuUnfoldOutlined', value: 'MenuUnfoldOutlined' }
- { label: 'MergeCellsOutlined', value: 'MergeCellsOutlined' }
- { label: 'MessageFilled', value: 'MessageFilled' }
- { label: 'MessageOutlined', value: 'MessageOutlined' }
- { label: 'MessageTwoTone', value: 'MessageTwoTone' }
- { label: 'MinusCircleFilled', value: 'MinusCircleFilled' }
- { label: 'MinusCircleOutlined', value: 'MinusCircleOutlined' }
- { label: 'MinusCircleTwoTone', value: 'MinusCircleTwoTone' }
- { label: 'MinusOutlined', value: 'MinusOutlined' }
- { label: 'MinusSquareFilled', value: 'MinusSquareFilled' }
- { label: 'MinusSquareOutlined', value: 'MinusSquareOutlined' }
- { label: 'MinusSquareTwoTone', value: 'MinusSquareTwoTone' }
- { label: 'MobileFilled', value: 'MobileFilled' }
- { label: 'MobileOutlined', value: 'MobileOutlined' }
- { label: 'MobileTwoTone', value: 'MobileTwoTone' }
- { label: 'MoneyCollectFilled', value: 'MoneyCollectFilled' }
- { label: 'MoneyCollectOutlined', value: 'MoneyCollectOutlined' }
- { label: 'MoneyCollectTwoTone', value: 'MoneyCollectTwoTone' }
- { label: 'MonitorOutlined', value: 'MonitorOutlined' }
- { label: 'MoreOutlined', value: 'MoreOutlined' }
- { label: 'NodeCollapseOutlined', value: 'NodeCollapseOutlined' }
- { label: 'NodeExpandOutlined', value: 'NodeExpandOutlined' }
- { label: 'NodeIndexOutlined', value: 'NodeIndexOutlined' }
- { label: 'NotificationFilled', value: 'NotificationFilled' }
- { label: 'NotificationOutlined', value: 'NotificationOutlined' }
- { label: 'NotificationTwoTone', value: 'NotificationTwoTone' }
- { label: 'NumberOutlined', value: 'NumberOutlined' }
- { label: 'OneToOneOutlined', value: 'OneToOneOutlined' }
- { label: 'OrderedListOutlined', value: 'OrderedListOutlined' }
- { label: 'PaperClipOutlined', value: 'PaperClipOutlined' }
- { label: 'PartitionOutlined', value: 'PartitionOutlined' }
- { label: 'PauseCircleFilled', value: 'PauseCircleFilled' }
- { label: 'PauseCircleOutlined', value: 'PauseCircleOutlined' }
- { label: 'PauseCircleTwoTone', value: 'PauseCircleTwoTone' }
- { label: 'PauseOutlined', value: 'PauseOutlined' }
- { label: 'PayCircleFilled', value: 'PayCircleFilled' }
- { label: 'PayCircleOutlined', value: 'PayCircleOutlined' }
- { label: 'PercentageOutlined', value: 'PercentageOutlined' }
- { label: 'PhoneFilled', value: 'PhoneFilled' }
- { label: 'PhoneOutlined', value: 'PhoneOutlined' }
- { label: 'PhoneTwoTone', value: 'PhoneTwoTone' }
- { label: 'PicCenterOutlined', value: 'PicCenterOutlined' }
- { label: 'PicLeftOutlined', value: 'PicLeftOutlined' }
- { label: 'PicRightOutlined', value: 'PicRightOutlined' }
- { label: 'PictureFilled', value: 'PictureFilled' }
- { label: 'PictureOutlined', value: 'PictureOutlined' }
- { label: 'PictureTwoTone', value: 'PictureTwoTone' }
- { label: 'PieChartFilled', value: 'PieChartFilled' }
- { label: 'PieChartOutlined', value: 'PieChartOutlined' }
- { label: 'PieChartTwoTone', value: 'PieChartTwoTone' }
- { label: 'PlayCircleFilled', value: 'PlayCircleFilled' }
- { label: 'PlayCircleOutlined', value: 'PlayCircleOutlined' }
- { label: 'PlayCircleTwoTone', value: 'PlayCircleTwoTone' }
- { label: 'PlaySquareFilled', value: 'PlaySquareFilled' }
- { label: 'PlaySquareOutlined', value: 'PlaySquareOutlined' }
- { label: 'PlaySquareTwoTone', value: 'PlaySquareTwoTone' }
- { label: 'PlusCircleFilled', value: 'PlusCircleFilled' }
- { label: 'PlusCircleOutlined', value: 'PlusCircleOutlined' }
- { label: 'PlusCircleTwoTone', value: 'PlusCircleTwoTone' }
- { label: 'AiOutlinePlus', value: 'AiOutlinePlus' }
- { label: 'PlusSquareFilled', value: 'PlusSquareFilled' }
- { label: 'PlusSquareOutlined', value: 'PlusSquareOutlined' }
- { label: 'PlusSquareTwoTone', value: 'PlusSquareTwoTone' }
- { label: 'PoundCircleFilled', value: 'PoundCircleFilled' }
- { label: 'PoundCircleOutlined', value: 'PoundCircleOutlined' }
- { label: 'PoundCircleTwoTone', value: 'PoundCircleTwoTone' }
- { label: 'PoundOutlined', value: 'PoundOutlined' }
- { label: 'PoweroffOutlined', value: 'PoweroffOutlined' }
- { label: 'PrinterFilled', value: 'PrinterFilled' }
- { label: 'PrinterOutlined', value: 'PrinterOutlined' }
- { label: 'PrinterTwoTone', value: 'PrinterTwoTone' }
- { label: 'ProfileFilled', value: 'ProfileFilled' }
- { label: 'ProfileOutlined', value: 'ProfileOutlined' }
- { label: 'ProfileTwoTone', value: 'ProfileTwoTone' }
- { label: 'ProjectFilled', value: 'ProjectFilled' }
- { label: 'ProjectOutlined', value: 'ProjectOutlined' }
- { label: 'ProjectTwoTone', value: 'ProjectTwoTone' }
- { label: 'PropertySafetyFilled', value: 'PropertySafetyFilled' }
- { label: 'PropertySafetyOutlined', value: 'PropertySafetyOutlined' }
- { label: 'PropertySafetyTwoTone', value: 'PropertySafetyTwoTone' }
- { label: 'PullRequestOutlined', value: 'PullRequestOutlined' }
- { label: 'PushpinFilled', value: 'PushpinFilled' }
- { label: 'PushpinOutlined', value: 'PushpinOutlined' }
- { label: 'PushpinTwoTone', value: 'PushpinTwoTone' }
- { label: 'QqCircleFilled', value: 'QqCircleFilled' }
- { label: 'QqOutlined', value: 'QqOutlined' }
- { label: 'QqSquareFilled', value: 'QqSquareFilled' }
- { label: 'QrcodeOutlined', value: 'QrcodeOutlined' }
- { label: 'QuestionCircleFilled', value: 'QuestionCircleFilled' }
- { label: 'QuestionCircleOutlined', value: 'QuestionCircleOutlined' }
- { label: 'QuestionCircleTwoTone', value: 'QuestionCircleTwoTone' }
- { label: 'QuestionOutlined', value: 'QuestionOutlined' }
- { label: 'RadarChartOutlined', value: 'RadarChartOutlined' }
- { label: 'RadiusBottomleftOutlined', value: 'RadiusBottomleftOutlined' }
- { label: 'RadiusBottomrightOutlined', value: 'RadiusBottomrightOutlined' }
- { label: 'RadiusSettingOutlined', value: 'RadiusSettingOutlined' }
- { label: 'RadiusUpleftOutlined', value: 'RadiusUpleftOutlined' }
- { label: 'RadiusUprightOutlined', value: 'RadiusUprightOutlined' }
- { label: 'ReadFilled', value: 'ReadFilled' }
- { label: 'ReadOutlined', value: 'ReadOutlined' }
- { label: 'ReconciliationFilled', value: 'ReconciliationFilled' }
- { label: 'ReconciliationOutlined', value: 'ReconciliationOutlined' }
- { label: 'ReconciliationTwoTone', value: 'ReconciliationTwoTone' }
- { label: 'RedEnvelopeFilled', value: 'RedEnvelopeFilled' }
- { label: 'RedEnvelopeOutlined', value: 'RedEnvelopeOutlined' }
- { label: 'RedEnvelopeTwoTone', value: 'RedEnvelopeTwoTone' }
- { label: 'RedditCircleFilled', value: 'RedditCircleFilled' }
- { label: 'RedditOutlined', value: 'RedditOutlined' }
- { label: 'RedditSquareFilled', value: 'RedditSquareFilled' }
- { label: 'RedoOutlined', value: 'RedoOutlined' }
- { label: 'ReloadOutlined', value: 'ReloadOutlined' }
- { label: 'RestFilled', value: 'RestFilled' }
- { label: 'RestOutlined', value: 'RestOutlined' }
- { label: 'RestTwoTone', value: 'RestTwoTone' }
- { label: 'RetweetOutlined', value: 'RetweetOutlined' }
- { label: 'RightCircleFilled', value: 'RightCircleFilled' }
- { label: 'RightCircleOutlined', value: 'RightCircleOutlined' }
- { label: 'RightCircleTwoTone', value: 'RightCircleTwoTone' }
- { label: 'RightOutlined', value: 'RightOutlined' }
- { label: 'RightSquareFilled', value: 'RightSquareFilled' }
- { label: 'RightSquareOutlined', value: 'RightSquareOutlined' }
- { label: 'RightSquareTwoTone', value: 'RightSquareTwoTone' }
- { label: 'RiseOutlined', value: 'RiseOutlined' }
- { label: 'RobotFilled', value: 'RobotFilled' }
- { label: 'RobotOutlined', value: 'RobotOutlined' }
- { label: 'AiFillRocket', value: 'AiFillRocket' }
- { label: 'AiOutlineRocket', value: 'AiOutlineRocket' }
- { label: 'AiFillRocket', value: 'AiFillRocket' }
- { label: 'RollbackOutlined', value: 'RollbackOutlined' }
- { label: 'RotateLeftOutlined', value: 'RotateLeftOutlined' }
- { label: 'RotateRightOutlined', value: 'RotateRightOutlined' }
- { label: 'SafetyCertificateFilled', value: 'SafetyCertificateFilled' }
- { label: 'SafetyCertificateOutlined', value: 'SafetyCertificateOutlined' }
- { label: 'SafetyCertificateTwoTone', value: 'SafetyCertificateTwoTone' }
- { label: 'SafetyOutlined', value: 'SafetyOutlined' }
- { label: 'SaveFilled', value: 'SaveFilled' }
- { label: 'SaveOutlined', value: 'SaveOutlined' }
- { label: 'SaveTwoTone', value: 'SaveTwoTone' }
- { label: 'ScanOutlined', value: 'ScanOutlined' }
- { label: 'ScheduleFilled', value: 'ScheduleFilled' }
- { label: 'ScheduleOutlined', value: 'ScheduleOutlined' }
- { label: 'ScheduleTwoTone', value: 'ScheduleTwoTone' }
- { label: 'ScissorOutlined', value: 'ScissorOutlined' }
- { label: 'SearchOutlined', value: 'SearchOutlined' }
- { label: 'SecurityScanFilled', value: 'SecurityScanFilled' }
- { label: 'SecurityScanOutlined', value: 'SecurityScanOutlined' }
- { label: 'SecurityScanTwoTone', value: 'SecurityScanTwoTone' }
- { label: 'SelectOutlined', value: 'SelectOutlined' }
- { label: 'SendOutlined', value: 'SendOutlined' }
- { label: 'SettingFilled', value: 'SettingFilled' }
- { label: 'SettingOutlined', value: 'SettingOutlined' }
- { label: 'SettingTwoTone', value: 'SettingTwoTone' }
- { label: 'ShakeOutlined', value: 'ShakeOutlined' }
- { label: 'ShareAltOutlined', value: 'ShareAltOutlined' }
- { label: 'ShopFilled', value: 'ShopFilled' }
- { label: 'ShopOutlined', value: 'ShopOutlined' }
- { label: 'ShopTwoTone', value: 'ShopTwoTone' }
- { label: 'ShoppingCartOutlined', value: 'ShoppingCartOutlined' }
- { label: 'ShoppingFilled', value: 'ShoppingFilled' }
- { label: 'ShoppingOutlined', value: 'ShoppingOutlined' }
- { label: 'ShoppingTwoTone', value: 'ShoppingTwoTone' }
- { label: 'ShrinkOutlined', value: 'ShrinkOutlined' }
- { label: 'SignalFilled', value: 'SignalFilled' }
- { label: 'SisternodeOutlined', value: 'SisternodeOutlined' }
- { label: 'SketchCircleFilled', value: 'SketchCircleFilled' }
- { label: 'SketchOutlined', value: 'SketchOutlined' }
- { label: 'SketchSquareFilled', value: 'SketchSquareFilled' }
- { label: 'SkinFilled', value: 'SkinFilled' }
- { label: 'SkinOutlined', value: 'SkinOutlined' }
- { label: 'SkinTwoTone', value: 'SkinTwoTone' }
- { label: 'SkypeFilled', value: 'SkypeFilled' }
- { label: 'SkypeOutlined', value: 'SkypeOutlined' }
- { label: 'SlackCircleFilled', value: 'SlackCircleFilled' }
- { label: 'SlackOutlined', value: 'SlackOutlined' }
- { label: 'SlackSquareFilled', value: 'SlackSquareFilled' }
- { label: 'SlackSquareOutlined', value: 'SlackSquareOutlined' }
- { label: 'SlidersFilled', value: 'SlidersFilled' }
- { label: 'SlidersOutlined', value: 'SlidersOutlined' }
- { label: 'SlidersTwoTone', value: 'SlidersTwoTone' }
- { label: 'SmallDashOutlined', value: 'SmallDashOutlined' }
- { label: 'SmileFilled', value: 'SmileFilled' }
- { label: 'SmileOutlined', value: 'SmileOutlined' }
- { label: 'SmileTwoTone', value: 'SmileTwoTone' }
- { label: 'SnippetsFilled', value: 'SnippetsFilled' }
- { label: 'SnippetsOutlined', value: 'SnippetsOutlined' }
- { label: 'SnippetsTwoTone', value: 'SnippetsTwoTone' }
- { label: 'SolutionOutlined', value: 'SolutionOutlined' }
- { label: 'SortAscendingOutlined', value: 'SortAscendingOutlined' }
- { label: 'SortDescendingOutlined', value: 'SortDescendingOutlined' }
- { label: 'SoundFilled', value: 'SoundFilled' }
- { label: 'SoundOutlined', value: 'SoundOutlined' }
- { label: 'SoundTwoTone', value: 'SoundTwoTone' }
- { label: 'SplitCellsOutlined', value: 'SplitCellsOutlined' }
- { label: 'StarFilled', value: 'StarFilled' }
- { label: 'StarOutlined', value: 'StarOutlined' }
- { label: 'StarTwoTone', value: 'StarTwoTone' }
- { label: 'StepBackwardFilled', value: 'StepBackwardFilled' }
- { label: 'StepBackwardOutlined', value: 'StepBackwardOutlined' }
- { label: 'StepForwardFilled', value: 'StepForwardFilled' }
- { label: 'StepForwardOutlined', value: 'StepForwardOutlined' }
- { label: 'StockOutlined', value: 'StockOutlined' }
- { label: 'StopFilled', value: 'StopFilled' }
- { label: 'StopOutlined', value: 'StopOutlined' }
- { label: 'StopTwoTone', value: 'StopTwoTone' }
- { label: 'StrikethroughOutlined', value: 'StrikethroughOutlined' }
- { label: 'SubnodeOutlined', value: 'SubnodeOutlined' }
- { label: 'SwapLeftOutlined', value: 'SwapLeftOutlined' }
- { label: 'SwapOutlined', value: 'SwapOutlined' }
- { label: 'SwapRightOutlined', value: 'SwapRightOutlined' }
- { label: 'SwitcherFilled', value: 'SwitcherFilled' }
- { label: 'SwitcherOutlined', value: 'SwitcherOutlined' }
- { label: 'SwitcherTwoTone', value: 'SwitcherTwoTone' }
- { label: 'SyncOutlined', value: 'SyncOutlined' }
- { label: 'TableOutlined', value: 'TableOutlined' }
- { label: 'TabletFilled', value: 'TabletFilled' }
- { label: 'TabletOutlined', value: 'TabletOutlined' }
- { label: 'TabletTwoTone', value: 'TabletTwoTone' }
- { label: 'TagFilled', value: 'TagFilled' }
- { label: 'TagOutlined', value: 'TagOutlined' }
- { label: 'TagTwoTone', value: 'TagTwoTone' }
- { label: 'TagsFilled', value: 'TagsFilled' }
- { label: 'TagsOutlined', value: 'TagsOutlined' }
- { label: 'TagsTwoTone', value: 'TagsTwoTone' }
- { label: 'TaobaoCircleFilled', value: 'TaobaoCircleFilled' }
- { label: 'TaobaoCircleOutlined', value: 'TaobaoCircleOutlined' }
- { label: 'TaobaoOutlined', value: 'TaobaoOutlined' }
- { label: 'TaobaoSquareFilled', value: 'TaobaoSquareFilled' }
- { label: 'TeamOutlined', value: 'TeamOutlined' }
- { label: 'ThunderboltFilled', value: 'ThunderboltFilled' }
- { label: 'ThunderboltOutlined', value: 'ThunderboltOutlined' }
- { label: 'ThunderboltTwoTone', value: 'ThunderboltTwoTone' }
- { label: 'ToTopOutlined', value: 'ToTopOutlined' }
- { label: 'ToolFilled', value: 'ToolFilled' }
- { label: 'ToolOutlined', value: 'ToolOutlined' }
- { label: 'ToolTwoTone', value: 'ToolTwoTone' }
- { label: 'TrademarkCircleFilled', value: 'TrademarkCircleFilled' }
- { label: 'TrademarkCircleOutlined', value: 'TrademarkCircleOutlined' }
- { label: 'TrademarkCircleTwoTone', value: 'TrademarkCircleTwoTone' }
- { label: 'TrademarkOutlined', value: 'TrademarkOutlined' }
- { label: 'TransactionOutlined', value: 'TransactionOutlined' }
- { label: 'TranslationOutlined', value: 'TranslationOutlined' }
- { label: 'TrophyFilled', value: 'TrophyFilled' }
- { label: 'TrophyOutlined', value: 'TrophyOutlined' }
- { label: 'TrophyTwoTone', value: 'TrophyTwoTone' }
- { label: 'TwitterCircleFilled', value: 'TwitterCircleFilled' }
- { label: 'TwitterOutlined', value: 'TwitterOutlined' }
- { label: 'TwitterSquareFilled', value: 'TwitterSquareFilled' }
- { label: 'UnderlineOutlined', value: 'UnderlineOutlined' }
- { label: 'UndoOutlined', value: 'UndoOutlined' }
- { label: 'UngroupOutlined', value: 'UngroupOutlined' }
- { label: 'UnlockFilled', value: 'UnlockFilled' }
- { label: 'UnlockOutlined', value: 'UnlockOutlined' }
- { label: 'UnlockTwoTone', value: 'UnlockTwoTone' }
- { label: 'UnorderedListOutlined', value: 'UnorderedListOutlined' }
- { label: 'UpCircleFilled', value: 'UpCircleFilled' }
- { label: 'UpCircleOutlined', value: 'UpCircleOutlined' }
- { label: 'UpCircleTwoTone', value: 'UpCircleTwoTone' }
- { label: 'UpOutlined', value: 'UpOutlined' }
- { label: 'UpSquareFilled', value: 'UpSquareFilled' }
- { label: 'UpSquareOutlined', value: 'UpSquareOutlined' }
- { label: 'UpSquareTwoTone', value: 'UpSquareTwoTone' }
- { label: 'UploadOutlined', value: 'UploadOutlined' }
- { label: 'UsbFilled', value: 'UsbFilled' }
- { label: 'UsbOutlined', value: 'UsbOutlined' }
- { label: 'UsbTwoTone', value: 'UsbTwoTone' }
- { label: 'UserAddOutlined', value: 'UserAddOutlined' }
- { label: 'UserDeleteOutlined', value: 'UserDeleteOutlined' }
- { label: 'UserOutlined', value: 'UserOutlined' }
- { label: 'UserSwitchOutlined', value: 'UserSwitchOutlined' }
- { label: 'UsergroupAddOutlined', value: 'UsergroupAddOutlined' }
- { label: 'UsergroupDeleteOutlined', value: 'UsergroupDeleteOutlined' }
- { label: 'VerifiedOutlined', value: 'VerifiedOutlined' }
- { label: 'VerticalAlignBottomOutlined', value: 'VerticalAlignBottomOutlined' }
- { label: 'VerticalAlignMiddleOutlined', value: 'VerticalAlignMiddleOutlined' }
- { label: 'VerticalAlignTopOutlined', value: 'VerticalAlignTopOutlined' }
- { label: 'VerticalLeftOutlined', value: 'VerticalLeftOutlined' }
- { label: 'VerticalRightOutlined', value: 'VerticalRightOutlined' }
- { label: 'VideoCameraAddOutlined', value: 'VideoCameraAddOutlined' }
- { label: 'AiFillVideoCamera', value: 'AiFillVideoCamera' }
- { label: 'VideoCameraOutlined', value: 'VideoCameraOutlined' }
- { label: 'VideoCameraTwoTone', value: 'VideoCameraTwoTone' }
- { label: 'WalletFilled', value: 'WalletFilled' }
- { label: 'WalletOutlined', value: 'WalletOutlined' }
- { label: 'WalletTwoTone', value: 'WalletTwoTone' }
- { label: 'WarningFilled', value: 'WarningFilled' }
- { label: 'AiOutlineWarning', value: 'AiOutlineWarning' }
- { label: 'WarningTwoTone', value: 'WarningTwoTone' }
- { label: 'WechatFilled', value: 'WechatFilled' }
- { label: 'WechatOutlined', value: 'WechatOutlined' }
- { label: 'WeiboCircleFilled', value: 'WeiboCircleFilled' }
- { label: 'WeiboCircleOutlined', value: 'WeiboCircleOutlined' }
- { label: 'WeiboOutlined', value: 'WeiboOutlined' }
- { label: 'WeiboSquareFilled', value: 'WeiboSquareFilled' }
- { label: 'WeiboSquareOutlined', value: 'WeiboSquareOutlined' }
- { label: 'WhatsAppOutlined', value: 'WhatsAppOutlined' }
- { label: 'WifiOutlined', value: 'WifiOutlined' }
- { label: 'WindowsFilled', value: 'WindowsFilled' }
- { label: 'WindowsOutlined', value: 'WindowsOutlined' }
- { label: 'WomanOutlined', value: 'WomanOutlined' }
- { label: 'YahooFilled', value: 'YahooFilled' }
- { label: 'YahooOutlined', value: 'YahooOutlined' }
- { label: 'YoutubeFilled', value: 'YoutubeFilled' }
- { label: 'YoutubeOutlined', value: 'YoutubeOutlined' }
- { label: 'YuqueFilled', value: 'YuqueFilled' }
- { label: 'YuqueOutlined', value: 'YuqueOutlined' }
- { label: 'ZhihuCircleFilled', value: 'ZhihuCircleFilled' }
- { label: 'ZhihuOutlined', value: 'ZhihuOutlined' }
- { label: 'ZhihuSquareFilled', value: 'ZhihuSquareFilled' }
- { label: 'ZoomInOutlined', value: 'ZoomInOutlined' }
- { label: 'ZoomOutOutlined', value: 'ZoomOutOutlined' }
- AiFillAlert
- AiFillApi
- AiFillBell
- AiFillCamera
- AiFillCheckCircle
- AiOutlineCloseCircle
- AiOutlineException
- AiOutlineExclamation
- AiOutlineExperiment
- AiOutlineForm
- AiOutlineHome

View File

@ -32,4 +32,4 @@ _ref:
type: Statistic
properties:
value: 99.5
prefixIcon: AiTwoToneAlert
prefixIcon: AiOutlineAlert

View File

@ -21,7 +21,7 @@ cli:
plugins:
- name: '@lowdefy/docs'
version: '4.0.0-alpha.7'
version: '4.0.0-alpha.8'
global:
all_icons:

View File

@ -86,7 +86,8 @@ const button = (path) => ({
label: {
span: 8,
align: 'right',
extra: 'Name of an Ant Design Icon or properties of an Icon block to use icon in button.',
extra:
'Name of an React-Icon (See <a href="https://react-icons.github.io/react-icons/">all icons</a>) or properties of an Icon block to use icon in button.',
},
showSearch: true,
allowClear: true,

View File

@ -398,9 +398,6 @@ areas:
- id: event_description
type: Markdown
properties:
style:
'& > .markdown-body':
fontSize: 14
content:
_nunjucks:
template: |

View File

@ -48,7 +48,7 @@ test('button propertiesFormTransformer', () => {
"allowClear": true,
"label": Object {
"align": "right",
"extra": "Name of an Ant Design Icon or properties of an Icon block to use icon in button.",
"extra": "Name of an React-Icon (See <a href=\\"https://react-icons.github.io/react-icons/\\">all icons</a>) or properties of an Icon block to use icon in button.",
"span": 8,
},
"options": Object {

View File

@ -137,7 +137,7 @@ _ref:
subTitle: We are excited to see what you are going to build
status: success
icon:
name: AiTwoToneHeart
name: AiOutlineHeart
color: '#f00'
areas:
extra:
@ -203,7 +203,7 @@ _ref:
title: Welcome to your Lowdefy app
subTitle: We are excited to see what you are going to build
icon:
name: AiTwoToneHeart
name: AiOutlineHeart
color: '#f00'
areas:
extra:

View File

@ -16,7 +16,6 @@
import React from 'react';
import { type } from '@lowdefy/helpers';
import { ErrorBoundary } from '@lowdefy/block-utils';
import { Area, BlockLayout, layoutParamsToArea } from '../../../src/index.js';
import Block from './Block.js';
@ -112,24 +111,22 @@ const AutoBlock = ({ block, makeCssClass, highlightBorders }) => {
const BindAutoBlock = ({ block, state, makeCssClass, highlightBorders }) => {
return (
<ErrorBoundary>
<Loading id={`${block.id}-loading`} showLoading>
<BlockLayout
id={`bl-${block.id}` + randomId()}
highlightBorders={highlightBorders}
layout={block.layout || {}}
blockStyle={block.style}
<Loading id={`${block.id}-loading`} showLoading>
<BlockLayout
id={`bl-${block.id}` + randomId()}
highlightBorders={highlightBorders}
layout={block.layout || {}}
blockStyle={block.style}
makeCssClass={makeCssClass}
>
<AutoBlock
block={block}
state={state}
makeCssClass={makeCssClass}
>
<AutoBlock
block={block}
state={state}
makeCssClass={makeCssClass}
highlightBorders={highlightBorders}
/>
</BlockLayout>
</Loading>
</ErrorBoundary>
highlightBorders={highlightBorders}
/>
</BlockLayout>
</Loading>
);
};

View File

@ -164,6 +164,7 @@ test('operator returns value', () => {
},
],
"methodName": undefined,
"operatorPrefix": "_",
"operators": Object {
"_error": [MockFunction],
"_init": [MockFunction],
@ -317,6 +318,7 @@ test('context._internal.lowdefy empty object', () => {
"lowdefyGlobal": Object {},
"menus": Object {},
"methodName": undefined,
"operatorPrefix": "_",
"operators": Object {
"_error": [MockFunction],
"_init": [MockFunction],

View File

@ -17,7 +17,7 @@
import { Actions, Blocks, Requests, State } from '@lowdefy/engine';
import { WebParser } from '@lowdefy/operators';
const testContext = async ({ lowdefy, operators, rootBlock, initState = {} }) => {
const testContext = ({ lowdefy, operators, rootBlock, initState = {} }) => {
const testLowdefy = {
inputs: { test: {} },
urlQuery: {},

View File

@ -25,7 +25,7 @@
},
"icon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to use an icon in avatar.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to use an icon in avatar.",
"docs": {
"displayType": "icon"
}

View File

@ -31,7 +31,7 @@
},
"icon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to use an icon in badge.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to use an icon in badge.",
"docs": {
"displayType": "icon"
}

View File

@ -53,7 +53,7 @@
},
"icon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to use an icon in breadcrumb link.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to use an icon in breadcrumb link.",
"docs": {
"displayType": "icon"
}

View File

@ -42,7 +42,7 @@
},
"icon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to use icon in button.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to use icon in button.",
"docs": {
"displayType": "icon"
}

View File

@ -29,7 +29,7 @@
},
"expandIcon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block for expand icon on the right of selector.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block for expand icon on the right of selector.",
"docs": {
"displayType": "icon"
}

View File

@ -30,7 +30,7 @@
},
"icon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to customize modal icon.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize modal icon.",
"docs": {
"displayType": "icon"
}

View File

@ -122,7 +122,7 @@ const ControlledListBlock = ({
...properties.removeItemIcon,
style: {
paddingLeft:
properties.size === 'small' ? 16 : properties.size === 'large' ? 20 : 18,
properties.size === 'small' ? 2 : properties.size === 'large' ? 6 : 4,
fontSize:
properties.size === 'small' ? 16 : properties.size === 'large' ? 20 : 18,
...(properties.removeItemIcon && properties.removeItemIcon.style

View File

@ -197,7 +197,7 @@
"suffixIcon": {
"type": ["string", "object"],
"default": "AiOutlineCalendar",
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon on right-hand side of the date picker.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon on right-hand side of the date picker.",
"docs": {
"displayType": "icon"
}

View File

@ -159,7 +159,7 @@
"suffixIcon": {
"type": ["string", "object"],
"default": "AiOutlineCalendar",
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon on right-hand side of the date picker.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon on right-hand side of the date picker.",
"docs": {
"displayType": "icon"
}

View File

@ -186,7 +186,7 @@
"suffixIcon": {
"type": ["string", "object"],
"default": "AiOutlineCalendar",
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon on right-hand side of the date picker.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon on right-hand side of the date picker.",
"docs": {
"displayType": "icon"
}

View File

@ -41,6 +41,7 @@ const MenuComp = ({
}) => {
const styles = {
lineHeight: '64px',
width: '100%',
display: properties.mode === 'horizontal' && 'inline-block',
};
const exProps = {};
@ -123,7 +124,7 @@ const MenuComp = ({
case 'MenuGroup':
return (
<Menu.SubMenu
key={link.pageId || link.id || i}
key={`${link.pageId || link.id}_${i}`}
title={
<Link
id={link.pageId || link.id || i}
@ -157,7 +158,7 @@ const MenuComp = ({
case 'MenuGroup':
return (
<Menu.ItemGroup
key={subLink.pageId || subLink.id || j}
key={`${subLink.pageId || subLink.id}_${j}`}
title={
<Link
id={subLink.pageId || subLink.id || j}
@ -180,7 +181,7 @@ const MenuComp = ({
}
return (
<Menu.Item
key={subLinkGroup.pageId || subLinkGroup.id || k}
key={`${subLinkGroup.pageId || subLinkGroup.id}_${k}`}
danger={get(subLinkGroup, 'properties.danger')}
icon={
subLinkGroup.properties &&
@ -209,7 +210,7 @@ const MenuComp = ({
default:
return (
<Menu.Item
key={subLink.pageId || subLink.id || j}
key={`${subLink.pageId || subLink.id}_${j}`}
danger={get(subLink, 'properties.danger')}
icon={
subLink.properties &&
@ -239,7 +240,7 @@ const MenuComp = ({
default:
return (
<Menu.Item
key={link.pageId || link.id || i}
key={`${link.pageId || link.id}_${i}`}
danger={get(link, 'properties.danger')}
icon={
link.properties &&

View File

@ -93,7 +93,7 @@
},
"icon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon on menu item.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon on menu item.",
"docs": {
"displayType": "icon"
}

View File

@ -15,7 +15,7 @@
},
"icon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to customize message icon.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize message icon.",
"docs": {
"displayType": "icon"
}

View File

@ -81,7 +81,7 @@
},
"icon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon on menu item.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon on menu item.",
"docs": {
"displayType": "icon"
}

View File

@ -100,7 +100,7 @@
"suffixIcon": {
"type": ["string", "object"],
"default": "AiOutlineCalendar",
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon on right-hand side of the date picker.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon on right-hand side of the date picker.",
"docs": {
"displayType": "icon"
}

View File

@ -22,7 +22,7 @@
"clearIcon": {
"type": ["string", "object"],
"default": "AiOutlineCloseCircle",
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon at far right position of the selector, shown when user is given option to clear input.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon at far right position of the selector, shown when user is given option to clear input.",
"docs": {
"displayType": "icon"
}
@ -192,7 +192,7 @@
"selectedIcon": {
"type": ["string", "object"],
"default": "AiOutlineCheck",
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon showing when a selection is made in the drop-down list.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon showing when a selection is made in the drop-down list.",
"docs": {
"displayType": "icon"
}
@ -211,7 +211,7 @@
"suffixIcon": {
"type": ["string", "object"],
"default": "AiOutlineDown",
"description": "Name of an Ant Design Icon or properties of an Icon block to customize at the drop-down position of the selector.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize at the drop-down position of the selector.",
"docs": {
"displayType": "icon"
}

View File

@ -27,14 +27,14 @@
},
"icon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to customize notification icon.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize notification icon.",
"docs": {
"displayType": "icon"
}
},
"closeIcon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to customize close icon.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize close icon.",
"docs": {
"displayType": "icon"
}

View File

@ -143,7 +143,7 @@
},
"icon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon on menu item.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon on menu item.",
"docs": {
"displayType": "icon"
}

View File

@ -207,7 +207,7 @@
},
"icon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon on menu item.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon on menu item.",
"docs": {
"displayType": "icon"
}

View File

@ -34,7 +34,7 @@
"minIcon": {
"type": ["string", "object"],
"default": "AiOutlineFrown",
"description": "Name of an Ant Design Icon or properties of an Icon block to customize the icon to the left of the minimum side of the slider.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize the icon to the left of the minimum side of the slider.",
"docs": {
"displayType": "icon"
}
@ -42,7 +42,7 @@
"maxIcon": {
"type": ["string", "object"],
"default": "AiOutlineSmile",
"description": "Name of an Ant Design Icon or properties of an Icon block to customize the icon to the right of the maximum side of the slider.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize the icon to the right of the maximum side of the slider.",
"docs": {
"displayType": "icon"
}

View File

@ -6,7 +6,7 @@
"properties": {
"icon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon to use as result image.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon to use as result image.",
"docs": {
"displayType": "icon"
}

View File

@ -22,7 +22,7 @@
"clearIcon": {
"type": ["string", "object"],
"default": "AiOutlineCloseCircle",
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon at far right position of the selector, shown when user is given option to clear input.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon at far right position of the selector, shown when user is given option to clear input.",
"docs": {
"displayType": "icon"
}
@ -208,7 +208,7 @@
"suffixIcon": {
"type": ["string", "object"],
"default": "AiOutlineDown",
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon at the drop-down position of the selector.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon at the drop-down position of the selector.",
"docs": {
"displayType": "icon"
}

View File

@ -29,7 +29,7 @@
},
"prefixIcon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon which prefix the statistic.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon which prefix the statistic.",
"docs": {
"displayType": "icon"
}
@ -40,7 +40,7 @@
},
"suffixIcon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon which suffix the statistic.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon which suffix the statistic.",
"docs": {
"displayType": "icon"
}

View File

@ -12,7 +12,7 @@
"checkedIcon": {
"type": ["string", "object"],
"default": "AiOutlineCheck",
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon to shown when switch is checked (true).",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon to shown when switch is checked (true).",
"docs": {
"displayType": "icon"
}
@ -112,7 +112,7 @@
"uncheckedIcon": {
"type": ["string", "object"],
"default": "AiOutlineClose",
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon to shown when switch is unchecked (false).",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon to shown when switch is unchecked (false).",
"docs": {
"displayType": "icon"
}

View File

@ -56,7 +56,7 @@
},
"icon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon to show in tab title.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon to show in tab title.",
"docs": {
"displayType": "icon"
}

View File

@ -38,7 +38,7 @@
},
"prefixIcon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon to prefix the text input.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon to prefix the text input.",
"docs": {
"displayType": "icon"
}
@ -121,7 +121,7 @@
},
"suffixIcon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon to suffix the text input.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon to suffix the text input.",
"docs": {
"displayType": "icon"
}

View File

@ -159,7 +159,7 @@
"suffixIcon": {
"type": ["string", "object"],
"default": "AiOutlineCalendar",
"description": "Name of an Ant Design Icon or properties of an Icon block to customize icon at the right-hand side of the date picker.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize icon at the right-hand side of the date picker.",
"docs": {
"displayType": "icon"
}

View File

@ -37,7 +37,7 @@
},
"icon": {
"type": ["string", "object"],
"description": "Name of an Ant Design Icon or properties of an Icon block for anchor icon.",
"description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block for anchor icon.",
"docs": {
"displayType": "icon"
}

View File

@ -13,7 +13,7 @@
},
"name": {
"type": "string",
"default": "AiCloseCircleOutlined",
"default": "AiOutlineCloseCircle",
"description": "Name of icon to be displayed."
},
"rotate": {

View File

@ -0,0 +1,45 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Render default - value[0] 1`] = `
<div
class="emotion-0"
id="default"
style="--height: 4px; --progress: 30%; --transition: all 1000ms ease; --opacity: 1;"
>
<div
class="progress-bar-container"
>
<div
class="progress-bar-loader"
>
<div
class="progress-bar-shadow"
/>
</div>
</div>
</div>
`;
exports[`Render required = true default - value[0] 1`] = `
<div
class="emotion-0"
id="default"
style="--height: 4px; --progress: 30%; --transition: all 1000ms ease; --opacity: 1;"
>
<div
class="progress-bar-container"
>
<div
class="progress-bar-loader"
>
<div
class="progress-bar-shadow"
/>
</div>
</div>
</div>
`;
exports[`Test Schema default 1`] = `true`;
exports[`Test Schema default 2`] = `null`;

View File

@ -16,40 +16,45 @@
import React from 'react';
import { urlQuery } from '@lowdefy/helpers';
import { useRouter } from 'next/router';
import Page from './Page.js';
import Reload from './Reload.js';
import setPageId from '../utils/setPageId.js';
import setupLink from '../utils/setupLink.js';
import useRootConfig from '../utils/useRootConfig.js';
import createComponents from './createComponents.js';
import Head from 'next/head';
import Link from 'next/link';
const App = ({ lowdefy }) => {
import Reload from './Reload.js';
import Page from './Page.js';
import setPageId from './setPageId.js';
import useRootConfig from './utils/useRootConfig.js';
import actions from '../build/plugins/actions.js';
import blocks from '../build/plugins/blocks.js';
import icons from '../build/plugins/icons.js';
import operators from '../build/plugins/operatorsClient.js';
const App = () => {
const router = useRouter();
const { data: rootConfig } = useRootConfig(router.basePath);
window.lowdefy = lowdefy;
lowdefy._internal.router = router;
lowdefy._internal.link = setupLink(lowdefy);
lowdefy._internal.components = createComponents(lowdefy);
lowdefy.basePath = lowdefy._internal.router.basePath;
lowdefy.home = rootConfig.home;
lowdefy.lowdefyGlobal = rootConfig.lowdefyGlobal;
lowdefy.menus = rootConfig.menus;
lowdefy.urlQuery = urlQuery.parse(window.location.search.slice(1));
const redirect = setPageId(lowdefy);
const { redirect, pageId } = setPageId(router, rootConfig);
if (redirect) {
lowdefy._internal.router.push(`/${lowdefy.pageId}`);
router.push(`/${pageId}`);
}
return (
<Reload lowdefy={lowdefy}>
<Page lowdefy={lowdefy} />
<Reload basePath={router.basePath}>
<Page
Components={{ Head, Link }}
config={{
rootConfig,
}}
pageId={pageId}
router={router}
types={{
actions,
blocks,
icons,
operators,
}}
/>
</Reload>
);
};

View File

@ -14,16 +14,30 @@
limitations under the License.
*/
import { createIcon } from '@lowdefy/block-utils';
import React from 'react';
import createLinkComponent from './createLinkComponent.js';
import icons from '../../build/plugins/icons.js';
import Client from '@lowdefy/client';
import usePageConfig from './utils/usePageConfig.js';
const createComponents = (lowdefy) => {
return {
Link: createLinkComponent(lowdefy),
Icon: createIcon(icons),
};
const Page = ({ Components, config, pageId, router, types }) => {
const { data: pageConfig } = usePageConfig(pageId, router.basePath);
if (!pageConfig) {
router.replace(`/404`);
return '';
}
return (
<Client
Components={Components}
config={{
...config,
pageConfig,
}}
router={router}
stage="dev"
types={types}
window={window}
/>
);
};
export default createComponents;
export default Page;

View File

@ -16,13 +16,13 @@
import React, { useEffect } from 'react';
import useMutateCache from '../utils/useMutateCache.js';
import waitForRestartedServer from '../utils/waitForRestartedServer.js';
import useMutateCache from './utils/useMutateCache.js';
import waitForRestartedServer from './utils/waitForRestartedServer.js';
const Reload = ({ children, lowdefy }) => {
const mutateCache = useMutateCache(lowdefy.basePath);
const Reload = ({ children, basePath }) => {
const mutateCache = useMutateCache(basePath);
useEffect(() => {
const sse = new EventSource(`${lowdefy.basePath}/api/reload`);
const sse = new EventSource(`${basePath}/api/reload`);
sse.addEventListener('reload', () => {
mutateCache();
@ -31,7 +31,7 @@ const Reload = ({ children, lowdefy }) => {
sse.onerror = () => {
sse.close();
waitForRestartedServer(lowdefy);
waitForRestartedServer(basePath);
};
return () => {
sse.close();

View File

@ -1,57 +0,0 @@
/*
Copyright 2020-2022 Lowdefy, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import getContext from '@lowdefy/engine';
import MountEvents from './block/MountEvents.js';
const Context = ({ children, lowdefy, config }) => {
const context = getContext({ config, lowdefy });
return (
<MountEvents
asyncEventName="onInitAsync"
context={context}
eventName="onInit"
triggerEvent={({ name, context, async }) => {
if (!async) {
context._internal.update(); // TODO: do we need this?
context._internal.State.freezeState();
}
context._internal.RootBlocks.areas.root.blocks[0].triggerEvent({ name });
}}
>
{(loadingOnInit) => {
if (loadingOnInit) return ''; // TODO: handle onInit Loader
return (
<MountEvents
asyncEventName="onEnterAsync"
context={context}
eventName="onEnter"
triggerEvent={({ name, context }) =>
context._internal.RootBlocks.areas.root.blocks[0].triggerEvent({ name })
}
>
{(loadingOnEnter) => children(context, loadingOnEnter)}
</MountEvents>
);
}}
</MountEvents>
);
};
export default Context;

View File

@ -1,50 +0,0 @@
/*
Copyright 2020-2022 Lowdefy, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import actions from '../../build/plugins/actions.js';
import callRequest from '../utils/callRequest.js';
import blockComponents from '../../build/plugins/blocks.js';
import operators from '../../build/plugins/operatorsClient.js';
const LowdefyContext = ({ children, lowdefy }) => {
if (!lowdefy._internal) {
lowdefy._internal = {
actions,
blockComponents,
callRequest,
components: {},
document,
operators,
updaters: {},
window,
displayMessage: ({ content }) => {
console.log(content);
return () => undefined;
},
link: () => undefined,
};
lowdefy.contexts = {};
lowdefy.inputs = {};
lowdefy.lowdefyGlobal = {};
}
lowdefy._internal.updateBlock = (blockId) =>
lowdefy._internal.updaters[blockId] && lowdefy._internal.updaters[blockId]();
return <>{children}</>;
};
export default LowdefyContext;

View File

@ -1,54 +0,0 @@
/*
Copyright 2020-2022 Lowdefy, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import Block from './block/Block.js';
import Context from './Context.js';
import Head from './Head.js';
import usePageConfig from '../utils/usePageConfig.js';
const LoadingBlock = () => <div>Loading...</div>;
const Page = ({ lowdefy }) => {
const { data: pageConfig } = usePageConfig(lowdefy.pageId, lowdefy.basePath);
if (!pageConfig) {
lowdefy._internal.router.replace(`/404`);
return <LoadingBlock />;
}
return (
<Context config={pageConfig} lowdefy={lowdefy}>
{(context, loading) => {
if (loading) {
return <LoadingBlock />;
}
return (
<>
<Head properties={context._internal.RootBlocks.map[pageConfig.id].eval.properties} />
<Block
block={context._internal.RootBlocks.map[pageConfig.id]}
Blocks={context._internal.RootBlocks}
context={context}
lowdefy={lowdefy}
/>
</>
);
}}
</Context>
);
};
export default Page;

View File

@ -1,57 +0,0 @@
/*
Copyright 2020-2022 Lowdefy, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React, { Suspense, useState } from 'react';
import { ErrorBoundary } from '@lowdefy/block-utils';
import CategorySwitch from './CategorySwitch.js';
import LoadingBlock from './LoadingBlock.js';
import MountEvents from './MountEvents.js';
const Block = ({ block, Blocks, context, isRoot, lowdefy }) => {
const [updates, setUpdate] = useState(0);
lowdefy._internal.updaters[block.id] = () => setUpdate(updates + 1);
return (
<ErrorBoundary>
<Suspense fallback={<LoadingBlock block={block} lowdefy={lowdefy} />}>
<MountEvents
asyncEventName="onMountAsync"
context={context}
eventName="onMount"
triggerEvent={block.triggerEvent}
>
{(loading) =>
loading ? (
<LoadingBlock block={block} lowdefy={lowdefy} />
) : (
<CategorySwitch
block={block}
Blocks={Blocks}
context={context}
isRoot={isRoot}
lowdefy={lowdefy}
updates={updates}
/>
)
}
</MountEvents>
</Suspense>
</ErrorBoundary>
);
};
export default Block;

View File

@ -1,115 +0,0 @@
/*
Copyright 2020-2022 Lowdefy, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import { BlockLayout } from '@lowdefy/layout';
import { makeCssClass } from '@lowdefy/block-utils';
import Container from './Container.js';
import List from './List.js';
const CategorySwitch = ({ block, Blocks, context, lowdefy }) => {
if (!block.eval) return null; // Renderer updates before eval is executed for the first time on lists. See #520
if (block.eval.visible === false)
return <div id={`vs-${block.blockId}`} style={{ display: 'none' }} />;
const Component = lowdefy._internal.blockComponents[block.type];
switch (Component.meta.category) {
case 'list':
return (
<List
block={block}
Blocks={Blocks}
Component={Component}
context={context}
lowdefy={lowdefy}
/>
);
case 'container':
return (
<Container
block={block}
Blocks={Blocks}
Component={Component}
context={context}
lowdefy={lowdefy}
/>
);
case 'input':
return (
<BlockLayout
id={`bl-${block.blockId}`}
blockStyle={block.eval.style}
highlightBorders={lowdefy.lowdefyGlobal.highlightBorders}
layout={block.eval.layout || {}}
makeCssClass={makeCssClass}
>
<Component
methods={Object.assign(block.methods, {
makeCssClass,
registerEvent: block.registerEvent,
registerMethod: block.registerMethod,
setValue: block.setValue,
triggerEvent: block.triggerEvent,
})}
basePath={lowdefy.basePath}
blockId={block.blockId}
components={lowdefy._internal.components}
events={block.eval.events}
key={block.blockId}
menus={lowdefy.menus}
pageId={lowdefy.pageId}
properties={block.eval.properties}
required={block.eval.required}
user={lowdefy.user}
validation={block.eval.validation}
value={block.value}
/>
</BlockLayout>
);
default:
return (
<BlockLayout
id={`bl-${block.blockId}`}
blockStyle={block.eval.style}
highlightBorders={lowdefy.lowdefyGlobal.highlightBorders}
layout={block.eval.layout || {}}
makeCssClass={makeCssClass}
>
<Component
methods={Object.assign(block.methods, {
makeCssClass,
registerEvent: block.registerEvent,
registerMethod: block.registerMethod,
triggerEvent: block.triggerEvent,
})}
basePath={lowdefy.basePath}
blockId={block.blockId}
components={lowdefy._internal.components}
events={block.eval.events}
key={block.blockId}
menus={lowdefy.menus}
pageId={lowdefy.pageId}
properties={block.eval.properties}
required={block.eval.required}
user={lowdefy.user}
validation={block.eval.validation}
/>
</BlockLayout>
);
}
};
export default CategorySwitch;

View File

@ -1,85 +0,0 @@
/*
Copyright 2020-2022 Lowdefy, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import { Area, BlockLayout, layoutParamsToArea } from '@lowdefy/layout';
import { makeCssClass } from '@lowdefy/block-utils';
import Block from './Block.js';
const Container = ({ block, Blocks, Component, context, lowdefy }) => {
const content = {};
// eslint-disable-next-line prefer-destructuring
const areas = Blocks.subBlocks[block.id][0].areas;
Object.keys(areas).forEach((areaKey, i) => {
content[areaKey] = (areaStyle) => (
<Area
id={`ar-${block.blockId}-${areaKey}`}
key={`ar-${block.blockId}-${areaKey}-${i}`}
area={layoutParamsToArea({
area: block.eval.areas[areaKey] || {},
areaKey,
layout: block.eval.layout || {},
})}
areaStyle={[areaStyle, block.eval.areas[areaKey] && block.eval.areas[areaKey].style]}
highlightBorders={lowdefy.lowdefyGlobal.highlightBorders}
makeCssClass={makeCssClass}
>
{areas[areaKey].blocks.map((bl, k) => (
<Block
key={`co-${bl.blockId}-${k}`}
Blocks={Blocks.subBlocks[block.id][0]}
block={bl}
context={context}
lowdefy={lowdefy}
/>
))}
</Area>
);
});
return (
<BlockLayout
id={`bl-${block.blockId}`}
blockStyle={block.eval.style}
highlightBorders={lowdefy.lowdefyGlobal.highlightBorders}
layout={block.eval.layout || {}}
makeCssClass={makeCssClass}
>
<Component
methods={Object.assign(block.methods, {
makeCssClass,
registerEvent: block.registerEvent,
registerMethod: block.registerMethod,
triggerEvent: block.triggerEvent,
})}
basePath={lowdefy.basePath}
blockId={block.blockId}
components={lowdefy._internal.components}
content={content}
events={block.eval.events}
key={block.blockId}
menus={lowdefy.menus}
pageId={lowdefy.pageId}
properties={block.eval.properties}
required={block.eval.required}
user={lowdefy.user}
validation={block.eval.validation}
/>
</BlockLayout>
);
};
export default Container;

View File

@ -1,92 +0,0 @@
/*
Copyright 2020-2022 Lowdefy, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import { Area, BlockLayout, layoutParamsToArea } from '@lowdefy/layout';
import { makeCssClass } from '@lowdefy/block-utils';
import Block from './Block.js';
const List = ({ block, Blocks, Component, context, lowdefy }) => {
const content = {};
const contentList = [];
Blocks.subBlocks[block.id].forEach((SBlock) => {
Object.keys(SBlock.areas).forEach((areaKey) => {
content[areaKey] = (areaStyle) => (
<Area
id={`ar-${block.blockId}-${SBlock.id}-${areaKey}`}
key={`ar-${block.blockId}-${SBlock.id}-${areaKey}`}
area={layoutParamsToArea({
area: block.eval.areas[areaKey] || {},
areaKey,
layout: block.eval.layout || {},
})}
areaStyle={[areaStyle, block.eval.areas[areaKey] && block.eval.areas[areaKey].style]}
highlightBorders={lowdefy.lowdefyGlobal.highlightBorders}
makeCssClass={makeCssClass}
>
{SBlock.areas[areaKey].blocks.map((bl) => (
<Block
key={`ls-${bl.blockId}`}
Blocks={SBlock}
block={bl}
context={context}
lowdefy={lowdefy}
/>
))}
</Area>
);
});
contentList.push({ ...content });
});
return (
<BlockLayout
id={`bl-${block.blockId}`}
blockStyle={block.eval.style}
highlightBorders={lowdefy.lowdefyGlobal.highlightBorders}
layout={block.eval.layout || {}}
makeCssClass={makeCssClass}
>
<Component
methods={Object.assign(block.methods, {
makeCssClass,
moveItemDown: block.moveItemDown,
moveItemUp: block.moveItemUp,
pushItem: block.pushItem,
registerEvent: block.registerEvent,
registerMethod: block.registerMethod,
removeItem: block.removeItem,
triggerEvent: block.triggerEvent,
unshiftItem: block.unshiftItem,
})}
basePath={lowdefy.basePath}
blockId={block.blockId}
components={lowdefy._internal.components}
events={block.eval.events}
key={block.blockId}
list={contentList}
menus={lowdefy.menus}
pageId={lowdefy.pageId}
properties={block.eval.properties}
required={block.eval.required}
user={lowdefy.user}
validation={block.eval.validation}
/>
</BlockLayout>
);
};
export default List;

View File

@ -1,22 +0,0 @@
import React from 'react';
// import { Loading, makeCssClass } from '@lowdefy/block-utils';
// import { get } from '@lowdefy/helpers';
// import { BlockLayout } from '@lowdefy/layout';
const LoadingBlock = ({ block, lowdefy }) => (
<div>LoadingBlock</div>
// <BlockLayout
// id={`bl-loading-${block.blockId}`}
// blockStyle={get(block, 'eval.style') || get(block, 'meta.loading.style', { default: {} })}
// highlightBorders={lowdefy.lowdefyGlobal.highlightBorders}
// layout={get(block, 'eval.layout') || get(block, 'meta.loading.layout', { default: {} })}
// makeCssClass={makeCssClass}
// >
// <Loading
// properties={get(block, 'meta.loading.properties')}
// type={get(block, 'meta.loading.type')}
// />
// </BlockLayout>
);
export default LoadingBlock;

View File

@ -1,46 +0,0 @@
/*
Copyright 2020-2022 Lowdefy, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React, { useEffect, useState } from 'react';
const MountEvents = ({ asyncEventName, context, eventName, triggerEvent, children }) => {
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
useEffect(() => {
let mounted = true;
const mount = async () => {
try {
await triggerEvent({ name: eventName, context });
if (mounted) {
triggerEvent({ name: asyncEventName, context, async: true });
setLoading(false);
}
} catch (err) {
setError(err);
}
};
mount();
return () => {
mounted = false;
};
}, [context]);
if (error) throw error;
return <>{children(loading)}</>;
};
export default MountEvents;

View File

@ -1,29 +0,0 @@
/*
Copyright 2020-2022 Lowdefy, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import { createIcon } from '@lowdefy/block-utils';
import createLinkComponent from './createLinkComponent.js';
import icons from '../../build/plugins/icons.js';
const createComponents = (lowdefy) => {
return {
Link: createLinkComponent(lowdefy),
Icon: createIcon(icons),
};
};
export default createComponents;

View File

@ -14,20 +14,17 @@
limitations under the License.
*/
function setPageId(lowdefy) {
if (lowdefy._internal.router.pathname === `/404`) {
lowdefy.pageId = '404';
return false;
function setPageId(router, rootConfig) {
if (router.pathname === `/404`) {
return { redirect: false, pageId: '404' };
}
if (!lowdefy._internal.router.query.pageId) {
lowdefy.pageId = lowdefy.home.pageId;
if (lowdefy.home.configured === false) {
return true;
if (!router.query.pageId) {
if (rootConfig.home.configured === false) {
return { redirect: true, pageId: rootConfig.home.pageId };
}
return false;
return { redirect: false, pageId: rootConfig.home.pageId };
}
lowdefy.pageId = lowdefy._internal.router.query.pageId;
return false;
return { redirect: false, pageId: router.query.pageId };
}
export default setPageId;

View File

@ -28,6 +28,8 @@ async function request({ url, method = 'GET', body }) {
if (!res.ok) {
// TODO: check
const body = await res.json();
console.log(res);
console.log(body);
throw new Error(body.message || 'Request error');
}
return res.json();

Some files were not shown because too many files have changed in this diff Show More