diff --git a/spiffworkflow-frontend/package-lock.json b/spiffworkflow-frontend/package-lock.json index 5dc7f802..f03d5781 100644 --- a/spiffworkflow-frontend/package-lock.json +++ b/spiffworkflow-frontend/package-lock.json @@ -18,8 +18,11 @@ "@casl/react": "^3.1.0", "@ginkgo-bioworks/react-json-schema-form-builder": "^2.9.0", "@monaco-editor/react": "^4.4.5", - "@rjsf/core": "^4.2.0", + "@react-icons/all-files": "^4.1.0", + "@rjsf/core": "*", + "@rjsf/mui": "^5.0.0-beta.13", "@rjsf/utils": "^5.0.0-beta.13", + "@rjsf/validator-ajv8": "^5.0.0-beta.13", "@tanstack/react-table": "^8.2.2", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.3.0", @@ -1960,11 +1963,11 @@ } }, "node_modules/@babel/runtime": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", + "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.10" }, "engines": { "node": ">=6.9.0" @@ -2749,22 +2752,22 @@ } }, "node_modules/@emotion/babel-plugin": { - "version": "11.10.2", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.2.tgz", - "integrity": "sha512-xNQ57njWTFVfPAc3cjfuaPdsgLp5QOSuRsj9MA6ndEhH/AzuZM86qIQzt6rq+aGBwj3n5/TkLmU5lhAfdRmogA==", + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.5.tgz", + "integrity": "sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==", "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/plugin-syntax-jsx": "^7.17.12", "@babel/runtime": "^7.18.3", "@emotion/hash": "^0.9.0", "@emotion/memoize": "^0.8.0", - "@emotion/serialize": "^1.1.0", + "@emotion/serialize": "^1.1.1", "babel-plugin-macros": "^3.1.0", "convert-source-map": "^1.5.0", "escape-string-regexp": "^4.0.0", "find-root": "^1.1.0", "source-map": "^0.5.7", - "stylis": "4.0.13" + "stylis": "4.1.3" }, "peerDependencies": { "@babel/core": "^7.0.0" @@ -2795,15 +2798,15 @@ } }, "node_modules/@emotion/cache": { - "version": "11.10.3", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.3.tgz", - "integrity": "sha512-Psmp/7ovAa8appWh3g51goxu/z3iVms7JXOreq136D8Bbn6dYraPnmL6mdM8GThEx9vwSn92Fz+mGSjBzN8UPQ==", + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz", + "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==", "dependencies": { "@emotion/memoize": "^0.8.0", - "@emotion/sheet": "^1.2.0", + "@emotion/sheet": "^1.2.1", "@emotion/utils": "^1.2.0", "@emotion/weak-memoize": "^0.3.0", - "stylis": "4.0.13" + "stylis": "4.1.3" } }, "node_modules/@emotion/cache/node_modules/@emotion/memoize": { @@ -2856,9 +2859,9 @@ } }, "node_modules/@emotion/serialize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.0.tgz", - "integrity": "sha512-F1ZZZW51T/fx+wKbVlwsfchr5q97iW8brAnXmsskz4d0hVB4O3M/SiA3SaeH06x02lSNzkkQv+n3AX3kCXKSFA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", "dependencies": { "@emotion/hash": "^0.9.0", "@emotion/memoize": "^0.8.0", @@ -2873,15 +2876,66 @@ "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" }, "node_modules/@emotion/sheet": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", + "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==" + }, + "node_modules/@emotion/styled": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.5.tgz", + "integrity": "sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.5", + "@emotion/is-prop-valid": "^1.2.0", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/styled/node_modules/@emotion/is-prop-valid": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.0.tgz", - "integrity": "sha512-OiTkRgpxescko+M51tZsMq7Puu/KP55wMT8BgpcXVG2hqXc0Vo0mfymJ/Uj24Hp0i083ji/o0aLddh08UEjq8w==" + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "peer": true, + "dependencies": { + "@emotion/memoize": "^0.8.0" + } + }, + "node_modules/@emotion/styled/node_modules/@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==", + "peer": true }, "node_modules/@emotion/unitless": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", + "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", + "peer": true, + "peerDependencies": { + "react": ">=16.8.0" + } + }, "node_modules/@emotion/utils": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", @@ -4389,6 +4443,289 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/@mui/base": { + "version": "5.0.0-alpha.106", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.106.tgz", + "integrity": "sha512-xJQQtwPCPwr6hGWTBdvDwHYwExn3Bw7nPQkN8Fuz8kHpZqoMVWQvvaFS557AIkkI2AFLV3DxVIMjbCvrIntBWg==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@emotion/is-prop-valid": "^1.2.0", + "@mui/types": "^7.2.1", + "@mui/utils": "^5.10.14", + "@popperjs/core": "^2.11.6", + "clsx": "^1.2.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/base/node_modules/@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "peer": true, + "dependencies": { + "@emotion/memoize": "^0.8.0" + } + }, + "node_modules/@mui/base/node_modules/@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==", + "peer": true + }, + "node_modules/@mui/base/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "peer": true + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.14.tgz", + "integrity": "sha512-qLgIJNOR9Dre8JiZ/neVzOf4jf88J6YtOkQqugtMrleLjbfRVUSS4LWl9CSOjNq76quYdmYWnSDgfQqOooT2cQ==", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.14.tgz", + "integrity": "sha512-qtH60slQa+7MZRn6kyui8rKuoGDglPqaHX+pzBKNvd8JCOlrnfY5DmGGDdToTXyXl8xJ8nhANZbrbpg7UVKq/Q==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.20.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.14.tgz", + "integrity": "sha512-HWzKVAykePMx54WtxVwZyL1W4k3xlHYIqwMw0CaXAvgB3UE9yjABZuuGr8vG5Z6CSNWamzd+s1x8u7pQPFl9og==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@mui/base": "5.0.0-alpha.106", + "@mui/core-downloads-tracker": "^5.10.14", + "@mui/system": "^5.10.14", + "@mui/types": "^7.2.1", + "@mui/utils": "^5.10.14", + "@types/react-transition-group": "^4.4.5", + "clsx": "^1.2.1", + "csstype": "^3.1.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "peer": true + }, + "node_modules/@mui/private-theming": { + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.14.tgz", + "integrity": "sha512-3aIBe8WK65CwAPDY8nB11hYnzE1CZMymi76UnaFrA/DdGDwl5Y8F6uB+StKrkVmsqF1po7Mp2odqVkHj320gXw==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@mui/utils": "^5.10.14", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.14.tgz", + "integrity": "sha512-bgKdM57ExogWpIfhL/ngSlzF4FhbH00vYF+Y5VALTob4uslFqje0xzoWmbfcCn4cZt2NXxZJIwhsq4vzo5itlw==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@emotion/cache": "^11.10.5", + "csstype": "^3.1.1", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.14.tgz", + "integrity": "sha512-2de7XCjRb1j8Od0Stmo0LwFMLpOMNT4wzfINuExXI1TVSuyxXIXUxiC5FEgJW3GMvf/a7SUR8VOiMoKlKWzukw==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@mui/private-theming": "^5.10.14", + "@mui/styled-engine": "^5.10.14", + "@mui/types": "^7.2.1", + "@mui/utils": "^5.10.14", + "clsx": "^1.2.1", + "csstype": "^3.1.1", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.1.tgz", + "integrity": "sha512-c5mSM7ivD8EsqK6HUi9hQPr5V7TJ/IRThUQ9nWNYPdhCGriTSQV4vL6DflT99LkM+wLiIS1rVjphpEWxERep7A==", + "peer": true, + "peerDependencies": { + "@types/react": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.14.tgz", + "integrity": "sha512-12p59+wDZpA++XVJmKwqsZmrA1nmUQ5d0a1yQWtcDjxNyER1EDzozYN/db+FY2i5ceQh2TynPTEwGms2mXDwFg==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@types/prop-types": "^15.7.5", + "@types/react-is": "^16.7.1 || ^17.0.0", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0" + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "peer": true + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4498,6 +4835,14 @@ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, + "node_modules/@react-icons/all-files": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@react-icons/all-files/-/all-files-4.1.0.tgz", + "integrity": "sha512-hxBI2UOuVaI3O/BhQfhtb4kcGn9ft12RWAFVMUeNjqqhLsHvFtzIkFaptBJpFDANTKoDfdVoHTKZDlwKCACbMQ==", + "peerDependencies": { + "react": "*" + } + }, "node_modules/@restart/hooks": { "version": "0.4.7", "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz", @@ -4530,26 +4875,38 @@ } }, "node_modules/@rjsf/core": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-4.2.3.tgz", - "integrity": "sha512-dRXhd1Tac/9OcG0VDrYDF2boNTyKINEEITEtJ4L1Yce2iMVk66U52BhWKIFp/WXDM27vwnOfwQo4NwGiqeQeHw==", + "version": "5.0.0-beta.13", + "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-5.0.0-beta.13.tgz", + "integrity": "sha512-uQ3A9aJhMJsz9ct5tV3ogZkSFEkKUxrM9SJ9Hc8ijxmuaW7Jv8tNv5jiWZZsLvNXlIONX83s6JqkiOJf6IOAvg==", "dependencies": { - "@types/json-schema": "^7.0.7", - "ajv": "^6.7.0", - "core-js-pure": "^3.6.5", - "json-schema-merge-allof": "^0.6.0", - "jsonpointer": "^5.0.0", "lodash": "^4.17.15", "lodash-es": "^4.17.15", - "nanoid": "^3.1.23", - "prop-types": "^15.7.2", - "react-is": "16.9.0" + "nanoid": "^3.3.4", + "prop-types": "^15.7.2" }, "engines": { - "node": ">=12" + "node": ">=14" }, "peerDependencies": { - "react": ">=16 || >=17" + "@rjsf/utils": "^5.0.0-beta.1", + "react": "^16.14.0 || >=17" + } + }, + "node_modules/@rjsf/mui": { + "version": "5.0.0-beta.13", + "resolved": "https://registry.npmjs.org/@rjsf/mui/-/mui-5.0.0-beta.13.tgz", + "integrity": "sha512-hwCtADpjNssq/CsT3Wj1FDVJfdCN3gptKedGjbusLUEwQqXoVzkzl25e/IRfN8y/JxYu4lMXDU89bN9nJSKWLA==", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@emotion/react": "^11.7.0", + "@emotion/styled": "^11.6.0", + "@mui/icons-material": "^5.2.0", + "@mui/material": "^5.2.2", + "@rjsf/core": "^5.0.0-beta.1", + "@rjsf/utils": "^5.0.0-beta.1", + "react": ">=17" } }, "node_modules/@rjsf/utils": { @@ -4588,6 +4945,23 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, + "node_modules/@rjsf/validator-ajv8": { + "version": "5.0.0-beta.13", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.0.0-beta.13.tgz", + "integrity": "sha512-/hrYbiwgCvEqw1Z7YZTWvd+ZAiX5vSN0WAI2hJTJTqKuCTcIH0fqNDCaOg3FBR38BL7seZrUmibIUcPU66iJ1w==", + "dependencies": { + "ajv-formats": "^2.1.1", + "ajv8": "npm:ajv@^8.11.0", + "lodash": "^4.17.15", + "lodash-es": "^4.17.15" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@rjsf/utils": "^5.0.0-beta.12" + } + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -5543,6 +5917,15 @@ "@types/react": "*" } }, + "node_modules/@types/react-is": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", + "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", + "peer": true, + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/react-redux": { "version": "7.1.24", "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.24.tgz", @@ -6453,6 +6836,27 @@ "ajv": "^6.9.1" } }, + "node_modules/ajv8": { + "name": "ajv", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv8/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -8569,6 +8973,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -9463,9 +9876,9 @@ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, "node_modules/csstype": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" }, "node_modules/cyclist": { "version": "1.0.1", @@ -18733,16 +19146,6 @@ "lodash": "^4.17.4" } }, - "node_modules/json-schema-merge-allof": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.6.0.tgz", - "integrity": "sha512-LEw4VMQVRceOPLuGRWcxW5orTTiR9ZAtqTAe4rQUjNADTeR81bezBVFa0MqIwp0YmHIM1KkhSjZM7o+IQhaPbQ==", - "dependencies": { - "compute-lcm": "^1.1.0", - "json-schema-compare": "^0.2.2", - "lodash": "^4.17.4" - } - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -24698,9 +25101,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" }, "node_modules/regenerator-transform": { "version": "0.15.0", @@ -26834,9 +27237,9 @@ } }, "node_modules/stylis": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", - "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" }, "node_modules/supports-color": { "version": "5.5.0", @@ -32296,11 +32699,11 @@ } }, "@babel/runtime": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", + "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.10" } }, "@babel/runtime-corejs2": { @@ -32887,22 +33290,22 @@ } }, "@emotion/babel-plugin": { - "version": "11.10.2", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.2.tgz", - "integrity": "sha512-xNQ57njWTFVfPAc3cjfuaPdsgLp5QOSuRsj9MA6ndEhH/AzuZM86qIQzt6rq+aGBwj3n5/TkLmU5lhAfdRmogA==", + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.5.tgz", + "integrity": "sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==", "requires": { "@babel/helper-module-imports": "^7.16.7", "@babel/plugin-syntax-jsx": "^7.17.12", "@babel/runtime": "^7.18.3", "@emotion/hash": "^0.9.0", "@emotion/memoize": "^0.8.0", - "@emotion/serialize": "^1.1.0", + "@emotion/serialize": "^1.1.1", "babel-plugin-macros": "^3.1.0", "convert-source-map": "^1.5.0", "escape-string-regexp": "^4.0.0", "find-root": "^1.1.0", "source-map": "^0.5.7", - "stylis": "4.0.13" + "stylis": "4.1.3" }, "dependencies": { "@emotion/memoize": { @@ -32923,15 +33326,15 @@ } }, "@emotion/cache": { - "version": "11.10.3", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.3.tgz", - "integrity": "sha512-Psmp/7ovAa8appWh3g51goxu/z3iVms7JXOreq136D8Bbn6dYraPnmL6mdM8GThEx9vwSn92Fz+mGSjBzN8UPQ==", + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz", + "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==", "requires": { "@emotion/memoize": "^0.8.0", - "@emotion/sheet": "^1.2.0", + "@emotion/sheet": "^1.2.1", "@emotion/utils": "^1.2.0", "@emotion/weak-memoize": "^0.3.0", - "stylis": "4.0.13" + "stylis": "4.1.3" }, "dependencies": { "@emotion/memoize": { @@ -32974,9 +33377,9 @@ } }, "@emotion/serialize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.0.tgz", - "integrity": "sha512-F1ZZZW51T/fx+wKbVlwsfchr5q97iW8brAnXmsskz4d0hVB4O3M/SiA3SaeH06x02lSNzkkQv+n3AX3kCXKSFA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", "requires": { "@emotion/hash": "^0.9.0", "@emotion/memoize": "^0.8.0", @@ -32993,15 +33396,53 @@ } }, "@emotion/sheet": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.0.tgz", - "integrity": "sha512-OiTkRgpxescko+M51tZsMq7Puu/KP55wMT8BgpcXVG2hqXc0Vo0mfymJ/Uj24Hp0i083ji/o0aLddh08UEjq8w==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", + "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==" + }, + "@emotion/styled": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.5.tgz", + "integrity": "sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==", + "peer": true, + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.5", + "@emotion/is-prop-valid": "^1.2.0", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0" + }, + "dependencies": { + "@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "peer": true, + "requires": { + "@emotion/memoize": "^0.8.0" + } + }, + "@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==", + "peer": true + } + } }, "@emotion/unitless": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" }, + "@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", + "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", + "peer": true, + "requires": {} + }, "@emotion/utils": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", @@ -34158,6 +34599,155 @@ "prop-types": "^15.7.2" } }, + "@mui/base": { + "version": "5.0.0-alpha.106", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.106.tgz", + "integrity": "sha512-xJQQtwPCPwr6hGWTBdvDwHYwExn3Bw7nPQkN8Fuz8kHpZqoMVWQvvaFS557AIkkI2AFLV3DxVIMjbCvrIntBWg==", + "peer": true, + "requires": { + "@babel/runtime": "^7.20.1", + "@emotion/is-prop-valid": "^1.2.0", + "@mui/types": "^7.2.1", + "@mui/utils": "^5.10.14", + "@popperjs/core": "^2.11.6", + "clsx": "^1.2.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "dependencies": { + "@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "peer": true, + "requires": { + "@emotion/memoize": "^0.8.0" + } + }, + "@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==", + "peer": true + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "peer": true + } + } + }, + "@mui/core-downloads-tracker": { + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.14.tgz", + "integrity": "sha512-qLgIJNOR9Dre8JiZ/neVzOf4jf88J6YtOkQqugtMrleLjbfRVUSS4LWl9CSOjNq76quYdmYWnSDgfQqOooT2cQ==", + "peer": true + }, + "@mui/icons-material": { + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.14.tgz", + "integrity": "sha512-qtH60slQa+7MZRn6kyui8rKuoGDglPqaHX+pzBKNvd8JCOlrnfY5DmGGDdToTXyXl8xJ8nhANZbrbpg7UVKq/Q==", + "peer": true, + "requires": { + "@babel/runtime": "^7.20.1" + } + }, + "@mui/material": { + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.14.tgz", + "integrity": "sha512-HWzKVAykePMx54WtxVwZyL1W4k3xlHYIqwMw0CaXAvgB3UE9yjABZuuGr8vG5Z6CSNWamzd+s1x8u7pQPFl9og==", + "peer": true, + "requires": { + "@babel/runtime": "^7.20.1", + "@mui/base": "5.0.0-alpha.106", + "@mui/core-downloads-tracker": "^5.10.14", + "@mui/system": "^5.10.14", + "@mui/types": "^7.2.1", + "@mui/utils": "^5.10.14", + "@types/react-transition-group": "^4.4.5", + "clsx": "^1.2.1", + "csstype": "^3.1.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "dependencies": { + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "peer": true + } + } + }, + "@mui/private-theming": { + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.14.tgz", + "integrity": "sha512-3aIBe8WK65CwAPDY8nB11hYnzE1CZMymi76UnaFrA/DdGDwl5Y8F6uB+StKrkVmsqF1po7Mp2odqVkHj320gXw==", + "peer": true, + "requires": { + "@babel/runtime": "^7.20.1", + "@mui/utils": "^5.10.14", + "prop-types": "^15.8.1" + } + }, + "@mui/styled-engine": { + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.14.tgz", + "integrity": "sha512-bgKdM57ExogWpIfhL/ngSlzF4FhbH00vYF+Y5VALTob4uslFqje0xzoWmbfcCn4cZt2NXxZJIwhsq4vzo5itlw==", + "peer": true, + "requires": { + "@babel/runtime": "^7.20.1", + "@emotion/cache": "^11.10.5", + "csstype": "^3.1.1", + "prop-types": "^15.8.1" + } + }, + "@mui/system": { + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.14.tgz", + "integrity": "sha512-2de7XCjRb1j8Od0Stmo0LwFMLpOMNT4wzfINuExXI1TVSuyxXIXUxiC5FEgJW3GMvf/a7SUR8VOiMoKlKWzukw==", + "peer": true, + "requires": { + "@babel/runtime": "^7.20.1", + "@mui/private-theming": "^5.10.14", + "@mui/styled-engine": "^5.10.14", + "@mui/types": "^7.2.1", + "@mui/utils": "^5.10.14", + "clsx": "^1.2.1", + "csstype": "^3.1.1", + "prop-types": "^15.8.1" + } + }, + "@mui/types": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.1.tgz", + "integrity": "sha512-c5mSM7ivD8EsqK6HUi9hQPr5V7TJ/IRThUQ9nWNYPdhCGriTSQV4vL6DflT99LkM+wLiIS1rVjphpEWxERep7A==", + "peer": true, + "requires": {} + }, + "@mui/utils": { + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.14.tgz", + "integrity": "sha512-12p59+wDZpA++XVJmKwqsZmrA1nmUQ5d0a1yQWtcDjxNyER1EDzozYN/db+FY2i5ceQh2TynPTEwGms2mXDwFg==", + "peer": true, + "requires": { + "@babel/runtime": "^7.20.1", + "@types/prop-types": "^15.7.5", + "@types/react-is": "^16.7.1 || ^17.0.0", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "dependencies": { + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "peer": true + } + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -34217,6 +34807,12 @@ "@babel/runtime": "^7.6.2" } }, + "@react-icons/all-files": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@react-icons/all-files/-/all-files-4.1.0.tgz", + "integrity": "sha512-hxBI2UOuVaI3O/BhQfhtb4kcGn9ft12RWAFVMUeNjqqhLsHvFtzIkFaptBJpFDANTKoDfdVoHTKZDlwKCACbMQ==", + "requires": {} + }, "@restart/hooks": { "version": "0.4.7", "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz", @@ -34242,22 +34838,22 @@ } }, "@rjsf/core": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-4.2.3.tgz", - "integrity": "sha512-dRXhd1Tac/9OcG0VDrYDF2boNTyKINEEITEtJ4L1Yce2iMVk66U52BhWKIFp/WXDM27vwnOfwQo4NwGiqeQeHw==", + "version": "5.0.0-beta.13", + "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-5.0.0-beta.13.tgz", + "integrity": "sha512-uQ3A9aJhMJsz9ct5tV3ogZkSFEkKUxrM9SJ9Hc8ijxmuaW7Jv8tNv5jiWZZsLvNXlIONX83s6JqkiOJf6IOAvg==", "requires": { - "@types/json-schema": "^7.0.7", - "ajv": "^6.7.0", - "core-js-pure": "^3.6.5", - "json-schema-merge-allof": "^0.6.0", - "jsonpointer": "^5.0.0", "lodash": "^4.17.15", "lodash-es": "^4.17.15", - "nanoid": "^3.1.23", - "prop-types": "^15.7.2", - "react-is": "16.9.0" + "nanoid": "^3.3.4", + "prop-types": "^15.7.2" } }, + "@rjsf/mui": { + "version": "5.0.0-beta.13", + "resolved": "https://registry.npmjs.org/@rjsf/mui/-/mui-5.0.0-beta.13.tgz", + "integrity": "sha512-hwCtADpjNssq/CsT3Wj1FDVJfdCN3gptKedGjbusLUEwQqXoVzkzl25e/IRfN8y/JxYu4lMXDU89bN9nJSKWLA==", + "requires": {} + }, "@rjsf/utils": { "version": "5.0.0-beta.13", "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-5.0.0-beta.13.tgz", @@ -34287,6 +34883,17 @@ } } }, + "@rjsf/validator-ajv8": { + "version": "5.0.0-beta.13", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.0.0-beta.13.tgz", + "integrity": "sha512-/hrYbiwgCvEqw1Z7YZTWvd+ZAiX5vSN0WAI2hJTJTqKuCTcIH0fqNDCaOg3FBR38BL7seZrUmibIUcPU66iJ1w==", + "requires": { + "ajv-formats": "^2.1.1", + "ajv8": "npm:ajv@^8.11.0", + "lodash": "^4.17.15", + "lodash-es": "^4.17.15" + } + }, "@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -35016,6 +35623,15 @@ "@types/react": "*" } }, + "@types/react-is": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", + "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", + "peer": true, + "requires": { + "@types/react": "*" + } + }, "@types/react-redux": { "version": "7.1.24", "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.24.tgz", @@ -35752,6 +36368,24 @@ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "requires": {} }, + "ajv8": { + "version": "npm:ajv@8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "dependencies": { + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + } + } + }, "ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -37305,6 +37939,12 @@ "mimic-response": "^1.0.0" } }, + "clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "peer": true + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -38028,9 +38668,9 @@ } }, "csstype": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" }, "cyclist": { "version": "1.0.1", @@ -44999,16 +45639,6 @@ "lodash": "^4.17.4" } }, - "json-schema-merge-allof": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.6.0.tgz", - "integrity": "sha512-LEw4VMQVRceOPLuGRWcxW5orTTiR9ZAtqTAe4rQUjNADTeR81bezBVFa0MqIwp0YmHIM1KkhSjZM7o+IQhaPbQ==", - "requires": { - "compute-lcm": "^1.1.0", - "json-schema-compare": "^0.2.2", - "lodash": "^4.17.4" - } - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -49196,9 +49826,9 @@ } }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" }, "regenerator-transform": { "version": "0.15.0", @@ -50892,9 +51522,9 @@ } }, "stylis": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", - "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" }, "supports-color": { "version": "5.5.0", diff --git a/spiffworkflow-frontend/package.json b/spiffworkflow-frontend/package.json index 6aeb8300..ebc77e74 100644 --- a/spiffworkflow-frontend/package.json +++ b/spiffworkflow-frontend/package.json @@ -13,8 +13,11 @@ "@casl/react": "^3.1.0", "@ginkgo-bioworks/react-json-schema-form-builder": "^2.9.0", "@monaco-editor/react": "^4.4.5", - "@rjsf/core": "^4.2.0", + "@react-icons/all-files": "^4.1.0", + "@rjsf/core": "*", + "@rjsf/mui": "^5.0.0-beta.13", "@rjsf/utils": "^5.0.0-beta.13", + "@rjsf/validator-ajv8": "^5.0.0-beta.13", "@tanstack/react-table": "^8.2.2", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.3.0", diff --git a/spiffworkflow-frontend/src/routes/TaskShow.tsx b/spiffworkflow-frontend/src/routes/TaskShow.tsx index 3373eb71..b64880a7 100644 --- a/spiffworkflow-frontend/src/routes/TaskShow.tsx +++ b/spiffworkflow-frontend/src/routes/TaskShow.tsx @@ -1,12 +1,15 @@ import { useContext, useEffect, useState } from 'react'; import { Link, useNavigate, useParams } from 'react-router-dom'; // import Form from '@rjsf/core'; +import Form from '@rjsf/mui'; +import validator from '@rjsf/validator-ajv8'; + // @ts-ignore import { Button, Stack } from '@carbon/react'; import ReactMarkdown from 'react-markdown'; import remarkGfm from 'remark-gfm'; -import Form from '../themes'; +// import Form from '../themes'; import HttpService from '../services/HttpService'; import ErrorContext from '../contexts/ErrorContext'; import { modifyProcessModelPath } from '../helpers'; @@ -145,6 +148,7 @@ export default function TaskShow() { onSubmit={handleFormSubmit} schema={jsonSchema} uiSchema={formUiSchema} + validator={validator} > {reactFragmentToHideSubmitButton} diff --git a/spiffworkflow-frontend/src/themes/AddButton/AddButton.tsx b/spiffworkflow-frontend/src/themes/AddButton/AddButton.tsx deleted file mode 100644 index f88f7153..00000000 --- a/spiffworkflow-frontend/src/themes/AddButton/AddButton.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from "react"; -import { IconButtonProps } from "@rjsf/utils"; -import Button from "react-bootstrap/Button"; -import { BsPlus } from "@react-icons/all-files/bs/BsPlus"; - -const AddButton: React.ComponentType = ({ - uiSchema, - ...props -}) => ( - -); - -export default AddButton; diff --git a/spiffworkflow-frontend/src/themes/AddButton/index.ts b/spiffworkflow-frontend/src/themes/AddButton/index.ts deleted file mode 100644 index e4196270..00000000 --- a/spiffworkflow-frontend/src/themes/AddButton/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./AddButton"; -export * from "./AddButton"; diff --git a/spiffworkflow-frontend/src/themes/ArrayFieldItemTemplate/ArrayFieldItemTemplate.tsx b/spiffworkflow-frontend/src/themes/ArrayFieldItemTemplate/ArrayFieldItemTemplate.tsx deleted file mode 100644 index 7858b1cc..00000000 --- a/spiffworkflow-frontend/src/themes/ArrayFieldItemTemplate/ArrayFieldItemTemplate.tsx +++ /dev/null @@ -1,77 +0,0 @@ -import React, { CSSProperties } from "react"; -import Row from "react-bootstrap/Row"; -import Col from "react-bootstrap/Col"; -import { ArrayFieldTemplateItemType } from "@rjsf/utils"; - -const ArrayFieldItemTemplate = (props: ArrayFieldTemplateItemType) => { - const { - children, - disabled, - hasToolbar, - hasMoveDown, - hasMoveUp, - hasRemove, - index, - onDropIndexClick, - onReorderClick, - readonly, - registry, - uiSchema, - } = props; - const { MoveDownButton, MoveUpButton, RemoveButton } = - registry.templates.ButtonTemplates; - const btnStyle: CSSProperties = { - flex: 1, - paddingLeft: 6, - paddingRight: 6, - fontWeight: "bold", - }; - return ( -
- - - {children} - - - {hasToolbar && ( -
- {(hasMoveUp || hasMoveDown) && ( -
- -
- )} - {(hasMoveUp || hasMoveDown) && ( -
- -
- )} - {hasRemove && ( -
- -
- )} -
- )} - -
-
- ); -}; - -export default ArrayFieldItemTemplate; diff --git a/spiffworkflow-frontend/src/themes/ArrayFieldItemTemplate/index.ts b/spiffworkflow-frontend/src/themes/ArrayFieldItemTemplate/index.ts deleted file mode 100644 index f64828be..00000000 --- a/spiffworkflow-frontend/src/themes/ArrayFieldItemTemplate/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./ArrayFieldItemTemplate"; -export * from "./ArrayFieldItemTemplate"; diff --git a/spiffworkflow-frontend/src/themes/ArrayFieldTemplate/ArrayFieldTemplate.tsx b/spiffworkflow-frontend/src/themes/ArrayFieldTemplate/ArrayFieldTemplate.tsx deleted file mode 100644 index 01d2575e..00000000 --- a/spiffworkflow-frontend/src/themes/ArrayFieldTemplate/ArrayFieldTemplate.tsx +++ /dev/null @@ -1,97 +0,0 @@ -import React from "react"; -import Row from "react-bootstrap/Row"; -import Col from "react-bootstrap/Col"; -import Container from "react-bootstrap/Container"; -import { - ArrayFieldTemplateItemType, - ArrayFieldTemplateProps, - getTemplate, - getUiOptions, -} from "@rjsf/utils"; - -const ArrayFieldTemplate = (props: ArrayFieldTemplateProps) => { - const { - canAdd, - disabled, - idSchema, - uiSchema, - items, - onAddClick, - readonly, - registry, - required, - schema, - title, - } = props; - const uiOptions = getUiOptions(uiSchema); - const ArrayFieldDescriptionTemplate = - getTemplate<"ArrayFieldDescriptionTemplate">( - "ArrayFieldDescriptionTemplate", - registry, - uiOptions - ); - const ArrayFieldItemTemplate = getTemplate<"ArrayFieldItemTemplate">( - "ArrayFieldItemTemplate", - registry, - uiOptions - ); - const ArrayFieldTitleTemplate = getTemplate<"ArrayFieldTitleTemplate">( - "ArrayFieldTitleTemplate", - registry, - uiOptions - ); - // Button templates are not overridden in the uiSchema - const { - ButtonTemplates: { AddButton }, - } = registry.templates; - return ( -
- - - - - - {items && - items.map(({ key, ...itemProps }: ArrayFieldTemplateItemType) => ( - - ))} - {canAdd && ( - - - - - - - - - )} - - - -
- ); -}; - -export default ArrayFieldTemplate; diff --git a/spiffworkflow-frontend/src/themes/ArrayFieldTemplate/index.ts b/spiffworkflow-frontend/src/themes/ArrayFieldTemplate/index.ts deleted file mode 100644 index 29cbde48..00000000 --- a/spiffworkflow-frontend/src/themes/ArrayFieldTemplate/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./ArrayFieldTemplate"; -export * from "./ArrayFieldTemplate"; diff --git a/spiffworkflow-frontend/src/themes/BaseInputTemplate/BaseInputTemplate.tsx b/spiffworkflow-frontend/src/themes/BaseInputTemplate/BaseInputTemplate.tsx deleted file mode 100644 index 68699d05..00000000 --- a/spiffworkflow-frontend/src/themes/BaseInputTemplate/BaseInputTemplate.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import React from "react"; -import Form from "react-bootstrap/Form"; -import { getInputProps, WidgetProps } from "@rjsf/utils"; - -const BaseInputTemplate = ({ - id, - placeholder, - required, - readonly, - disabled, - type, - value, - onChange, - onBlur, - onFocus, - autofocus, - options, - schema, - rawErrors = [], - children, - extraProps, -}: WidgetProps) => { - const inputProps = { ...extraProps, ...getInputProps(schema, type, options) }; - const _onChange = ({ - target: { value }, - }: React.ChangeEvent) => - onChange(value === "" ? options.emptyValue : value); - const _onBlur = ({ target: { value } }: React.FocusEvent) => - onBlur(id, value); - const _onFocus = ({ - target: { value }, - }: React.FocusEvent) => onFocus(id, value); - - // const classNames = [rawErrors.length > 0 ? "is-invalid" : "", type === 'file' ? 'custom-file-label': ""] - return ( - <> - 0 ? "is-invalid" : ""} - list={schema.examples ? `examples_${id}` : undefined} - {...inputProps} - value={value || value === 0 ? value : ""} - onChange={_onChange} - onBlur={_onBlur} - onFocus={_onFocus} - /> - {children} - {schema.examples ? ( - - {(schema.examples as string[]) - .concat(schema.default ? ([schema.default] as string[]) : []) - .map((example: any) => { - return - ) : null} - - ); -}; - -export default BaseInputTemplate; diff --git a/spiffworkflow-frontend/src/themes/BaseInputTemplate/index.ts b/spiffworkflow-frontend/src/themes/BaseInputTemplate/index.ts deleted file mode 100644 index 37c3947e..00000000 --- a/spiffworkflow-frontend/src/themes/BaseInputTemplate/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./BaseInputTemplate"; -export * from "./BaseInputTemplate"; diff --git a/spiffworkflow-frontend/src/themes/CheckboxWidget/CheckboxWidget.tsx b/spiffworkflow-frontend/src/themes/CheckboxWidget/CheckboxWidget.tsx deleted file mode 100644 index f2e665d4..00000000 --- a/spiffworkflow-frontend/src/themes/CheckboxWidget/CheckboxWidget.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import React from "react"; - -import { WidgetProps } from "@rjsf/utils"; -import Form from "react-bootstrap/Form"; - -const CheckboxWidget = (props: WidgetProps) => { - const { - id, - value, - required, - disabled, - readonly, - label, - schema, - autofocus, - onChange, - onBlur, - onFocus, - } = props; - - const _onChange = ({ - target: { checked }, - }: React.FocusEvent) => onChange(checked); - const _onBlur = ({ - target: { checked }, - }: React.FocusEvent) => onBlur(id, checked); - const _onFocus = ({ - target: { checked }, - }: React.FocusEvent) => onFocus(id, checked); - - const desc = label || schema.description; - return ( - - - - ); -}; - -export default CheckboxWidget; diff --git a/spiffworkflow-frontend/src/themes/CheckboxWidget/index.ts b/spiffworkflow-frontend/src/themes/CheckboxWidget/index.ts deleted file mode 100644 index 9a651577..00000000 --- a/spiffworkflow-frontend/src/themes/CheckboxWidget/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./CheckboxWidget"; -export * from "./CheckboxWidget"; diff --git a/spiffworkflow-frontend/src/themes/CheckboxesWidget/CheckboxesWidget.tsx b/spiffworkflow-frontend/src/themes/CheckboxesWidget/CheckboxesWidget.tsx deleted file mode 100644 index 71646084..00000000 --- a/spiffworkflow-frontend/src/themes/CheckboxesWidget/CheckboxesWidget.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import React from "react"; -import Form from "react-bootstrap/Form"; -import { WidgetProps } from "@rjsf/utils"; - -const selectValue = (value: any, selected: any, all: any) => { - const at = all.indexOf(value); - const updated = selected.slice(0, at).concat(value, selected.slice(at)); - - // As inserting values at predefined index positions doesn't work with empty - // arrays, we need to reorder the updated selection to match the initial order - return updated.sort((a: any, b: any) => all.indexOf(a) > all.indexOf(b)); -}; - -const deselectValue = (value: any, selected: any) => { - return selected.filter((v: any) => v !== value); -}; - -const CheckboxesWidget = ({ - id, - disabled, - options, - value, - autofocus, - readonly, - required, - onChange, - onBlur, - onFocus, -}: WidgetProps) => { - const { enumOptions, enumDisabled, inline } = options; - - const _onChange = - (option: any) => - ({ target: { checked } }: React.ChangeEvent) => { - const all = (enumOptions as any).map(({ value }: any) => value); - - if (checked) { - onChange(selectValue(option.value, value, all)); - } else { - onChange(deselectValue(option.value, value)); - } - }; - - const _onBlur = ({ target: { value } }: React.FocusEvent) => - onBlur(id, value); - const _onFocus = ({ - target: { value }, - }: React.FocusEvent) => onFocus(id, value); - - return ( - - {Array.isArray(enumOptions) && - enumOptions.map((option, index: number) => { - const checked = value.indexOf(option.value) !== -1; - const itemDisabled = - Array.isArray(enumDisabled) && - enumDisabled.indexOf(option.value) !== -1; - - return ( - - ); - })} - - ); -}; - -export default CheckboxesWidget; diff --git a/spiffworkflow-frontend/src/themes/CheckboxesWidget/index.ts b/spiffworkflow-frontend/src/themes/CheckboxesWidget/index.ts deleted file mode 100644 index c5acc6aa..00000000 --- a/spiffworkflow-frontend/src/themes/CheckboxesWidget/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./CheckboxesWidget"; -export * from "./CheckboxesWidget"; diff --git a/spiffworkflow-frontend/src/themes/DescriptionField/DescriptionField.tsx b/spiffworkflow-frontend/src/themes/DescriptionField/DescriptionField.tsx deleted file mode 100644 index 1e6e0ecc..00000000 --- a/spiffworkflow-frontend/src/themes/DescriptionField/DescriptionField.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from "react"; -import { DescriptionFieldProps } from "@rjsf/utils"; - -const DescriptionField = ({ id, description }: DescriptionFieldProps) => { - if (description) { - return ( -
-
- {description} -
-
- ); - } - - return null; -}; - -export default DescriptionField; diff --git a/spiffworkflow-frontend/src/themes/DescriptionField/index.ts b/spiffworkflow-frontend/src/themes/DescriptionField/index.ts deleted file mode 100644 index 899add9f..00000000 --- a/spiffworkflow-frontend/src/themes/DescriptionField/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./DescriptionField"; -export * from "./DescriptionField"; diff --git a/spiffworkflow-frontend/src/themes/ErrorList/ErrorList.tsx b/spiffworkflow-frontend/src/themes/ErrorList/ErrorList.tsx deleted file mode 100644 index 61dd6631..00000000 --- a/spiffworkflow-frontend/src/themes/ErrorList/ErrorList.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; - -import Card from "react-bootstrap/Card"; -import ListGroup from "react-bootstrap/ListGroup"; - -import { ErrorListProps } from "@rjsf/utils"; - -const ErrorList = ({ errors }: ErrorListProps) => ( - - Errors - - - {errors.map((error, i: number) => { - return ( - - {error.stack} - - ); - })} - - - -); - -export default ErrorList; diff --git a/spiffworkflow-frontend/src/themes/ErrorList/index.ts b/spiffworkflow-frontend/src/themes/ErrorList/index.ts deleted file mode 100644 index af63a176..00000000 --- a/spiffworkflow-frontend/src/themes/ErrorList/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./ErrorList"; -export * from "./ErrorList"; diff --git a/spiffworkflow-frontend/src/themes/FieldErrorTemplate/FieldErrorTemplate.tsx b/spiffworkflow-frontend/src/themes/FieldErrorTemplate/FieldErrorTemplate.tsx deleted file mode 100644 index f1709dda..00000000 --- a/spiffworkflow-frontend/src/themes/FieldErrorTemplate/FieldErrorTemplate.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import React from "react"; -import { FieldErrorProps } from "@rjsf/utils"; -import ListGroup from "react-bootstrap/ListGroup"; - -/** The `FieldErrorTemplate` component renders the errors local to the particular field - * - * @param props - The `FieldErrorProps` for the errors being rendered - */ -export default function FieldErrorTemplate(props: FieldErrorProps) { - const { errors = [], idSchema } = props; - if (errors.length === 0) { - return null; - } - const id = `${idSchema.$id}__error`; - - return ( - - {errors.map((error, i) => { - return ( - - {error} - - ); - })} - - ); -} diff --git a/spiffworkflow-frontend/src/themes/FieldErrorTemplate/index.ts b/spiffworkflow-frontend/src/themes/FieldErrorTemplate/index.ts deleted file mode 100644 index dd9c569f..00000000 --- a/spiffworkflow-frontend/src/themes/FieldErrorTemplate/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./FieldErrorTemplate"; -export * from "./FieldErrorTemplate"; diff --git a/spiffworkflow-frontend/src/themes/FieldHelpTemplate/FieldHelpTemplate.tsx b/spiffworkflow-frontend/src/themes/FieldHelpTemplate/FieldHelpTemplate.tsx deleted file mode 100644 index 27192318..00000000 --- a/spiffworkflow-frontend/src/themes/FieldHelpTemplate/FieldHelpTemplate.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from "react"; -import { FieldHelpProps } from "@rjsf/utils"; -import Form from "react-bootstrap/Form"; - -/** The `FieldHelpTemplate` component renders any help desired for a field - * - * @param props - The `FieldHelpProps` to be rendered - */ -export default function FieldHelpTemplate(props: FieldHelpProps) { - const { idSchema, help, hasErrors } = props; - if (!help) { - return null; - } - const id = `${idSchema.$id}__help`; - return ( - - {help} - - ); -} diff --git a/spiffworkflow-frontend/src/themes/FieldHelpTemplate/index.ts b/spiffworkflow-frontend/src/themes/FieldHelpTemplate/index.ts deleted file mode 100644 index 55b9f4a0..00000000 --- a/spiffworkflow-frontend/src/themes/FieldHelpTemplate/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./FieldHelpTemplate"; -export * from "./FieldHelpTemplate"; diff --git a/spiffworkflow-frontend/src/themes/FieldTemplate/FieldTemplate.tsx b/spiffworkflow-frontend/src/themes/FieldTemplate/FieldTemplate.tsx deleted file mode 100644 index ace72557..00000000 --- a/spiffworkflow-frontend/src/themes/FieldTemplate/FieldTemplate.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import React from "react"; -import { FieldTemplateProps, getTemplate, getUiOptions } from "@rjsf/utils"; -import Form from "react-bootstrap/Form"; - -const FieldTemplate = ({ - id, - children, - displayLabel, - rawErrors = [], - errors, - help, - rawDescription, - classNames, - disabled, - label, - hidden, - onDropPropertyClick, - onKeyChange, - readonly, - required, - schema, - uiSchema, - registry, -}: FieldTemplateProps) => { - const uiOptions = getUiOptions(uiSchema); - const WrapIfAdditionalTemplate = getTemplate<"WrapIfAdditionalTemplate">( - "WrapIfAdditionalTemplate", - registry, - uiOptions - ); - if (hidden) { - return
{children}
; - } - return ( - - - {displayLabel && ( - 0 ? "text-danger" : ""} - > - {label} - {required ? "*" : null} - - )} - {children} - {displayLabel && rawDescription && ( - 0 ? "text-danger" : "text-muted"} - > - {rawDescription} - - )} - {errors} - {help} - - - ); -}; - -export default FieldTemplate; diff --git a/spiffworkflow-frontend/src/themes/FieldTemplate/index.ts b/spiffworkflow-frontend/src/themes/FieldTemplate/index.ts deleted file mode 100644 index 290c188d..00000000 --- a/spiffworkflow-frontend/src/themes/FieldTemplate/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./FieldTemplate"; -export * from "./FieldTemplate"; diff --git a/spiffworkflow-frontend/src/themes/FileWidget/FileWidget.tsx b/spiffworkflow-frontend/src/themes/FileWidget/FileWidget.tsx deleted file mode 100644 index 4bd934b4..00000000 --- a/spiffworkflow-frontend/src/themes/FileWidget/FileWidget.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import React from "react"; -import { getTemplate, WidgetProps } from "@rjsf/utils"; - -const FileWidget = (props: WidgetProps) => { - const { options, registry } = props; - const BaseInputTemplate = getTemplate<"BaseInputTemplate">( - "BaseInputTemplate", - registry, - options - ); - return ; -}; - -export default FileWidget; diff --git a/spiffworkflow-frontend/src/themes/FileWidget/index.ts b/spiffworkflow-frontend/src/themes/FileWidget/index.ts deleted file mode 100644 index e70174ce..00000000 --- a/spiffworkflow-frontend/src/themes/FileWidget/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./FileWidget"; -export * from "./FileWidget"; diff --git a/spiffworkflow-frontend/src/themes/Form/Form.tsx b/spiffworkflow-frontend/src/themes/Form/Form.tsx deleted file mode 100644 index e1936192..00000000 --- a/spiffworkflow-frontend/src/themes/Form/Form.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { withTheme, FormProps } from "@rjsf/core"; - -import Theme from "../Theme"; - -const Form: React.ComponentType = withTheme(Theme); - -export default Form; diff --git a/spiffworkflow-frontend/src/themes/Form/index.ts b/spiffworkflow-frontend/src/themes/Form/index.ts deleted file mode 100644 index dbca2de6..00000000 --- a/spiffworkflow-frontend/src/themes/Form/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./Form"; -export * from "./Form"; diff --git a/spiffworkflow-frontend/src/themes/IconButton/IconButton.tsx b/spiffworkflow-frontend/src/themes/IconButton/IconButton.tsx deleted file mode 100644 index 6a8e00fe..00000000 --- a/spiffworkflow-frontend/src/themes/IconButton/IconButton.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import React from "react"; -import { IconButtonProps } from "@rjsf/utils"; -import Button, { ButtonProps } from "react-bootstrap/Button"; -import { IoIosRemove } from "@react-icons/all-files/io/IoIosRemove"; -import { AiOutlineArrowUp } from "@react-icons/all-files/ai/AiOutlineArrowUp"; -import { AiOutlineArrowDown } from "@react-icons/all-files/ai/AiOutlineArrowDown"; - -const IconButton = (props: IconButtonProps & ButtonProps) => { - const { icon, iconType, className, uiSchema, ...otherProps } = props; - return ( - - ); -}; - -export default IconButton; - -export function MoveDownButton(props: IconButtonProps) { - return ( - } /> - ); -} - -export function MoveUpButton(props: IconButtonProps) { - return } />; -} - -export function RemoveButton(props: IconButtonProps) { - return ( - } - /> - ); -} diff --git a/spiffworkflow-frontend/src/themes/IconButton/index.ts b/spiffworkflow-frontend/src/themes/IconButton/index.ts deleted file mode 100644 index 55447475..00000000 --- a/spiffworkflow-frontend/src/themes/IconButton/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./IconButton"; -export * from "./IconButton"; diff --git a/spiffworkflow-frontend/src/themes/ObjectFieldTemplate/ObjectFieldTemplate.tsx b/spiffworkflow-frontend/src/themes/ObjectFieldTemplate/ObjectFieldTemplate.tsx deleted file mode 100644 index 83008ec0..00000000 --- a/spiffworkflow-frontend/src/themes/ObjectFieldTemplate/ObjectFieldTemplate.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import React from "react"; - -import Row from "react-bootstrap/Row"; -import Col from "react-bootstrap/Col"; -import Container from "react-bootstrap/Container"; - -import { - canExpand, - getTemplate, - getUiOptions, - ObjectFieldTemplateProps, -} from "@rjsf/utils"; - -const ObjectFieldTemplate = ({ - description, - title, - properties, - required, - uiSchema, - idSchema, - schema, - formData, - onAddClick, - disabled, - readonly, - registry, -}: ObjectFieldTemplateProps) => { - const uiOptions = getUiOptions(uiSchema); - const TitleFieldTemplate = getTemplate<"TitleFieldTemplate">( - "TitleFieldTemplate", - registry, - uiOptions - ); - const DescriptionFieldTemplate = getTemplate<"DescriptionFieldTemplate">( - "DescriptionFieldTemplate", - registry, - uiOptions - ); - // Button templates are not overridden in the uiSchema - const { - ButtonTemplates: { AddButton }, - } = registry.templates; - return ( - <> - {(uiOptions.title || title) && ( - - )} - {(uiOptions.description || description) && ( - - )} - - {properties.map((element: any, index: number) => ( - - {element.content} - - ))} - {canExpand(schema, uiSchema, formData) ? ( - - - - - - ) : null} - - - ); -}; - -export default ObjectFieldTemplate; diff --git a/spiffworkflow-frontend/src/themes/ObjectFieldTemplate/index.ts b/spiffworkflow-frontend/src/themes/ObjectFieldTemplate/index.ts deleted file mode 100644 index b7e3ae62..00000000 --- a/spiffworkflow-frontend/src/themes/ObjectFieldTemplate/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./ObjectFieldTemplate"; -export * from "./ObjectFieldTemplate"; diff --git a/spiffworkflow-frontend/src/themes/RadioWidget/RadioWidget.tsx b/spiffworkflow-frontend/src/themes/RadioWidget/RadioWidget.tsx deleted file mode 100644 index 715a66e1..00000000 --- a/spiffworkflow-frontend/src/themes/RadioWidget/RadioWidget.tsx +++ /dev/null @@ -1,65 +0,0 @@ -import React from "react"; - -import Form from "react-bootstrap/Form"; - -import { WidgetProps } from "@rjsf/utils"; - -const RadioWidget = ({ - id, - schema, - options, - value, - required, - disabled, - readonly, - onChange, - onBlur, - onFocus, -}: WidgetProps) => { - const { enumOptions, enumDisabled } = options; - - const _onChange = ({ - target: { value }, - }: React.ChangeEvent) => - onChange(schema.type == "boolean" ? value !== "false" : value); - const _onBlur = ({ target: { value } }: React.FocusEvent) => - onBlur(id, value); - const _onFocus = ({ - target: { value }, - }: React.FocusEvent) => onFocus(id, value); - - const inline = Boolean(options && options.inline); - - return ( - - {Array.isArray(enumOptions) && - enumOptions.map((option) => { - const itemDisabled = - Array.isArray(enumDisabled) && - enumDisabled.indexOf(option.value) !== -1; - const checked = option.value == value; - - const radio = ( - - ); - return radio; - })} - - ); -}; - -export default RadioWidget; diff --git a/spiffworkflow-frontend/src/themes/RadioWidget/index.ts b/spiffworkflow-frontend/src/themes/RadioWidget/index.ts deleted file mode 100644 index f0568f0d..00000000 --- a/spiffworkflow-frontend/src/themes/RadioWidget/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./RadioWidget"; -export * from "./RadioWidget"; diff --git a/spiffworkflow-frontend/src/themes/RangeWidget/RangeWidget.tsx b/spiffworkflow-frontend/src/themes/RangeWidget/RangeWidget.tsx deleted file mode 100644 index f75d3756..00000000 --- a/spiffworkflow-frontend/src/themes/RangeWidget/RangeWidget.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from "react"; -import { getTemplate, WidgetProps } from "@rjsf/utils"; - -const RangeWidget = (props: WidgetProps) => { - const { value, label, options, registry } = props; - const BaseInputTemplate = getTemplate<"BaseInputTemplate">( - "BaseInputTemplate", - registry, - options - ); - return ( - - {value} - - ); -}; - -export default RangeWidget; diff --git a/spiffworkflow-frontend/src/themes/RangeWidget/index.ts b/spiffworkflow-frontend/src/themes/RangeWidget/index.ts deleted file mode 100644 index 70a8e760..00000000 --- a/spiffworkflow-frontend/src/themes/RangeWidget/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./RangeWidget"; -export * from "./RangeWidget"; diff --git a/spiffworkflow-frontend/src/themes/SelectWidget/SelectWidget.tsx b/spiffworkflow-frontend/src/themes/SelectWidget/SelectWidget.tsx deleted file mode 100644 index 07864f0e..00000000 --- a/spiffworkflow-frontend/src/themes/SelectWidget/SelectWidget.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import React from "react"; - -import Form from "react-bootstrap/Form"; - -import { processSelectValue, WidgetProps } from "@rjsf/utils"; - -const SelectWidget = ({ - schema, - id, - options, - required, - disabled, - readonly, - value, - multiple, - autofocus, - onChange, - onBlur, - onFocus, - placeholder, - rawErrors = [], -}: WidgetProps) => { - const { enumOptions, enumDisabled } = options; - - const emptyValue = multiple ? [] : ""; - - function getValue( - event: React.FocusEvent | React.ChangeEvent | any, - multiple?: boolean - ) { - if (multiple) { - return [].slice - .call(event.target.options as any) - .filter((o: any) => o.selected) - .map((o: any) => o.value); - } else { - return event.target.value; - } - } - - return ( - 0 ? "is-invalid" : ""} - onBlur={ - onBlur && - ((event: React.FocusEvent) => { - const newValue = getValue(event, multiple); - onBlur(id, processSelectValue(schema, newValue, options)); - }) - } - onFocus={ - onFocus && - ((event: React.FocusEvent) => { - const newValue = getValue(event, multiple); - onFocus(id, processSelectValue(schema, newValue, options)); - }) - } - onChange={(event: React.ChangeEvent) => { - const newValue = getValue(event, multiple); - onChange(processSelectValue(schema, newValue, options)); - }} - > - {!multiple && schema.default === undefined && ( - - )} - {(enumOptions as any).map(({ value, label }: any, i: number) => { - const disabled: any = - Array.isArray(enumDisabled) && - (enumDisabled as any).indexOf(value) != -1; - return ( - - ); - })} - - ); -}; - -export default SelectWidget; diff --git a/spiffworkflow-frontend/src/themes/SelectWidget/index.ts b/spiffworkflow-frontend/src/themes/SelectWidget/index.ts deleted file mode 100644 index 91a604a3..00000000 --- a/spiffworkflow-frontend/src/themes/SelectWidget/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./SelectWidget"; -export * from "./SelectWidget"; diff --git a/spiffworkflow-frontend/src/themes/SubmitButton/SubmitButton.tsx b/spiffworkflow-frontend/src/themes/SubmitButton/SubmitButton.tsx deleted file mode 100644 index fc88cc93..00000000 --- a/spiffworkflow-frontend/src/themes/SubmitButton/SubmitButton.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from "react"; -import Button from "react-bootstrap/Button"; -import { getSubmitButtonOptions, SubmitButtonProps } from "@rjsf/utils"; - -const SubmitButton: React.ComponentType = (props) => { - const { - submitText, - norender, - props: submitButtonProps, - } = getSubmitButtonOptions(props.uiSchema); - if (norender) { - return null; - } - return ( -
- -
- ); -}; - -export default SubmitButton; diff --git a/spiffworkflow-frontend/src/themes/SubmitButton/index.ts b/spiffworkflow-frontend/src/themes/SubmitButton/index.ts deleted file mode 100644 index 467dba24..00000000 --- a/spiffworkflow-frontend/src/themes/SubmitButton/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./SubmitButton"; -export * from "./SubmitButton"; diff --git a/spiffworkflow-frontend/src/themes/Templates/Templates.ts b/spiffworkflow-frontend/src/themes/Templates/Templates.ts deleted file mode 100644 index e8eef55a..00000000 --- a/spiffworkflow-frontend/src/themes/Templates/Templates.ts +++ /dev/null @@ -1,35 +0,0 @@ -import AddButton from "../AddButton"; -import ArrayFieldItemTemplate from "../ArrayFieldItemTemplate"; -import ArrayFieldTemplate from "../ArrayFieldTemplate"; -import BaseInputTemplate from "../BaseInputTemplate/BaseInputTemplate"; -import DescriptionField from "../DescriptionField"; -import ErrorList from "../ErrorList"; -import { MoveDownButton, MoveUpButton, RemoveButton } from "../IconButton"; -import FieldErrorTemplate from "../FieldErrorTemplate"; -import FieldHelpTemplate from "../FieldHelpTemplate"; -import FieldTemplate from "../FieldTemplate"; -import ObjectFieldTemplate from "../ObjectFieldTemplate"; -import SubmitButton from "../SubmitButton"; -import TitleField from "../TitleField"; -import WrapIfAdditionalTemplate from "../WrapIfAdditionalTemplate"; - -export default { - ArrayFieldItemTemplate, - ArrayFieldTemplate, - BaseInputTemplate, - ButtonTemplates: { - AddButton, - MoveDownButton, - MoveUpButton, - RemoveButton, - SubmitButton, - }, - DescriptionFieldTemplate: DescriptionField, - ErrorListTemplate: ErrorList, - FieldErrorTemplate, - FieldHelpTemplate, - FieldTemplate, - ObjectFieldTemplate, - TitleFieldTemplate: TitleField, - WrapIfAdditionalTemplate, -}; diff --git a/spiffworkflow-frontend/src/themes/Templates/index.ts b/spiffworkflow-frontend/src/themes/Templates/index.ts deleted file mode 100644 index 0c3e935c..00000000 --- a/spiffworkflow-frontend/src/themes/Templates/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./Templates"; -export * from "./Templates"; diff --git a/spiffworkflow-frontend/src/themes/TextareaWidget/TextareaWidget.tsx b/spiffworkflow-frontend/src/themes/TextareaWidget/TextareaWidget.tsx deleted file mode 100644 index afb2c98d..00000000 --- a/spiffworkflow-frontend/src/themes/TextareaWidget/TextareaWidget.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import React from "react"; - -import { WidgetProps } from "@rjsf/utils"; -import FormControl from "react-bootstrap/FormControl"; -import InputGroup from "react-bootstrap/InputGroup"; - -type CustomWidgetProps = WidgetProps & { - options: any; -}; - -const TextareaWidget = ({ - id, - placeholder, - value, - required, - disabled, - autofocus, - readonly, - onBlur, - onFocus, - onChange, - options, -}: CustomWidgetProps) => { - const _onChange = ({ - target: { value }, - }: React.ChangeEvent) => - onChange(value === "" ? options.emptyValue : value); - const _onBlur = ({ - target: { value }, - }: React.FocusEvent) => onBlur(id, value); - const _onFocus = ({ - target: { value }, - }: React.FocusEvent) => onFocus(id, value); - - return ( - - - - ); -}; - -export default TextareaWidget; diff --git a/spiffworkflow-frontend/src/themes/TextareaWidget/index.ts b/spiffworkflow-frontend/src/themes/TextareaWidget/index.ts deleted file mode 100644 index 1c7268c6..00000000 --- a/spiffworkflow-frontend/src/themes/TextareaWidget/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./TextareaWidget"; -export * from "./TextareaWidget"; diff --git a/spiffworkflow-frontend/src/themes/Theme/Theme.tsx b/spiffworkflow-frontend/src/themes/Theme/Theme.tsx deleted file mode 100644 index ecfcdd57..00000000 --- a/spiffworkflow-frontend/src/themes/Theme/Theme.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { ThemeProps } from "@rjsf/core"; - -import Templates from "../Templates"; -import Widgets from "../Widgets"; - -const Theme: ThemeProps = { - templates: Templates, - widgets: Widgets, -}; - -export default Theme; diff --git a/spiffworkflow-frontend/src/themes/Theme/index.ts b/spiffworkflow-frontend/src/themes/Theme/index.ts deleted file mode 100644 index 491c3a07..00000000 --- a/spiffworkflow-frontend/src/themes/Theme/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./Theme"; -export * from "./Theme"; diff --git a/spiffworkflow-frontend/src/themes/TitleField/TitleField.tsx b/spiffworkflow-frontend/src/themes/TitleField/TitleField.tsx deleted file mode 100644 index 4606e0d1..00000000 --- a/spiffworkflow-frontend/src/themes/TitleField/TitleField.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import React from "react"; -import { TitleFieldProps } from "@rjsf/utils"; - -const TitleField = ({ id, title, uiSchema }: TitleFieldProps) => ( - <> -
-
{(uiSchema && uiSchema["ui:title"]) || title}
-
-
- -); - -export default TitleField; diff --git a/spiffworkflow-frontend/src/themes/TitleField/index.ts b/spiffworkflow-frontend/src/themes/TitleField/index.ts deleted file mode 100644 index 2e26cd18..00000000 --- a/spiffworkflow-frontend/src/themes/TitleField/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./TitleField"; -export * from "./TitleField"; diff --git a/spiffworkflow-frontend/src/themes/Widgets/Widgets.ts b/spiffworkflow-frontend/src/themes/Widgets/Widgets.ts deleted file mode 100644 index 543a05ec..00000000 --- a/spiffworkflow-frontend/src/themes/Widgets/Widgets.ts +++ /dev/null @@ -1,17 +0,0 @@ -import CheckboxWidget from "../CheckboxWidget/CheckboxWidget"; -import CheckboxesWidget from "../CheckboxesWidget/CheckboxesWidget"; -import RadioWidget from "../RadioWidget/RadioWidget"; -import RangeWidget from "../RangeWidget/RangeWidget"; -import SelectWidget from "../SelectWidget/SelectWidget"; -import TextareaWidget from "../TextareaWidget/TextareaWidget"; -import FileWidget from "../FileWidget/FileWidget"; - -export default { - CheckboxWidget, - CheckboxesWidget, - RadioWidget, - RangeWidget, - SelectWidget, - TextareaWidget, - FileWidget, -}; diff --git a/spiffworkflow-frontend/src/themes/Widgets/index.ts b/spiffworkflow-frontend/src/themes/Widgets/index.ts deleted file mode 100644 index 595580b5..00000000 --- a/spiffworkflow-frontend/src/themes/Widgets/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./Widgets"; -export * from "./Widgets"; diff --git a/spiffworkflow-frontend/src/themes/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.tsx b/spiffworkflow-frontend/src/themes/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.tsx deleted file mode 100644 index 3eafe906..00000000 --- a/spiffworkflow-frontend/src/themes/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import React from "react"; - -import { - ADDITIONAL_PROPERTY_FLAG, - WrapIfAdditionalTemplateProps, -} from "@rjsf/utils"; - -import Row from "react-bootstrap/Row"; -import Col from "react-bootstrap/Col"; -import Form from "react-bootstrap/Form"; - -const WrapIfAdditionalTemplate = ({ - classNames, - children, - disabled, - id, - label, - onDropPropertyClick, - onKeyChange, - readonly, - required, - schema, - uiSchema, - registry, -}: WrapIfAdditionalTemplateProps) => { - // Button templates are not overridden in the uiSchema - const { RemoveButton } = registry.templates.ButtonTemplates; - const keyLabel = `${label} Key`; // i18n ? - const additional = ADDITIONAL_PROPERTY_FLAG in schema; - - if (!additional) { - return
{children}
; - } - - const handleBlur = ({ target }: React.FocusEvent) => - onKeyChange(target.value); - const keyId = `${id}-key`; - - return ( - - - - {keyLabel} - - - - {children} - - - - - ); -}; - -export default WrapIfAdditionalTemplate; diff --git a/spiffworkflow-frontend/src/themes/WrapIfAdditionalTemplate/index.ts b/spiffworkflow-frontend/src/themes/WrapIfAdditionalTemplate/index.ts deleted file mode 100644 index 95ba7de2..00000000 --- a/spiffworkflow-frontend/src/themes/WrapIfAdditionalTemplate/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from "./WrapIfAdditionalTemplate"; -export * from "./WrapIfAdditionalTemplate"; diff --git a/spiffworkflow-frontend/src/themes/index.ts b/spiffworkflow-frontend/src/themes/index.ts deleted file mode 100644 index 2f409639..00000000 --- a/spiffworkflow-frontend/src/themes/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import Form from './Form/Form'; - -export { default as Form } from './Form'; -export { default as Templates } from './Templates'; -export { default as Theme } from './Theme'; -export { default as Widgets } from './Widgets'; - -export default Form;