From ebbdf50410507bcf6d152ab5c15d8ef9450c75bf Mon Sep 17 00:00:00 2001 From: pewillia Date: Wed, 21 Dec 2022 09:14:25 -0500 Subject: [PATCH] fix(30) add ability to save and load a json file closes(30) --- chart.jpg | Bin 0 -> 151484 bytes chart.png | Bin 0 -> 177884 bytes images/chart.jpg | Bin 0 -> 151484 bytes package-lock.json | 2140 ++++++++++++++++++---- package.json | 20 +- public/chart.png | Bin 0 -> 177884 bytes public/counter.js | 19 + public/counter.ts | 0 public/datat(52)my_config2.json | 1 + public/energy.json | 36 + public/firstnation.json | 34 + public/index.html | 73 +- public/my-config - Copy.json | 73 + public/my-config.json | 73 + public/weatherGeomet.json | 34 + src/App.css | 138 ++ src/App.js | 12 +- src/components/InputForm.js | 55 +- src/components/SchemaForm.js | 1493 +++++++++++++++- src/components/db aug 9 orig.json | 2737 +++++++++++++++++++++++++++++ src/components/db may 3.json | 2159 +++++++++++++++++++++++ src/components/db.json | 2415 ++++++++++++++++++++++++- src/index.js | 1 + src/popups.js | 26 + 24 files changed, 11132 insertions(+), 407 deletions(-) create mode 100644 chart.jpg create mode 100644 chart.png create mode 100644 images/chart.jpg create mode 100644 public/chart.png create mode 100644 public/counter.js create mode 100644 public/counter.ts create mode 100644 public/datat(52)my_config2.json create mode 100644 public/energy.json create mode 100644 public/firstnation.json create mode 100644 public/my-config - Copy.json create mode 100644 public/my-config.json create mode 100644 public/weatherGeomet.json create mode 100644 src/components/db aug 9 orig.json create mode 100644 src/components/db may 3.json create mode 100644 src/popups.js diff --git a/chart.jpg b/chart.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8d8632238935e1ae9b744794b0062743a44505a1 GIT binary patch literal 151484 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⁡yqAR^O$u3~;WDU1(TdEw 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 literal 0 HcmV?d00001 diff --git a/images/chart.jpg b/images/chart.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8d8632238935e1ae9b744794b0062743a44505a1 GIT binary patch literal 151484 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.9.0" @@ -441,10 +449,18 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "engines": { "node": ">=6.9.0" } @@ -1780,11 +1796,11 @@ } }, "node_modules/@babel/runtime": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.5.tgz", - "integrity": "sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", + "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" @@ -1802,6 +1818,11 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, "node_modules/@babel/template": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", @@ -1836,11 +1857,12 @@ } }, "node_modules/@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", + "integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1857,11 +1879,181 @@ "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "peer": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "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.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==", + "peer": true + }, + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "peer": true, + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, "node_modules/@emotion/hash": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "peer": true, + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "peer": true + }, + "node_modules/@emotion/react": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", + "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "peer": true, + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/serialize/node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==", + "peer": true + }, + "node_modules/@emotion/serialize/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", + "peer": true + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==", + "peer": true + }, + "node_modules/@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "peer": true + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peer": true, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==", + "peer": true + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==", + "peer": true + }, "node_modules/@eslint/eslintrc": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", @@ -1922,6 +2114,44 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@floating-ui/core": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.4.1.tgz", + "integrity": "sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==", + "peer": true, + "dependencies": { + "@floating-ui/utils": "^0.1.1" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.1.tgz", + "integrity": "sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==", + "peer": true, + "dependencies": { + "@floating-ui/core": "^1.4.1", + "@floating-ui/utils": "^0.1.1" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.2.tgz", + "integrity": "sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==", + "peer": true, + "dependencies": { + "@floating-ui/dom": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.1.tgz", + "integrity": "sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==", + "peer": true + }, "node_modules/@humanwhocodes/config-array": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", @@ -2667,15 +2897,16 @@ } }, "node_modules/@material-ui/core": { - "version": "4.12.3", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.3.tgz", - "integrity": "sha512-sdpgI/PL56QVsEJldwEe4FFaFTLUqN+rd7sSZiRCdx2E/C7z5yK0y/khAWVBH24tXwto7I1hCzNWfJGZIYJKnw==", + "version": "4.12.4", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz", + "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==", + "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", "dependencies": { "@babel/runtime": "^7.4.4", - "@material-ui/styles": "^4.11.4", - "@material-ui/system": "^4.12.1", + "@material-ui/styles": "^4.11.5", + "@material-ui/system": "^4.12.2", "@material-ui/types": "5.1.0", - "@material-ui/utils": "^4.11.2", + "@material-ui/utils": "^4.11.3", "@types/react-transition-group": "^4.2.0", "clsx": "^1.0.4", "hoist-non-react-statics": "^3.3.2", @@ -2703,9 +2934,9 @@ } }, "node_modules/@material-ui/icons": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.2.tgz", - "integrity": "sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ==", + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.3.tgz", + "integrity": "sha512-IKHlyx6LDh8n19vzwH5RtHIOHl9Tu90aAAxcbWME6kp4dmvODM3UvOHJeMIDzUbd4muuJKHmlNoBN+mDY4XkBA==", "dependencies": { "@babel/runtime": "^7.4.4" }, @@ -2725,14 +2956,15 @@ } }, "node_modules/@material-ui/styles": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.4.tgz", - "integrity": "sha512-KNTIZcnj/zprG5LW0Sao7zw+yG3O35pviHzejMdcSGCdWbiO8qzRgOYL8JAxAsWBKOKYwVZxXtHWaB5T2Kvxew==", + "version": "4.11.5", + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.5.tgz", + "integrity": "sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==", + "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", "dependencies": { "@babel/runtime": "^7.4.4", "@emotion/hash": "^0.8.0", "@material-ui/types": "5.1.0", - "@material-ui/utils": "^4.11.2", + "@material-ui/utils": "^4.11.3", "clsx": "^1.0.4", "csstype": "^2.5.2", "hoist-non-react-statics": "^3.3.2", @@ -2765,12 +2997,12 @@ } }, "node_modules/@material-ui/system": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.1.tgz", - "integrity": "sha512-lUdzs4q9kEXZGhbN7BptyiS1rLNHe6kG9o8Y307HCvF4sQxbCgpL2qi+gUk+yI8a2DNk48gISEQxoxpgph0xIw==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.2.tgz", + "integrity": "sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw==", "dependencies": { "@babel/runtime": "^7.4.4", - "@material-ui/utils": "^4.11.2", + "@material-ui/utils": "^4.11.3", "csstype": "^2.5.2", "prop-types": "^15.7.2" }, @@ -2806,9 +3038,9 @@ } }, "node_modules/@material-ui/utils": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz", - "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==", + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz", + "integrity": "sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==", "dependencies": { "@babel/runtime": "^7.4.4", "prop-types": "^15.7.2", @@ -2822,6 +3054,320 @@ "react-dom": "^16.8.0 || ^17.0.0" } }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.14", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.14.tgz", + "integrity": "sha512-Je/9JzzYObsuLCIClgE8XvXNFb55IEz8n2NtStUfASfNiVrwiR8t6VVFFuhofehkyTIN34tq1qbBaOjCnOovBw==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.22.10", + "@emotion/is-prop-valid": "^1.2.1", + "@floating-ui/react-dom": "^2.0.1", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.8", + "@popperjs/core": "^2.11.8", + "clsx": "^2.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": { + "@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/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "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.14.8", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.8.tgz", + "integrity": "sha512-8V7ZOC/lKkM03TRHqaThQFIq6bWPnj7L/ZWPh0ymldYFFyh8XdF0ywTgafsofDNYT4StlNknbaTjVHBma3SNjQ==", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.14.8", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.14.8.tgz", + "integrity": "sha512-YXcReLydTuNWb1/PxduAH5LgnHNH6spSQBaA0JOz9HD4J+vwst0IanAQgsXy9KKCJSjCsHywE3DB8X+w/b4eeQ==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.22.10" + }, + "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.14.8", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.14.8.tgz", + "integrity": "sha512-fqvDGGF1pXwOOL/f0Gw+KHo/67hasRpf2ApTIJkbuONOk9AUb2jnYMEqCWmL2sUcbbE3ShMbHl8N7HPSsRv1/A==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.22.10", + "@mui/base": "5.0.0-beta.14", + "@mui/core-downloads-tracker": "^5.14.8", + "@mui/system": "^5.14.8", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.8", + "@types/react-transition-group": "^4.4.6", + "clsx": "^2.0.0", + "csstype": "^3.1.2", + "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/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@mui/material/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", + "peer": 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.14.8", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.14.8.tgz", + "integrity": "sha512-iBzpcl3Mh92XaYpYPdgzzRxNGkjpoDz8rf8/q5m+EBPowFEHV+CCS9hC0Q2pOKLW3VFFikA7w/GHt7n++40JGQ==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.22.10", + "@mui/utils": "^5.14.8", + "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.14.8", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.14.8.tgz", + "integrity": "sha512-LGwOav/Y40PZWZ2yDk4beUoRlc57Vg+Vpxi9V9BBtT2ESAucCgFobkt+T8eVLMWF9huUou5pwKgLSU5pF90hBg==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.22.10", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.2", + "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/styled-engine/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", + "peer": true + }, + "node_modules/@mui/system": { + "version": "5.14.8", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.14.8.tgz", + "integrity": "sha512-Dxnasv7Pj5hYe4ZZFKJZu4ufKm6cxpitWt3A+qMPps22YhqyeEqgDBq/HsAB3GOjqDP40fTAvQvS/Hguf4SJuw==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.22.10", + "@mui/private-theming": "^5.14.8", + "@mui/styled-engine": "^5.14.8", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.8", + "clsx": "^2.0.0", + "csstype": "^3.1.2", + "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/system/node_modules/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@mui/system/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", + "peer": true + }, + "node_modules/@mui/types": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.4.tgz", + "integrity": "sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==", + "peer": true, + "peerDependencies": { + "@types/react": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.14.8", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.8.tgz", + "integrity": "sha512-1Ls2FfyY2yVSz9NEqedh3J8JAbbZAnUWkOWLE2f4/Hc4T5UWHMfzBLLrCqExfqyfyU+uXYJPGeNIsky6f8Gh5Q==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.22.10", + "@types/prop-types": "^15.7.5", + "@types/react-is": "^18.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": { + "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", @@ -2911,43 +3457,151 @@ "node": ">= 8" } }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@rjsf/core": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-3.2.1.tgz", - "integrity": "sha512-dk8ihvxFbcuIwU7G+HiJbFgwyIvaumPt5g5zfnuC26mwTUPlaDGFXKK2yITp8tJ3+hcwS5zEXtAN9wUkfuM4jA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-5.13.0.tgz", + "integrity": "sha512-rCpJGR0yPP/ip9LKcr3SmDMkbLx4QIaRA+ag0rcalSw1XLXBSzh53SpfgaB2HN++1xhUvWtIUERRHpWjQp1E7w==", "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", - "nanoid": "^3.1.23", - "prop-types": "^15.7.2", - "react-is": "^16.9.0" + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "markdown-to-jsx": "^7.3.2", + "nanoid": "^3.3.6", + "prop-types": "^15.8.1" }, "engines": { - "node": ">=12" + "node": ">=14" + }, + "peerDependencies": { + "@rjsf/utils": "^5.12.x", + "react": "^16.14.0 || >=17" + } + }, + "node_modules/@rjsf/core/node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/@rjsf/material-ui": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@rjsf/material-ui/-/material-ui-5.13.0.tgz", + "integrity": "sha512-LcPxmtZLKq+ldhif+ceuSXHGIHeG2co0EAv0wqIobrqWBZ8x3Wc/MXBcSFypd966oPKzwJ8yUWsiU4OzMJ6VpA==", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@material-ui/core": "^4.12.3", + "@material-ui/icons": "^4.11.2", + "@rjsf/core": "^5.12.x", + "@rjsf/utils": "^5.12.x", + "react": "^16.14.0 || >=17" + } + }, + "node_modules/@rjsf/mui": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@rjsf/mui/-/mui-5.13.0.tgz", + "integrity": "sha512-X2Ekctfq0gLq9HMeu9/XEZca5w7DTPg8Rl4hdxz9mkRftN3Yqqs4MPMNiTpbCzY/TluwyGwmXgehV1WgvLOH/w==", + "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.12.x", + "@rjsf/utils": "^5.12.x", + "react": ">=17" + } + }, + "node_modules/@rjsf/utils": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-5.13.0.tgz", + "integrity": "sha512-tG2OuOJUJZ0W7VMZceD0I2SOjfMRRT1tRtG+SKbdNqhtH/gpg40aOMUj9cWgSQnYISEkNZjZq/z7NWln5RxW6A==", + "dependencies": { + "json-schema-merge-allof": "^0.8.1", + "jsonpointer": "^5.0.1", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^16.14.0 || >=17" + } + }, + "node_modules/@rjsf/utils/node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@rjsf/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==" + }, + "node_modules/@rjsf/validator-ajv8": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.13.0.tgz", + "integrity": "sha512-8j0xLsxJA/k1UADeDYZ2aMVrswvOCEYNC++YchoAgWRHqDiaGAUyRbbk7oxMi6QUXnhnlCIepzNeTclHnSfPXQ==", + "dependencies": { + "ajv": "^8.12.0", + "ajv-formats": "^2.1.1", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@rjsf/utils": "^5.12.x" + } + }, + "node_modules/@rjsf/validator-ajv8/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, - "peerDependencies": { - "react": ">=16" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@rjsf/core/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/@rjsf/material-ui": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@rjsf/material-ui/-/material-ui-3.2.1.tgz", - "integrity": "sha512-8UiDeDbjCImFSfOegGu13otQ7OdP9FOYpcLjeouppnhs+MPeIEAtYS+jCcBKmi3reyTagC15/KVSRhde1wS1vg==", - "peerDependencies": { - "@material-ui/core": "^4.2.0", - "@material-ui/icons": "^4.2.1", - "@rjsf/core": "^3.0.0", - "react": ">=16" - } + "node_modules/@rjsf/validator-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/@rollup/plugin-babel": { "version": "5.3.0", @@ -3717,9 +4371,9 @@ "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==" }, "node_modules/@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/q": { "version": "1.5.5", @@ -3737,27 +4391,36 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "node_modules/@types/react": { - "version": "17.0.37", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.37.tgz", - "integrity": "sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg==", + "version": "17.0.64", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.64.tgz", + "integrity": "sha512-IlgbX/vglDTwrCRgad6fTCzOT+D/5C0xwuvrzfuqfhg9gJrkFqAGADpUFlEtqbrP1IEo9QLSbo41MaFfoIu9Aw==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } }, + "node_modules/@types/react-is": { + "version": "18.2.1", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-18.2.1.tgz", + "integrity": "sha512-wyUkmaaSZEzFZivD8F2ftSyAfk6L+DfFliVj/mYdOXbVjRcS87fQJLTnhk6dRZPuJjI+9g6RZJO4PNCngUrmyw==", + "peer": true, + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/react-transition-group": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", - "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", + "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", "dependencies": { "@types/react": "*" } }, "node_modules/@types/react/node_modules/csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/@types/resolve": { "version": "1.17.1", @@ -3773,9 +4436,9 @@ "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" }, "node_modules/@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" }, "node_modules/@types/serve-index": { "version": "1.9.1", @@ -4489,6 +5152,15 @@ "node": ">=8" } }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array.prototype.flat": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", @@ -5498,9 +6170,9 @@ } }, "node_modules/clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", "engines": { "node": ">=6" } @@ -5761,6 +6433,7 @@ "version": "3.20.0", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.0.tgz", "integrity": "sha512-KjbKU7UEfg4YPpskMtMXPhUKn7m/1OdTHTVjy09ScR2LVaoUXe8Jh0UdvN2EKUR6iKTJph52SJP95mAB0MnVLQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -5792,6 +6465,7 @@ "version": "3.20.0", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.0.tgz", "integrity": "sha512-qsrbIwWSEEYOM7z616jAVgwhuDDtPLwZSpUsU3vyUkHYqKTf/uwOJBZg2V7lMurYWkpVlaVOxBrfX0Q3ppvjfg==", + "deprecated": "core-js-pure@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js-pure.", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -6260,9 +6934,9 @@ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, "node_modules/csstype": { - "version": "2.6.19", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.19.tgz", - "integrity": "sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==" + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, "node_modules/damerau-levenshtein": { "version": "1.0.7", @@ -6592,9 +7266,9 @@ } }, "node_modules/dom-helpers/node_modules/csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/dom-serializer": { "version": "1.3.2", @@ -6744,6 +7418,12 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.27.tgz", "integrity": "sha512-uZ95szi3zUbzRDx1zx/xnsCG+2xgZyy57pDOeaeO4r8zx5Dqe8Jv1ti8cunvBwJHVI5LzPuw8umKwZb3WKYxSQ==" }, + "node_modules/email-addresses": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz", + "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==", + "dev": true + }, "node_modules/emittery": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", @@ -7954,6 +8634,11 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + }, "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", @@ -7981,6 +8666,32 @@ "node": ">=10" } }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/filesize": { "version": "8.0.6", "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.6.tgz", @@ -8105,6 +8816,12 @@ "node": ">=8" } }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "peer": true + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -8503,6 +9220,109 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gh-pages": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-5.0.0.tgz", + "integrity": "sha512-Nqp1SjkPIB94Xw/3yYNTUL+G2dxlhjvv1zeN/4kMC1jfViTEqhtVz/Ba1zSXHuvXCN9ADNS1dN4r5/J/nZWEQQ==", + "dev": true, + "dependencies": { + "async": "^3.2.4", + "commander": "^2.18.0", + "email-addresses": "^5.0.0", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gh-pages/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/gh-pages/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/gh-pages/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/gh-pages/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/gh-pages/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -9411,7 +10231,7 @@ "node_modules/is-in-browser": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==" }, "node_modules/is-installed-globally": { "version": "0.4.0", @@ -11634,13 +12454,16 @@ } }, "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==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", + "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", "dependencies": { - "compute-lcm": "^1.1.0", + "compute-lcm": "^1.1.2", "json-schema-compare": "^0.2.2", - "lodash": "^4.17.4" + "lodash": "^4.17.20" + }, + "engines": { + "node": ">=12.0.0" } }, "node_modules/json-schema-traverse": { @@ -11818,9 +12641,9 @@ } }, "node_modules/jss": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss/-/jss-10.9.0.tgz", - "integrity": "sha512-YpzpreB6kUunQBbrlArlsMpXYyndt9JATbt95tajx0t4MTJJcCJdd4hdNpHmOIDiUJrF/oX5wtVFrS3uofWfGw==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", "dependencies": { "@babel/runtime": "^7.3.1", "csstype": "^3.0.2", @@ -11833,76 +12656,76 @@ } }, "node_modules/jss-plugin-camel-case": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.0.tgz", - "integrity": "sha512-UH6uPpnDk413/r/2Olmw4+y54yEF2lRIV8XIZyuYpgPYTITLlPOsq6XB9qeqv+75SQSg3KLocq5jUBXW8qWWww==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz", + "integrity": "sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==", "dependencies": { "@babel/runtime": "^7.3.1", "hyphenate-style-name": "^1.0.3", - "jss": "10.9.0" + "jss": "10.10.0" } }, "node_modules/jss-plugin-default-unit": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.0.tgz", - "integrity": "sha512-7Ju4Q9wJ/MZPsxfu4T84mzdn7pLHWeqoGd/D8O3eDNNJ93Xc8PxnLmV8s8ZPNRYkLdxZqKtm1nPQ0BM4JRlq2w==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz", + "integrity": "sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.10.0" } }, "node_modules/jss-plugin-global": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.9.0.tgz", - "integrity": "sha512-4G8PHNJ0x6nwAFsEzcuVDiBlyMsj2y3VjmFAx/uHk/R/gzJV+yRHICjT4MKGGu1cJq2hfowFWCyrr/Gg37FbgQ==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz", + "integrity": "sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.10.0" } }, "node_modules/jss-plugin-nested": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.9.0.tgz", - "integrity": "sha512-2UJnDrfCZpMYcpPYR16oZB7VAC6b/1QLsRiAutOt7wJaaqwCBvNsosLEu/fUyKNQNGdvg2PPJFDO5AX7dwxtoA==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz", + "integrity": "sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0", + "jss": "10.10.0", "tiny-warning": "^1.0.2" } }, "node_modules/jss-plugin-props-sort": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.0.tgz", - "integrity": "sha512-7A76HI8bzwqrsMOJTWKx/uD5v+U8piLnp5bvru7g/3ZEQOu1+PjHvv7bFdNO3DwNPC9oM0a//KwIJsIcDCjDzw==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz", + "integrity": "sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.10.0" } }, "node_modules/jss-plugin-rule-value-function": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.0.tgz", - "integrity": "sha512-IHJv6YrEf8pRzkY207cPmdbBstBaE+z8pazhPShfz0tZSDtRdQua5jjg6NMz3IbTasVx9FdnmptxPqSWL5tyJg==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz", + "integrity": "sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0", + "jss": "10.10.0", "tiny-warning": "^1.0.2" } }, "node_modules/jss-plugin-vendor-prefixer": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.0.tgz", - "integrity": "sha512-MbvsaXP7iiVdYVSEoi+blrW+AYnTDvHTW6I6zqi7JcwXdc6I9Kbm234nEblayhF38EftoenbM+5218pidmC5gA==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz", + "integrity": "sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==", "dependencies": { "@babel/runtime": "^7.3.1", "css-vendor": "^2.0.8", - "jss": "10.9.0" + "jss": "10.10.0" } }, "node_modules/jss/node_modules/csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/jsx-ast-utils": { "version": "3.2.1", @@ -12064,7 +12887,7 @@ "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "node_modules/lodash.memoize": { "version": "4.1.2", @@ -12187,6 +13010,17 @@ "tmpl": "1.0.5" } }, + "node_modules/markdown-to-jsx": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz", + "integrity": "sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==", + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "react": ">= 0.14.0" + } + }, "node_modules/mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", @@ -13051,6 +13885,27 @@ "node": ">=4" } }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pirates": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", @@ -14424,13 +15279,13 @@ } }, "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", - "react-is": "^16.8.1" + "react-is": "^16.13.1" } }, "node_modules/prop-types/node_modules/react-is": { @@ -14802,6 +15657,14 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "node_modules/react-jsonschema-form-pagination": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/react-jsonschema-form-pagination/-/react-jsonschema-form-pagination-0.4.0.tgz", + "integrity": "sha512-Vuk/5CgxPV1sukCBAND+IVA6GbFjP/1dQhdyX97NYL2RGGwUh7epGq7TtrzSwq+U2N3o2QD9bAzi7BsSGcGdIw==", + "engines": { + "node": ">=8" + } + }, "node_modules/react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", @@ -14907,9 +15770,9 @@ } }, "node_modules/react-transition-group": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", - "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", @@ -14921,6 +15784,18 @@ "react-dom": ">=16.6.0" } }, + "node_modules/reactjs-popup": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/reactjs-popup/-/reactjs-popup-2.0.5.tgz", + "integrity": "sha512-b5hv9a6aGsHEHXFAgPO5s1Jw1eSkopueyUVxQewGdLgqk2eW0IVXZrPRpHR629YcgIpC2oxtX8OOZ8a7bQJbxA==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, "node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -15268,6 +16143,14 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rjsf-tabs": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/rjsf-tabs/-/rjsf-tabs-0.0.1.tgz", + "integrity": "sha512-GEfCLfKyKGlMBGDOskeFt9LEA/5PzZPwJLGn+2p30hf0W4hwVvXhMz8CDzb09v/ntJwRbNdhhJNdt7hZkNeGVw==", + "engines": { + "node": ">=8" + } + }, "node_modules/rollup": { "version": "2.61.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.61.1.tgz", @@ -15286,6 +16169,7 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", "dependencies": { "@babel/code-frame": "^7.10.4", "jest-worker": "^26.2.1", @@ -15748,6 +16632,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0" @@ -15773,12 +16658,14 @@ "node_modules/source-map-url": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated" }, "node_modules/sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" }, "node_modules/spdy": { "version": "4.0.2", @@ -15816,7 +16703,8 @@ "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" }, "node_modules/stack-utils": { "version": "2.0.5", @@ -16033,6 +16921,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/style-loader": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", @@ -16063,6 +16963,12 @@ "postcss": "^8.2.15" } }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "peer": true + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -16547,6 +17453,18 @@ "node": ">=8" } }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/tryer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", @@ -16657,9 +17575,9 @@ } }, "node_modules/typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "peer": true, "bin": { "tsc": "bin/tsc", @@ -16947,17 +17865,17 @@ "node_modules/validate.io-array": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", - "integrity": "sha1-W1osr9j4uFq7L4hroVPy2Tond00=" + "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==" }, "node_modules/validate.io-function": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz", - "integrity": "sha1-NDoZgC7TsZaCaceA5VjpNBHAutc=" + "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==" }, "node_modules/validate.io-integer": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", - "integrity": "sha1-FoSWSAuVviJH7EQ/IjPeT4mHgGg=", + "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==", "dependencies": { "validate.io-number": "^1.0.3" } @@ -16965,7 +17883,7 @@ "node_modules/validate.io-integer-array": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz", - "integrity": "sha1-LKveAzKTpry+Bj/q/pHq9GsToIk=", + "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==", "dependencies": { "validate.io-array": "^1.0.3", "validate.io-integer": "^1.0.4" @@ -16974,7 +17892,7 @@ "node_modules/validate.io-number": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", - "integrity": "sha1-9j/+2iSL8opnqNSODjtGGhZluvg=" + "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==" }, "node_modules/vary": { "version": "1.1.2", @@ -16988,6 +17906,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", "dependencies": { "browser-process-hrtime": "^1.0.0" } @@ -18180,11 +19099,11 @@ } }, "@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-transforms": { @@ -18261,10 +19180,15 @@ "@babel/types": "^7.16.0" } }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" + }, "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==" }, "@babel/helper-validator-option": { "version": "7.14.5", @@ -19127,11 +20051,18 @@ } }, "@babel/runtime": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.5.tgz", - "integrity": "sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", + "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + } } }, "@babel/runtime-corejs3": { @@ -19170,29 +20101,179 @@ "globals": "^11.1.0" } }, - "@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "@babel/types": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", + "integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", + "requires": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "@csstools/normalize.css": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", + "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" + }, + "@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "peer": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "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.2.0" + }, + "dependencies": { + "@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==", + "peer": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "peer": true + } + } + }, + "@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "peer": true, + "requires": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "peer": true, + "requires": { + "@emotion/memoize": "^0.8.1" + } + }, + "@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "peer": true + }, + "@emotion/react": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", + "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", + "peer": true, + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "peer": true, + "requires": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + }, + "dependencies": { + "@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==", + "peer": true + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", + "peer": true + } + } + }, + "@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==", + "peer": true + }, + "@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "peer": true, "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "to-fast-properties": "^2.0.0" + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" } }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + "@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "peer": true }, - "@csstools/normalize.css": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", - "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" + "@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peer": true, + "requires": {} }, - "@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + "@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==", + "peer": true + }, + "@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==", + "peer": true }, "@eslint/eslintrc": { "version": "1.0.5", @@ -19238,6 +20319,40 @@ } } }, + "@floating-ui/core": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.4.1.tgz", + "integrity": "sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==", + "peer": true, + "requires": { + "@floating-ui/utils": "^0.1.1" + } + }, + "@floating-ui/dom": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.1.tgz", + "integrity": "sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==", + "peer": true, + "requires": { + "@floating-ui/core": "^1.4.1", + "@floating-ui/utils": "^0.1.1" + } + }, + "@floating-ui/react-dom": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.2.tgz", + "integrity": "sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==", + "peer": true, + "requires": { + "@floating-ui/dom": "^1.5.1" + } + }, + "@floating-ui/utils": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.1.tgz", + "integrity": "sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==", + "peer": true + }, "@humanwhocodes/config-array": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", @@ -19792,15 +20907,15 @@ } }, "@material-ui/core": { - "version": "4.12.3", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.3.tgz", - "integrity": "sha512-sdpgI/PL56QVsEJldwEe4FFaFTLUqN+rd7sSZiRCdx2E/C7z5yK0y/khAWVBH24tXwto7I1hCzNWfJGZIYJKnw==", + "version": "4.12.4", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz", + "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==", "requires": { "@babel/runtime": "^7.4.4", - "@material-ui/styles": "^4.11.4", - "@material-ui/system": "^4.12.1", + "@material-ui/styles": "^4.11.5", + "@material-ui/system": "^4.12.2", "@material-ui/types": "5.1.0", - "@material-ui/utils": "^4.11.2", + "@material-ui/utils": "^4.11.3", "@types/react-transition-group": "^4.2.0", "clsx": "^1.0.4", "hoist-non-react-statics": "^3.3.2", @@ -19811,22 +20926,22 @@ } }, "@material-ui/icons": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.2.tgz", - "integrity": "sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ==", + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.3.tgz", + "integrity": "sha512-IKHlyx6LDh8n19vzwH5RtHIOHl9Tu90aAAxcbWME6kp4dmvODM3UvOHJeMIDzUbd4muuJKHmlNoBN+mDY4XkBA==", "requires": { "@babel/runtime": "^7.4.4" } }, "@material-ui/styles": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.4.tgz", - "integrity": "sha512-KNTIZcnj/zprG5LW0Sao7zw+yG3O35pviHzejMdcSGCdWbiO8qzRgOYL8JAxAsWBKOKYwVZxXtHWaB5T2Kvxew==", + "version": "4.11.5", + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.5.tgz", + "integrity": "sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==", "requires": { "@babel/runtime": "^7.4.4", "@emotion/hash": "^0.8.0", "@material-ui/types": "5.1.0", - "@material-ui/utils": "^4.11.2", + "@material-ui/utils": "^4.11.3", "clsx": "^1.0.4", "csstype": "^2.5.2", "hoist-non-react-statics": "^3.3.2", @@ -19842,12 +20957,12 @@ } }, "@material-ui/system": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.1.tgz", - "integrity": "sha512-lUdzs4q9kEXZGhbN7BptyiS1rLNHe6kG9o8Y307HCvF4sQxbCgpL2qi+gUk+yI8a2DNk48gISEQxoxpgph0xIw==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.2.tgz", + "integrity": "sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw==", "requires": { "@babel/runtime": "^7.4.4", - "@material-ui/utils": "^4.11.2", + "@material-ui/utils": "^4.11.3", "csstype": "^2.5.2", "prop-types": "^15.7.2" } @@ -19859,15 +20974,190 @@ "requires": {} }, "@material-ui/utils": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz", - "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==", + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz", + "integrity": "sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==", "requires": { "@babel/runtime": "^7.4.4", "prop-types": "^15.7.2", "react-is": "^16.8.0 || ^17.0.0" } }, + "@mui/base": { + "version": "5.0.0-beta.14", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.14.tgz", + "integrity": "sha512-Je/9JzzYObsuLCIClgE8XvXNFb55IEz8n2NtStUfASfNiVrwiR8t6VVFFuhofehkyTIN34tq1qbBaOjCnOovBw==", + "peer": true, + "requires": { + "@babel/runtime": "^7.22.10", + "@emotion/is-prop-valid": "^1.2.1", + "@floating-ui/react-dom": "^2.0.1", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.8", + "@popperjs/core": "^2.11.8", + "clsx": "^2.0.0", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "dependencies": { + "clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "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.14.8", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.8.tgz", + "integrity": "sha512-8V7ZOC/lKkM03TRHqaThQFIq6bWPnj7L/ZWPh0ymldYFFyh8XdF0ywTgafsofDNYT4StlNknbaTjVHBma3SNjQ==", + "peer": true + }, + "@mui/icons-material": { + "version": "5.14.8", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.14.8.tgz", + "integrity": "sha512-YXcReLydTuNWb1/PxduAH5LgnHNH6spSQBaA0JOz9HD4J+vwst0IanAQgsXy9KKCJSjCsHywE3DB8X+w/b4eeQ==", + "peer": true, + "requires": { + "@babel/runtime": "^7.22.10" + } + }, + "@mui/material": { + "version": "5.14.8", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.14.8.tgz", + "integrity": "sha512-fqvDGGF1pXwOOL/f0Gw+KHo/67hasRpf2ApTIJkbuONOk9AUb2jnYMEqCWmL2sUcbbE3ShMbHl8N7HPSsRv1/A==", + "peer": true, + "requires": { + "@babel/runtime": "^7.22.10", + "@mui/base": "5.0.0-beta.14", + "@mui/core-downloads-tracker": "^5.14.8", + "@mui/system": "^5.14.8", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.8", + "@types/react-transition-group": "^4.4.6", + "clsx": "^2.0.0", + "csstype": "^3.1.2", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "dependencies": { + "clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "peer": true + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", + "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/private-theming": { + "version": "5.14.8", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.14.8.tgz", + "integrity": "sha512-iBzpcl3Mh92XaYpYPdgzzRxNGkjpoDz8rf8/q5m+EBPowFEHV+CCS9hC0Q2pOKLW3VFFikA7w/GHt7n++40JGQ==", + "peer": true, + "requires": { + "@babel/runtime": "^7.22.10", + "@mui/utils": "^5.14.8", + "prop-types": "^15.8.1" + } + }, + "@mui/styled-engine": { + "version": "5.14.8", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.14.8.tgz", + "integrity": "sha512-LGwOav/Y40PZWZ2yDk4beUoRlc57Vg+Vpxi9V9BBtT2ESAucCgFobkt+T8eVLMWF9huUou5pwKgLSU5pF90hBg==", + "peer": true, + "requires": { + "@babel/runtime": "^7.22.10", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.2", + "prop-types": "^15.8.1" + }, + "dependencies": { + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", + "peer": true + } + } + }, + "@mui/system": { + "version": "5.14.8", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.14.8.tgz", + "integrity": "sha512-Dxnasv7Pj5hYe4ZZFKJZu4ufKm6cxpitWt3A+qMPps22YhqyeEqgDBq/HsAB3GOjqDP40fTAvQvS/Hguf4SJuw==", + "peer": true, + "requires": { + "@babel/runtime": "^7.22.10", + "@mui/private-theming": "^5.14.8", + "@mui/styled-engine": "^5.14.8", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.8", + "clsx": "^2.0.0", + "csstype": "^3.1.2", + "prop-types": "^15.8.1" + }, + "dependencies": { + "clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "peer": true + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", + "peer": true + } + } + }, + "@mui/types": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.4.tgz", + "integrity": "sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==", + "peer": true, + "requires": {} + }, + "@mui/utils": { + "version": "5.14.8", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.8.tgz", + "integrity": "sha512-1Ls2FfyY2yVSz9NEqedh3J8JAbbZAnUWkOWLE2f4/Hc4T5UWHMfzBLLrCqExfqyfyU+uXYJPGeNIsky6f8Gh5Q==", + "peer": true, + "requires": { + "@babel/runtime": "^7.22.10", + "@types/prop-types": "^15.7.5", + "@types/react-is": "^18.2.1", + "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", @@ -19914,35 +21204,96 @@ } } }, + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "peer": true + }, "@rjsf/core": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-3.2.1.tgz", - "integrity": "sha512-dk8ihvxFbcuIwU7G+HiJbFgwyIvaumPt5g5zfnuC26mwTUPlaDGFXKK2yITp8tJ3+hcwS5zEXtAN9wUkfuM4jA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-5.13.0.tgz", + "integrity": "sha512-rCpJGR0yPP/ip9LKcr3SmDMkbLx4QIaRA+ag0rcalSw1XLXBSzh53SpfgaB2HN++1xhUvWtIUERRHpWjQp1E7w==", "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", - "nanoid": "^3.1.23", - "prop-types": "^15.7.2", - "react-is": "^16.9.0" + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "markdown-to-jsx": "^7.3.2", + "nanoid": "^3.3.6", + "prop-types": "^15.8.1" }, "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" } } }, "@rjsf/material-ui": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@rjsf/material-ui/-/material-ui-3.2.1.tgz", - "integrity": "sha512-8UiDeDbjCImFSfOegGu13otQ7OdP9FOYpcLjeouppnhs+MPeIEAtYS+jCcBKmi3reyTagC15/KVSRhde1wS1vg==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@rjsf/material-ui/-/material-ui-5.13.0.tgz", + "integrity": "sha512-LcPxmtZLKq+ldhif+ceuSXHGIHeG2co0EAv0wqIobrqWBZ8x3Wc/MXBcSFypd966oPKzwJ8yUWsiU4OzMJ6VpA==", + "requires": {} + }, + "@rjsf/mui": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@rjsf/mui/-/mui-5.13.0.tgz", + "integrity": "sha512-X2Ekctfq0gLq9HMeu9/XEZca5w7DTPg8Rl4hdxz9mkRftN3Yqqs4MPMNiTpbCzY/TluwyGwmXgehV1WgvLOH/w==", "requires": {} }, + "@rjsf/utils": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-5.13.0.tgz", + "integrity": "sha512-tG2OuOJUJZ0W7VMZceD0I2SOjfMRRT1tRtG+SKbdNqhtH/gpg40aOMUj9cWgSQnYISEkNZjZq/z7NWln5RxW6A==", + "requires": { + "json-schema-merge-allof": "^0.8.1", + "jsonpointer": "^5.0.1", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "react-is": "^18.2.0" + }, + "dependencies": { + "jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==" + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } + } + }, + "@rjsf/validator-ajv8": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.13.0.tgz", + "integrity": "sha512-8j0xLsxJA/k1UADeDYZ2aMVrswvOCEYNC++YchoAgWRHqDiaGAUyRbbk7oxMi6QUXnhnlCIepzNeTclHnSfPXQ==", + "requires": { + "ajv": "^8.12.0", + "ajv-formats": "^2.1.1", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "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==" + } + } + }, "@rollup/plugin-babel": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz", @@ -20512,9 +21863,9 @@ "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==" }, "@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "@types/q": { "version": "1.5.5", @@ -20532,9 +21883,9 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "@types/react": { - "version": "17.0.37", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.37.tgz", - "integrity": "sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg==", + "version": "17.0.64", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.64.tgz", + "integrity": "sha512-IlgbX/vglDTwrCRgad6fTCzOT+D/5C0xwuvrzfuqfhg9gJrkFqAGADpUFlEtqbrP1IEo9QLSbo41MaFfoIu9Aw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -20542,16 +21893,25 @@ }, "dependencies": { "csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" } } }, + "@types/react-is": { + "version": "18.2.1", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-18.2.1.tgz", + "integrity": "sha512-wyUkmaaSZEzFZivD8F2ftSyAfk6L+DfFliVj/mYdOXbVjRcS87fQJLTnhk6dRZPuJjI+9g6RZJO4PNCngUrmyw==", + "peer": true, + "requires": { + "@types/react": "*" + } + }, "@types/react-transition-group": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", - "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", + "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", "requires": { "@types/react": "*" } @@ -20570,9 +21930,9 @@ "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" }, "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" }, "@types/serve-index": { "version": "1.9.1", @@ -21119,6 +22479,12 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true + }, "array.prototype.flat": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", @@ -21882,9 +23248,9 @@ } }, "clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" }, "co": { "version": "4.6.0", @@ -22437,9 +23803,9 @@ } }, "csstype": { - "version": "2.6.19", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.19.tgz", - "integrity": "sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==" + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, "damerau-levenshtein": { "version": "1.0.7", @@ -22699,9 +24065,9 @@ }, "dependencies": { "csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" } } }, @@ -22818,6 +24184,12 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.27.tgz", "integrity": "sha512-uZ95szi3zUbzRDx1zx/xnsCG+2xgZyy57pDOeaeO4r8zx5Dqe8Jv1ti8cunvBwJHVI5LzPuw8umKwZb3WKYxSQ==" }, + "email-addresses": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz", + "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==", + "dev": true + }, "emittery": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", @@ -23707,6 +25079,11 @@ "schema-utils": "^3.0.0" } }, + "file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + }, "filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", @@ -23733,6 +25110,23 @@ } } }, + "filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "dev": true + }, + "filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "requires": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + } + }, "filesize": { "version": "8.0.6", "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.6.tgz", @@ -23828,6 +25222,12 @@ } } }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "peer": true + }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -24090,6 +25490,89 @@ "get-intrinsic": "^1.1.1" } }, + "gh-pages": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-5.0.0.tgz", + "integrity": "sha512-Nqp1SjkPIB94Xw/3yYNTUL+G2dxlhjvv1zeN/4kMC1jfViTEqhtVz/Ba1zSXHuvXCN9ADNS1dN4r5/J/nZWEQQ==", + "dev": true, + "requires": { + "async": "^3.2.4", + "commander": "^2.18.0", + "email-addresses": "^5.0.0", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -24762,7 +26245,7 @@ "is-in-browser": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==" }, "is-installed-globally": { "version": "0.4.0", @@ -26368,13 +27851,13 @@ } }, "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==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", + "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", "requires": { - "compute-lcm": "^1.1.0", + "compute-lcm": "^1.1.2", "json-schema-compare": "^0.2.2", - "lodash": "^4.17.4" + "lodash": "^4.17.20" } }, "json-schema-traverse": { @@ -26510,9 +27993,9 @@ "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==" }, "jss": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss/-/jss-10.9.0.tgz", - "integrity": "sha512-YpzpreB6kUunQBbrlArlsMpXYyndt9JATbt95tajx0t4MTJJcCJdd4hdNpHmOIDiUJrF/oX5wtVFrS3uofWfGw==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", "requires": { "@babel/runtime": "^7.3.1", "csstype": "^3.0.2", @@ -26521,77 +28004,77 @@ }, "dependencies": { "csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" } } }, "jss-plugin-camel-case": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.0.tgz", - "integrity": "sha512-UH6uPpnDk413/r/2Olmw4+y54yEF2lRIV8XIZyuYpgPYTITLlPOsq6XB9qeqv+75SQSg3KLocq5jUBXW8qWWww==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz", + "integrity": "sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==", "requires": { "@babel/runtime": "^7.3.1", "hyphenate-style-name": "^1.0.3", - "jss": "10.9.0" + "jss": "10.10.0" } }, "jss-plugin-default-unit": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.0.tgz", - "integrity": "sha512-7Ju4Q9wJ/MZPsxfu4T84mzdn7pLHWeqoGd/D8O3eDNNJ93Xc8PxnLmV8s8ZPNRYkLdxZqKtm1nPQ0BM4JRlq2w==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz", + "integrity": "sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.10.0" } }, "jss-plugin-global": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.9.0.tgz", - "integrity": "sha512-4G8PHNJ0x6nwAFsEzcuVDiBlyMsj2y3VjmFAx/uHk/R/gzJV+yRHICjT4MKGGu1cJq2hfowFWCyrr/Gg37FbgQ==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz", + "integrity": "sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.10.0" } }, "jss-plugin-nested": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.9.0.tgz", - "integrity": "sha512-2UJnDrfCZpMYcpPYR16oZB7VAC6b/1QLsRiAutOt7wJaaqwCBvNsosLEu/fUyKNQNGdvg2PPJFDO5AX7dwxtoA==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz", + "integrity": "sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0", + "jss": "10.10.0", "tiny-warning": "^1.0.2" } }, "jss-plugin-props-sort": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.0.tgz", - "integrity": "sha512-7A76HI8bzwqrsMOJTWKx/uD5v+U8piLnp5bvru7g/3ZEQOu1+PjHvv7bFdNO3DwNPC9oM0a//KwIJsIcDCjDzw==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz", + "integrity": "sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.10.0" } }, "jss-plugin-rule-value-function": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.0.tgz", - "integrity": "sha512-IHJv6YrEf8pRzkY207cPmdbBstBaE+z8pazhPShfz0tZSDtRdQua5jjg6NMz3IbTasVx9FdnmptxPqSWL5tyJg==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz", + "integrity": "sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0", + "jss": "10.10.0", "tiny-warning": "^1.0.2" } }, "jss-plugin-vendor-prefixer": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.0.tgz", - "integrity": "sha512-MbvsaXP7iiVdYVSEoi+blrW+AYnTDvHTW6I6zqi7JcwXdc6I9Kbm234nEblayhF38EftoenbM+5218pidmC5gA==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz", + "integrity": "sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==", "requires": { "@babel/runtime": "^7.3.1", "css-vendor": "^2.0.8", - "jss": "10.9.0" + "jss": "10.10.0" } }, "jsx-ast-utils": { @@ -26715,7 +28198,7 @@ "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "lodash.memoize": { "version": "4.1.2", @@ -26816,6 +28299,12 @@ "tmpl": "1.0.5" } }, + "markdown-to-jsx": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz", + "integrity": "sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==", + "requires": {} + }, "mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", @@ -27445,6 +28934,21 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, "pirates": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", @@ -28292,13 +29796,13 @@ } }, "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", - "react-is": "^16.8.1" + "react-is": "^16.13.1" }, "dependencies": { "react-is": { @@ -28578,6 +30082,11 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "react-jsonschema-form-pagination": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/react-jsonschema-form-pagination/-/react-jsonschema-form-pagination-0.4.0.tgz", + "integrity": "sha512-Vuk/5CgxPV1sukCBAND+IVA6GbFjP/1dQhdyX97NYL2RGGwUh7epGq7TtrzSwq+U2N3o2QD9bAzi7BsSGcGdIw==" + }, "react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", @@ -28656,9 +30165,9 @@ } }, "react-transition-group": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", - "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", "requires": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", @@ -28666,6 +30175,12 @@ "prop-types": "^15.6.2" } }, + "reactjs-popup": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/reactjs-popup/-/reactjs-popup-2.0.5.tgz", + "integrity": "sha512-b5hv9a6aGsHEHXFAgPO5s1Jw1eSkopueyUVxQewGdLgqk2eW0IVXZrPRpHR629YcgIpC2oxtX8OOZ8a7bQJbxA==", + "requires": {} + }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -28916,6 +30431,11 @@ "glob": "^7.1.3" } }, + "rjsf-tabs": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/rjsf-tabs/-/rjsf-tabs-0.0.1.tgz", + "integrity": "sha512-GEfCLfKyKGlMBGDOskeFt9LEA/5PzZPwJLGn+2p30hf0W4hwVvXhMz8CDzb09v/ntJwRbNdhhJNdt7hZkNeGVw==" + }, "rollup": { "version": "2.61.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.61.1.tgz", @@ -29512,6 +31032,15 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, "style-loader": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", @@ -29527,6 +31056,12 @@ "postcss-selector-parser": "^6.0.4" } }, + "stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "peer": true + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -29889,6 +31424,15 @@ "punycode": "^2.1.1" } }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, "tryer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", @@ -29976,9 +31520,9 @@ } }, "typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "peer": true }, "unbox-primitive": { @@ -30190,17 +31734,17 @@ "validate.io-array": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", - "integrity": "sha1-W1osr9j4uFq7L4hroVPy2Tond00=" + "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==" }, "validate.io-function": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz", - "integrity": "sha1-NDoZgC7TsZaCaceA5VjpNBHAutc=" + "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==" }, "validate.io-integer": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", - "integrity": "sha1-FoSWSAuVviJH7EQ/IjPeT4mHgGg=", + "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==", "requires": { "validate.io-number": "^1.0.3" } @@ -30208,7 +31752,7 @@ "validate.io-integer-array": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz", - "integrity": "sha1-LKveAzKTpry+Bj/q/pHq9GsToIk=", + "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==", "requires": { "validate.io-array": "^1.0.3", "validate.io-integer": "^1.0.4" @@ -30217,7 +31761,7 @@ "validate.io-number": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", - "integrity": "sha1-9j/+2iSL8opnqNSODjtGGhZluvg=" + "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==" }, "vary": { "version": "1.1.2", diff --git a/package.json b/package.json index b00e903..88e5d79 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,16 @@ { "name": "geoview-pluginform", "version": "0.1.0", + "homepage": "https://pewillia.github.io/GeoView-Plugins-Config", "private": true, - "dependencies": { + "dependencies": { "@material-ui/core": "^4.12.3", "@material-ui/icons": "^4.11.2", - "@rjsf/core": "^3.2.1", - "@rjsf/material-ui": "^3.2.1", + "@rjsf/core": "^5.13.0", + "@rjsf/material-ui": "^5.13.0", + "@rjsf/mui": "^5.13.0", + "@rjsf/utils": "^5.13.0", + "@rjsf/validator-ajv8": "^5.13.0", "@testing-library/jest-dom": "^5.16.1", "@testing-library/react": "^12.1.2", "@testing-library/user-event": "^13.5.0", @@ -17,7 +21,11 @@ "react-router-dom": "^6.2.1", "react-scripts": "5.0.0", "web-vitals": "^2.1.2", - "yup": "^0.32.11" + "yup": "^0.32.11", + "file-saver": "2.0.5", + "reactjs-popup": "2.0.5", + "react-jsonschema-form-pagination": "0.4.0", + "rjsf-tabs": "0.0.1" }, "scripts": { "start": "react-scripts start", @@ -25,7 +33,8 @@ "test": "react-scripts test", "eject": "react-scripts eject", "lint": "eslint src", - "postlint": "echo ✅ lint valid" + "postlint": "echo ✅ lint valid", + "deploy": "gh-pages -d build" }, "eslintConfig": { "extends": [ @@ -50,6 +59,7 @@ "eslint-config-prettier": "^8.3.0", "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-react": "^7.28.0", + "gh-pages": "^5.0.0", "json-server": "^0.17.0", "prettier": "^2.5.1" } diff --git a/public/chart.png b/public/chart.png new file mode 100644 index 0000000000000000000000000000000000000000..ba3db3355f0368bacf12c7ea8eb78fcea24c856c GIT binary patch literal 177884 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⁡yqAR^O$u3~;WDU1(TdEw zXQ1aj9~po?5IrZ*F0z6RBvdtU_BRm{>r~vd1Yc+HN0Nik8P;HvQF( z+~VfqMt!x)5Z!zFUC7zc>b?{4y;uf!1OXRn$4f+G9@Mb6?^<--W9Vu(( zmDw#tjuAg|s#uUOr|PZrc7kqC8*6(_aTR{m_>`eK*L~(SCyLBPr)Hvvr&GXdc1ri) zi8N)+Cp>B8bzHhM=TA29nDDiEp* z|0X;;V%FyTnn=+8A}6$nD18v9>FI*%B}@CXzp9(D3b-T3NW+_+aGtsBlASshVr;S! zl7*nE6AWq7Y>stDZIYh7>hLI5LhN^HsQ%`ax-2(+^Ezm0+*W*Cuj3SN1an-6nQWbF z?7=(l7t_fTD<~LCJYC2cl!$HPN$M^0`N1*R?14)$&owr~-Jzx+h*yLiH$}Sc5Xh!8 z_e>6 z+j0M9>BV>5VNgd<^l7F>%9HNZKHp>ydoIbNL#o)eA+q}tLMN$_k4i|~KwwWEU{vrP z7Z<@*+SqC1Iq4$N=ww8M)5=!mIJU#KEa}vXQ_|_~UDDGq1CH4*9#7v^BnIodnp~Zw ziYgPV8_rC9c!HghL@pV}3-B0jpbC`{>U|22mXpGK8=k#(b`@UMWkv5`QoqF#I^fw zsv+ib)3M8Lutv|hwb=rUlZJPiKUykDH`G`PU4n>S`}V^G5)nSjAPZfwuCaIFB-KnK zrvo5*C5>_>ErBkerZeojf^(ho#)n{`1I-@Z9Y1|dj=`773BFw#&W0tM*Ac}m>$ zx;cD894+H?F(NLiL4DNGcu?|K(6!m~s~9YZJWBaMQ$NJkWY?sZP&?LVobD@0wm&o^ zvXdQb#P46iZLX@)E$Y=XmDz_KNa!`R*DmDdS)a_qq0%(g2s4TBLZWcxx-B$1rrU8|xiHn+z+oOKn%CVjDnexFXv_)lbiC|Xr_AU+ zK-mbR*dJY7q_mLJRRaC)xx=P1eVNFpU;is?ntQj^_w_=D$SOn^#V+Tt*X()*E##&D z+bE%3_~X@E;!ALN-~oE{nhMH{i3jqIG*1lU+H!`(`PJdu+ry4sB*Q34rtNCS2pvMC z7pbM^3o3TpT{6btq;e)@J3jAVnF`bl(i^F9a0LBJ+5Q{cJz)n zKq9zE5ElD1zr8hwS$yAgLMzMNXl;{&z&^E*gz7$(39~~p++TUmhvn1?rw@hN6s2(! zF#-`urhaVvJDP}W;JC;Rop&Ch^>IY!N3e@G=f&i&v8e$Da>aPR-pl|#ggnGM*HIfM zs=+aLCIf!L1OUPakR{{cfPTEwRzX-j0p*wio>nLgVOjL8U5-W^f`-^BZ#ee3Zgg8a z@Zn;g$%Y7b{ox7n75R;WRrjR(V{#kBg%+IWJYEDd6>3L1G6X9}xRosZQO1ip7-4f$ zYg&-Nej6XnP4ptv#wA(XQNC8jp?F}PR5e&x(JhIEuhDaDl4^Ot|((| zy5?L4^VK5#pps196$xS0+~S$w;2YX=*yE&JfdTK_Nvh{$LN(cq@h#+vdh!t7(KomF z(bt?@&W--gs`g>kdl|uLg;m(}P~Cpnpg7gs$g_Uo3b5e3M8SFPAU2H~mo+LWu{z0x zVAexp&MiSRc zxb7ScWo=r6ms>N|7mLm<#PjnX^FwOMGkhDM#3=M9W+h?us3ulwu1OtlEF44|!+!99 z{U4FqHgIE>km%W?(exYJxa%HM|PzWm#Gi4=^VQV*ovKgYUzP8892i|gV5fy*> zt#w9sg~o&4tn=7`%-tY2yzEAr&A@1Sj#r}Dcu&i@?%gFSEx*I9vTeCZML(%WSK0Rc zR&_Wlf-DxI!yzp}gq0Adp=L^r@0|Vn>8rYir^ypC#wNJdO_PgT;+vI7?M}f!VWqi7 zkN})`;d)eVx{MmHlis^Mb44BVJRf0l0oBMtt}oA>C>B<)P8DU{L=Fg73ueJ_eQndH zy_G;6$S)$oh&9|G$C>Rw6P@1jH`CnC6J1a=x)cyMKaiRT0* z*J)KQV%cAQpHTtYb%^0u_YG^&8U?(8O>(8WPK7v|ClO2aaGc^GU{zJ2QaPH4U%njiZ&?N#0c3_=#j(WxTiu`Ru)S>U{B9PFlmt8WdbDbj%^1!>(qC3rB>b z)Fbe%=UDnrx)op)_!8Wfmyqi*LG!mHnaLDj4|Bt)P8!5UfwCrh4*EZVrovPhc|ye4 z&oVKDhAK?s=gg^P53y;<3`y=b1r$O1a38j>A2j7iR5;xNI$t7?49JulG;1*=D=l^H=;c>F|GyF0eSE85?EgFNq;$fJ_!G6PGP(OT((sO6 zg@q7-&9LV%)ksin6yht@ua9q2496UkP3<78c@c(}Ht`Dw%?p*Q#y8K*NX7HlP+m4b z@-MeinVR^8C26c@=`v){yUD%#4_|u0{7rwxMe?WDg8Pe5Qeg$!e7hpU>rr#AC)R!p zoe#uIt@7RyBO5f?9qIH_F~al=klxSPs~V2zX+@YbzeH*oJqY;Ot44L}3cAx8m|6EP znR&RtBp1A3D`>FJL|*N{(M|%Xv*f>fh8+)~ND(Jc-O<^>R#>?+C(5T97$pcz2ZNt+ktYm==6!ZLQ zNqA2YzGYseG+IB3^25Fc(>9$d9Q!rQE;$vnZ{R3$ToCY?BX_9^C}`?AU6DKy=dY~B zS1-gKc+z>cPS7cQ7OgD-h9nK1pkZs}G?SoVgR3V9yhyKVz5e2S;>QEV94sHWOwT~v zxOMQ|A9ctuZEyZ7DiV0&#jG;k8yPm$@_18sXFruZh11EtR%Cm#|XU^k95>Z3&O{7q6cA`8d1?S?Eh2XH*)Pmzl77LV7;)ux&18$y&xc(l}s*k<5I_TJX@~dn`QFH`3T_GJSf#_5} z6-p2-I&2V}k_v&NV~qPbGz`ZkeR0`k=>IJ!R!_!1O>q{AZ;rH*H{>knOZymG{OZvCOm)@+51D#=;n47m{N z8?b*dCDr1LYF2fzow+Mc55njb$gS>aX%y;>NAU#7OUOe`sKbI-5$H*5Ndsy~2 z&PWE&Dn#zeC$gO(N3fiyA#Gpe+RM~1dXU-8Fbw1N^2JxpekQ^b!%9QRT(AsSyjG;K z6e7ZR*;vUn@?0&Cv4&yI@!KN24Z3AtE-YnWnPZc**!*rxitqUYbj4XUW?GZ3jfeFsR$-uqFk(L;ztgGxfVDPyxC!98sCUB!p7hp{)!Zd7`mI)UO?9 z{A1*?C<%lTCF#smWMKkH;FuJ}{hfx*g0Y<*1JMo*zSf$eMW{s;Dd@nNAJMU@{F_j` z8VNGE{&{@z*+uF@_l1rCG*`S^P4GXLm}y>-6k=mwYem@fnBemWk)6r>%h zwuM4k76SzP%ia_2!#krA4pT6H3A<(nZyZ< zMVvTknaeAXIUaSGPmewwb?z-!c|tqSJS0e(QwoBr!5@x7@`33~0WX$$Mx_i(Mdo(& za2MiNyN?O6UNuXNE#uu* ztch@!C~c%W*b8E-)XF&RAspM6kFYzmz0h76a`8oPnOeRB1O*pm;G?;N>&B7 z5cG@Pv-eg>_8gn4X%P#hb=NVv=!!@kaf3XyQO`RTDg9x7p||E2dM1km=buCsMlK0n-=`<~hP zW@qV#HWe}|>@3wB?h@8jFB@2ZC8v&0w*3tkw)8}Wbp%kA4wG{w*>;ddD3xb&1KRVgn6rXW!&fp)&yv3st> zQvGSp65ZhXhzvpYsS<&YuFn&{EyX z>7M_&h8gA_fnCwa5y{L*NlZ#|>mKO)TeGcqiQIB*+eEf$eDx$JM%YGy)zDKh1YuKH6=*JLfuNsZ;&#s7mWhYhjhspn zB}rlD!4_d~a8m$xQdl*dYE!8B_q2auvsz+YKIw{ZTRTY#2b+{3m7d<18shb+u(HSm z#qdxpox6%xEJej?h{jB2c%-`#e*h$N6U(JXqG#+glPhMiML8d^w>N12Ap_r~k z1j#;uRMTDr%fbZfK%)L7O?fDf%pMgpKN%?jo<~yujC>neWEBmw z7i@*VAoiLZ#iqV9^H+_<0}`&f9; z5`65nzp05CZv}^x{cCnWe4|@z@ELk+W}0kx}$qoWy8-qKAd!wo6Z?FvVfWhw%@_FX)?U@)=`q>zTrwASp}UHp#Js4 z+2*bl<&@}q-glK|uJwOFk{FR$T4`%PNkXNfN7HS(u&92G6hP zMe1WYmD-uJk8gi_^9l3FCDsRdhE8lPZc|;AG&&gkCSQ2;^#+=*xAfyE>!+RSh1*UK zlcfag1wRmZq2_M%pw8+vMUR{e)vlUR@`kJ-Nu}IZ`)Cx+A6AH=RfJTaJxNO#?1A zuJpaj*k3E$I9ISrvc1mv^Dp^hoDSk5Xk%)e5#cAz3$%=Jo*fv05W9p*6RLgz@_3o` zbr}keX~_+W=ickU(NWgl*B6~t<#`5YV}rMID2`Er4PQALLw>$}`t{O*ZYjz-`M!7= z&g=@V?T|?V)aBu&?1}K7%}=b`PD*<)ZMmu+OlohfZB)|3w;#M07eScH-Lus{YsB;U zK&VgdGK8Pef6_8hV5Hb818XJTo6=|%Q$00o2G6j|C0)^|Iqh%k;ey`uxX8~Q7_g&O zD^k@RIqKqt0i>?9q$Kb*U7bKVCbs@&MonvS&Ing5kM@%skbZ;w{3$|_3V zu)m-1jtuuVIPdL27iD0Vd{Iu|Mrb1n()i&hjHY6~AjL?if=?zCDxiXW8w#;#3y&V; z)IXj>lw09pb;pO+_J)lKfiHf4@_Qal z5aV+bX2rsP>%zublNGGu4KalVW2ey3M7`vvc`Ktz5Y;e?4)$l4)dx145jDvE@*XkaXmpfY-B@VH(A z{Zcbs;x67?^fc=fK$ zX=DeB&iCr}M1=pH`YGT2sq?Cmniu*8riNcZ@{??*h} zvEekBk6mZxoRX{J#j*~IO=wS@@SU&aAWa>I#HTfkI?8va>-p~gM9^HoHqIL^bEP1p zAX%mA=uk4R)YTDM!Kv3V+Y^~sN{Cs_M3LGkYT}ucIO$3b2fXX}vNe4FiLU91->Umx zzX$U%9m492F84t90hBCK>=ouX1~#ZOxL%+V=R z{pG?;?c>_cPR{thDDetx+lIfz=U=180Vgv5LpSHqX!PKZJC|1e7QCLfL8+fQjX!$15-=rV@sw3n=EKeLeH5!mAMZ{zUv*!(H= z-_18=r-}kp?W{B!4sY-b9%t$eIR1;7a=O?$_4I*ep!3^Z+aEEn`lOJg9ws6_jR%cj#Oi@K6Vs4EeBKl^X*PCyHu?O#JiROZB5^gtDbOlFQp==5zUyGPG zd(+kdzoC(UN*-!LgP}97Rq~W_2>XeN$%DA=4=P2z3 zXNVmJZO%0YQx}GiRxC12;S;a70Ti2Fr4J*Vfq?0EGO;6_XzJpf88^)wk{yfMnA1IW zOt7PR*7&F5AXh@Mpnzs%c9LVG=W0wnzew|T=lE)cgvB2nO?~e_+}<}rlhlyC7CPb? z9&DFa>kO>1cAn#*A+9c|t7#HtNi6ZMNT=M1sNEB)q)sIHdp@<$-jW?ZZKf4sZqg0J zBEUjn$$U=WknUl>F{t*fh&OO8+f2bX58H2ho^my>u;^-T@PKNF^tvD1qBWnZ?m9kS z*BmB0qNaHdGRQIaQaDG7FfJ7+?nfS%kx5W*8DTu%ivU;5#`yN?$z#K zhAX7<>QJArs6;yySu>$sTpK%$Ep*jpe<_A8EuD`6YyBV@O?duyXQ@+KJn#}{kmqdPrVbpcyIzj%zb+sm&c4sUB*yy^Tjs5w?%%Q4Q+PZh7=r51p+h5+ z$OZ?0h#p4fWbmhrp3jCWBPutb?yjyY8Xn1ueCz>f&r9#GEf5QiQ2~rr>1NwDh6V7b z2`rEZV99-+)M1wJoTiq zOEEtmMRa-+OKX2WyVibByy0c}%L~u-_VPl#2GZU%SEwr*Yj&?NEPB7Dtw>t_kVNDQj(v@TH6#Pv4)v*$qvw~1mgk> zC!~x8OLIxKamPRTC=U_xKw}!jPZ`fs8n4U48jIHrhseVW^Ch}-TYo~aBMc=$6yYPeaV~o?@)P;xOa4inyI>bX- z2;s(&?WiW&ncYr1)zZN_-(7MzgQk@`=E-gOyy*}#J;J@4zb_?Tj?R%_dzpC$^n>LQ z5_(|c0lZa%c?#WVnurkfl25ehXX1SdzBaURyBwo_-jg{-J>H?p-aa1QA401K$}AvtZl4!;o!e2-@$&PVnRlPEHyj=Rg+1}d<7Nv`fvJkbus2Ox zoaJ^;UDlqf-GjtKqT+eEo@(&+GZ|N5;PkU}F)JhDYlC|lD^Mw?{pEcM^xAj~HF6}R z=*=%Yx~v-DDR`fm1!t`@xk;&G`2qluP=Du6TUs!aBP&-uWMpim`+1jJ`1hT*jmBlc z>6gRb(glM9Nj*U?Dp;;FbZnVTG^B(GR{g+bg(Zwu5LUfd4$G4$D{u4}xASgb_=4}n z3=NO5$V_X=jcPQF@5WV`U~sKNkPM#wZ~i}__*VCsU3nXBQx^I$M)S7Dk=0aAzM-h) z){|jjdvkM26o2!q8XZ>+fU>* zswf{DbY#`88540e_-)Gz%8$Uf#N*dLqON#4y#FSAYAaCQoGjWI+YZL3haugujmriR zN(3bdJ2Y8+*Mq5`5D9P1u#Fqr5 znqx9k7J$y>@`)30{pIHIo9BUa8mO|AFBrGwSNfw%YR9UoUXVDbUGr#3WANZ}Oqn>X z_2!?Qjay0e1Ramir6*V>0~K~4GlZY7=Oitef)w_iSCPm?gy{=0WA5)B`^^EAm_~p0 zZIl)tVC>M3e?7YdR5xT$Zr!qc@TUiP=Ga`SwNlkD4Dfp8H=&uz!D8 z6+=gph&{o3uU_vSXq%*`@X2VIk8SU6Y^>{cU3=21Suv(m^37*(H(cUlQ&wV=puOi~ ziS!|P;h?BlwQIkwmpca$z3xQ`jgtJIaiy`e?~RyGeGAw6;~ zUI~CVBX|$Z&4h6Xg3eiYhn_n*^=x1BG-a#*?DJ1xRPzkr8$d*0NECKKRX?%Mt|)=c!ZvDzqjsf z#LPY8Gldq~U!QmX_SX>=nv%FN@}82%_1b@z zy12Lk)ZUT+p{!5A(gv7cfK(a2Pw&nW%?HA+Dl8(W)}m==T^p*-?Ta8im5U28E~t%& z?^DLBT|2op`;lF?4SA`W3f2{j?P#=QT3%M(9hF%yAm{gy9nQ-Y`}(!p!p2T~Ph@ZK z746)0zpc;XPmkX{xl#1ycbh@{c*@^R`b_C&%9+8Bz{X`?Bp&wdEs**HKYH`|^rPL} zb{zyA*@3SiMq*oH3t{gBW42G2m_XYYo8nrI(%dEm&tidyQBP6v(^}heX?0)zbhZ~3 zlPJ6D%r+Nh_+F|MQA){J!tT3HoN1EML&poRUCR<6_e6U2*kRPoHla$y0s$)hYK5Hq z9^q=I5x>OO%@8x1a`uK2=HB0Cf;1SPCN}r@mvg&y$EuBP<@WMAsepHzVG81i2;D5Fi0%} z8e}C-fM;V+ynTJKYON_lugy5X{wm+|FH8$Mssxz=+`w8cc4vh!=^ku5z!{5-pb+a5 zTXtSQzqtjR?0y3W6@4J_v*(pMyRk3lcX1iP&#_OznfJ<;YCRm4QnIJ>56n*6h%v-@ zooppNB9)4Whv6rG7Ef(XT3LNAKesi|N83v}-t^&FW}EY|<{*Cy9>ht0Ob4s{I;WGP zcwQ6y+&o%_k~{2~e0T}`!@B#pqL2OrqKbe3zfwmvXK;$e_ix_-93RS$JD!;}%`xz2 z&Yg3g7_W0-pK6dJcS31W2CZ#8h+e~}hTviLV>b&86L=|bAYgI=_lAzFK`1HQY}5NE z+j_09CN$*Lz2SM+wmsbz@72kz?f85BH(jSbGwO{v-;}#dALJ>DeA^E50`Gq499c*j z2xaHaqbCvu=hu=jA?(T8^q#bqMc-D7T;iqI9xD*+yv~0XE$>)$l*llT3n#hs-|Q^L zDYkO^B!<4M#elo6@qIAVzRujLe;tk?YUE5JXxA;m&i$MV7rYktM=>hN{G`xOOZG?o zjpSu(sm>dvK?;4qLS`SFW3M!jX3tJVg)mX1*dQu_GnDKiaT;vnzypC#oxo3RG-h59 zuH-wweZ;gzogux@*f#$3*|Wi-P@n<5{BDisoS>+*K;R2RiZ4Igy5Rw!I{>ErE1;IV zdM+sc?`Au#cSG9AIl-jFu-#^7^upf*ZBNcGj%PSYj2`Xy0O0>h#7Kj%bKq}6lQI?K z0O8}mvKSx-j_akSp2!Fml(^U^^9g7{mjGy=7Kf@%I1VXSZRz+HO8wly3hC++lDVRI z#bxg2%^!CzvuV0a$;IX%C7jq5pcH|BZeUueCq8I0K!PI}NKa0CDXJWz1fzfr4*`}n>6pX0&hHTK|iLIodr^XiQf{MAtrVR}?=2S2N$KuurGtjpEX zaWdy!eoWc4&$qkR$_?UDn$-H-5Ss?2-Fh0GeZJ znDpPes6=)g$b`N!S0A*CbD`(Gq5NwHzbXyd<9#m1O%+9wyv=G-1nqg1U|#()T24U{ zKu4`<@KcRjiW+{t%SaY1#K3o-9sm!IO;W5B5^3b3E{K_1Kk695rWk$&|n4QXTC zD=pD;)Z0N@Mdcw7f8Sg^wyGP(j>li~BX;&!vdL?pRX4Dg0?ZJ4n16&hSfPKw(oa?9 z$!=88j07^^%WKE_7efOAa34AUvUP0_jg9R6dAoPxOD|U=EM};;axsXscPDrY!vt!6 z?&KJNH#~Z->kAO8$Hh5Dp>eB|G7YSS*#1}&J18-U^RYpKjokc1=o>?)0IvUT-uzeu zjI+Lk4FklA>hQkD!EoYmVdtBhCCAP+4?PM0IbR8EcON-D(KD7jeg3?(W{rV1UWVl> z_VOz_{*EB#C+OOgo;-O{&n;8X9VmBwNZjxDlFS|f<5>Vx|BKj>PZZ=geesnZ8<$_Z z(IZYw@=+m|;wGmwGFOyL#fU-qdaau+rtNlOccyeVtXx^g=v{|&*D@7rYlgB7e*Kxu z3vs*0(!5Y$cCsJ9MB$;6M$6$Xb}6P2%YrMsKqC@0rmlH zcjx6+NWbyZq);u#$}Zr-WAF>8J!JW~$d<@@&M&BhPh%$pbU8Yo9%=4^Jx}g(_%bzD z53_&OFkz@RM1?oEzWuXt1puw$o;h~-m-1LvE|~QI=d~}5DJS}!BqiQuRHNX0Tt_^2 z?}M%$f2$<#k__(-I==f9G~ybTm_WAla5b0tZDsR0F(&r?QDD`&vy(JLdrDH5#=Gf1 z?7nq$nu7#nvD1{k=;2U?(MujcbT2r>BJ}w1=JT{RPKlzk78d=ElC05F|#Ldx2xI zJr)MH>)Xe7eS|fgi+Dj~6QmYWDH`07WJ!BYtvPg>jWO7HVI#P@d$s0egJ89W6_4K* zI$bf^S^2W~>Nx!>5p+idp;v8vKGghoWFu?r$nl5oC*BH-Yy{0)qbo86qz%w^)9rG; z-rkboW2!DXWUnXvzcR4rOaP~*&*K{xx$E)Q@eH@AeMT7O8z7ow>JE-q0{RC4ccG&O zV*LQ12|V9h;9bWxUTEKb2I%L*|AIR4CJ@xy?|Th~A39(X6N;^DPrUBR=KT;`}~5V;pa?rZiR9~D(PLJdKroeqmuVdt&^Q`PH8D*vvMta`+WOE z5{>em8(u549G~{9_Wo#|(a!C^51)Sd#vK(AcHvMtNyN6?wdL}=s$(B--SVle&5(ZR zXL}QRTOGzgoeO`a+2uko+gIg#Bui-lYj5Bca|eKfDkC*wUC}4l53*l?ySW)1`N86> z)wm=2^Y&7>AQ%g*hEq-rEdSY8)q~=@unR6|kQ2Gw@5({i#+2Lu@&qtF!q<9ePQ3A` z0pO)^aAVb9F$>$K^IDM-liZ){+AVlRNDNF@sn5IaY`mTO$Ku(S>Og@<%q78@pO_0% zyOct0h|%v+cfG@2uRqOvg097&9TB~$nLW@Ao~~36#d!CEmz4R0dCt{u?+b=B2Fl?~ zNv=FjLOqq6G#kRXpxo~)d0jf=H^36QyaG9Lfgj{Zc~nr%5GBj~D=1Uc|IVwYlpd6< zc7F*YfmQgw{fu5iaJ;f1-C-Y#{5-+Bn`)EZIy$CWevZu zo7>p=`8ivC5s-?88{$?E;$kzQ13}+5&5g~-LblMLPHxWL*BgM62$)HsznuJp9iy@h zd3gUP*^y5$jmX1sZb-c(Db9_Su66kyklv^$vc`63?D9>}2i?AN2cQvZKwE*lN7ta= z&!X?vkK>OP0Af=V00usQd%@$K>G`twD7C07jr}sJo*Ys3Mti@Whegc;tjZcBJ)#Tt0+FdVJ?JJgbrjg|*h*#RLbL=ctaOZw5?%edSqGI|UbHyGbAO@o2_?I!w)feZ_xrOgS<XnyC`jc})pb}1n+L^)Y)BU@6ztjWvdMduplc1WaMC1xpVaR+>Z~W(e zo)EGy)^i4(V!i;Wm)F!v%X!DBbP?49H-n2|;+(Y~EyTGHOU7JX)n`5^K3kVOS8!`h zMlITMqwv<*gEu;!s(TT=C;P^(6bM==>%Cb;Dh$dO;ey@y)(-wzKhDMdKUA(_!nxCA zFQu!lo^jhIgi=$3maxbL5~nc1@~T#Rth!jFLt4>()jj>?gIe0eagKq*@kc(KeY|tV z#s=BirTlpN9Us~s7N70PorvE!M29wW-bt4h^sK^0=Xkyg{rLTg1cWPX39?`f*Txzs zUI3Xq`UYhaK;4$|bgyMCbPbF>B_2|#31NBUQ$^su0!6jRepd{r*UX@-!DOJtpOBQB1SEmybwZ}LYGGwtoqe%1qW+q$O&+a zTl}NkCzIU@XiUqXu^qR9Q1#rPl1gKIecx6XhvN$~PS_8eicRV68eRM)mY4WLg z6Mx+Im3~reHN)PExk&l?e%CodaGWkI`RTw>zjHNgNQ@**xLh*Yme(;V{&;L={seMj z*kOG`?#DLl;Yk^zwF$n5kBn`@9)FvEeh$5rseCjfBS{fo`ts9=>9)7nA(`l9#sg_4 zqEYb8^mIa-M6x+2*P!-&?$wYF`xeq`YXHLiU>FwRHP;oUle3hipY>@E@Tn@UZ|GVd z$vS94-AC_%r3>^CCg9|74b?R^u5~{CvknaG-p1_RIFg2(l>qaIkX^uW@<+YAFI3I_ zN;YZp$Eyp;nT0O0kdL|Z{i3nWRYd&^&g5LLxNx4lz7IUWwNUKj(}hwzSXK}_$fv-U zm!)f?6D?tnmMjb~<@ICWtukW{NvC?hI(_{tjl*d;>iCbG=Ep0=db60%lk#3yDmtf1 zSH4W&`w>~`a`UE1l|fIRETK-Yb4+M zi`_fsn_w39FD_h@sUa&MlhbneH}>6bP^s;7iJunsYP>T2qsC57g~Dj))=@$-G+(Dw zI8)VGM{-ODA+D-BUwDjPzB|p)TMlO39{FW!(Q78OCq9-Y%<(-A>L(%uJ^uQrs77pZ z9N>Y$KgkUM0w-XNX#*a)uQzwFb8M`D*KcSWf$b$Zr$xZFL9{OZd9P@6AHdvSBm+u3 z<}AmxIO0}{d=}Ywx(`Lh^|tEV{JjlOfSUl<3Rp~Sglz>i)p@T1Dfon{SxUw|p3W}7 z<>ELoKy$e0p0h<4nL3UVhhuM$7xK;9fh#e;)XjxhE&%z$Y)x&7mGi^;IaF<^+}KEF zJyDwyFgTftk&Q6s>iHLp!~65E1kh+HXM~Ws9wm*?egExuV!b8s-iE87lo&78n%1{imrfElp?=%o@JR(B^Bu%KvNH}aAa?-j zuebFZ@WQ+cJTuc@0O#}jo*RJ2)HSy-RM8C8g211JdBsN#l=7b{uK^^n&tOX4#n+2W zCXg2(S&%#EInt4k>oclrp9pSrmsam5Ysg;v3FBe5*R{d&fkvAY^*U!A3~EW{IF#QY zVuEU_y}#;|dDrjm`L>T^y-&UVlxVJgU!HpW_gdxi^OqX$)!Z2EOH4>lbAJINw)pdZ zuzhoW{{GzoH>`Mddi6C}8-H%T}Ruz~ieopUF?%_CV2g-?}o{4X(>J&n^a8HQ%{7 z_;|K9u)j@V_ut0nW=p;Mt51gJ;S zT(5S_fr4!xNB?I4)FpvIF)cjte*sF*OFi}vZ&YL`<1ZTXGoZq*U+fbFF2I=i1;+b( zfUee3x9?PtrSK&ss|8q17${{a?=Y6Cz5!A{d{@+(J{T>hK6OhTE@%;pWk=ycG~+ ziB7P5v;ygRG8mrjZTL(6!(GSO85K%M7uO?9jp6lf4-@xTUlF9Mz1{}3lPeFv9V5WwnU^Y)L zRNU2B z7pRH$89YQgS0_RF5JiTUBWgbn`2xv-kuQsOCgTkbg21&pmK?#t#fQHm=$rYeBAMZ%n6Ba~EPehgxBuUe01&E$iAXx5SekjpcO1p*9 zEZ+T>oEC(kAqFcC3#%XW_itxqihOT{CVbl;9V8G(UjJ>nto!()Zm!?-KCxs=%^hDx zb0l&8eypK5l&x0LcQ3+Y-b*p+cJ=lewA9H5iM@2jDeZ)JAX~6|kH+!}BrXOXbwHAv zu^3iSmPrg=n~&#pVYJ=8m}Fm{;^Py3dn}$}O2Lc0ku&(8CQkk-P#6Ssy4gM<)J_PRZyy~hzhS=88LWkGv^*Kq%*-P?-wgX;&547-+|gRZ+;et(Wg{*=_*qPO zmQDWftn6yL{O4F0pH8AgW?ZZHf$Lx8fh{;OD$coinDelWFa7=C2{_2fu&yFU|UIK%c=CR)us8w*>P3MC%0WUrMuHhw2df68G_M)nWc)Eg2t}*h7HJM)-S9VE% z&hFI-fq&$8_?N}kr6BNp&qXik1cR{j$aCU7c88yKYuS*sx{gVs zuTxb(Wt~X1#fOsG+sPL%5tVeN(|_c-K4QQAIz(5DsiL6=3X*wMSZns&lg@}`v);U* zG%6KwI+pu{Qm`{8ArdT3_D687aK31*FkY#KBNMS8-G?d~1Vj|B}vMVR=lI4!g6NP_()3v_FA*$0%29xt~T*IleOe0 zQS6q|>Q(k(~=pUG(nTENrsENxRN=$3nf)Bdx-$#b7~#0kMwBvyGvMP*F@x&N?$ z#~xqnH=kaEqS09J2q`;_@ax@~lGjyjnfJuh(nle8D`8v>l9C|bR6NvCv3omY8#2c? zgd4Tht3t~mK!L5%xBT6-@QdOqm_K%RuW)zL1kG_q_vgO&n1h^tyjmAh-J?g+eZl&2 zVVGW>#{SPRQ)j0Ii3(RqNW87JU=ve$r5H zdQu_Qc^S}5y-)kWyUd%N8I#K`Z0srb6Ev3q7IDlwW&Uv*8 zzFxH`oOn>oL@P6yk2OpfeIucB=fJYEx8m7T{~CIm-s>rYZWrgya*U$jbL`%-V}Nfv=#(9{yli!Sop~Peb8Dika4(q^1p-op58o z_4FwDDPHFj=08H<&>+Zr;Hz3A#9;ST_O<*U_UrJP8h_Ie{j7rmBjm&<@*3ZQzxx4q zTJi-YFW)=o{^Go6Cna6Tw1A3yOd2ioy7+^j;F}yk)e$@`!tvCZ)i75*< zPRWsn*RQSKvou>Z7&&P{D`R<+4F7 za{BNO^H~u{mA;o*ehZROP00d7vEInwuq!2hk`;q6G1Vn+3b^rp3HvxbW?B#&$s$zF z3(}cEUW9w)ekN65a><0g_k)iQMStgWRL+;EPRPW^{Wxkk&2bv)xb!F$EFgHL+Wgae z747A) z!G+9i03G~l!hDax^gp++APJamV;vNDvd+^MM@arJn8HEmAlA2EIhe&GRxqe&C(*=v z+|#qU1ExorWQVo@kO#7xUjwh7iBV<8Kjg1w&5f71E*CjgL7gQl;@yulrn3^>U_og8 zJ@~_K7^|kA&b`ZEnB|$oHhE*@LL>JsXxyxH{5I>9I4R*Ka;kokhypO1203?}a1DU&o=V9rlqOX=b@rXExd9sDLz6Hiz zR5n42|7g~aB#VReP=xV}@8)x4!6R{b6PXATf~FNcdNH?MkT@QJcuFA1gQZU2PKdY$ zl17*S8Rb2DLl32%(k@OFg-&skOAki&!h0~!f3X*67T5yb`D^hzNfS&=cWFNe5%Je# z_7^Pxm;uNPM<7u6#e{JM?S2iIL^a?opR^;V(ZSs4h8G>b&VvwuLomrAZ@~famo-b5 zZtz)-z$a7n+B|$GOCQ|zCMNQJfe9~EY2~%>JreDNyaZ2S!XNb_niT(=@}5T7hAC`j%rGYkTTjl((=KHFe$M8`6TKaV7F`*oAIeQ4%z^f7YC7-WSv1kyWplj!l0P?WYaQqofrecAla;sNCl zXuiSohH%0TQZX{E0d6bn2wtDt!%)fL>JGN(U7+&tVSfoj=nn6KEa~V_YYhwtUq#ss zu;ug+5~@3cADk zlTs9Lvy_C)m6N#rx6FsqJT& z9C-H`&*dK(R{^R{V3_H%;y$5@8Rv9GtyKv2<}>?5t*MwE^2mt?d;b#JCFss&-edx3 zlSCt?l&kYHEjIKcHniP-^0P9guIjPpbs+MLR{tdaI-!iZW49I6^*|lx+0U=f%kgSz z*UL*3?+(6Bdajo~Ysje$6cf7qbmVxv$AQ<53Uq9z4wq^##Z0S2&o3#VaG7*J2;DsO zEjUX#kGy#aQ~<|dcmk_8g4(nUf1cv^>qpsLS`B;^)s~|&V?d?h-uMXUV83+u1g9;M zq3w*A;m8!{&m$}3ntGqb2oxP@#E-hkK!A0ZLXa(Zn?ue4;%X7}cQB|?whw@5{L$5; znU2Wz1`*P?051{%Dg08@op%B#8xp_{)sX$YiCT#P`;&>+JtOC9Vy>WiX9ps+cU^z`xgfNTj{vEOW?!ViwcQR(VH&hz zq!Et&AL%oEfT@C)8;lGgFSw}>JA}v|2nlF~{{h88GUt5oa`fX@BpW2>IGYd{_s)NF zt3X*vJ*eYV{_=^hyY&RTDOsYfTr$MZ{)Ge%;aCdN^aO|f>3Yk8TP8Kn`i@d4z_frLC|5K+$wJdKH5U4Sn0D$&sd z5!GzTZ-$J|FBOtantYwW==wtc=-~0&isT<0S{apH9bD0N9N+GzuY6E$rXVJ~FZU(l zsPBEWB7-n2g7i`P9^{!Z8e>4ktnqmy!8N5R5sQ}}HvrZ7-S~`tqRfQ(ce`(N(|g+; zac{zWT%+uc+;YIR;@mGI=uB3^D`v{W=qaIze&ZtZyV-_w;b2u8TH44llj++BR0B6WhJrAk=<_ft*x22L8ZUH z-;1!Lz5|YoPr4rxQB6zP_oTU=ILXABFoj|8)@aMi*h*}7uzdYdSQtq%OQCLKD*kmL ze^SV({z>xd;xA7`KaM!)&Dq@ z!H4&b{*`C{B&5>T@Vh-kSc<{#6a*sMACsRLE_@uDDJY;$9$)l=Hlf+F7iz z-S`2mwVoJ!THfTozLqLI7r|q_&yEu^81mMsugjU8_zvx2Y%GS`IUYV5Q9cAhlc_z1 zC(k-XiVuTB10~wc*BFD46_D!}ARzvB!i)%!oIi|>_6fS$0FqKPE$-w{B(D3n-TEeT z@!g6p58nIH!t)I^Pi^gqK9uV8JTtw&CX=O0k>BC`Jm<(`AksC{yMqZh0J}UVB{q^x zJt|N@Pn9Q&hLr@T@T%0EgSU5iG5iGsM>5x_(R`INV+g@tqDduMS2LFCQe6rKr_^0P zKT>9q5!|)I!uY#O)pGH3+lJeD9J{$+Tnf;_DQ1!Ph{;GR=Ov)CsM&X-MekI8qSc(e zDOR9L`~=LKqlJT8Z-z$jk9YqP}jDSjaWsTb{E*?#4pjnQSk!v!e5_c z@`GldksE7eTD6^)I{5C{80LsYEA8F^L}tR(pSAG~OQ_O!H*bv$54J#s53;Kzi}I@ww_Mc zL!FjnZx2*&9D0l2Kgx`q=CHgzPAWP1mgWFwxdGb4@C-Z>>U|3=Y#tr>2JM75UOT1k zfJ))P>D7Ob#r+1Z^pa3Sp>6MfsF0r_6O3@w^FPNf%zJLXYB@YJs6-u5=It=} zs{pP9_YwgeQ(Y5vspMYgKO(W+_8gVWGLd@C60LV48q)?*aKJc?g)A|MBVoU*8LNJn z$vgx4SfWpM>_9f+KYcJw6NmAWWu`(Zx8R}SiB9kWme=p{pD($VdrcJIt{dL2=f!Cm)Vm(g%nKV9r#2-%$pjed8mRinE-H6DW&VQEblspLibU@Mim-4y6urR4+ zP&ajY+>1lIc046G@ZnvAtl-}rMf-~zQtm$3p0ll1CVG&f=g4qcD0`#~uRv>^9&{tk zpY$Np@AM#$7pQI1NS|0I2$~LoBpFgPHp|nvAT@2zx?bZbx%{SUzjAd3&fqGtzu;K< zxfhB0$W|(kt39LFW_G$Ooe48qCoJBOi*1j!e$HL*NWCr>t34(|q0YH*&YxhFmz&v> z5MB#A{f2hg@OKt4H)xi5h)HHTLhs_^EHHdK zk64Qdj>+XMR9PI`_A443$AM}#eH5E)ne;C6{8woB6j0Yk`PSq6Lti}qjcRYb0OC>4 zQ-hBFhykc&4S`k{v+MB;hX{%+!k&IDB6@hnJka-SdJS)9)XuM~cY1UB1Fh{*Ne08+ z_egi`D(fz9c46&0>sxC7bkWt2D~Fb=)?c*)ObG;;Qr59?c+L_x%Q%w#?>}{QSoLBv z`%@^Uv-C@^0XHOj3N0_QkMvudz(eT{sTE`=BA_}$qHTz$`8OKZWr{>LE{6wX3~N#( zBE%6QyY+Oz!x+?i@~U2>OICFF%zB1^t{D@bvI@5v^`d@!@FayGG*Ojj$_CCec>yed z8Kdw}=*eRu3=*i6Wriz->EH0y5z$#2ESq5kby7SE=T{$Wcwd!IW?5IrslT5+`{V8A zy)8kzC+>8<#}cnTqI^D`?#)*D?cR!{=P4Rq!DPJn zFCMWNazzFm+8s>~(wm=Ao9u)m#6oQz8ulz*^a}f(yv%muLX)pxTf}P0B&;zULTO`QGn!@AoiLk!-tGi z9;${|6G5%T11d-TC5m=ZF^|3>_O&|4Gd2;8m)P=O)_7l~#>nM52zL&QGEWOM%B+c{ zkF4#kQwI$o|3E8l`sAeC?-Nrr7Z57%jsiICH|K+=hA4%bUjjJmS+`qR9*Zk;Og6Gy z3;cyi5d$1wRN3k~RDJ%D33OTiFuSK=O>7pUVQo+TSm4x%OwCF?6%u>$W7p!_1B;eg zxx9_`8-fB1zr#Srajxk|A3`TmqI97IAE!2OE{~Pf{FgOY>e&1;J3{Bf#^vVl$pXpMEpci`dsdZK z_jAqo%(+A)s&FaZ;rWNTI1HY#36ST;d3+#wV-2IQvbMe>o@AH5yo*iQF{Df?(o?OL zW25vgo7dB+N)FeiNaMLt{L?uwC!B6@_PhAj{9IA8^)xYS!DG>Pb#7P0($>qx=k#RI zyFhbEz;{Vs-F?Y*Xh8V6M9aAmMTB})GQTE27j@QUQJb#g)!;z+FIXCW^rGig!`jzxAn_km&#VHw-HtY|g1qky<~n9ISzXx-^&gDDyv*kI>LhNG3Xt>1H3brp z9DfNCCv9KFp(j}(>m)q>dv+@5CdSy8o|zB zo^@JcxsG6=;s_0iOH3n#bjHbbtxp($H4n2$?RQx}sX)zFwk%^m@27v<(!gm+ zG?CPG6b23sfOPjYFWsE?0Yjqb4mSk-oe@7|%0w`NJHG`i^svVp7!|7eZmWwkG60FR zn>r{oo_==eMaCa%rAb97v5-=PTOzIHo6Am7(gS^#F>uzyG_Yi z3QQwo9;}*?h~po<9sCJ&cZ8wajJY;;AdGQ%j2rdlrx?TaG7hq&hoHz^cPv&xg@9|M z?o`r+TLxONDHthOE+&hLF1zkqSvIXo?SsohNv`ic;3r8sWTn;V0aJ@>D1$aV#{gJ; z@|$mtGBqXkn8zR(Cz7nT5)X|@k@!vbr;c)oINjn!r5h0=jtM|PEyrfM)@E2V#oqxR zkq2P+NrEe1n>A};k!UR9wY-H&^v+>#b)sIt?VjSQYvxUp6+%w;%<|@VeMw1R{3NJ#mS3-pNMJ=U~Nm%=t zV!rUNPlbWF5o#~d0-xVH`m?o18A*5eU92z3&)3WZ)qm3MTbyri2(2b-S22xl*$^yW zNiS&`Oimzx_Xb=F&DnNU_W$I3mzL#~(bSLBs-w?c0M*k%R;yJtO|8si)r>`&@0OyW zPNhi?5M*z17;nB9txqY~L?-y)`|dkunI8Lm2es4^D~6A(UCkdEI>USya9ORZ@^8O- zO|PM4s?zv1mz3K=zc4CcW>_cJES;6LjiRU;Gu2RDRHW8rYtW{w#oNim+9?1db;($D zXZFj9*O5epQO7-%tKBE}*P2rg76GL(?&V!cu{Xc0f1bcnsIB1D%38eY#^0`Us-#S? zf56ujSFIlI5C>3{%ZztNjP>(QL!qbsZ30yy2_iBlChTFqQ?1PC9-2vW$0=nfwOXLT zc}V&zbQu<(b#3;SIWSkR;ARS&l$+ZLW~HnXrJtXH`!_i5CdMd!p-eO-EGEW7dcW}| zU*Pt1)7-!58(f{Nn8V?^cSW_)0e&$}c0TL1!pL4X@7hIwrr(`3Hqq9!_xE5aZmBIc zDj~uL3_Fjg?)qh+$M}X9uat|#{3&MemM$mjFZzFNNUc_-8aKWj6aqJEWV4>V379q<5Q8_dX0j}wr8$+~6+Q|)0*QfeN_-Aur}lI4P^NPc zTj@!;mbx;9hr{0jXeF6bXv2$gDJ}nio6}w>sJstd_Q?@Ftk*5c5DNufy9poBzrmy2 z$a%p0D{}tjA@f}fvr0>=1eL(O@uE;a;eq-4C-KqjInmGZ90GC)YkC1+()Vl*bVf?- zvIw;80<9U^5sPI_y0ML9k3w8O;;J1V881~8@9YT_Rzv~f+{c;OT)9MEuofgr=fd|y&&ijI zAy&&5$2W%&mf|cpH&JKA%Z;CN;qVnPN$&`f_7`8&tu&`1QXt_2k4eWtNSjY@$DL!2eRUhLw z5F+{cY4x3@N}Pda_Q5@CF?u%gYlIFSn3j*~H#uX8O(}IdaA!V)oSh5mZ*c+@16IPh zljOC`@^KbBEt;u+41^kNhE8*MxEgUQlX2PbmX8x2#JOGO`+IM&k6vA7-W@jG7gdAR)BwOtTd><5yTargUPA{2Q^Kt+=djNs%Kql z?DN)5n}lz4IF+FKk{Xe#pW``NWW|4=_80|q|Nb5s9z#q2ihA}V{k;%uU zNp)>e@hus?a=a*8n&@&v)S%`U=QqbuR>h@tCJ%)q2PT3QN_lpElyoK3Yz=H}OgPhH zaH)@EuPJ4wr%yX|c}IEu6P&a4S<+J(%~ubUntr)oP!vA^+0!l9z;=YUH~hRgYH2x} z_4fINnmW8tBDn^=jq*C6GFxysUu+KT`Q2`KdzoKrH00fG%1RF2-ylFwB}PM|PUG4o z95e9-*0f;1XYPC$&`>^6rwWK^3aju5NTGQ&O1@hkfybqdP4z8~DfR(#cnz~YsTrR# zcU|DA#yv4sHqtGH3JsOW|0rbH^AXQ!Q&N*N(~}!)w3}MhHi?PyHXTexcC_?;^Ht42C5ooT*%TFq+N_e zI?u_-C&7E6i5UY0A#ySsL!rp5>}lj1s!)V6{}|uJ$BM-Rzw>4~rdGQzys9aO2=+vL`7A-T2{pb8^6wvqg?*CO1B}9m4d3~ zKr4QCCk2utX)fbURTQlJVnk=+SuSvx%pCf0Ia9DueBQ7eApZ2Y^djpHl|{!ydhu`Y zL$$TrE5F1C|^tOXoZz*@^9T8j;r?*BgPoUoWozCS^mfSBR^-P@<(~0W&HG zG!vY9h;#6)Y821uWC;a#-FOT=bH&V`?8r~r-OPo=xb zVK*^?Ejkxt1@5X!vE7Q-b!8$0a}NS@Um0?7SK$<@XS1sChPPeq<<)by+S!`%$U2^m zYar8vWcu878af!#94hv&j|ivIsz*1*(w?_@tt~e5(=>c>{_Q-~Z4#xJ3VEN*C2V!z z(I=M7pgSV$li#-<9cdopLwhLQ&8|0jtF~)&2XkE}BLU?BapNFDRbev|FYrOv2KEf7 z6ozqkJ7l4INi`bOhPn&xOc*=q5(=S^pp zX&I;^X-j`&_*XHR)cV&fLk!0eb6F?uHj_&~v~BNf`s{hMls@5&Nvy(R%`K}GXYg!Q z=)WtmxVGk8yt071aD0wd68tPGF#Ju;vajj_h-c}4E?%+~ghwv|Q1->G*;H&7=O7f3 zszRpzGge!3n^Qnn#RF=xTaT3@zGRBF4XQ#`uzHP&W+ZEb(xwzL%*xn(f^YYhZlBS{ zL8S5r@!G?Z82Oh|`)B&^=i~qE?AI1PEuDR9S@QsOcKFy9*pU`D zl=A6qOoe5sCfNYMHHLfV%Z!B!u(T?g^^qAbKzY^q1g+SNRp~oBWU@6solE2iHahk+ zK{MJp$wna>vlw1q%y!~l=k~HD2Wk8rOw#pZ=8y!+vOiKdLDl+wunqM9wGa!h1;tZ2 zHq84{6xG{Io%KAF_f$wJL`EPOw}`vzEIJ!E6(|0CDf(drq(ud0E#mlxflBkJ`o8tKXr}Zq7dK8_C-f|2CO>}8dr z06U9dwQXLa$K*6!M6GI?wH+CoJk1Mdscoz0JdK0n!B~xtCTelGH~dll|E%)#8Y~8y z&X=0to7>pM-^#?AtUK1KTnoOH&-i4Kr!iJsXYM(OIWOcT+1HsYE}lQLyEJzKVN*+tYyyCK~I1Qw!LG) z<9-I7;!AWZ=sj8AvS;VuIiwo}z5F<-50UQ=WVM2~TD{u18XFsjoBa zPn7!!ifHP)lGh8)TRbytO)n@43k$oJnEZU|l!RJSUSBxEuYNnXP~ID*~p zjROa#U(;RO8v`*{zuK;v+f4Vw!zxETTTNQfiaPjpno`-FFEEOV3JorB_5Je(S|7Sc z%Ya}^*Uv~37tV0*VL?Wc2?}P049=?FZ1&{e0K%}}{3=7=YfcgdMJJuAr;u`wfLYLF zi*}$ZccZ0=A4O4H(m1DOg08s7b(lRJ!6 znDl@>(@Q#_$DZAsOMgN*rIu=;=TA{AN>Qd)Q^lF?Lz#hVud<~<%kg+)xL?Jsg=A{# zRcTRk8y~;p6woSKie-3O{aR@4b$`29<#|7jb3OXy1=bv$;(o2MJs(J;WDrC@+X(1+ zmoxEw3!G>2c^I9D;Rdu2ZzU^E35xG0BH-H5eWSP#)%LL^E35 zGgN1#bNMYL9!)Yz6E;Osw1%d%gJm=}WZrXM&K<9RWLf=|glO^i0?LXDtxo?>{L?e- zs-Wi*e>2Z&3VcDz3j#l~aj&wE!PCe0qKgsEyhKnd>Y^!|QpAoizEjia-ji5=x7A#~ zblDS@JKYRNHq-zdlPsaN^3Fm7p_;it#;M z>DMa#!A11l1+mITjoZ2WaFiKMM_=Ug(DXGQt8woasgM=aJBe(P++i-YSf%4Hn z4KlB&?zN$MEspI5rf8ajpJFrSS)4#+mOrP+zCB}Q6o$H_*;e62kLYPrg?i`KvJtM$1oT_M1c<@^`e>Ifst2T9bip5o?i?`A z`B&}Eo@MQsD!4t;ECjCM8Dj70E&xw=gCkwm_+#B?=qRBd_2{)olJJPAadyBK0wVAZOizx$ ztX@PNo2-Akoq#%K?9*yb_L_zWFkt`%f$kB}(}Iy*RUWN3BjR!KOs6~k{wNeeA9nY% z2<5ynN}DAhBwFWXZ8p(8K2n^22N87t6XHCj>pK^jlwP}?X)gH4P(9rVn6r7CzqAap zPZ2W-2*U|gexl94wtqnN~JedakV!}Q3ER+z#Qpa7t=z3eT?cX(P7FKJH(C(dA zmYh!AJw5D;epp%DQp*>OdzM$=$IV;mAXo$qU>NT_*S^kDnwO7pnJ*@G7DT4fuPDkJ zKmQn}P(l7iZiwe6f8v^RdFRQ+r{BS^yDB#xts5Lsk9ypnqGYC{+~*T=@ITl0axHjA zC173}(6h!Nw+@zC5WR6NBd>AltMrT;ZPwe5-gh-hb%I;$=-}@5AR+xuZ@1lkWiGBI zX{vme;#k1%ck%f4A~N%Q?YS9iwr*Tky|D1NaWdApDhl;c6E3-!T0<}}_lf_MgLg*z zGfq+}Z2zrMjS|$6RVBDwFUshUWSJR`_@W^F1l5lqc4?+>7I?Eqw+#lb-t1?Cnyvhy z#B^eril3zU8w1zB!v@&n)f2GJ`~@1}_A7&vQK>yZ6O&7AXh;VM7ol`ca!`Ks zci-XTowA3_oa>Z+qZdDP2{VD)?aHEXyb)s+vontikM7NW`GtuCL-bsmz3YnfNE=%_ zM}n$si+UN!v=3MA`+<#53Ql+yl!EyF)NwY~ZVOyo1N4f%};$1z@5K^A8H@~6%wtqFzb^L{&f=#stzsXiPi1){jK$F)l+^C=e=E}9PK|^2USVJe>JMW7iD20+|6#kaB69- z^_h2hh3?oY3t9M?B+M%#_a0xj4#ssOtL-WvCW*G?uvgyOsRV6eM@Y zTU(NI=i#h@3ajBgFfO%t!Jk4~57F3c@H*Ybk=T?1dw48t?kZ_^b<}~db9Lv}`5AHn zn8*UB%`vyT?q=fjOg-nT5zXNgF{tJK{6?DyQl=NtdM7~XyOm&Z%PL%;d>3RKLYFY# zSjEvOX_2`*s%zgEth7DPgKQs0N(%4KkPk;TJ97c!_7HoTEx(9}?OHOBL##E>;uWmB2nLz1*MQhT zjFbOsPGWBYRr(pIORu6p3e{u}Ru!!Xg;KJpl#0N8GfZk{zpI=j0!6YhmUw=BuD^Ca zY@zBbEW}Hm6Yfwa#TKu8y%vkLv4Z`JG(}|1m-Dyeh-9`?ny4aSEfi982Yo^DD!*IiEld}o% z4(;3WC*K>zw0+JY5FRo5c;oll($>FU<`21S`I}P(f=Ypy+cNNLEl$yiA92A?$VH$+ zRKS-d8!||pSo=2nP4(n0oO3rlH&Le~|8o$HBwl}$+F6_^DFV;)-BmqL(?CKoLS?ZP znQE@9suC?+zqM++wFy}&8l66j(zLJgm_nVas6-i@76coL`(DxRPe0M83Ua`N_M<*l z$PHMAI!AYP5EZDkB%DE)#H=& zE`lZX&WpFU!X}C-oC)L=pKo-P9CsBc?fwYoVeZfL2Q$nL%WqF{3oyj8Bu4RuHK|Eb zFSwSKETStP`v|~bjjTuJohqyCm3OG#Q;70j*0Gl*T)$yY(4@8SN?Ov9_$DUU)p zr9KZG@OZ6y!fp`$x0Xl%d0ZWO!0}+v2YgA#K=9Vm%`=Q@}xQ-n&Ib zr|GQ)u>e^Ve*9X*Kh`Dizh9Ub6Fc9lc1RIXH&Gl5fBllEIb5{be9rlD{i^ha#@6oy zD#H3ZoNls{fhAHp>UpUxlXpbm5Tsk=0dNO%uv8>L%!UylQos`gQ7P+q@e#rqxzZ6p zGUYZ5F}(bn#E(M?@zmlhrBk>+keAN$qH+|KE3k{Mw{$?;(vtok9X7NgUD8LiKi46O zJ~WU==@Yr*TPj}vp&;^!cTApcdE4JRnd6tduIP!qj}#f3m;BP~8ur&tHhsy)+~*}x zjKZp!tu8JIZwH39<#C%)6l(kZd2D)AQ3cLLr==?@7xrwqdo=)#^Z6jpr@p#aWMulm zU&xA;dETxr5k+4>k6yO`8_UK-t*Bu5*(Uhk4J3s8t2~>%1V57 zP&{LOnim$I6_^=~CmR_}g*1z#n@<83>_0^Xu8$#Jl<(`M?sQ=_aa%$Qh(7ta#_S zH4wrp3_b8^f&Id*x|3gRmhcWMUB&F_{oC!1OA_^*wr9mim0x9l6S6*y=@VN0dRl*; zqdJdH@VHupZs$5hYNI{L5^fxIFNqdfxBI#-mModm92PV1ZsQ~L3Ix`H+U}+oSTQY0 z)Y-CfddvFZ*|tK>chhP+<}f(L2U)T)3xOFPp|5l*xjwD}#>^9Jt7h$QNR?WgtScvz zrMFX5Q*qrmQmVA2EXncWw54iR1u-r7s(y?YD-K%I$T4N+jMmEvzAM`A&>oas=8N`J zqNrX}D2yB|Cm*a>_%Jy8^+bAmJ`_>#l$2u+Z2$QT=`Q}wKVeVF*RY<(ij^}ze!O0o z7e>r(dCw9XCrLeA&c0M6Qbb?gBK9fv5^+fq@~c@uzkPPxima^j!>Lr_DU#N`#*M#8 zJ=dk$t*?*Op}Bx3vYkH7`j+3XwFr`j8Xu2*8i=Gee%a~_d5EPgMq6dHfbAoVbX-*% zVinO8p-mAtRB%~wDQ%fmDX(W#`=I`OdcPEHUja2YO#KS~P&>0xtNcc^vDdO?B;=Hs zkj;73bckq_CdF*-bzClWi=x#4{^rry=-0U+h35uNDN_1}vqMS;sj_R4#H|)CK4wm* zn_Ub7h>e~6eQiEL3Bluuqnt9Tg=$n^LjgM{V#yPAspv1jUmIdGz1H2W<&D{$$9<4d zz+TYXdnNpIPgU5xwxj51fl>JK2l2_PKfn5|{0;=@HJ`O17Mnkmc`qhy7&z(h#J8kV zkg$(pw>G+!`HqFGX;P+E^**SSOCpGi!zDkHY933Cc=0EYJ>W(+#o*kcu-2VrowFeQ z7^rZU5dv^In!j(@%$rz~McIz_gUGNF<><&qnYEObY^8-?N%)Sv_+2b!d)mXoSUFO# zh%7m!jMzKB_Fwl4t*O&hFKO~OF{zr$dz$l}t;>xCZBT&%5fNxSGsEOXW z&O;>?iuf4*Ebai?DRex;b&nYZo?Bn`a3BVGfX2&v<{>{`sh?WUdE=Q!>wn0)R1HsK z^p85jK1uRx7|D0mJg7%jc{*$L^ru%^LG7Zio9Q)6?PXLDx@EXSChgs|^IkCnlMX56lRp?3=Z z^gCzbiGs+(Y&c}M?5p};4S^!L33d70e?=~Akl!u3Mfo}mg^?GM1_wd%K^g&U?9==e-~EeM$|OWP2EVVWYJT-$X+`l&z2&u*!PCnad1C5p_Z8|?5$z7 zg-N(w{TwnjT6D7=vwqrSNRY*JYDwTIC+*;_Yhr5NeV_P)p6|+LxAliKgM<{VXBIIf z;a+Cf`#Oc{^1K7FThjMSnAlMAWiOb~b|b^Hsw8^9itC|*rG`v=F zWQhqy5A_;gD|lcJ37C`p!E4Q?g~|Tdl`9s)l__13+^X&R|Gux%J?be7#r4169cldZ zW>%K5F?#Yr^s1(aq{)0Pr-K=(MEN@*oxAsC-#+emEJ@XCwesuk_z0nvfdLazHK%Zo zY2(m${%Ao^)&)*|G&cQ=DPlAQ6YapgsMZQdtbj~aC3~^YO9pmRO4E$V0)x2AUPv3~JP0deh zWBO|o!&>BUlAmUu3Z~`aw`sx-3)uK75_@8Ot$TKQstq1BQ`w6nADo|UB{$xyeQvRH z^Jo!SXp=TO-QRtav+CS{VIOeEk7`n6Kc~qu5by#+dw0Y7mAEnL$C|%4bTSz+s1EcK z(RVT8%P-)Bd2B}=*YGw}39lhqQK>}y3^lf@lLFT~KLDoeNWp6pOI{!h)&yk|E z|0p<-94)oUbb}UN8na&K(zN7Fh~xP&y)Sq|{yq|uZCzz_6js>eE}9v~;91_BYP)r{ z&(V%BWB)AWB%B3FQ-zcR}q3SjfL83zE*_x+&&(zp)sB@Xg%YEOI=61fdDkUe3keP|B5!fxwtKn?f zpR?mTUCBwZZGu(JJjKeFoh+f&zV1WqM5>Hr2?z>7B`hO|$NLHEM?^O8(^QqtCexn% z^sF-%u(&_UT5Qn#WI%onl*~)#t>-`vT>}$rm6#7+=4%RNa@fTsM#9<5i7}2ZbLUzH z(Q{~3HYqOh68>U275S%M1d!sG8cVF2OXEN`o&)Q94O?SLSip08ezj5FY7-uon5J5u zA}Pr4Zk=_i`OCRl(q3HTrl6T3-K|4t>Y09xR~0Ih8Yllx;)ijiCuEW!IJVyU?r{fL zirjY2x|;XhlN`#VV~@F}c}%WgMq>5T$*p|*9>v%jmAw{)eiN<)D+N|AXQqCW`z1X; zU512iKI5oX*f?G_#}&GyHKE>T3H#@i)=L=K+U{q#>vrHD4A6sBuf-)Y7i1ApHI7%%t$Ys$N5;OB}R^@KY^FuaDU$G53?Nw%q`4iWj zwhN7;u3PM9Vqr?;`oH$R{GF|}ZTo3yNoVqeswzzrDyY^xR1rgy5HyJ)?5eGX2BC(~ zO|h#JHIztHOr1$=n-d{_bLR3y$x|K!E{X$g|c3PACZh zTy|>A=IrBTJ#4D}pHOT17+#{_-vF}5 za$U)aQzwVz(*33_T?=3;ayV#1Ny?J(z<=5-{n9UUV|+c!uD}-6FE3lkKwb|7TlWH4 zIUo7i&MoLxWKcjZ`BS(E8-Mm6=;FwFSS93h4K&c`_NJE{fmbcv4{QY5~2JuS7xB7Ieifoad;!C%!%7b&06396#3 zviQ-3Qfw+n4sgNxv|bfT?8Z@*Ah1#{VwZ~npTc!%FCMZvlo7Y)Kz$Rgv{Kb`qynaH z_|xNvUzSwqX^I30OV!9tlHpCC1XYj~TQxY#SFqgDDSw912eb>8N?@EjMCUiJMD7rD z^oFT^r;UvbGHak;!?>M|&QQp?+<|Otys@4lxGM;w-B(8ZaVY)y5f-4OgWI-s^~=~9 zX$FVZe0Ygj`vW{Q?_=he$qVmg-~f8YtPI6K=eTh{T?_lN0Tj%+p8KWJTJvoD zHZh?#VS&5%fxh3soIs7+@(D%vTRr02@L6sh5TE3E=#3s%bcWkN`tD5D{rGUK^T_g! zgB}Lja9-e~92(>vWM^(kWv1Fbz4mo7c)`#D%nxcb^6iy$SfyerYEFUNleG{Tk*Dh| zaxHV6Z89_BR5_5)ayQEXN`NpBCjH|`dO{NE1O*W9C!jdNx==Pd(yuC2r1 z`a*!=r-1Q^WA$@Q=AX8zW25|E4||0s>Ru30m5Od`h|+4zqr2(*ArD;7%{YLmv~{}M zA*9RgYa2|L7z}eSlq_46?NnsCsJQIXe7qAzLpld2rOLwO&No0^5HdI*Z~c66=7-gX z<#QJWSY`!Nh+M452p}OJ`z=-NFvi7T_!R$rg`E^0z0A@BAd|Qq6N6nn+{24Sv!}Fe zUuz?fkBRf8)gaC_CpJB&XAfY=`S{l&v#+>E`~mGgS3@cU+p%PSUsE*wb8O_j;=b8ITM2|JBd$;(4OgX`C*R=n zb#W2p=KY_SWTOz*wJOwE^C4b`9CLYb2`-+kpX2n{_5)l2&SAfB&L=dlzD=_VBFmae zzB8bAzQcOv>^&U=0I?CT^vWbST1y$wS5vJ~%UOBH`XN&{Hhxnf$wI4kpUZ}{l|BpN za7u_@h#gD{9O#{-7?wkk2Ls|}6l^UXJ$^u&!wM=F zT=XPiCQ>9zQCo{=v_1x+z9gG@^5bR&`n2GAK9hy#f#mESm_FC*6=K}Sr!DAetKtA;ps zg#kY;ops)A6|Z+D_nFK&&Y1t}2dz=a`IUw{OFewJxwY|$+M5sigi(*kQUm%PHBfbsMLuqGd=76y$wIX7j$z(=gjzD2%& zQT1U@ro5gTL*2dI_rlkzpmW5}J*c*eX`Lts-*9%%`UR2jgeT-S4J@+Hj-jk9?t2)ZtZX0eD-ov!d6m|y2y94@1{Aod zwGqSAjoutydu{xg9&zW&etqYb%P`_oRYUzBGy&6EF&IX;_oliG#os-NuSqnw%mh`y zA<`;{k0r+&LKw?oh!}0@sAID}@6z_j=GF=kWe*zRtD;NTs&gx*e5#!pzQFuH0HG~z z-EzIjoKAU~{9-Z3IQQ%T>UKccTOf+gU1j#d_rrsy6YLsh_g+Er<-`}Yio=#4HL=zm z`c;0e)kBo(VPVhc4B157q2&qp#p*gD*d>Kwsl8W}Pg|LdZvMt;F72F7Ep%9B{q}6r zw0;%WTIuQL*@_nCX`?nU$j4|gkua!RyqQu0Vi=$)gHJRnz0Z@A_J+FvdANbh)fxO( z1pQmv<$A;+p`a*0WFgSYY_MkX4X_ouT-`iokpo!maZJ%Uq7C7SwN(4&z0fB`$`!6~ ziKT2xC`H8#5Q;42v+&ZY)3_l|D4LBbHZ^`&6<7S%X%p&?K%ltAIn9#=sYqKmtB$8f zczw$8pdzqQ6%Q|sYCIlFKHgPl^s3S9bF+gfSL!DenTvbDXktWs9VH_!G)Eu9xwTU1 z{=$$?DPdNmeyVnHM!3N^p>3GD%KJAq$%?^N+J#DB4SR;Fr233KV|s{bo(av&cp&lF z9aGgbeMmNNA{%?uV~aNbi^^H@mCE($L0;$3Y^{;k8Mx=?w26^X>_{k=p^}fKUC5+5 zGm?DpM`sbccr5b8cY$Eip<-c53=Tr0PTUE7yA<}lcj^QI@1mk3O5Jsm=gH)A^Ggz~ zUENi5^O2>f-BB1neQg#lyd?v5zzd?RKXjqm74}9@lqedh79I_`k7RUD=~!Nl2lCAc zgk4HF8!FpLmR=d0)*DqJ4#?)<;G#3S42Qz*EN0#kZ@xSNGR)A>1Cd_Na;_jBG$%};bb zmm}v6mND5D4vY*kC^#F0Jb*!-?VphaIen-3dow~un+i;V9}2-fHHh83!1lcXdH#*7 z&Fu?tn^-rv5djrKLejiE`fCt~aH&(mQ4i!!X=EKrs}Mkkz|VnjyId=*_>3WPfT@#q z$+e<-iQ`Gma8T=43hgQiQsLZHLoOMD9}2=ucRANRLzhFy=q|9_w^zKs2u_lVrayoC zaQ*Du#OdSh>zx+*eG!UbJvD6Rn?Nw$6%L~aiv`SNPVY=UsR`fi&oRbL;+=}pA;&Yz zbrrQA26Pv>8deU*7rpwOVtE$`xC7=J==mr?EUU|F+GQ)^Afbntj52m?JFa`;>o~l+ zSMmi5{#q61*KiTQ1Q8bc6dDAr$ugeaD4e%jxsHnASP`g}ev_Vk{!yoQ2Ak8U82cd? zwWeBqW}m&gjm(jB%S&Ze>eo-mzZDq{#^v6+A-EIJCYN|AnC4#u;}*MXOa;{yn0T&5 zwu1{V+8838%#9wF}9ZtdzUIMzIU5oN4kQu_U_u5ynSj~+BbkFvtJhnrjG75$7% z*%j(uH`EtM)+2vyqjm)vVcj3>>$7J$GHlAjh_Ojjim84`e*>(X>I$C1ot+`34Wden zsKRQ90`aL%CRJ`XGPhp64z=KeizzbNaR_+?(Zz(8Z8Bq1wa2dUTVG>13-E*m9=+!; zU7))Wsk;dI1*?sbReKrd`o|#+!CDUolyT>RDA6Pn`8VW;$p~Q@$EOp3%)Kz{A!g~flfvU zm4;f!S*LKKwUR_$^Up>k9HuMSBcXu+1n!I3961=We0;$ZAa8tw;@HJXtNQgCiSELM zz6!hNYVp-1cre2QQ^$+@tZV!S1p&{_#X~K*x3#+HHO4#Ir_FAV5oX6T_x-gkn^;pv z9~>z`SvxlrL}JkyosRXgY+X$M7bE+j!4PR8qt7EF6hr`%Z|Q^O(zJAZi!eh$iE7+t zK~}`&zCRq(KuY2QP>mwF#M5JFJl(|8D2yFfK~8;=i^9hL*yV&Iqn0K=;H+(TWdCG7 zI@jF;Vkca{e+LU8YlgOk$(<<1?T zCTY@65l}J8d|#l8uW~&CS$a~+Y?`P>i^l|7O5HfJ>+QU7CE*ECnH0lOmbZ6X)K@Fv zYLOSIUR3z4Q^@y$FuC-DQy%pNk++#RpD6w)QW`?N^;;lVF8Z6eFwx7TElOD#(vdC2 zO*Doa&~39fK_>U)DRL=I7s@#>qOUPxzf;LnGXtPqcI-{DA6q=#e~gTWjy8r|g2LZ1 z-P;O;oVbH15yzZS^MtP~8xvlj)%5kn=Cs5#9`7+lMhnj~F8rwpR3k3#6|GE{PdzP1 zilcn9Kh^cjyQ{G2oQt!i2ECJ`Np}FOzDjtft^&V)WVP&<8LEZftKUJq=JSG%j()tW z8lftY&>1!f|Gp+OQMhSfq_K7)YniY}X z;#^5DWBR(<_`M4>_S)9(-Up0oNCeK->g5^bYK}R5)6>yIpU%7S!6Ug^)skv<=1ktT zv{!-CGTRt@Kz0w8G|kl)CVM97v-9mv6KJQQNyFh6iu$I5h(ICFsme z^SRk5Ut?6;cn?f!(px)FL{_XH;hG>zJ#})-+GQf6VtUZLo(ThEJl_Wc-0pPTJvk*fBdxg-KLLRtQq<=-F9^LyWxeIE zkT=qSNWA*4qN=og7zZVtXGHPBwh-uU$d{p%TyRuHjMycQW$|rJ%EALm{acjFA%GVo zQ(UUiGCw8KN zpysq!dSv2#W@_rghC(C0usY#~=WB|-_OrAxdpk&`$r^0y!$40(Y)yU-xF~VC>o}5M z{-HEp#Py!r{3)ny)CqHlaU{n8oDm(Qkx_0 z^j)v!U(vSH`fMU+N;(&~c_~T`$doN7kqo?xdRE`aW>o$Vq(yB|XIuTCuq7iHw3!+e z*zRfm`s(OavU!H_#Uo>h$ag7g13A%T1BzV=s7^poy)G*@sBMqG%r$gPd?Z*lvEe*BRt8A`=_Qyq8 zH7QhbZU5}**dAOf82|HoV@@xvWiJ1cuz$+7YWvIe^xR~A9*Zpv0vvklNA3zTj%o{FxTq->$8Nu zd$G|xy{zc~6SSi!8n%CJJo^3Q-qeD`7SedD`uxgYGmP<^g0G@8BCYL*7E;7o?S}UK zloUZz!$>%a5qCZ(LjcGi2F#(2qMc;;pD1d)-u`%GyNobAzI_*L#9h3CK280xFEsLBqlnHA z&LRSfGm+q&Ix89Uiz?oHx%PUH(V#94cXPkB#rNlEZ>u6}`2iD>+|dOyXhn15yW zJR+sz+_lSCu4#aJS>Cl_yNM=XdYrqM>H9fBFMKU5?k4Yz-KgB#>Jy+i!?jx>*>)2+ zt2Ue9ZLb?q#z(?jVQTllQvW)$nBnY>ONoQ)gs|7yCKYKJaraZy{aq5W@$|ADg>%Fq ze_fal;o#x(FRg;6I%cvaf(Q2K}4NEJ67p}22kyMj5gWm z6*-6c@>pLW*b<0YLO~oZxT}(BW}rs*?)Ed`FS7~)VC8N*WgWtblpRx?AtW5!TlvZ( zjMUe)ou4S<5gg25H&A@oVZtN+_h-{)g;TV~z9ab2Us$C}{wZrRJ$>k`dRC5X=eQ;w z8Nyldw=?(7S$&(iCm4u~jddcNGT>nUFmf&pC&IS;iB0J0lE^yT$x4xsQkuEqiZzZ) zQY$M;`GK5)+NUO)mo491ezCH6R9C1m_(;KKlM}TaBiWd<-g@Ib{>v5vXJJB$W6yuD z@0f_*9xvXxB`u8+R>oMcmzK#1iz`oOv}?B=N|x6XPQCck7W=Rv;O5Nr6;;k$T?B8b z&uTffqoQTtnWj&afcsE7zO?daW6t;bhyK3xPuA?K`X`rdoRcew3CW|;I_7E{)op*& zER}6X>3DGZ6-kS4%*KA{*XfXE67T&OtzGXlKV|c!l4P58R0G!jAUT=zoDI>rkI0z% zb?9d&**ayg%|1wJum#KzWs*qVdnDo!`sy5YLW8KKLv?(lPCpB9lU;p(GR{%lQjSe=K_Bmc)%Nd6WNA zU>GbTEV3X8@9$wlo*YQnrDwZTK76mSeuOC5t-~rBp1T~bfMq$Dr~bWZ?ThQ{vYHr? zW{BD|nc_U^D66_&sZGC9Yp?(fD(|6^tw0_>KS|0U8Yijt{Rm9Lhe3BLvsn-~2-@*m zc=_D@>&2+=tCp?X2X6k@h&dW#j=fu_`~9xZw!ybp)uW0Y$N5Jociw&J06xs4edcG1 zx3!LH&ddsn!m8X1UH3n-zR;0sb^EE<-ac= z$ZgGUyBh!Jf^hQs4uk*P1VJ9zbIH!-e;&E>o9e*-K3(zWKezugGXH?!AM^Of6a3>N o>HmP>9}xWi1cKv-)z&-yRVw;4u70!Y=)YtK(#g%S79NoHU)coTC;$Ke literal 0 HcmV?d00001 diff --git a/public/counter.js b/public/counter.js new file mode 100644 index 0000000..1e5b422 --- /dev/null +++ b/public/counter.js @@ -0,0 +1,19 @@ +// counter.js +// import React from "react"; +(function () { + class counter { + translations = { + en: { + testMessage: "Hello", + }, + fr: { + testMessage: "Bonjour", + }, + }; + } + + + // export this package + window.packages = window.packages || {}; + window.packages.counter = counter; +})(); \ No newline at end of file diff --git a/public/counter.ts b/public/counter.ts new file mode 100644 index 0000000..e69de29 diff --git a/public/datat(52)my_config2.json b/public/datat(52)my_config2.json new file mode 100644 index 0000000..6251911 --- /dev/null +++ b/public/datat(52)my_config2.json @@ -0,0 +1 @@ +{"map":{"basemapOptions":{"id":"transport","shaded":true,"labeled":true},"interaction":"dynamic","viewSettings":{"center":[-106,60],"enableRotation":true,"extent":[2,2,2,2],"projection":3978,"rotation":0,"zoom":12},"extraOptions":{}},"theme":"dark","appBar":{"about":{}},"navBar":["zoom","fullscreen","fullextent"],"components":["app-bar","nav-bar","overview-map","north-arrow"],"corePackages":["basemap-panel","layers-panel","details-panel","geolocator-panel"],"externalPackages":{"keys":"https://geocore.api.geo.ca"},"serviceUrls":{"keys":"https://geocore.api.geo.ca"},"suportedLanguages":["en-CA","fr-CA"]} \ No newline at end of file diff --git a/public/energy.json b/public/energy.json new file mode 100644 index 0000000..e8a4a53 --- /dev/null +++ b/public/energy.json @@ -0,0 +1,36 @@ +{ + "map": { + "interaction": "static", + "viewSettings": { + "zoom": 4, + "center": [-100, 60], + "projection": 3857 + }, + "basemapOptions": { + "basemapId": "transport", + "shaded": false, + "labeled": true + }, + "listOfGeoviewLayerConfig": [ + + { + "geoviewLayerId": "esriDynamicLYR2", + "geoviewLayerName": { + "en": "Energy", + "fr": "Energy" + }, + "metadataAccessPath": { + "en": "https://maps-cartes.ec.gc.ca/arcgis/rest/services/CESI/MapServer", + "fr": "https://maps-cartes.ec.gc.ca/arcgis/rest/services/CESI/MapServer" + }, + "geoviewLayerType": "esriDynamic", + "listOfLayerEntryConfig": [{ "layerId": "0" }, { "layerId": "6" }] + } + + ] + }, + "theme": "dark", + "components": ["footer-bar"], + "corePackages": [], + "suportedLanguages": ["en"] +} \ No newline at end of file diff --git a/public/firstnation.json b/public/firstnation.json new file mode 100644 index 0000000..e81f10b --- /dev/null +++ b/public/firstnation.json @@ -0,0 +1,34 @@ +{ + "map": { + "interaction": "static", + "viewSettings": { + "zoom": 4, + "center": [-100, 60], + "projection": 3857 + }, + "basemapOptions": { + "basemapId": "transport", + "shaded": false, + "labeled": true + }, + "listOfGeoviewLayerConfig": [ + { + "geoviewLayerId": "wmsLYR1", + "geoviewLayerName": { + "en": "Première Nation / First Nation", + "fr": "Première Nation / First Nation" + }, + "metadataAccessPath": { + "en": "https://services.aadnc-aandc.gc.ca/geomatics/services/Donnees_Ouvertes-Open_Data/Premiere_Nation_First_Nation/MapServer/WMSServer", + "fr": "https://services.aadnc-aandc.gc.ca/geomatics/services/Donnees_Ouvertes-Open_Data/Premiere_Nation_First_Nation/MapServer/WMSServer" + }, + "geoviewLayerType": "ogcWms", + "listOfLayerEntryConfig": [{ "layerId": "0" }] + } + ] + }, + "theme": "dark", + "components": ["footer-bar"], + "corePackages": [], + "suportedLanguages": ["en"] +} \ No newline at end of file diff --git a/public/index.html b/public/index.html index f478e83..e0e1ed5 100644 --- a/public/index.html +++ b/public/index.html @@ -10,12 +10,15 @@ content="Web site created using create-react-app" /> + + - + NRCan Internal Application - - - -

+ + // + + +
+
+ +
+ + + + + + + + + + + + + diff --git a/public/my-config - Copy.json b/public/my-config - Copy.json new file mode 100644 index 0000000..d760be5 --- /dev/null +++ b/public/my-config - Copy.json @@ -0,0 +1,73 @@ +{ + "map": { + "interaction": "static", + "viewSettings": { + "zoom": 4, + "center": [-100, 60], + "projection": 3857 + }, + "basemapOptions": { + "basemapId": "transport", + "shaded": false, + "labeled": true + }, + "listOfGeoviewLayerConfig": [ + { + "geoviewLayerId": "wmsLYR1", + "geoviewLayerName": { + "en": "Première Nation / First Nation", + "fr": "Première Nation / First Nation" + }, + "metadataAccessPath": { + "en": "https://services.aadnc-aandc.gc.ca/geomatics/services/Donnees_Ouvertes-Open_Data/Premiere_Nation_First_Nation/MapServer/WMSServer", + "fr": "https://services.aadnc-aandc.gc.ca/geomatics/services/Donnees_Ouvertes-Open_Data/Premiere_Nation_First_Nation/MapServer/WMSServer" + }, + "geoviewLayerType": "ogcWms", + "listOfLayerEntryConfig": [{ "layerId": "0" }] + }, + { + "geoviewLayerId": "esriDynamicLYR2", + "geoviewLayerName": { + "en": "Energy", + "fr": "Energy" + }, + "metadataAccessPath": { + "en": "https://maps-cartes.ec.gc.ca/arcgis/rest/services/CESI/MapServer", + "fr": "https://maps-cartes.ec.gc.ca/arcgis/rest/services/CESI/MapServer" + }, + "geoviewLayerType": "esriDynamic", + "listOfLayerEntryConfig": [{ "layerId": "0" }, { "layerId": "6" }] + }, + { + "geoviewLayerId": "geojsonLYR4", + "geoviewLayerName": { + "en": "GeoJSON Line", + "fr": "GeoJSON Line" + }, + "metadataAccessPath": { + "en": "./geojson/metadata.json", + "fr": "./geojson/metadata.json" + }, + "geoviewLayerType": "GeoJSON", + "listOfLayerEntryConfig": [{ "layerId": "points.json" }, { "layerId": "lines.json" }, { "layerId": "polygons.json" }] + }, + { + "geoviewLayerId": "wmsLYR7", + "geoviewLayerName": { + "en": "Geomet", + "fr": "Geomet" + }, + "metadataAccessPath": { + "en": "https://geo.weather.gc.ca/geomet", + "fr": "https://geo.weather.gc.ca/geomet" + }, + "geoviewLayerType": "ogcWms", + "listOfLayerEntryConfig": [{ "layerId": "RAQDPS-FW.CE_PM2.5-DIFF-YAvg" }] + } + ] + }, + "theme": "dark", + "components": ["footer-bar"], + "corePackages": [], + "suportedLanguages": ["en"] +} \ No newline at end of file diff --git a/public/my-config.json b/public/my-config.json new file mode 100644 index 0000000..d760be5 --- /dev/null +++ b/public/my-config.json @@ -0,0 +1,73 @@ +{ + "map": { + "interaction": "static", + "viewSettings": { + "zoom": 4, + "center": [-100, 60], + "projection": 3857 + }, + "basemapOptions": { + "basemapId": "transport", + "shaded": false, + "labeled": true + }, + "listOfGeoviewLayerConfig": [ + { + "geoviewLayerId": "wmsLYR1", + "geoviewLayerName": { + "en": "Première Nation / First Nation", + "fr": "Première Nation / First Nation" + }, + "metadataAccessPath": { + "en": "https://services.aadnc-aandc.gc.ca/geomatics/services/Donnees_Ouvertes-Open_Data/Premiere_Nation_First_Nation/MapServer/WMSServer", + "fr": "https://services.aadnc-aandc.gc.ca/geomatics/services/Donnees_Ouvertes-Open_Data/Premiere_Nation_First_Nation/MapServer/WMSServer" + }, + "geoviewLayerType": "ogcWms", + "listOfLayerEntryConfig": [{ "layerId": "0" }] + }, + { + "geoviewLayerId": "esriDynamicLYR2", + "geoviewLayerName": { + "en": "Energy", + "fr": "Energy" + }, + "metadataAccessPath": { + "en": "https://maps-cartes.ec.gc.ca/arcgis/rest/services/CESI/MapServer", + "fr": "https://maps-cartes.ec.gc.ca/arcgis/rest/services/CESI/MapServer" + }, + "geoviewLayerType": "esriDynamic", + "listOfLayerEntryConfig": [{ "layerId": "0" }, { "layerId": "6" }] + }, + { + "geoviewLayerId": "geojsonLYR4", + "geoviewLayerName": { + "en": "GeoJSON Line", + "fr": "GeoJSON Line" + }, + "metadataAccessPath": { + "en": "./geojson/metadata.json", + "fr": "./geojson/metadata.json" + }, + "geoviewLayerType": "GeoJSON", + "listOfLayerEntryConfig": [{ "layerId": "points.json" }, { "layerId": "lines.json" }, { "layerId": "polygons.json" }] + }, + { + "geoviewLayerId": "wmsLYR7", + "geoviewLayerName": { + "en": "Geomet", + "fr": "Geomet" + }, + "metadataAccessPath": { + "en": "https://geo.weather.gc.ca/geomet", + "fr": "https://geo.weather.gc.ca/geomet" + }, + "geoviewLayerType": "ogcWms", + "listOfLayerEntryConfig": [{ "layerId": "RAQDPS-FW.CE_PM2.5-DIFF-YAvg" }] + } + ] + }, + "theme": "dark", + "components": ["footer-bar"], + "corePackages": [], + "suportedLanguages": ["en"] +} \ No newline at end of file diff --git a/public/weatherGeomet.json b/public/weatherGeomet.json new file mode 100644 index 0000000..5bad11b --- /dev/null +++ b/public/weatherGeomet.json @@ -0,0 +1,34 @@ +{ + "map": { + "interaction": "static", + "viewSettings": { + "zoom": 4, + "center": [-100, 60], + "projection": 3857 + }, + "basemapOptions": { + "basemapId": "transport", + "shaded": false, + "labeled": true + }, + "listOfGeoviewLayerConfig": [ + { + "geoviewLayerId": "wmsLYR7", + "geoviewLayerName": { + "en": "Geomet", + "fr": "Geomet" + }, + "metadataAccessPath": { + "en": "https://geo.weather.gc.ca/geomet", + "fr": "https://geo.weather.gc.ca/geomet" + }, + "geoviewLayerType": "ogcWms", + "listOfLayerEntryConfig": [{ "layerId": "RAQDPS-FW.CE_PM2.5-DIFF-YAvg" }] + } + ] + }, + "theme": "dark", + "components": ["footer-bar"], + "corePackages": [], + "suportedLanguages": ["en"] +} \ No newline at end of file diff --git a/src/App.css b/src/App.css index dda669b..41d098d 100644 --- a/src/App.css +++ b/src/App.css @@ -55,3 +55,141 @@ code { border-radius: 1px; margin: 250px; } + + +/* added below */ + +.bold-title { + font-weight: bold; + justify-content: inherit; + font-size: 0.8125rem; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-weight: 500; + line-height: 1.75; + +} + + +.popup-content { + + position: relative; +width: 75vw !important; + height: 40px !important; + background: rgb(255, 255, 255); + /*width: 50%; + box-sizing: 800px !important; + /* padding: 5px; + added below after 7 mar */ + float: top; + left: 38%; + top: -40%; + transform: translate(-50%, -50%); +} +.popup-arrow { + color: rgb(255, 255, 255); +} +[role='tooltip'].popup-content { + width: 200px; + box-shadow: rgba(0, 0, 0, 0.16) 0px 0px 3px; +} + +.popup-overlay { + background: rgba(0, 0, 0, 0.5); +} + +/* added for pul down mendu june 8 */ + +.dropdown { + + position: relative; + background-color: #3f51b5; + color: #fff; + width: 200px; + align-items: inherit; + justify-content: inherit; + font-size: 0.8125rem; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-weight: 500; + line-height: 1.75; + border-radius: 4px; + letter-spacing: 0.02857em; + text-transform: uppercase; + padding: 6px 16px; + vertical-align: middle ; + text-align: center ; + +} + + +.menu { + position: absolute; + font-size: 0.8125rem; + + list-style-type: none; + margin: 5px 0; + padding: 0; + padding: 4px 10px; + font-size: 0.8125rem; + border: 1px solid grey; + width: 150px; +} + +.menu > li { + margin: 0; + + background-color: white; +} + +.menu > li:hover { + background-color: lightgray; +} + +.menu > li > button { + width: 100%; + height: 100%; + text-align: left; + + background: none; + color: inherit; + border: none; + padding: 5px; + margin: 0; + font: inherit; + cursor: pointer; +} + /* + + .modal { + font-size: 12px; +} +.modal > .header { + width: 100%; + border-bottom: 1px solid gray; + font-size: 18px; + text-align: center; + padding: 5px; +} +.modal > .content { + width: 100%; + padding: 10px 5px; +} +.modal > .actions { + width: 100%; + padding: 10px 5px; + margin: auto; + text-align: center; +} +.modal > .close { + cursor: pointer; + position: absolute; + display: block; + padding: 2px 5px; + line-height: 20px; + right: -10px; + top: -10px; + font-size: 24px; + background: #ffffff; + border-radius: 18px; + border: 1px solid #cfcece; +} +*/ \ No newline at end of file diff --git a/src/App.js b/src/App.js index 40dbf15..ea4ddbc 100644 --- a/src/App.js +++ b/src/App.js @@ -1,13 +1,23 @@ import InputForm from "./components/InputForm"; import { BrowserRouter as Router, Route, Routes } from "react-router-dom"; import Plugin from "./components/SchemaForm"; +//import PopUp from "./components/PopUps"; + // } /> + // } /> + const App = () => { return ( - + } /> } /> + + + + + + ); diff --git a/src/components/InputForm.js b/src/components/InputForm.js index e19397b..db7077a 100644 --- a/src/components/InputForm.js +++ b/src/components/InputForm.js @@ -2,42 +2,22 @@ * @author Vijendra Yadav */ -import { - Box, - Button, - FormControl, - FormControlLabel, - FormLabel, - Radio, - RadioGroup, - TextField, - Typography, -} from "@material-ui/core"; +import { Box,Button,FormControl,FormControlLabel,FormLabel,Radio,RadioGroup,TextField,Typography} from "@material-ui/core"; import { Field, Form, Formik } from "formik"; import { object, string } from "yup"; import { useNavigate } from "react-router-dom"; + //import api from "../api/api"; const initialValues = { uuid: "", language: "", plugin: "", + type: "string", + format: "data-url", + }; -/* -async function getSchema(uuid, language, pluginType) { - try { - return await api.get("/plugins", { - params: { - id: uuid, - language: language, - pluginType: pluginType, - }, - }); - } catch (error) { - console.error(error); - } -} -*/ + const InputForm = () => { let navigate = useNavigate(); @@ -54,8 +34,11 @@ const InputForm = () => { //const schema = getSchema(values.uuid, values.language, values.plugin); const jsonString = require("./db.json"); //const customer = JSON.parse(jsonString); - console.log(jsonString.plugins); + console.log('json string-',jsonString.plugins); +// navigate("/plugin", { +// state: { data: jsonString.plugins, desiredPlugin: values.plugin }, +// }); navigate("/plugin", { state: { data: jsonString.plugins, desiredPlugin: values.plugin }, }); @@ -84,6 +67,7 @@ const InputForm = () => { error={Boolean(errors.uuid) && Boolean(touched.uuid)} helperText={Boolean(touched.uuid) && errors.uuid} /> + @@ -140,15 +124,22 @@ const InputForm = () => { label="Swiper" /> } - label="Draw Toolbar" + label="Thematic Slider" + /> + } + label="Geoview map" /> } - label="Thematic Chart" + label="Draw Toolbar" /> + + @@ -170,4 +161,6 @@ const InputForm = () => { ); }; + + export default InputForm; diff --git a/src/components/SchemaForm.js b/src/components/SchemaForm.js index db18196..ad8b51e 100644 --- a/src/components/SchemaForm.js +++ b/src/components/SchemaForm.js @@ -1,46 +1,1503 @@ /** * @author Vijendra Yadav */ +// commented out aug 9 for test +//import { RJSFSchema, UiSchema, FieldProps, RegistryFieldsType } from '@rjsf/utils'; + +//sept6 commentd out below, oct 6,v4 mui import Form from "@rjsf/material-ui"; + +//import { withTheme } from '@rjsf/core'; +//import { Theme } from '@rjsf/mui'; + + //const Form = withTheme(Theme); +//added oct10 below +//import { withTheme } from 'react-jsonschema-form'; +//import { Theme as MuiTheme } from 'rjsf-material-ui'; + // import { makeStyles } from '@material-ui/core'; + +//const Form = withTheme(MuiTheme); + +//added oct 10 + //import { useMuiComponent } from '@rjsf/material-ui/v4'; + +// tried below and works materual ui v5 +//import Form from "@rjsf/mui"; +//import Form from "@rjsf/core"; + +// added to test aug 9 for test v4 or v5 mateial ui +//import Form from "@rjsf/material-ui/v5"; +//import Form from "@rjsf/core"; +import { useNavigate } from "react-router-dom"; import { useLocation } from "react-router-dom"; import React from "react"; -import { Box, Button } from "@material-ui/core"; +import { Box, Button,ButtonGroup,FormControl,FormControlLabel,FormLabel,Radio,RadioGroup } from "@material-ui/core"; +//import { Box, Button,ButtonGroup,FormControl,FormControlLabel,FormLabel,Radio,RadioGroup } from "@rjsf/core"; + +//changed aug 16 +//import validator from "@rjsf/validator-ajv6"; + +import validator from "@rjsf/validator-ajv8"; + +//import Stack from '@mui/material/Stack'; +//import NewWindow from 'react-new-window'; +//import { render } from "react-dom"; +import { saveAs } from 'file-saver'; +import { useState,useCallback,useEffect } from 'react'; +import Tooltip from "@material-ui/core/Tooltip"; +import ReactDOM from 'react-dom'; +import Popup from 'reactjs-popup'; +import 'reactjs-popup/dist/index.css'; +// import applyNavs from "react-jsonschema-form-pagination"; +import { createRef } from "react"; +const submitFormRef = createRef(); +//import {StyleSheet,Text,SafeAreaView,ScrollView,StatusBar} from 'react-native'; + +//commented below out aug 8 + +// import applyNav from "rjsf-tabs/lib/applyNav"; +//import { GENERIC_NAV } from "rjsf-tabs/lib/utils"; +//import CustomNavs from "./CustomNavs"; + + +//commente out jan 26 + //let navSelected = ""; + + +//function EditorNavs({ navs: { links }, onNavChange }) { + // let relLinks = links.filter(({ nav }) => nav !== GENERIC_NAV); + // return ( + // + // ); +//} + +let plugins = { "plugins": [] }; +let plugin = ""; + +let draw = { "draw": "" }; +let swiper= { "swiper": "" }; +let map = ""; +let fileLoaded = false; +let notfirstLoad = true; +let formnotUpdated = true; +let oldSchema = "" +//let mapLayersName = ["transport", "hill shade"]; +let mapLayersName = []; + + // var f = new FileReader(); +const file = document.getElementById('file-selector'); +file.setAttribute("display", "none"); +let formData = new FormData(); // added nov 21 +let formSubmitted = false ; +let mapFormChanged = false; +let blob = ""; +let result = ""; + +const Geoviewmapdiv = document.createElement("div"); + + +function Help() { + ReactDOM.render( + Open Modal } + modal + nested + > + {close => ( +
+ +
Help
+ + + General Information + +The Federal Geospatial Platform Authoring (FGPA) tool is used to create, update, validate and preview configuration files used by the Federal Geospatial Platform Viewer (FGPV). +

+The FGPA tool is based on React. This library generates forms from JSON schemas. +

+The FGPA tool uses the same schema as the FGPV and lets user modify values to easily create new configuration files. The schema is composed of 5 sections: +Map + +

+

+ + # Map is divided in 5 sections (Extents and Levels of Details, Basemaps, Layers, Legend and Components) +

+UI +

+

+UI is divided in 4 sections (General, Application Bar, Navigation and Side Menu) +

+

+Services +

+Services is divided in 3 sections (Export Map, Geo Search and Service End Points) +

+

+Version +

+

+Language +

+

+For more information about schema structure, go to the FGPV schema section in our wiki page. This section will also give you information on schema values and their effect in the viewer. + +

+Useful information +

+

+To switch the interface language, use the language dropdown menu located in the upper right corner . + +At any time, when available, you can use the expand or collapse buttons to expand or collapse all the items inside a section. + +Some configuration items are for more advanced user. You can show/hide these items with the Show advanced configuration options checkbox located under each section name. + +Some items like basemaps, layers and layer fields can be reordered. You can easily identify reorderable items with the drag handle . To reorder an item, click the handle then drag the item to the desired position. A yellow box will appear under the item where it will be placed when you release the handle. Note: it is easier to drag an item when all items inside the section are collapsed. + +To upload user configuration file or template directly from url you can use the following syntax: + +your instance url?filename=your file name (e.g. https: //xxx/fgpv-author.html?filename=https: //myfolder/myfilename.json) +your instance url?template=your template name (e.g. https: //xxx/fgpv-author.html?template=mytemplate.json) +Note: if the application can't read the configuration file or if the template doesn't exist, it will open the default configuration or the first template inside the list on templates. + +Unanticipated behavior may occur if any interactions occur before data is fully loaded. Please allow the webpage to load completely before triggering any functions. If you still encounter bugs, please submit an issue in our GitHub repository. Someone from our development team will take care of it as soon as possible. +

+

+Header +

+

+The header toolbar allows you to: +

+Open the FGPA help window from the question mark button. +Create a new configuration file from scratch - only available when no templates are provided -. +Create a new configuration file from templates - only available when templates are provided -. +Templates are managed by the organization in charge of this FGPA instance. Contact the organization if you need more information or would like an update to the list of templates. +Upload an existing configuration file . +Save the configuration file once finished . +All files are saved in your Downloads folder. The application automatically increments the file name at each backup. +The file name you are working on is shown to the left of the save icon. However, if you save a file using an existing file name, it will be renamed by your operating system and may no longer match the file name you used (e.g. Test is shown as the used file name but renamed file name is Test(1)). + +When you create or upload a configuration file, loading time may vary based on the number of layers and basemaps being loaded. +

+

+Map - Extents and Levels of Detail +This section is used to define the tile schemas for your viewer application. For each tile schema, a spatial reference system must be defined in the Spatial Extents Sets section. Again, for each tile schema, levels of detail (LODs) must be defined in the Levels of Detail Sets section. For this, an ESRI tile cache layer must be used to retrieve the list of LODs from. Each LOD corresponds to a map at a given scale or resolution. Therefore each basemap linked to a tile schema must share the same spatial extent and LODs. + +For more information about how to setup the Extents and Levels of Detail section, see the help dropdown menu located below the section header. +

+

+Map - Basemaps +



+This section is used to add basemaps to your viewer application. To add a basemap, a tile schema appropriate for this basemap must already have been created. Once a basemap is added, the following information must be provided: +

+Name - it will be used to generate the basemap id - +Description +Alternate Text +Tile Schema ID (selected from existing tile schema) +At least one layer with ID, Layer Type and URL. +You must set the initial basemap that will appear when the viewer launches. To do so, select the basemap id (name-unique key from Initial Basemap ID) from the dropdown menu. -const onSubmit = ({ formData }) => alert("Data submitted: ", formData); +For more information about how to setup the Basemaps section, see the help dropdown menu located below the section header. +

+

+Map - Layers +

+

+This section is used to add layers to your viewer application. Once a layer is added, the following information must be provided: +

+

+Layer Type +esriDynamic +esriFeature +esriImage +esriTile (an appropriate tile schema must exist) +ogcWms +Name - it will be used to generate the layer id - +URL +At least one layer entry must be added if the selected layer type is esriDynamic or ocgWms. The following properties must be set: +

+Index for esriDynamic +ID for ogcWMS +You can make a esriDynamic layer look like a esriFeature layer inside the legend with the Single entry collapse option. This option will render a single layered dynamic layer with a single layer without its root group. + +Optionally you can set URL values for the Metadata URL and Catalog URL options to display the relative information inside the viewer's metadata panel available in the Layer Controls section. + +For each layer and layer entries, the following Layer Controls options can be selected: + +Opacity (opacity) +Visibility (visibility) +Bounding box (boundingBox) +Query (query) +Snapshot (snapshot) +Metadata (metadata) +Boundary zoom (boundaryZoom) +Refresh (refresh) +Reload (reload) +Remove (remove) +Settings (settings) +Table (data) +Styles (styles) +

+For each layer and layer entries, the following State options can be selected: + +Opacity - Initial opacity value. +Visibility - Initial visibility setting. +Bounding box - Set initial display of the layer's bounding box. +Query - Enable querying of map feature and display information inside the viewer's details panel. Will only work with esriFeature and esriDynamic layer type. +Snapshot - Retrieve all feature data immediately on load. Will only work with esriFeature layer type. +Hovertips - Enable hover tips. Will only work with esriFeature layer type. +For every esriFeature layer and every esriDynamic layer entries a table is created automatically when the URL or entry Index option is set. The table section is optional and is populated from the service information by default. You can customize the following table properties: + +Title - Custom table title to apply. Default title is the layer name. +Description - Specifies additional information to be displayed in the table settings panel. +Maximize - Specifies if the table window is maximized on open. Default window size is split view. +Apply map - Specifies if table filters (from columns filters) are applied to the map (definition query). +Fields Customization - Specifies the array of table columns to display. Columns can be reinitialize with the Set Fields button at any time. The following properties can be customized: +Title - Custom column title. Default column title is set with column's alias name from the service. +Description - Specifies additional information to be displayed in the table settings panel. +Visible - Specifies if the field is visible by default. +Width - Column's width. If no width is set, best width will be calculated. +Sort - Sort ascending (asc) or descending (dsc). +Searchable - Specifies if column can be filtered or not. +Filters - For each column, the following filter properties can be customized: +Type - Specifies the filter type to use. If Type is not specified, data field type will be used. String filter can be string or selector. Other filters must be of the same type. +Value - Specifies the filter value. +Static - Specifies if filter value can be modified or not. +Important - Modifying the layer type of an existing layer is not a good practice. It is better to create a new layer and then delete the old one. + +For more information about how to setup Layers section, see the help dropdown menu located below the section header. +

+Map - Legend +This section is used to define legend for your viewer application. There are 2 types of legends to choose from: Autopopulate and Structured. The Autopopulate legend will read the layers as they appear in the Layers section in order to create a simple default legend. + +The Structured legend allows you to customize the display order of the layers, the layer grouping, descriptions and many other settings. + +For more information about legend customization options, see the dropdown help menu located below the section header. +

+Map - Components +This section is used to define map component: + +Mouse Coordinates +WKID must be set to display mouse coordinates on the map +Coordinates can be in degrees minutes seconds (DMS) and decimal degrees or meters depending on the projection (WKID) +North Arrow +Scale Bar +Overview Map +To change the overview map basemap, use Static Overview Map in the appropriate tile schema of Extents and Levels of Detail section +User Interface +General +The General section is for customizing the following information: + +Full screen - Used to set viewer application’s initial size to Full Screen (a.k.a. entire viewport). +On Viewer Failure +Failure Message - Custom message to use instead of the default failure message. +Failure Image Url - Custom image to use instead of the default failure image. +Legend +Is Reorderable Set to allow interactive reordering of layers inside the viewer application's legend. Structured legends ignore this option. +Allow Layers Import Set to allow interactive importing of additional layers inside the viewer application. +Legend Opening Options - Set to display the legend's initial view in small, medium and/or large display. +Table Opening Options - Set to display the table's initial view in small, medium and/or large display. +For table to open by default, a layer id must be selected. +Application Bar + +

+The Application Bar section allows you to add or remove the following tools: + +Side Menu +Geosearch +Basemap Selector +Layers Selector (legend) +Navigation Bar +The Navigation Bar allows you to add or remove the following navigation components: + +Your location (geolocator) - Display user position on the map +Initial extent (home) - Zoom to initial extent +Basemaps selector (basemap) - Open Basemap Selector - also available in the Application Bar - +Help (help) - Open help window - also available in the Side Menu - +Full screen (fullscreen) - Open viewer in fullscreen - also available in the Side Menu - +Geo search (geoSearch) - Open Geosearch tool - also available in the Application Bar - +Side menu (sidemenu) - Open the Side Menu - also available in the Application Bar - +Layers selector (layers) - Open the Layers Selector (legend) - also available in the Application Bar - +You can restrict navigation within the maximum extent by checking the Restrict Navigation checkbox. +

+Side Menu +The Side Menu allows you to configure how the side menu will appear. First you can set a title and a logo. If no title or logo are provided, the default title ("FGP R2 Viewer") and logo will be used. Then you can add as many group of tools as you want from the following options: + +Layers selector (layers) - Layers Selector (legend) - also available in the Application Bar - +Basemaps selector (basemap) - Basemap Selector - also available in the Application Bar - +Geo search (geoSearch) - Geosearch tool - also available in the Application Bar - +Map description (about) - Display additional information about the map +About can be of type string or file. When type file is selected, you must provide a folder name for your custom About markdown formatted files located inside the FGPV instance. +Important About of type file will not show up inside preview mode. +Full screen (fullscreen) - Open viewer in fullscreen - also available in the Navigation Bar - +Map export (export) - Export the map view as png image +Share the map (share) - Create a URL link to share the map +Touch mode (touch) - Enable touch mode for touch screen (to enhance layout spacing and button size) +Help (help) - Open Help window - also available in the Navigation Bar - +If you do not want to use the default Help, you must provide a folder name for your custom Help markdown formatted files located inside the FGPV instance. +Important Custom Help will not show up inside preview mode. +Languages selector (language) - Set interface language +Plugins section (plugins) - Container to receive custom plugins +Important plugins section will not show up inside preview mode. A piece of code must be added to the viewer application HTML page to activate the plugin(s). +Note: tools inside groups are not ordered as they appear inside the group list. They are ordered by selection order e.g. if you click on basemap then layers, inside the side menu basemap will appear first because it was the first item selected from the group. +

+Services +

+Export Map +Export Map allows you to configure what components will be displayed by default and/or be customizable on the map when exported as a png image. The Is present checkbox under each component allows you to add the components by default to the exported map. The User can remove it checkbox allows you to choose if you want the user to be able to remove the component from the exported map. + +The following components can be displayed or customized: +

+Title - a default value can be set - +Map +Legend +Map Elements (north arrow and scalebar) +Footnote - a default value can be set -. +Timestamp +

+Geosearch +The Geosearch section allows you to configure the geosearch tool capabilities. Geosearch allows you to find Canadian locations by different categories like cities, provinces, topographic entities and so on leveraging the Geonames API. In addition of this, Geosearch allows you to find locations by National Topographic System (NTS) name, forward sortation area (FSA) code and Latitude/Longitude values. The last 3 search types options can be enabled by checking the corresponding checkbox on. + +All URLs required by Geosearch are read-only values. If you encounter a problem whit these services, contact the person in charge of the FGPA application instance you are using and/or submit an issue to the FGPA developers team. +

+Service endpoints +The Service endpoints section lists all the services URLs the viewer application requires. These URLs are read-only values and therefor cannot be modified. If you encounter a problems with these services, contact contact the person in charge of the FGPV application instance you are using. +

+Version +The version section allows you to select the version number of the FGP viewer you would like to use. + +
+ < button + className="button" + onClick={() => { + console.log('modal closed '); + close(); + }} + > + +
+ )} +
, document.getElementById('popup-root') + ) + +} + +function App3() { + ReactDOM.render( + Open Modal } + modal + nested + > + {close => ( +
+ +
map
+
+ +
+ < button + className="button" + onClick={() => { + console.log('modal closed '); + close(); + }} + > +
+
+ )} +
, document.getElementById('popup-root') + ) + +} + +const onSubmit = ({ formData }) => { + + formSubmitted = true; + + + //modified for navSelected may 2 + //commented out sept 26 reemoved navselected to do a deploy + + // if ((plugin === "map")||(navSelected = "map")) { + if ((plugin === "map")) { + + const map1 = document.getElementById("mapTwo") + let temp1 = document.getElementById("mapTwo").innerHTML; + if (temp1 !== "") + { + console.log(' inside delete div matp2'); + temp1 = document.getElementById("mapTwo"); + temp1.parentNode.removeChild(temp1); + } + + console.log('map div=', Geoviewmapdiv); + map1.replaceWith(Geoviewmapdiv); // rect error 31 + console.log('before calling map init'); + + window.cgpv.init(); //commented feb 3 + console.log('submit formdata=', formData); + console.log("formdata2 to write=", formData); + + } // end map + + console.log("in save plugin enable=", plugin, formData.enable); + + //commented out sept 26 reemoved navselected to do a deploy + //if (((plugin === "thematicSlider")||(navSelected = "thematicSlider")) && (formData.enable === true)) + + if ((plugin === "thematicSlider") && (formData.enable === true)) + { + map["thematicSlider"] = { "thematicSlider": formData }; + console.log("pluegin=thematicslider submit,mfordata=", formData); + } + else if ((plugin === "rangeSlider") && (formData.enable === true)) { + map["rangeSlider"] = { "rangeSlider": formData }; + console.log("pluegin=rangeslider submit,mfordata=", formData); + } + else if ((plugin === "chart") && (formData.enable === true)) + { + map["chart"] = { "chart": formData }; + console.log("pluegin=drawin submit,mfordata=", formData); + } + else if ((plugin === "Draw Toolbar") && (formData.enable === true)) //jan 23 just commented out to test + { + map["draw"] = { "draw": formData }; + console.log("pluegin=drawin submit,mfordata=", formData); + } //draw = formData.draw; + //draw = { "draw": formData }; + else if ((plugin === "Swiper") && (formData.enable === true)) { + // swiper = { "swiper": formData }; + map["swiper"] = { "swiper": formData }; + console.log("pluegin=swiper formdata=", swiper); + } + else if (plugin === "map") { + map = formData; + console.log("------ map formdata=", map); + + let mapLayersNameString = ""; + if (typeof formData.map.listOfGeoviewLayerConfig !== "undefined" ) { + console.log(" ------- geoview layer name,type of", typeof formData.map.listOfGeoviewLayerConfig[0],formData.map.listOfGeoviewLayerConfig[0].layerName); + + for (let i = 0; i < formData.map.listOfGeoviewLayerConfig[0].listOfLayerEntryConfig.length; i++) { + console.log("in layer loop"); + console.log("in layer loop layername=", formData.map.listOfGeoviewLayerConfig[0].listOfLayerEntryConfig[i]); + // console.log("in layer loop layername=",formData.map.listOfGeoviewLayerConfig[0].listOfLayerEntryConfig[i].layerName.en); + + console.log("in layer loop layername=", formData.map.listOfGeoviewLayerConfig[0].listOfLayerEntryConfig[i].layerId); + console.log("in layer loop maplayeranameString=", mapLayersNameString); + + //works + mapLayersName.push(formData.map.listOfGeoviewLayerConfig[0].listOfLayerEntryConfig[i].layerId); + + console.log("in layer loop maplayeraname=", mapLayersName); + + console.log("inloop json strinify =", JSON.stringify(formData.map.listOfGeoviewLayerConfig[0].listOfLayerEntryConfig[i].layerName.en)); + + } //for + }//if + console.log("after layer loop maplayersname=", mapLayersName); + //feb21 commneted out below + // mapLayersName = ({ "enum": mapLayersName }); + console.log("after loop 2maplayeraname=", mapLayersName); + + + } //if + + //console.log("in save formdata,draw=",formData.draw); + + console.log("in save formdata,map=", map, "draw=", draw); + let mapData = JSON.stringify(map); + //commented out oct 18 ----- + //let plugins2 = mapData; + console.log("in save formdata,mapData=", mapData); + //commented out oct 18 ----- + //let plugins = JSON.parse(plugins2); + //mar 17 new + map = map["map"]; + console.log("map[map]=", map["map"]); + + blob = new Blob([JSON.stringify({ map})], { type: "text/plain;charset=utf-8" }); // mar 15 + + //mar 17 commented out + // blob = new Blob([JSON.stringify({plugins})], { type: "text/plain;charset=utf-8" }); + + console.log("blob=",blob); + +}; //end submit + + function SchemaForm() { + + // doesnt display title + const CustomTitleField = ({ title, required }) => { + console.log(" 00000000000000000000 in custom field", title); + const legend = required ? title + '*' : title; + console.log(" 0000000000000000000000000000000000000000000000 in custom field",legend); + return (
HIIIII {title}
); + //returns markrdown below + //return
{title}
; + + //return
hi hhhhhhhhhhhhhhhhhhhhhhh {title}
; + }; + + const CustomDescriptionField = ({ id, description }) => { + console.log(" 0000000000000000000000000000000000000000000000 in custom field", description); + return
Hiiii {description}
; + }; + + + //works changes every title field for every section, oct 16, active now + function TitleFieldTemplate(props) { + const { id, required, title } = props; + return ( +
+ {title} + {required && } +
+ ); + } + //following works but dsplays field title in duplicate + function CustomFieldTemplate(props) { + // console.log("---------------label is =", label); + const { id, classNames, label, help, required, description, errors, children } = props; + console.log("---------------label adn description is =", label, description); + return ( +
+ + {description} + {children} + {errors} + {help} +
+ ); + } + + const fields = { + TitleField: CustomTitleField, + DescriptionField: CustomDescriptionField + //, SchemaField: CustomSchemaField + }; + + + //const Templates = { + // TitleField: CustomTitleField, + // DescriptionField: CustomDescriptionField, + // TitleFieldTemplate,TitleFieldTemplate + //, SchemaField: TitleFieldTemplate + //}; + +// const RegistryFieldsType= { +// TitleField1: CustomTitleField, +//// DescriptionField: CustomDescriptionField +//}; + + + let uiSchema = { + // 'ui:globalOptions': { copyable: true }, + //'ui:classNames': 'custom-css-class', + "ui:classNames": "bold-title", + + // "ui:widget": (props) => { + // return ( + // props.onChange(event.target.value)} /> + // ); + // }, + + // + + rangeSlider: { + // "ui:enableMarkdownInDescription": true, + "ui:FieldTemplate": CustomFieldTemplate, + + enable: { + "ui:FieldTemplate": CustomFieldTemplate, + "ui:enableMarkdownInDescription": true, + 'ui:style': { color: 'blue' }, + "ui:description": "Make text **bold** or *italic*. Take a look at other options [here](https://probablyup.com/markdown-to-jsx/).", + // "ui:CustomTitleField": "**RangeSlider**", + "ui:title": "##RangeSlidersssss##" + }, + controls: { + "ui:FieldTemplate": CustomFieldTemplate, + "ui:enableMarkdownInDescription": true, + 'ui:style': { color: 'blue' }, + "ui:description": "Make text **bold** or *italic*. Take a look at other options [here](https://probablyup.com/markdown-to-jsx/).", + }, + params: { + type: { + //"ui:FieldTemplate": CustomFieldTemplate, + "ui:enableMarkdownInDescription": true, + "ui:description": "##ooooo basemapOptions oooo", + "ui:title": "Rangy basemapOptions oooo", + } + }, + "rangeType": { + // "ui:FieldTemplate": CustomFieldTemplate, + "ui:title": "##RangeSlider bbbb##" + } + }, + map: + { + //following works supposed to work + + // "ui:field": "TitleField", + // "ui: CustomTitleField":"mapit", + // below doesn't work unless adn objet field + // "ui:enableMarkdownInDescription": true, + //doesnt wpdate range slider or chart with uischem only map + + basemapOptions: //Custom titles does not work for titles/labels on string fields. Moreover, it seems to only work on titles/labels for object fields. + { + + basemapId: { + // "ui:field": "TitleFieldTemplate",//works + // "ui:FieldTemplate": CustomFieldTemplate, + + //"ui:classNames": "MuiTypography-subtitle2", + //below works + // "ui:description": "**_basemapOptions_**" + //"ui:style": { color: "blue", backgroundColor: "blue" } + }, + shaded: { + // "ui:field": "TitleField", + // "ui:FieldTemplate": CustomFieldTemplate, + // "ui:classNames": "bold-title", + "ui:classNames": "MuiTypography-subtitle2", + //"ui:style": { color: "blue" , backgroundColor: "blue" }, + // "ui:widget": "select" ,//works + // "ui:widget":"input[type=color]", + // "ui:widget":"input[type=color]", + + }, + + labeled: { // "ui:field": "TitleField", + "ui:field": "CustomDescriptionField", + "ui:classNames": "bold-title", + //"ui:widget": "select" //works + } + }, //basemapoaptions + interaction: { + + // below works and display interactoion + // "ui:FieldTemplate": CustomFieldTemplate + // "ui:classNames": "bold" + "ui:widget": "select" //works + }, + + listOfGeoviewLayerConfig: + { + items: {// works with items here + + geoviewLayerName: { + en: { + "ui:classNames": "bold-title" + } + }, + geoviewLayerId: { + "ui:classNames": "bold-title", + en: { + "ui:classNames": "bold-title", + //classNames: "style={fontWeight:\"bold\"}" + } + }, + metadataAccessPath: { + en: { + "ui:autocomplete": "on", + "ui:placeholder": "http://",// doesnt work even if don't use defintion + // doesnt work cecause uses definition ? works if store definition in schema and use uri format + "ui:format": "uri" + }, + fr: { + "ui:autocomplete": "on", + "ui:placeholder": "http://", + "ui:format": "uri" + } + }, + + listOfLayerEntryConfig: + { + items: { + style: { + LineString: + { + settings: { + stroke: { + color: { "ui:widget": "color", maxLength: 1 } + } + } + }, + Point: + { + settings: { + stroke: { + color: { "ui:widget": "color", maxLength: 1 } + } + } + }, + Polygon: + { + settings: { + stroke: { + color: { "ui:widget": "color", maxLength: 1 } + } + } + } + + }, + settings: { + color: { + "ui:widget": "color", + maxLength: 1 + } + }, + source: { + style: { + LineString: + { + settings: { + stroke: { + color: { "ui:widget": "color" } + } + }, + }, + Point: + { + settings: { + stroke: { + color: { "ui:widget": "color" } + } + } + }, + Polygon: + { + settings: { + stroke: { + color: { "ui:widget": "color" } + } + } + } + }, //style + cluster: { + settings: { + color: { + "ui:widget": "color" + }, + stroke: { + color: { "ui:widget": "color" } + } + } + + } //cluster + }//source + }//irems + } + } + } //listOfGeoviewLayerConf + } //map + , + + externalPackages: + { + items: { // works with items here + name: { + "ui:enableMarkdownInDescription": true, + "ui:description": "Make text **bold** or *italic*. Take a look at other options [here](https://probablyup.com/markdown-to-jsx/).", + }, + configUrl: { + "ui:format": "uri", //format uri only works when in schema + "ui:placeholder": "http://", //doesnt work + "ui:autocomplete": "on", + } + } + }, + serviceUrls: { + geolocator: { + "ui:format": "uri", // must be in schema for work + "ui:autocomplete": "on", + "ui:placeholder": "http://", + }, + proxyUrl: { + "ui:format": "uri", + "ui:autocomplete": "on", + "ui:placeholder": "http://" + }, + }, + + chart: { + "ui:FieldTemplate": CustomFieldTemplate, + "ui:enableMarkdownInDescription": true, + "ui:description": "##*ooooo* ##*basemapOptions* ##oooo", + enable: { + "ui:enableMarkdownInDescription": true + } + } + }; //uischema + + // below works + const [newformData, updateForm] = useState(formData); + + const [value, setValue] = React.useState('first Nation'); + + // load predefinied templates from file + const handleTemplateChange = (event) => { + + let filename = ""; + setValue(event.target.value); + console.log("MMMmap template event=", event.target.value); + if (event.target.value === "First Nation") { + filename = "firstnation.json"; + } + else if(event.target.value === "Energy") { + filename = "energy.json"; + } + else if(event.target.value === "Weather Geomet") { + filename = "weatherGeomet.json"; + } + + var xmlhttp = new XMLHttpRequest(); + xmlhttp.open("GET",filename,true); + xmlhttp.send(); + xmlhttp.onreadystatechange = function () { + if (xmlhttp.status == 200 && xmlhttp.readyState == 4) { + + plugins["plugins"] = (JSON.parse(xmlhttp.responseText)); + + formData = (JSON.parse(xmlhttp.responseText)); + + updateForm(formData); // works form is updated -------------------------------------- + forceUpdate; + console.log("just updated form data using hook in file read ---------------",formData); + + } + } + }; + + // following updates state of the form + const [, updateState] = useState(); + const forceUpdate = useCallback(() => updateState({}), []); + + console.log("this schema ----------form Data=", formData); + let navigate = useNavigate(); const location = useLocation(); + + + function isJsonString(str) { + try { + JSON.parse(str); + } catch (e) { + return false; + } + return true; + } + + //save json file in download directory + + let filesave = () => { + + console.log('in filesave'); + + console.log("blob=", blob); + + saveAs(blob, "data.json"); + console.log(" ----- saved blob="); + //let formData = JSON.parse(JSON.stringify({ blob })); + console.log("after set blob=", blob) + } + + + // let fileLoad = e=> { + + function fileLoad(filename) { + + console.log('in fileload'); + //const fileReader = new FileReader(); + console.log('in afterfilerader'); + const file = document.getElementById("file-selector"); + file.setAttribute("display", "inline"); + // console.log(" filesave formdata=",formData); + + // formData: {} + // var blob = new Blob([JSON.stringify({ formData } )], {type: "text/plain;charset=utf-8"}); + // console.log("blob=",blob); + //saveAs(blob, "data.json"); + file.setAttribute("display", "none"); + // var fileList = window[fileList].files; + // const input = document.querySelector('input'); + + //const file1 = file.files[0]; /changed june 27 + let file1 = file.files[0]; + console.log(' file to open=', file1); + + //console.log("e filename", e.target.files[0].name); + + // console.log(' file to name=', file1.name); + if (typeof (filename) !== "undefined") + { + console.log(' setting file name,filename=',filename); + // file1[0].name= filename; + } + // console.log(' file to name=', file1.name); + + console.log(' 2 file to open=', file1); + var f = new FileReader(); + // f.readAsText(file1, 'utf8'); + + if (typeof (filename) !== "undefined") { + console.log(' opening filereder=', "firstnation.json"); + f.fileName = filename; + } + + f.readAsText(file1, 'blob');// new jan 5 becasue of error but wprked before + + f.onloadend = function () { + console.log("success"); + console.log("file =", f.result); + + console.log("file =", f); + blob = f.result; + + fileLoaded = true; + //formData = JSON.parse(f.result); + // let newformData = JSON.parse(f.result) ; + //console.log ("updateed form data ???=",newformData); + + // {"formData":{"map":{"basemapOptions":{"id":"transport","shaded":true,"labeled":true},"interaction":"dynamic","viewSettings":{"center":[-106,60],"enableRotation":true,"extent":[1,23,2,4],"projection":3978,"rotation":0,"zoom":12},"extraOptions":{}},"theme":"dark","appBar":{"about":{}},"navBar":["zoom","fullscreen","fullextent"],"components":["app-bar","nav-bar","overview-map","north-arrow"],"corePackages":["basemap-panel","layers-panel","details-panel","geolocator-panel"],"externalPackages":{"keys":"https://geocore.api.geo.ca"},"serviceUrls":{"keys":"https://geocore.api.geo.ca"},"suportedLanguages":["en-CA","fr-CA"]}} + console.log(" setting state"); + // setState({ formData: JSON.parse(blob) }); + + // newformData = JSON.parse(blob); + if (isJsonString(blob)) { + + // just to test addition of plugin to map json mar 14 to test + // plugins = JSON.parse(blob); + plugins = JSON.stringify(plugins); + plugins = JSON.parse(plugins); + + console.log("after push plugins=", typeof plugins, plugins); + plugins["plugins"] = (JSON.parse(blob)); + console.log("after push plugins=", plugins); + + // plugins = JSON.parse(blob); + + formData = plugins; + + console.log("justbefore setting to swiper----formData", formData); + let newData = formData; + if (plugin !== "map") { + + if (plugin === "draw") + newData = formData.draw; + + else if (plugin === "Swiper") + newData = formData.plugins.swiper;// works + + console.log("just set state1 newData=", plugin, newData); + formData = newData; + + console.log("just set state formData", formData); + } + else { + //newData = formData.plugins.map; doesn't work + newData = formData.plugins; // works + let map = newData; + // formData = map;//commneted marcg 16 + + formData = map; + + console.log("just set state map map ----formData", formData); + + } + console.log("just set state1 formdata=", formData); + + //change back jan 24 undelte this + updateForm(formData); // works form is updated -------------------------------------- + forceUpdate; + console.log("just updated form data using hook in file read ---------------"); + console.log("just updated form data -- newformdata=", newformData); + } + else { + try { + JSON.parse(blob); + } catch (error) { + console.log("error on reading input file is ", error.message); + alert("invalid json file, filename =" + file1.name + " error =" + error.message); + } + + } + // console.log("just set state newformdata", newformData); + forceUpdate(); + } + } + + let transformErrors = (errors) => { + console.log("------------------------ in transform errors",errors); + var e = []; + errors.map(error => { + if (error.message !== "should be equal to one of the allowed values") { + e.push(error) + } + if (error.message === "should be number") { + error.message = "devrait etre numero"; + e.push(error) + } + }); + // console.log(e); + return e; + }; + + useEffect(() => { // just uncommented following 2 line monday jan 23 + /// updateForm(formData); + forceUpdate; + // console.log("here is the effect----------------------------------", newformData); + }, []); + + let dataObject = location.state.data; - console.log(dataObject); + console.log('data object-', dataObject); + let jsonObject = JSON.stringify(dataObject); let schemaData = JSON.parse(jsonObject); + + console.log('form dagta-'); // all data inisde plugin ? + //just commnetd ou jan 23 for test const desiredSchema = location.state.desiredPlugin; - //let formData, setFormData; - //[formData, setFormData] = React.useState(null); - + + console.log('desired schema', desiredSchema); // all data inisde plugin ? + + if (oldSchema !== desiredSchema) { + formnotUpdated = true; + } if (desiredSchema === "Range Slider") { - schemaData = dataObject[0].rangeSlider; - } else if (desiredSchema === "Chart") { + schemaData = schemaData[0].rangeSlider; + if ((fileLoaded) && (formnotUpdated)) { + formnotUpdated = false; + // formData = JSON.parse(blob); + formData = plugins; + + formData = formData.plugins.rangeSlider;// works yes jan 31,react limits number of render s need timeout + console.log("just tried to change to rangle slider form 1111111 data=", formData, (typeof formData)); + setTimeout(() => { updateForm(formData); console.log("in range slider set timeout",); }, 50);//was 1000} + } else if (formnotUpdated) { + console.log("just tried to change to rangle slider form 2222 data=", formData, (typeof formData)); + + console.log(" setting range slider 22222 enumm dataObject=", dataObject); + + console.log(" setting range sliderenumm dataObject array type=", typeof dataObject); + console.log(" setting ragne slider dataObject array=", dataObject["0"].rangeSlider.properties.layers.items.properties.id); + //below wrks + dataObject["0"].rangeSlider.properties.layers.items.properties.id = ({ "enum": mapLayersName, "default": mapLayersName[0] }); + console.log(" setting -----22 chart slider dataObject array=", dataObject["0"].rangeSlider.properties.layers.items.properties.id); + // formData.layers.push({ "enum": mapLayersName });.layers.push({ "enum": mapLayersName }); + setTimeout(() => { updateForm(formData); console.log("in range slider set timeout",); }, 50);//was 1000} + } + } else if (desiredSchema === "chart") { schemaData = schemaData[0].chart; + if ((fileLoaded) && (formnotUpdated)) { + formnotUpdated = false; + // formData = JSON.parse(blob); + formData = plugins; + formData = formData.plugins.chart;// works yes jan 31,react limits number of render s need timeout + console.log("just tried to change to chart form data=", formData, (typeof formData)); + setTimeout(() => { updateForm(formData); console.log("in swiper set timeout",); }, 50);//was 1000} + } else if (formnotUpdated) { + console.log(" setting chart enumm dataObject=", dataObject); + + console.log(" setting chart sliderenumm dataObject array type=", typeof dataObject); + console.log(" setting chart slider dataObject array=", dataObject["0"].chart.properties.layers.items.properties.id); + //below wrks + dataObject["0"].chart.properties.layers.items.properties.id = ({ "enum": mapLayersName, "default": mapLayersName[0] }); + console.log(" setting chart slider dataObject array=", dataObject["0"].chart.properties.layers.items.properties.id); + // formData.layers.push({ "enum": mapLayersName });.layers.push({ "enum": mapLayersName }); + setTimeout(() => { updateForm(formData); console.log("in swiper set timeout",); }, 50);//was 1000} + } + + } else if (desiredSchema === "languages") { + schemaData = schemaData[0].languages; + } else if (desiredSchema === "version") { + schemaData = schemaData[0].version; + } else if (desiredSchema === "Ui") { + schemaData = schemaData[0].Ui; + } else if (desiredSchema === "map") { + console.log('schma map-', schemaData[0].map); + if ((fileLoaded) && (notfirstLoad) && (formnotUpdated)) { + + formData = plugins; + // formData = JSON.parse(blob); // mar 16 + formnotUpdated = false; + // schemaData = schemaData[0].map; + formData = formData.plugins;// works yes jan 31,react limits number of render s need timeout + console.log("just tried to change map to form form data=", formData); + setTimeout(() => { updateForm(formData); console.log("in map set timeout",); }, 50);//was 1000 + } + schemaData = schemaData[0].map; + } else if (desiredSchema === "Services") { + schemaData = schemaData[0].Services; } else if (desiredSchema === "Swiper") { schemaData = schemaData[0].swiper; + if ((fileLoaded) && (formnotUpdated)) { + formnotUpdated = false; + // formData = JSON.parse(blob);// mar 16 + formData = plugins; + formData = formData.plugins.swiper;// works yes jan 31,react limits number of render s need timeout + console.log("just tried to change to swiper form data=", formData, (typeof formData)); + setTimeout(() => { updateForm(formData); console.log("in swiper set timeout",); }, 50);//was 1000} + + } else if (formnotUpdated) { + console.log(" setting swiper enumm dataObject=", dataObject); + + console.log(" setting swiper enumm dataObject array type=", typeof dataObject); + console.log(" setting enumm dataObject array=", dataObject["0"].swiper.properties.layers); + + //below wrks + dataObject["0"].swiper.properties.layers = ({ "enum": mapLayersName, "default": mapLayersName[0] }); + // formData.layers.push({ "enum": mapLayersName });.layers.push({ "enum": mapLayersName }); + // setTimeout(() => { updateForm(formData); console.log("in swiper set timeout",); }, 50);//was 1000} + } } else if (desiredSchema === "Draw Toolbar") { - schemaData = schemaData[0].draw; + setTimeout(() => { updateForm(formData); console.log("in swiper set timeout",); }, 50);//was 1000 + console.log("1draw map schema=", schemaData[0].draw); + schemaData = schemaData[0].draw; // below causes error jan 23 + if ((fileLoaded) && (formnotUpdated)) { + formnotUpdated = false; + // formData = JSON.parse(blob); // commented out mar 16 + formData = plugins; + console.log("2 about to change to draw form data=", formData); + + formData = formData.plugins.draw;// works yes jan 31,react limits number of render s need timeout + console.log("just tried to change to draw form data=", formData); + setTimeout(() => { updateForm(formData); console.log("in draw set timeout",); }, 50);//was 1000 + // updateForm(formData); + } + } else { schemaData = schemaData[0].thematicSlider; + console.log("just tried to change to thematic slider form data=", formData, (typeof formData)); + + if ((fileLoaded) && (formnotUpdated)) { + formnotUpdated = false; + formData = plugins; + // formData = JSON.parse(blob); + formData = formData.plugins.swiper;// works yes jan 31,react limits number of render s need timeout + console.log("just tried to change to thematic slider form data=", formData, (typeof formData)); + setTimeout(() => { updateForm(formData); console.log("in thmatic slider set timeout",); }, 50);//was 1000} + } else if (formnotUpdated) { + console.log(" setting thematic enumm dataObject=", dataObject); + + console.log(" setting thematic enumm dataObject array type=", typeof dataObject); + console.log(" setting thmatic enumm dataObject array=", dataObject["0"].thematicSlider.properties.layers); + //below wrks + console.log(" setting thmatic slider enumm dataObject array=", dataObject["0"].thematicSlider.properties.layers.items.properties.id); + + dataObject["0"].thematicSlider.properties.layers.items.properties.id = ({ "enum": mapLayersName, "default": mapLayersName[0] }); + + } + } + oldSchema = desiredSchema; + if (fileLoaded) + notfirstLoad = true; + + + console.log('just updated schema form in main'); + + // commented out aug 8 becasue of material ui form problem + // let FormWithPagination = applyNav(Form, EditorNavs); + + // let FormWithPagination = applyNav(Form); + + if (desiredSchema === "map") { + console.log("id 1 of formdata=", formData); + } + // let e = 1; return ( -
-
-
- - - + + //below works withhorizzontal tabs + // + + +
{ + console.log("onChange, desired schema=", desiredSchema); + console.log("onChange, formdata=",formData); + + if ((desiredSchema === "map")&&(typeof id !== "undefined")) { + mapFormChanged = true; + + if (formData.map.listOfGeoviewLayerConfig !== undefined) { + console.log("before in for loop2"); + + let arrayLength = formData.map.listOfGeoviewLayerConfig.length; + console.log("before in for loop2", arrayLength); + + for (var i1 = 0; i1 < arrayLength; i1++) { + console.log("in for loop2"); + if (formData.map.listOfGeoviewLayerConfig[i1] !== undefined) { + console.log("in for 2 1 loop="); + // + console.log("----- geoview layer name=", formData.map.listOfGeoviewLayerConfig[i1].geoviewLayerName); + } + console.log("in for 2 2 loop="); + // testConfig.map.listOfGeoviewLayerConfig[i].geoviewLayerName.en.replace(/ /g, ' '); + // testConfig.map.listOfGeoviewLayerConfig[i].geoviewLayerName.en.replace(/\\s/g, "_"); + if (formData.map.listOfGeoviewLayerConfig[i1] !== undefined) { + console.log("in for 2 3 loop=",typeof formData.map.listOfGeoviewLayerConfig[i1]); + console.log("in for 2 33 loop=",typeof formData.map.listOfGeoviewLayerConfig[i1].geoviewLayerName); + + if ( formData.map.listOfGeoviewLayerConfig[i1].geoviewLayerName !== undefined) { + + if ( formData.map.listOfGeoviewLayerConfig[i1].geoviewLayerName.en !== undefined) { + console.log("in for 2 4 loop="); + + console.log("in for 2 5 loop=", typeof formData.map.listOfGeoviewLayerConfig[i1].geoviewLayerName.en); + + //commented out aug 9 for test, code works + //let result = formData.map.listOfGeoviewLayerConfig[i].geoviewLayerName.en.replace(/ /g, "_"); + + //commented out aug 9 for test, code works + // formData.map.listOfGeoviewLayerConfig[i].geoviewLayerName.en = result; + } + } + // works must do this to work + + console.log("result 2=", result); + } + // testConfig.map.lig("----result=", resulstOfGeoviewLayerConfig[i].geoviewLayerName.en.replace(" ", ' '); + if (formData.map.listOfGeoviewLayerConfig[i1] !== undefined) { + // console.log("-----after 2 geoview layer name=", formData.map.listOfGeoviewLayerConfig[i].geoviewLayerName); + } + //Do something + } + } + const m = JSON.stringify(formData); + + //below orig, set Geoviewmapid to map form data + Geoviewmapdiv.innerHTML = "
"; + console.log("after stringify Geoviewmapdiv=", Geoviewmapdiv.innerHTML); + } + }} transformErrors={transformErrors} formData={newformData} formContext={formData} liveValidate > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ +
+ + + Available Plugins + { const jsonString = require("./db.json"); + + plugin = event.currentTarget.value; console.log("on change", plugin); + navigate("/plugin", { + state: { data: jsonString.plugins, desiredPlugin: plugin }, + }); + + } + } + > + + } + label="Range Slider" + /> + } + label="Chart" + /> + } + label="Swiper" + /> + } + label="Thematic Slider" + /> + } + label="Geoview map" + /> + } + label="Draw Toolbar" + /> + + + +
+
+ // + ); } + -export default SchemaForm; + export default SchemaForm; diff --git a/src/components/db aug 9 orig.json b/src/components/db aug 9 orig.json new file mode 100644 index 0000000..8e779f9 --- /dev/null +++ b/src/components/db aug 9 orig.json @@ -0,0 +1,2737 @@ +{ + + "plugins": [ + + { + + "map": { + "$id": "https://cgpv/schema", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "GeoView Core Config Schema", + "type": "object", + "version": 1.0, + "comments": "Configuration for GeoView core packages, each packages manages it own schema. It correspond to the TypeMapFeaturesInstance type.", + "additionalProperties": false, + "definitions": { + "TypeLocalizedString": { + + "minProperties": 1, + "type": "object", + "properties": { + "en": { + "type": "string", + "description": "The English version of the string." + }, + "fr": { + "type": "string", + "description": "The French version of the string. " + } + } + }, + + "TypeDetailsLayerConfig": { + + "type": "object", + "properties": { + + "parser": { + "type": "string", + "description": "A path to a javascript file with a function for parsing the layers identify output. Only needed if a custom template is being used." + }, + "template": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "A path to an html template (English/French) that will override default identify output." + } + }, + "required": ["template"] + }, + + "TypeFeatureInfoLayerConfig": { + + "type": "object", + "properties": { + "queryable": { + "type": "boolean", + "default": true, + "title": "Allow querying. Default = true." + }, + "customParser": { "$ref": "#/definitions/TypeDetailsLayerConfig" }, + "nameField": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display field (English/French) of the layer. If it is not present the viewer will make an attempt to find the first valid field." + }, + "outfields": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "A comma separated list of attribute names (English/French) that should be requested on query (all by default)." + }, + "fieldTypes": { + "type": "string", + "description": "A comma separated list of types. Type at index i is associated to the variable at index i." + }, + "aliasFields": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "A comma separated list of attribute names (English/French) that should be use for alias. If empty, no alias will be set if not found." + } + }, + "required": [ + "queryable" + ] + }, + "TypeFeatureInfoNotQueryable": { + + "properties": { + "queryable": { + "const": false, + "description": "Do not allow querying.", + "type": "boolean" + } + }, + "required": [ + "queryable" + ], + "type": "object" + }, + + "TypeStrokeSymbolConfig": { + "additionalProperties": false, + "type": "object", + "description": "Stroke style for vector features.", + "minProperties": 1, + "properties": { + "color": { + "type": "string" + }, + "lineStyle": { + "enum": [ + "dash", + "dash-dot", + "dash-dot-dot", + "dot", + "longDash", + "longDash-dot", + "null", + "shortDash", + "shortDash-dot", + "shortDash-dot-dot", + "solid" + ] + }, + "width": { + "type": "number" + } + } + }, + + "TypeLineStringVectorConfig": { + "additionalProperties": false, + "type": "object", + "properties": { + "type": { + "enum": [ + "lineString" + ] + }, + "stroke": { "$ref": "#/definitions/TypeStrokeSymbolConfig" } + }, + "required": [ + "type", + "stroke" + ] + }, + + "TypePolygonVectorConfig": { + "additionalProperties": false, + "type": "object", + "properties": { + "type": { + "enum": ["filledPolygon"] + }, + "color": { "type": "string" }, + "stroke": { "$ref": "#/definitions/TypeStrokeSymbolConfig" }, + "paternSize": { + "type": "number", + "description": "Distance between patern lines. Default = 8" + }, + "paternWidth": { + "type": "number", + "description": "Patern line width.default = 1." + }, + "fillStyle": { + "enum": [ + "solid", + "backwardDiagonal", + "cross", + "diagonalCross", + "forwardDiagonal", + "horizontal", + "null", + "vertical" + ], + "description": "Kind of filling for vector features. Default = solid. " + } + }, + "required": [ + "type", + "stroke" + ] + }, + + "TypeSimpleSymbolVectorConfig": { + "additionalProperties": false, + "type": "object", + "properties": { + "type": { + "enum": ["simpleSymbol"] + }, + "rotation": { + "type": "number", + "description": "Symbol rotation in radians." + }, + "color": { "type": "string" }, + "stroke": { "$ref": "#/definitions/TypeStrokeSymbolConfig" }, + "size": { "type": "number" }, + "offset": { + "type": "array", + "items": { + "type": "number" + }, + "minItems": 2, + "maxItems": 2 + }, + "symbol": { + "enum": [ + "circle", + "+", + "diamond", + "square", + "triangle", + "X", + "star" + ] + } + }, + "required": + ["type", + "symbol" + ] + }, + + "TypeIconSymbolVectorConfig": { + "additionalProperties": false, + "type": "object", + "properties": { + "type": { + "enum": ["iconSymbol"] + }, + "mimeType": { "type": "string" }, + "src": { "type": "string" }, + "width": { + "type": "integer", + "description": "Icon width in pixel." + }, + "height": { + "type": "integer", + "description": "Icon height in pixel." + }, + "rotation": { + "type": "number", + "description": "Icon rotation in radians." + }, + "opacity": { + "type": "number", + "minimum": 0, + "maximum": 1, + "default": 1 + }, + "offset": { + "type": "array", + "items": { + "type": "number" + }, + "minItems": 2, + "maxItems": 2 + }, + "crossOrigin": { + "type": "string", + "description": "The crossOrigin attribute for loaded images. Note that you must provide a crossOrigin value if you want to access pixel data with the Canvas renderer." + } + }, + "required": ["type", "mimeType", "src"] + }, + + "TypeSimpleStyleConfig": { + "additionalProperties": false, + "type": "object", + "properties": { + "styleId": { + "type": "string" + }, + "styleType": { + "enum": ["simple"] + }, + "label": { + "type": "string" + }, + "settings": { "$ref": "#/definitions/TypeKindOfVectorSettings" } + }, + "required": [ + "styleType", + "label", + "settings" + ] + }, + + + "TypeUniqueValueStyleConfig": { + "additionalProperties": false, + "type": "object", + "properties": { + "styleId": { + "type": "string" + }, + "styleType": { + "enum": ["uniqueValue"] + }, + "defaultLabel": { + "type": "string", + "description": "Label used if field/value association is not found." + }, + "defaultSettings": { + "$ref": "#/definitions/TypeKindOfVectorSettings", + "description": "Settings used if field/value association is not found." + }, + "defaultVisible": { + "description": "Flag used to show/hide features associated to the default label (default: yes).", + "enum": [ + "yes", + "no", + "always" + ] + }, + "fields": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "uniqueValueStyleInfo": { "$ref": "#/definitions/TypeUniqueValueStyleInfo" } + }, + "required": [ + "styleType", + "fields", + "uniqueValueStyleInfo" + ] + }, + + "TypeUniqueValueStyleInfo": { + "type": "array", + "items": { + "additionalProperties": false, + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "settings": { + "$ref": "#/definitions/TypeKindOfVectorSettings" + }, + "values": { + "items": { + "oneOf": [ + { "title": "String Value", + "type": "string" + }, + { "title": "Numeric Value", + "type": "number" + } + ] + }, + "minItems": 1, + "type": "array" + }, + "visible": { + "description": "Flag used to show/hide features associated to the label (default: yes).", + "enum": [ + "yes", + "no", + "always" + ] + } + } + + }, + "minItems": 1, + "required": [ + "label", + "values", + "options" + ] + + }, + + "TypeValidMapProjectionCodes": { + "default": 3978, + "description": "Spatial Reference EPSG code supported (https://epsg.io/). We support Web Mercator and Lambert Conical Conform Canada.", + "enum": [ + 3978, + 3857 + ] + }, + + "TypeClassBreakStyleConfig": { + "additionalProperties": false, + "type": "object", + "properties": { + "styleId": { + "type": "string" + }, + "styleType": { + "enum": ["classBreaks"] + }, + "field": { + "type": "string" + }, + "defaultLabel": { + "type": "string", + "description": "Label used if field/value association is not found." + }, + "defaultSettings": { + "$ref": "#/definitions/TypeKindOfVectorSettings", + "description": "Settings used if field/value association is not found." + }, + "defaultVisible": { + "description": "Flag used to show/hide features associated to the default label (default: yes).", + "enum": [ + "yes", + "no", + "always" + ] + }, + + "classBreakStyleInfo": { "$ref": "#/definitions/TypeClassBreakStyleInfo" } + }, + "required": ["styleType", "field", "classBreakStyleInfo"] + }, + + + "TypeClassBreakStyleInfo": { + "additionalProperties": false, + "type": "array", + "items": { + "additionalProperties": false, + "type": "object", + "properties": { + + "label": { + "type": "string" + }, + "minValue": { + "oneOf": [ + { "title": "minValue String value", + "type": "string" + }, + { "title": "minValue Numeric value", + "type": "number" + } + ] + }, + "maxValue": { + "oneOf": [ + { "title": "maxValue String value", + "type": "string" + }, + { "title": "maxValue Numeric value", + "type": "number" + } + ] + }, + "visible": { + "description": "Flag used to show/hide features associated to the label (default: yes).", + "enum": [ + "yes", + "no", + "always" + ], + "default" : ["no"] + }, + + "settings": { "$ref": "#/definitions/TypeKindOfVectorSettings" } + } + }, + "minItems": 1, + "required": ["label", "minValue", "maxValue", "settings"] + + }, + + "TypeKindOfVectorSettings": { + "oneOf": [ + { "title":"LineString", "$ref": "#/definitions/TypeLineStringVectorConfig" }, + { "title":"Polygon", "$ref": "#/definitions/TypePolygonVectorConfig" }, + { "title":"SimpleSymbol", "$ref": "#/definitions/TypeSimpleSymbolVectorConfig" }, + { "title":"IconSymbol", "$ref": "#/definitions/TypeIconSymbolVectorConfig" } + ] + }, + + "TypeStyleConfig": { + + "minProperties": 1, + "type": "object", + "description": "Line or Point or Polygon Style Config", + "properties": { + "LineString": {"description": "Line", + "title":"Line", + + "$ref": "#/definitions/TypeStyleSettings" + }, + "Point": { "description": "Point", + "title":"Point", + + "$ref": "#/definitions/TypeStyleSettings" + }, + "Polygon": {"description": "Polygon", + "title":"Polygon", + + "$ref": "#/definitions/TypeStyleSettings" + } + } + }, + + "TypeStyleSettings": { + "oneOf": [ + { + "title":"SimpleStyle", "$ref": "#/definitions/TypeSimpleStyleConfig" + }, + { + "title":"UniqueValue", "$ref": "#/definitions/TypeUniqueValueStyleConfig" + }, + { + "title":"ClassBreak", "$ref": "#/definitions/TypeClassBreakStyleConfig" + } + ] + }, + + "TypeLayerInitialSettings": { + "additionalProperties": false, + "type": "object", + "properties": { + "bounds": { + "description": "The geographic bounding box that contains all the layer's features.", + "items": { + "type": "number" + }, + "maxItems": 4, + "minItems": 4, + "type": "array" + }, + "opacity": { + "type": "number", + "minimum": 0, + "maximum": 1, + "default": 1, + "description": "Initial opacity setting." + }, + "visible": { + "type": "boolean", + "default": true, + "title": "Initial visibility setting." + }, + "extent": { + "type": "array", + "minItems": 4, + "maxItems": 4, + "items": { + "type": "number" + },"default":[-16763712,5165908,-5688293,10649806], + "description": "The extent that constrains the view. Called with [minX, minY, maxX, maxY] extent coordinates." + }, + "minZoom": { + "type": "integer", + "minimum": 0, + "maximum": 50, + "description": "The minimum view zoom level (exclusive) above which this layer will be visible." + }, + "maxZoom": { + "type": "integer", + "minimum": 0, + "maximum": 50, + "description": "The maximum view zoom level (inclusive) above which this layer will be visible." + }, + "className": { + "type": "string", + "description": "A CSS class name to set to the layer element." + } + } + }, + + "TypeListOfEsriDynamicLayerEntryConfig": { + "additionalProperties": false, + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + { "title": "LayerGroupEntry", "$ref": "#/definitions/TypeLayerGroupEntryConfig" + }, + { "title": "EsriDynamicLayerEntry","$ref": "#/definitions/TypeEsriDynamicLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeListOfEsriFeatureLayerEntryConfig": { + "additionalProperties": false, + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + { "title": "LayerGroupEntry","$ref": "#/definitions/TypeLayerGroupEntryConfig" + }, + { "title": "VectorLayerEntry", "$ref": "#/definitions/TypeVectorLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeListOfGeoCoreLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + { + "title": "LayerGroupEntry", "$ref": "#/definitions/TypeLayerGroupEntryConfig" + }, + { + "title": "GeocoreLayerEntry","$ref": "#/definitions/TypeGeocoreLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeListOfGeoJSONLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + { + "title": "LayerGroupEntry", "$ref": "#/definitions/TypeLayerGroupEntryConfig" + }, + { + "title": "VectorLayerEntry", "$ref": "#/definitions/TypeVectorLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeListOfImageStaticLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + { + "title": "LayerGroupEntry", "$ref": "#/definitions/TypeLayerGroupEntryConfig" + }, + { + "title": "ImageStaticLayerEntry", "$ref": "#/definitions/TypeImageStaticLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeListOfGeoPackageLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + { + "title": "LayerGroupEntry", "$ref": "#/definitions/TypeLayerGroupEntryConfig" + }, + { + "title": "VectorLayerEntry", "$ref": "#/definitions/TypeVectorLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + + "TypeVectorSourceFormats": { + "enum": [ + "GeoJSON", + "EsriJSON", + "KML", + "WFS", + "featureAPI", + "GeoPackage" + ] , + "default": "GeoJSON", + "description": "The feature format used by the XHR feature loader when access path is set." + }, + + "TypeVectorSourceInitialConfig": { + + "type": "object", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "format": { "$ref": "#/definitions/TypeVectorSourceFormats" }, + "dataProjection": { + "type": "string", + "description": "The projection code of the source. Used only for GeoJSON format. Default value is EPSG:4326. " + }, + "featureInfo": { "$ref": "#/definitions/TypeFeatureInfoLayerConfig" }, + "cluster": { "$ref": "#/definitions/TypeSourceVectorClusterConfig" }, + "postSettings": { + "type": "object", + "properties": { + "data": + { + "type": "object" + }, + "header": + { + "type": "object" + } + } + }, + "strategy": { + "default": "all", + "description": "The loading strategy to use. By default an all strategy is used, a one-off strategy which loads all features at once.", + "enum": [ + "all", + "bbox" + ] + } + } + }, + + "TypeSourceVectorClusterConfig": { + + "type": "object", + "description": "Cluster vector data on vector layer. Works out of the box with point geometries. If another geometry is provided, it will be converted to points geometry.", + "properties": { + "enable": { + "type": "boolean", + "title": "Cluster vector data on vector layer. Default = false", + "default": false + }, + "distance": { + "type": "integer", + "description": "Distance in pixels within which features will be clustered together (deafult 20px)." + }, + "minDistance": { + "type": "integer", + "description": "Minimum distance in pixels between clusters. Will be capped at the configured distance. By default no minimum distance is guaranteed. This config can be used to avoid overlapping icons. As a tradoff, the cluster feature's position will no longer be the center of all its features." + }, + "settings": { + "$ref": "#/definitions/TypeSimpleSymbolVectorConfig", + "description": "settings for the cluster symbol and clustered geometries" + }, + "splitZoom": { + "description": "Zoom level at which all clusters will split (default 7).", + "type": "integer" + }, + "textColor": { + "description": "Color for the text showing the number of points in a cluster", + "type": "string" + } + } + }, + + "TypeSourceImageWmsInitialConfig": { + + "type": "object", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "crossOrigin": { + "type": "string", + "description": "The crossOrigin attribute for loaded images. Note that you must provide a crossOrigin value if you want to access pixel data with the Canvas renderer." + }, + "projection": { + "type": "integer", + "description": "Spatial Reference EPSG code supported (https://epsg.io/). We support Web Mercator and Lambert Conical Conform Canada." + }, + "featureInfo": { + "$ref": "#/definitions/TypeFeatureInfoLayerConfig" + }, + "serverType": { + "$ref": "#/definitions/TypeOfServer", + "description": "The type of the remote WMS server. The default value is mapserver." + }, + "style": { + "oneOf": [ + { + "description": "Single style to apply", + "type": "string" + }, + { + "description": "Array of style to choose.", + "items": { + "type": "string" + }, + "type": "array" + } + ] + } + } + }, + + "TypeOfServer": { + "enum": [ + "mapserver", + "geoserver", + "qgis"], + "description": "The type of the remote WMS server. The default value is mapserver." + }, + + "TypeSourceImageEsriInitialConfig": { + + "type": "object", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "crossOrigin": { + "type": "string", + "description": "The crossOrigin attribute for loaded images. Note that you must provide a crossOrigin value if you want to access pixel data with the Canvas renderer." + }, + "projection": { + "type": "integer", + "description": "Spatial Reference EPSG code supported (https://epsg.io/). We support Web Mercator and Lambert Conical Conform Canada." + }, + "featureInfo": { + "$ref": "#/definitions/TypeFeatureInfoLayerConfig" + }, + "format": { + "$ref": "#/definitions/TypeEsriFormatParameter" + }, + "transparent": { + "type": "boolean", + "default": true, + "description": "If true, the image will be exported with the background color of the map set as its transparent color. Only the .png and .gif formats support transparency." + } + } + }, + + "TypeEsriDynamicLayerEntryConfig": { + + "properties": { + "entryType": { + "enum": [ + "raster-image" + ], + "default": "raster-image" + + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "layerFilter": { + "description": "Filter to apply on feature of this layer.", + "type": "string" + }, + "layerId": { + "description": "The id of the layer to display on the map.", + "type": "string" + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "schemaTag": { + "enum": [ + "esriDynamic" + ], + "default": "esriDynamic" + + }, + "source": { + "$ref": "#/definitions/TypeSourceImageEsriInitialConfig" + }, + "style": { + "$ref": "#/definitions/TypeStyleConfig" + } + }, + "required": [ + "schemaTag", + "entryType", + "layerId" + ], + "type": "object" + }, + + "TypeEsriFormatParameter": { + "enum": ["png", "jpg", "gif", "svg"], + "default": "png", + "description": "The format of the exported image. The default format is png." + }, + + "TypeSourceTileInitialConfig": { + + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "featureInfo": { + "$ref": "#/definitions/TypeFeatureInfoNotQueryable" + }, + "crossOrigin": { + "type": "string", + "description": "The crossOrigin attribute for loaded images. Note that you must provide a crossOrigin value if you want to access pixel data with the Canvas renderer." + }, + "projection": { + "type": "integer", + "description": "Spatial Reference EPSG code supported (https://epsg.io/). We support Web Mercator and Lambert Conical Conform Canada." + }, + "tileGrid": { "$ref": "#/definitions/TypeTileGrid" } + } + }, + + "TypeTileGrid": { + + "type": "object", + "properties": { + "extent": { + "type": "array", + "maxItems": 4, + "minItems": 4, + "items": + { + "type": "number" + }, + "description": "The extent that constrains the view. Called with [minX, minY, maxX, maxY] extent coordinates." + }, + "origin": { + "type": "array", + "items": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "description": "The tile grid origin, i.e. where the x and y axes meet ([z, 0, 0]). Tile coordinates increase left to right and downwards. If not specified, extent must be provided." + }, + "resolutions": { + "type": "array", + "items": { + "type": "number" + }, + "description": "Resolutions. The array index of each resolution needs to match the zoom level. This means that even if a minZoom is configured, the resolutions array will have a length of maxZoom + 1." + }, + "tileSize": { + "type": "array", + "maxItems": 2, + "minItems": 2, + "items": + { + "type": "number" + }, + "default": [256, + 256 + ], + "description": "The tile grid origin, i.e. where the x and y axes meet ([z, 0, 0]). Tile coordinates increase left to right and downwards. If not specified, extent must be provided." + } + }, + "required": ["origin", "resolutions"] + }, + + "TypeVectorHeatmapLayerEntryConfig": { + + "type": "object", + "properties": { + "entryType": { + "enum": [ + "vector-heatmap" + ], + "default":"vector-heatmap"}, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { "$ref": "#/definitions/TypeVectorSourceInitialConfig" }, + "gradient": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "minItems": 2, + "default": ["#00f", + "#0ff", + "#0f0", + "#ff0", + "#f00" + ], + "description": "Color gradient of the heatmap, specified as an array of CSS color strings." + }, + "radius": { + "type": "number", + "description": "Radius size in pixels (default 8px)." + }, + "blur": { + "type": "number", + "description": "Blur size in pixels (default 15px)." + }, + "weight": { + "type": "string", + "description": "Feature attribute to use for the weight or a function (ADD FORMAT) that returns a weight from a feature." + }, + "schemaTag": { + "enum": [ + "not used yet" + ], + "defautl":"not used yet" + + } + }, + "required": [ + "layerId", + "entryType" + ] + }, + + "TypeVectorLayerEntryConfig": { + + "type": "object", + "properties": { + "entryType": { "default": "vector","enum": ["vector"] + + }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "layerFilter": { + "description": "Filter to apply on feature of this layer.", + "type": "string" + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { "$ref": "#/definitions/TypeVectorSourceInitialConfig" }, + "style": { "$ref": "#/definitions/TypeStyleConfig" }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "schemaTag": { + "enum": [ + "GeoJSON", + "esriFeature", + "ogcWfs", + "ogcFeature", + "GeoPackage" + ] + } + }, + "required": [ + "layerId", + "schemaTag", + "entryType" + ] + }, + + "TypeVectorTileLayerEntryConfig": { + + "type": "object", + "description": "Layer sources providing vector data divided into a tile grid.", + "properties": { + "entryType": { "enum": ["vector-tile"],"default":"vector-tile" }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "layerFilter": { + "description": "Filter to apply on feature of this layer.", + "type": "string" + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { + "$ref": "#/definitions/TypeVectorTileSourceInitialConfig", + "description": "Information used to configure the source of a vector tile layer." + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "style": { + "$ref": "#/definitions/TypeStyleConfig" + }, + "schemaTag": { + "enum": [ + "not used yet" + ] + } + }, + "required": [ + + "entryType", + "layerId" + ] + }, + + "TypeVectorTileSourceInitialConfig": { + + "type": "object", + "description": "Layer sources providing vector data divided into a tile grid.", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "format": { + "enum": ["GeoJSON", "EsriJSON", "KML", "WFS", "MVT", "featureAPI"], + "description": "The feature format used by the XHR feature loader when access path is set." + }, + "dataProjection": { + "type": "string", + "description": "The projection code of the source. Used only for GeoJSON format. Default value is EPSG:4326." + }, + "featureInfo": { "$ref": "#/definitions/TypeFeatureInfoLayerConfig" }, + "style": { "$ref": "#/definitions/TypeStyleConfig" }, + "tileGrid": { + "$ref": "#/definitions/TypeTileGrid" + } + + } + }, + + "TypeTileLayerEntryConfig": { + + "type": "object", + "properties": { + "entryType": { "enum": ["raster-tile"] , + "default":"raster-tile" + }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "schemaTag": { + "enum": [ + "ogcWms", + "xyzTiles", + "vectorTiles" + ], + "default": "ogcWms" + }, + "source": { "$ref": "#/definitions/TypeSourceTileInitialConfig" } + }, + "required": [ + "schemaTag", + "entryType", + "layerId" + ] + }, + + "TypeListOfOgcWfsLayerEntryConfig": { + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "type": "array", + "minItems": 1, + "additionalProperties": false, + "items": { + "oneOf": [ + { "title" :"LayerGroupEntry", + "$ref": "#/definitions/TypeLayerGroupEntryConfig" + }, + { "title" :"VectorLayerEntry", + "$ref": "#/definitions/TypeVectorLayerEntryConfig" + } + ] + } + }, + + "TypeListOfOgcFeatureLayerEntryConfig": { + "additionalProperties": false, + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + { "title" :"LayerGroupEntry", + "$ref": "#/definitions/TypeLayerGroupEntryConfig" + }, + { "title" :"VectorLayerEntry", + "$ref": "#/definitions/TypeVectorLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeListOfOgcWmsLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + { "title" :"LayerGroupEntry", + "$ref": "#/definitions/TypeLayerGroupEntryConfig" + }, + { "title" :"OgcWmsLayerEntry", + "$ref": "#/definitions/TypeOgcWmsLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeListOfXyzTilesLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + { "title" :"LayerGroupEntry", + "$ref": "#/definitions/TypeLayerGroupEntryConfig" + }, + { "title" :"TileLayerEntry", + "$ref": "#/definitions/TypeTileLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeGeocoreLayerEntryConfig": { + + "type": "object", + "description": "Layer where configration is extracted by a configuration snippet stored on a server. The server configuration will handle bilangual informations.", + "properties": { + "entryType": { "enum": ["geocore"], "default":"geocore" }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "geocoreLayerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "listOfLayerEntryConfig": { + "$ref": "#/definitions/TypeListOfLayerEntryConfig", + "description": "The list of layer entry configurations to use from the GeoView layer group." + }, + "schemaTag": { + "enum": [ + "geoCore" + ], + "defaut": "geoCore" + }, + "source": { "$ref": "#/definitions/TypeSourceGeocoreConfig" } + }, + "required": ["schemaTag","entryType","layerId"] + }, + + "TypeSourceGeocoreConfig": { + + "type": "object", + "description": "Layer source providing geocore data.", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + + "description": "The url path to the geoCore endpoint (optional, this value should be embeded in the GeoView API)." + }, + "featureInfo": { + "$ref": "#/definitions/TypeFeatureInfoNotQueryable" + } + } + }, + + "TypeOgcWmsLayerEntryConfig": { + "type": "object", + "properties": { + "entryType": { + "enum": [ + "raster-image" + ], + "default": "raster-image" + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "schemaTag": { + "enum": [ + "ogcWms" + ] + }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerPathEnding": { + "type": "string", + "description": "The ending element of the layer configuration path." + }, + "layerFilter": { + "type": "string", + "description": "Filter to apply on feature of this layer." + }, + "source": { + "$ref": "#/definitions/TypeSourceImageWmsInitialConfig" + }, + "style": { + "$ref": "#/definitions/TypeStyleConfig" + } + }, + "required": [ + "schemaTag", + "entryType", + "layerId" + ] + }, + + "TypeSourceImageStaticInitialConfig": { + + "properties": { + "crossOrigin": { + "description": "The crossOrigin attribute for loaded images. Note that you must provide a crossOrigin value if you want to access pixel data with the Canvas renderer.", + "type": "string" + }, + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + + }, + "extent": { + "description": "The extent of the static image. Called with [minX, minY, maxX, maxY] extent coordinates.", + "items": { + "type": "number" + }, + "maxItems": 4, + "minItems": 4, + "type": "array" + }, + "featureInfo": { + "$ref": "#/definitions/TypeFeatureInfoNotQueryable" + }, + "projection": { + "description": "Spatial Reference EPSG code supported (https://epsg.io/). We support Web Mercator and Lambert Conical Conform Canada.", + "type": "integer" + } + }, + "type": "object" + }, + + "TypeLayerEntryType": { + "enum": ["vector", + "vector-tile", + "vector-heatmap", + "raster-tile", + "raster-image", + "geoCore" + ], + "description": "Layer entry data type." + }, + + "TypeLayerGroupEntryConfig": { + + "type": "object", + "description": "Entry used to define a layer Group.", + "properties": { + "entryType": { "enum": ["group"], + "default":"group" + }, + "layerId": { + "type": "string", + "description": "The id of the layer group to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer group (English/French)." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer group entries at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "listOfLayerEntryConfig": { + "$ref": "#/definitions/TypeListOfLayerEntryConfig", + "description": "The list of layer entry configurations to use from the GeoView layer group." + } + }, + + "required": ["entryType", "layerId", "listOfLayerEntryConfig"] + }, + + "TypeLayerEntryConfig": { + "type":"object", + "oneOf": [ + { "title": "LayerGroup", "$ref": "#/definitions/TypeLayerGroupEntryConfig" }, + { "title": "VectorTileLayer", "$ref": "#/definitions/TypeVectorTileLayerEntryConfig" }, + { "title": "VectorLayer", "$ref": "#/definitions/TypeVectorLayerEntryConfig" }, + { "title": "OgcWmsLayer","$ref": "#/definitions/TypeOgcWmsLayerEntryConfig"}, + { "title": "EsriDynamicLayer","$ref": "#/definitions/TypeEsriDynamicLayerEntryConfig" }, + { "title": "TileLayer", "$ref": "#/definitions/TypeTileLayerEntryConfig" }, + { "title": "GeocoreLayer", "$ref": "#/definitions/TypeGeocoreLayerEntryConfig" }, + { "title": "VectorHeatmap","$ref": "#/definitions/TypeVectorHeatmapLayerEntryConfig" } + ] + }, + + "TypeListOfLayerEntryConfig": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/TypeLayerEntryConfig" + } + }, + + "TypeMapConfig": { + + "type": "object", + "properties": { + "basemapOptions": { "$ref": "#/definitions/TypeBasemapOptions" }, + "interaction": { "$ref": "#/definitions/TypeInteraction" }, + "listOfGeoviewLayerConfig": { "$ref": "#/definitions/TypeListOfGeoviewLayerConfig" }, + "viewSettings": { "$ref": "#/definitions/TypeViewSettings" }, + "extraOptions": { + "type": "object", + "description": "Additional options used for OpenLayers map options" + } + }, + "required": ["basemapOptions", "interaction", "viewSettings"] + }, + + "TypeBasemapOptions": { + + "type": "object", + "properties": { + "basemapId": { "$ref": "#/definitions/TypeBasemapId" }, + "shaded": { + "type": "boolean", + "default": true, + "title": "Enable or disable shaded basemap (if basemap id is set to shaded then this should be false)." + }, + "labeled": { + "type": "boolean", + "default": true, + "title": "Enable or disable basemap labels" + } + }, + "required": ["basemapId", "shaded", "labeled"] + }, + + "TypeBasemapId": { + "description": "Id of the basemap to use." , + "enum": ["transport", "osm", "simple", "nogeom", "shaded"], + "default": "transport" + + }, + + "TypeInteraction": { + "enum": ["static", "dynamic"], + "default": "dynamic", + "description": "If map is dynamic (pan/zoom) or static to act as a thumbnail (no nav bar)." + }, + + "TypeListOfGeoviewLayerConfig": { + + "description": "List of GeoView Layers in the order which they should be added to the map.", + "type": "array", + + "items": { + "$ref": "#/definitions/TypeGeoviewLayerConfig" + } + }, + + "TypeGeoviewLayerConfig": { + + "type": "object", + "properties": { + "geoviewLayerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "metadataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The GeoView layer access path (English/French)." + }, + "geoviewLayerId": { + "description": "The id of the layer for referencing within the viewer (does not relate directly to any external service). The id will have the language extension (id-'lang').", + "type": "string" + }, + "geoviewLayerType": { + "$ref": "#/definitions/TypeGeoviewLayerType", + "description": "Type of GeoView layer." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the GeoView layer at creation time." + }, + "listOfLayerEntryConfig": { + "$ref": "#/definitions/TypeListOfLayerEntryConfig", + "description": "The layer entries to use from the GeoView layer." + }, + "serviceDateFormat": { + "description": "Date format used by the service endpoint.", + "type": "string" + } + }, + "required": [ + "geoviewLayerType", + "listOfLayerEntryConfig" + ] + }, + + "TypeGeoviewLayerType": { + "type": "string", + "enum": [ + "esriDynamic", + "esriFeature", + "GeoJSON", + "geoCore", + "GeoPackage", + "xyzTiles", + "ogcFeature", + "ogcWfs", + "ogcWms" + ], + "default": [ + "esriDynamic" + ], + "description": "Type of GeoView layer." + } + , + "TypeImageStaticLayerEntryConfig": { + + "properties": { + "entryType": { + "enum": [ + "raster-image" + ] + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "layerId": { + "description": "The id of the layer to display on the map.", + "type": "string" + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "schemaTag": { + "enum": [ + "imageStatic" + ] + }, + "source": { + "$ref": "#/definitions/TypeSourceImageStaticInitialConfig" + } + }, + "required": [ + "schemaTag", + "entryType", + "layerId" + ], + "type": "object" + }, + + "TypeViewSettings": { + + "type": "object", + "properties": { + "center": { + "type": "array", + "items": [ + + { + "type": "number", + "minimum": -160, + "maximum": 160, + "default": -106, + "description": "Initial longitude value for map center." + }, + { + "type": "number", + "minimum": -80, + "maximum": 80, + "default": 60, + "description": "Initial latitude value for map center." + } + + ] + + }, + "enableRotation": { + "type": "boolean", + "default": true, + "title": "Enable rotation. If false, a rotation constraint that always sets the rotation to zero is used." + }, + "extent": { + "type": "array", + "minItems":4, + "maxItems":4, + "items": { + + "type": "number" + + },"default":[-16763712,5165908,-5688293,10649806], + "description": "The extent that constrains the view. Called with [minX, minY, maxX, maxY] extent coordinates." + }, + "minZoom": { + "type": "integer", + "description": "The minimum zoom level used to determine the resolution constraint. If not set, will use default from basemap.", + "minimum": 0, + "maximum": 50 + }, + "maxZoom": { + "type": "integer", + "description": "The maximum zoom level used to determine the resolution constraint. If not set, will use default from basemap.", + "minimum": 0, + "maximum": 50 + }, + "projection": { "$ref": "#/definitions/TypeValidMapProjectionCodes" }, + "rotation": { + "type": "integer", + "minimum": -360, + "maximum": 360, + "default": 0, + "description": "The initial rotation for the view in degree (positive rotation clockwise, 0 means North). Will be converted to radiant by the viewer." + }, + "zoom": { + "type": "number", + "minimum": 0, + "maximum": 28, + "default": 12, + "description": "Initial map zoom level. Zoom level are define by the basemap zoom levels." + } + }, + "required": ["zoom", "center"] + }, + + "TypeAppBarProps": { + "default": [ + "geolocator" + ], + "description": "Controls availalbe on the application bar.", + "items": { + "enum": [ + "geolocator", + "export" + ] + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + + }, + + "TypeNavBarProps": { + "type": "array", + "uniqueItems": true, + "items": { + "enum": [ + "zoom", + "fullscreen", + "fullextent" + ] + }, + "default": [ + "zoom", + "fullscreen", + "fullextent" + ], + "description": "Controls availalbe on the navigation bar.", + "minItems": 0 + }, + + "TypeMapComponents": { + "type": "array", + "uniqueItems": true, + "items": { + "enum": [ + "overview-map", + "north-arrow", + "geolocator" + ] + }, + "default": [ + "overview-map", + "north-arrow", + "geolocator" + ], + "description": "Core components to initialize on viewer load. The schema for those are inside this file.", + "minItems": 0 + }, + + "TypeMapCorePackages": { + "type": "array", + "uniqueItems": true, + "items": { + "enum": [ + "basemap-panel", + "layers-panel", + "details-panel", + "geolocator-panel", + "footer-panel", + "swiper" + ] + }, + "default": ["basemap-panel", + "layers-panel", + "details-panel", + "geolocator-panel" + ], + "description": "Core packages to initialize on viewer load. The schema for those are on their own package. NOTE: config from packages are in the same loaction as core config (<>-<>.json).", + "minItems": 0 + }, + + "TypeExternalPackages": { + "type": "array", + "items": { + + "type": "object", + "properties": { + "name": { + "type": "string", + + + "description": "External Package name. The name must be ideintical to the window external package object to load." + }, + "configUrl": { + "type": "string", + + + "description": "The url to the external package configuration setting. The core package will read the configuration and pass it inside the package." + } + }, + "required": ["name"] + }, + "default": [], + "description": "List of external packages to initialize on viewer load.", + "minItems": 0 + }, + + "TypeServiceUrls": { + + "type": "object", + "description": "Service endpoint urls", + "properties": { + "keys": { + "type": "string", + "default": "https://geocore.api.geo.ca", + + "description": "Service end point to access API for layers specification (loading and plugins parameters). By default it is GeoCore but can be another endpoint with similar output." + }, + "geolocator": { + "type": "string", + + "description": "Service end point to access geo location of searched value." + }, + + "proxyUrl": { + "type": "string", + + "description": "An optional proxy to be used for dealing with same-origin issues. URL must either be a relative path on the same server or an absolute path on a server which sets CORS headers." + } + }, + "required": [ + "keys" + ] + }, + + "TypeDisplayLanguage": { + "enum": ["en", "fr"], + "description": "Display languages supported." + }, + + "TypeLocalizedLanguages": { + "enum": ["en", "fr"], + "description": "ISO 639-1 code indicating the languages supported by the configuration file." + }, + + "TypeListOfLocalizedLanguages": { + "type": "array", + "uniqueItems": true, + "items": { "$ref": "#/definitions/TypeLocalizedLanguages" }, + "default": ["en", "fr"], + "description": "ISO 639-1 code indicating the languages supported by the configuration file. It will use value(s) provided here to access bilangual configuration nodes. For value(s) provided here, each bilingual configuration node MUST provide a value.", + "minItems": 1 + }, + + "TypeValidVersions": { + "enum": ["1.0"], + "description": "The schema version that can be used to validate the configuration file. The schema should enumerate the list of versions accepted by this version of the viewer." + }, + + "TypeMapFeaturesInstance": { + + "description": "The map feature configuration.", + "type": "object", + "properties": { + "map": { "$ref": "#/definitions/TypeMapConfig" }, + "appBar": { "$ref": "#/definitions/TypeAppBarProps" }, + "navBar": { "$ref": "#/definitions/TypeNavBarProps" }, + "components": { "$ref": "#/definitions/TypeMapComponents" }, + "corePackages": { "$ref": "#/definitions/TypeMapCorePackages" }, + "externalPackages": { "$ref": "#/definitions/TypeExternalPackages" }, + "serviceUrls": { "$ref": "#/definitions/TypeServiceUrls" }, + "suportedLanguages": { "$ref": "#/definitions/TypeListOfLocalizedLanguages" }, + "schemaVersionUsed": { "$ref": "#/definitions/TypeValidVersions" } + }, + "required": ["map", "suportedLanguages"] + } + }, + + "properties": { + "map": { "$ref": "#/definitions/TypeMapConfig" }, + "theme": { "Title": "Map Theme Style", + "enum": [ + "dark", + "light" + ], + "default": "dark", + "description": "Theme style of the viewer." + }, + "appBar": { "$ref": "#/definitions/TypeAppBarProps" }, + "navBar": { "$ref": "#/definitions/TypeNavBarProps" }, + "components": { "$ref": "#/definitions/TypeMapComponents" }, + "corePackages": { "$ref": "#/definitions/TypeMapCorePackages" }, + "externalPackages": { + + }, + "serviceUrls": { "$ref": "#/definitions/TypeServiceUrls" }, + "suportedLanguages": { "$ref": "#/definitions/TypeListOfLocalizedLanguages" }, + "versionUsed": { "$ref": "#/definitions/TypeValidVersions" } + + + } + }, + "rangeSlider": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "title": "Enable", + "default": false + }, + "open": { + "type": "boolean", + "title": "Open by default", + "default": false + }, + "maximize": { + "type": "boolean", + "title": "Slider maximized by default", + "default": false + }, + "maximizeDesc": { + "type": "boolean", + "title": "Description section open by default", + "default": false + }, + "autorun": { + "type": "boolean", + "title": "Start animation on load", + "defaul": false + }, + "loop": { + "type": "boolean", + "title": "Play the animation in loop", + "default": false + }, + "reverse": { + "type": "boolean", + "title": "Animation in reverse mode", + "default": false + }, + "lock": { + "type": "boolean", + "title": "Lock handle", + "default": false + }, + "controls": { + "type": "array", + "minItems":0, + "uniqueItems": true, + + "items": { + "enum": [ + "lock", + "loop", + "delay", + "export", + "refresh", + "reverse" + ] + }, + "default": [ + "lock", + "delay" + ], + "title": "Slider bar controls" + }, + "params": { + "type": "object", + "title": "Parameters", + "properties": { + "type": { + "title": "Slider Type", + "type": "string", + "enum": [ + "number", + "date", + "wmst" + ], + "description": "If the Date or WMS-T is selected, range and limit must be in milliseconds. Note: Date is for esri layer and WMS-T is for ogc WMS-T layer.", + "default": "number" + }, + "rangeType": { + "title": "Range Type", + "type": "string", + "enum": [ + "single", + "dual" + ], + "description": "Type of range (single for one handle or dual for 2 handles).", + "default": "dual" + }, + "stepType": { + "title": "Step Type", + "type": "string", + "enum": [ + "dynamic", + "static" + ], + "description": "Type of step (dynamic for open values or static from a list of values).", + "default": "dynamic" + }, + "precision": { + "title": "Precision", + "type": "string", + "enum": [ + "0", + "1", + "2", + "date", + "hour" + ], + "description": "Precision of numeric data (0, 1, 2) or date (Date, Hour).", + "default": "0" + }, + "delay": { + "title": "Animation Delay", + "type": "string", + "enum": [ + "3000", + "4000", + "5000", + "6000", + "7000" + ], + "description": "Delay between animations.", + "default": "3000" + }, + "rangeInterval": { + "type": "number", + "title": "Interval (in milliseconds for date data type)", + "default": -1, + "description": "When the limit type is dynamic, this option allows you to define a preset interval between the two handles. The value must be in milliseconds date data type. For other numerical value formats, enter the desired value directly. To convert a time interval into milliseconds, use the built-in converter. Will start at the beginning of the scroll bar, unless the \"Start at end\" option is enabled." + }, + "startRangeEnd": { + "type": "boolean", + "title": "Start interval at the end", + "default": false + }, + "range": { + "type": "object", + "title": "", + "properties": { + "min": { + "type": "number", + "title": "Minimum value of the range (in milliseconds for date data type)", + "description": "The minimum value of the range that corresponds to the position of the left handle. If not defined, the minimum limit will be used. The value must be in milliseconds date data type. For other numerical value formats, enter the desired value directly. To convert a date to milliseconds, use the site's built-in converter.", + "default": 0 + }, + "max": { + "type": "number", + "title": "Maximum value of the range (in milliseconds for date data type)", + "description": "The maximum value of the range that corresponds to the position of the right handle. If not defined, the maximum limit will be used. The value must be in milliseconds date data type. For other numerical value formats, enter the desired value directly. To convert a date to milliseconds, use the site's built-in converter.", + "default": 1 + } + } + }, + "limit": { + "type": "object", + "title": "Limits of the data set values", + "properties": { + "min": { + "type": "number", + "title": "Minimum Limit", + "description": "The minimum value contained in the dataset. If not defined, the value will be found using the values present in the used field of the layer. To convert a date to milliseconds, use the site's built-in converter.", + "default": 0 + }, + "max": { + "type": "number", + "title": "Maximum Limit", + "description": "The maximum value contained in the dataset. If not defined, the value will be found using the values present in the used field of the layer. To convert a date to milliseconds, use the site's built-in converter.", + "default": 1 + }, + "staticItems": { + "type": "array", + "title": "Static Limit Values", + "items": { + "title": "Value", + "type": "number" + }, + "default": [], + "description": "The values for static limit. Note: the minimum and maximum limits are used to define the lower and upper static limits. Enter only the intermediate values here." + } + } + }, + "units": { + "type": "string", + "title": "Units", + "description": "Shown at the right of the time axis. Keep it short to improve readability.", + "default": "" + }, + "description": { + "type": "string", + "title": "Description", + "description": "Description to add in the section below the slider." + } + }, + "required": [ + "type" + ] + }, + "layers": { + "type": "array", + "title": "Layers", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The id of the layer for referencing within the viewer (does not relate directly to any external service).", + "title": "Layer id", + "enum":[] + + }, + "field": { + "type": "string", + "description": "The field name to use.", + "title": "Field Name", + "default": "" + }, + "isTimeAware": { + "type": "boolean", + "title": "Is Time Aware", + "default": true, + "description": "If time aware is true, the slider will use the TimeInfo (ESRI) or time dimension (WMS) to extract limits and range." + } + }, + "required": [ + "id, field", + "isTimeAware" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "params", + "layers" + ] + }, + "areasOfInterest": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "title": "Enable" + }, + "areas": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title-en-CA": { + "type": "string", + "title": "English Title" + }, + "title-fr-CA": { + "type": "string", + "title": "French Title" + }, + "xmin": { + "type": "number", + "title": "Minimum value of x", + "default": -4844430 + }, + "ymin": { + "type": "number", + "title": "Minimum value of y", + "default": -1052774 + }, + "xmax": { + "type": "number", + "title": "Maximum value of x", + "default": 5666163 + }, + "ymax": { + "type": "number", + "title": "Maximum value of y", + "default": 4170111 + }, + "wkid": { + "type": "number", + "title": "Spatial Reference", + "default": 3978 + }, + "thumbnailUrl": { + "type": "string", + "title": "Thumbnail URL" + } + }, + "required": [ + "title-en-CA", + "title-fr-CA" + ] + } + } + } + }, + "chart": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "title": "Enable" + }, + "type": { + "title": "Chart Type", + "type": "string", + "enum": [ + "pie", + "bar", + "line" + ], + "description": "", + "default": "pie" + }, + "title": { + "title": "Title", + "type": "string", + "default": "" + }, + "labelsPie": { + "type": "object", + "title": "Labels", + "properties": { + "type": { + "title": "Type", + "type": "string", + "enum": [ + "field", + "config" + ], + "description": "Retreive the labels from a field or from the configuration.", + "default": "config" + }, + "values": { + "title": "Values", + "type": "string", + "description": "Values separated by semi colon or field name.", + "default": "" + }, + "split": { + "title": "Split Character", + "type": "string", + "description": "Character to use to split list of values.", + "default": ";" + } + }, + "required": [ + "type", + "values", + "split" + ] + }, + "options": { + "title": "Options", + "type": "object", + "properties": { + "colors": { + "title": "Datasets Colors", + "type": "string", + "description": "Hexadecimal color code separated by semicolon. If not provided, default colors will be use.", + "default": "" + }, + "cutOut": { + "title": "Cut Out Percentage", + "type": "number", + "description": "Cut out percentage to use to give doughnut effect.", + "default": 0, + "minimum": 0, + "maximum": 80 + } + }, + "required": [ + "cutOut" + ] + }, + "axis": { + "type": "object", + "title": "Labels", + "properties": { + "xAxis": { + "title": "X Axis", + "type": "object", + "properties": { + "title": { + "title": "Title", + "type": "string", + "default": "" + }, + "type": { + "title": "Type", + "type": "string", + "enum": [ + "field", + "config", + "linear", + "date" + ], + "description": "Retreive the labels from a field or configuration for bar chart or from values (linear or time) for line chart.", + "default": "config" + }, + "values": { + "title": "Values", + "type": "string", + "description": "Values separated by semicolon or field name.", + "default": "" + }, + "split": { + "title": "Split Character", + "type": "string", + "description": "Character to use to split list of values.", + "default": ";" + } + }, + "required": [ + "type", + "values", + "split" + ] + }, + "yAxis": { + "title": "Y Axis", + "type": "object", + "properties": { + "title": { + "title": "Title", + "type": "string", + "default": "" + }, + "type": { + "title": "Type", + "type": "string", + "enum": [ + "field", + "config", + "linear", + "time" + ], + "description": "Retreive the labels from a field or configuration for bar chart or from values (linear or time) for line chart.", + "default": "config" + }, + "values": { + "title": "Values", + "type": "string", + "description": "Values separated by semicolon or field name.", + "default": "" + }, + "split": { + "title": "Split Character", + "type": "string", + "description": "Character to use to split list of values.", + "default": ";" + } + }, + "required": [ + "type", + "values", + "split" + ] + }, + "required": [ + "xAxis", + "yAxis" + ] + } + }, + "layers": { + "type": "array", + "title": "Layers", + "items": { + "type": "object", + "properties": { + "id": { + "title": "Layer ID", + "type": "string", + "description": "", + "enum":[] + }, + "nameField": { + "type": "string", + "title": "Name Field", + "description": "Field name to use for the chart selection combo box when multiple charts." + }, + "type": { + "title": "Chart Data Type", + "type": "string", + "enum": [ + "inline", + "link" + ], + "description": "Type of data (inline for items inside the layer or link for items inside a link table).", + "default": "inline" + }, + "linkUrl": { + "type": "string", + "title": "Link URL", + "description": "URL of the link table." + }, + "linkField": { + "type": "string", + "title": "Link Field", + "description": "Field name for the link between the layer and the table." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "title": "Type of data inside the field", + "type": "string", + "enum": [ + "single", + "combine" + ], + "description": "Single if there is only one value inside the field. Combine if we use time axis and time and value are part of the field.", + "default": "combine" + }, + "linkType": { + "title": "Type of link", + "type": "string", + "enum": [ + "single", + "multi" + ], + "description": "How data is structure inside the link table (single for one field for value and one for date OR multiple if there is multiple datasets inside one field and the chart needs to parse).", + "default": "single" + }, + "link": { + "title": "Link Field", + "type": "string", + "description": "Link field to link between layer and table." + }, + "date": { + "title": "Date Field", + "type": "string", + "description": "Field to use for the date" + }, + "measure": { + "title": "Measure Field", + "type": "string" + }, + "values": { + "title": "Label Values", + "type": "string", + "description": "Field name to get labels from for link type multi." + }, + "label": { + "type": "object", + "title": "Dataset Labels", + "properties": { + "type": { + "title": "Type", + "type": "string", + "enum": [ + "field", + "config" + ], + "description": "Retreive the labels from a field or from the configuration.", + "default": "config" + }, + "values": { + "title": "Values", + "type": "string", + "description": "Values separated by semicolon or field name.", + "default": "" + }, + "split": { + "title": "Split Character", + "type": "string", + "description": "Character to use to split list of values.", + "default": ";" + } + }, + "required": [ + "type", + "values", + "split" + ] + }, + "regex": { + "title": "Dataset splitter", + "type": "string", + "description": "

Regex value to split datasets inside the field.

This field is to manage when you have multiple datasets or combine values in the same field. To be able to separate datasets from values, we will use a regex expression. We encourage you to use your data and test your regex expression on a online site like https://regex101.com.

Below we list some samples of datasets and regex:

  • Sample 1
    • Data: [255;255;255];[120;232;23];[32;44;134]
    • Regex: \\\\[|\\\\];\\\\[|\\\\]
    • Ouput: 3 datasets (e.g. 255;255;255). Values inside dataset will be split by the field 'Values Splitter'.
  • Sample 2
    • Data: (2011-03-28,0.511),(2011-04-04,0.421)
    • Regex: \\\\(|\\\\),\\\\(|\\\\)
    • Ouput: 1 datasets, 2 pairs of values (e.g. 2011-03-28,0.511). Values inside are combined (y and x axis) and will be split by the field 'Values Splitter'.

Note: we need to double the '\\' character

", + "default": "\\(|\\),\\(|\\)" + }, + "split": { + "title": "Values splitter", + "type": "string", + "default": ",", + "description": "Character to use to split values inside a field. E.g. a field contains '10;20;30' means there is 3 values split by ';' or [1,2,3];[4,5,6] means there is 2 datasets with 3 values each split by ','." + }, + "prefix": { + "title": "Prefix", + "type": "string", + "default": "", + "description": "Prefix to add to data hover." + }, + "suffix": { + "title": "Suffix", + "type": "string", + "default": "", + "description": "Suffix to add to data hover." + } + }, + "required": [ + "type", + "measure", + "split" + ] + } + }, + "details": { + "type": "object", + "title": "Details", + "properties": { + "enabled": { + "type": "boolean", + "title": "Enable" + }, + "value": { + "type": "string", + "title": "Value", + "description": "String with the custom details in markdown notation." + } + } + } + }, + "required": [ + "id", + "nameField", + "type", + "data" + ] + } + }, + "required": [ + "type", + "layers" + ] + } + }, + "swiper": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "title": "Enable" + }, + "type": { + "type": "string", + "title": "Type", + "enum": [ + "vertical", + "horizontal" + ], + "default": "vertical" + }, + "keyboardOffset": { + "type": "number", + "title": "Keyboard Movement", + "description": "Pixel value of swiper displacement.", + "default": 10, + "minimum": 1, + "maximum": 100 + }, + "layers": { + "type": "string", + "title": "Layers", + "description": "The id of the layer for referencing within the viewer (does not relate directly to any external service).", + "enum":[] + } + + + + + + }, + "required": [ + "type", + "keyboardOffset", + "layers" + ] + }, + "draw": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "GeoView Core Plugin Schema", + "comments": "It correspond to the TypeMapFeaturesInstance type.", + + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "title": "Enable" + }, + "open": { + "type": "boolean", + "title": "Open by default", + "default": true + }, + "tools": { + "type": "array", + "title": "Tools", + "minItems":0, + "uniqueItems": true, + "items":{ + "enum": [ + "picker", + "point", + "polyline", + "polygon", + "edit", + "measure", + "extent", + "write", + "read" + ] + }, + + + "description": "Tools to add to draw toolbar.", + "default": [ + "picker", + "point", + "polyline", + "polygon", + "edit", + "measure", + "extent", + "write", + "read" + ] + } + + } + }, + "thematicSlider": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "title": "Enable" + }, + "open": { + "type": "boolean", + "title": "Open by default", + "default": true + }, + "autorun": { + "type": "boolean", + "title": "Start animation on load", + "defaul": false + }, + "loop": { + "type": "boolean", + "title": "Play the animation in loop", + "default": false + }, + "slider": { + "type": "boolean", + "title": "Enable slider control", + "default": true + }, + "stack": { + "type": "boolean", + "title": "Stack layer visibility", + "default": false + }, + "legendStack": { + "type": "boolean", + "title": "Stack legend items (useful with the stack option to see all active elements legend)", + "default": true + }, + "layers": { + "type": "array", + "title": "Layers", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The id of the layer for referencing within the viewer (does not relate directly to any external service).", + "title": "Layer id", + "enum":[] + + }, + "duration": { + "type": "number", + "title": "Animation duration in milliseconds", + "minimum": 3000, + "default": 3000 + }, + "title": { + "type": "string", + "title": "Title for this layer animation" + }, + "description": { + "type": "string", + "title": "Description for this layer animation" + }, + "legend": { + "type": "array", + "title": "Legend", + "description": "Add items for a custom legend, leave it blank for default legend.", + "default": [], + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "title": "Label" + }, + "image": { + "type": "object", + "properties": { + "url": { + "type": "string", + "title": "URL", + "default": "" + }, + "width": { + "type": "number", + "title": "Width", + "minimum": 25, + "maximum": 150, + "default": 150 + }, + "height": { + "type": "number", + "title": "Height", + "minimum": 25, + "maximum": 150, + "default": 150 + } + }, + "required": [ + "url", + "width", + "height" + ] + } + }, + "required": [ + "image" + ] + } + } + }, + "required": [ + "id", + "duration" + ] + } + }, + "required": [ + "layers" + ] + } + } + } + ] + } + + diff --git a/src/components/db may 3.json b/src/components/db may 3.json new file mode 100644 index 0000000..094516a --- /dev/null +++ b/src/components/db may 3.json @@ -0,0 +1,2159 @@ +{ + + "plugins": [ + + { + + "map": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "GeoView Core Config Schema", + "comments": "Configuration for GeoView core packages, each packages manages it own schema. It correspond to the TypeMapFeaturesInstance type.", + + "definitions": { + "TypeLocalizedString": { + + "minProperties": 1, + "type": "object", + "properties": { + "en": { + "type": "string", + "description": "The English version of the string." + }, + "fr": { + "type": "string", + "description": "The French version of the string. " + } + } + }, + + "TypeDetailsLayerConfig": { + + "type": "object", + "properties": { + + "parser": { + "type": "string", + "description": "A path to a javascript file with a function for parsing the layers identify output. Only needed if a custom template is being used." + }, + "template": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "A path to an html template (English/French) that will override default identify output." + } + }, + "required": ["template"] + }, + + "TypeFeatureInfoLayerConfig": { + + "type": "object", + "properties": { + "queryable": { + "type": "boolean", + "default": true, + "title": "Allow querying. Default = true." + }, + "customParser": { "$ref": "#/definitions/TypeDetailsLayerConfig" }, + "nameField": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display field (English/French) of the layer. If it is not present the viewer will make an attempt to find the first valid field." + }, + "tooltipField": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The field (English/French) to be used for tooltips. If it is not present the viewer will use nameField (if provided)." + }, + "outfields": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "A comma separated list of attribute names (English/French) that should be requested on query (all by default)." + }, + "aliasFields": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "A comma separated list of attribute names (English/French) that should be use for alias. If empty, no alias will be set if not found." + } + } + }, + + "TypeFillSymbolConfig": { + + "type": "object", + "description": "Fill style for vector features.", + "properties": { + "color": { + + "type": "string" + } + }, + "required": ["color"] + }, + + "TypeStrokeSymbolConfig": { + + "type": "object", + "description": "Stroke style for vector features.", + "properties": { + "color": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": ["color", "width"] + }, + + "TypeLineStringVectorConfig": { + + "type": "object", + "properties": { + "type": { + "enum": ["lineString"] + }, + "stroke": { "$ref": "#/definitions/TypeStrokeSymbolConfig" } + }, + "required": ["type", "stroke"] + }, + + "TypePolygonVectorConfig": { + + "type": "object", + "properties": { + "type": { + "enum": ["filledPolygon"] + }, + "color": { "type": "string" }, + "stroke": { "$ref": "#/definitions/TypeStrokeSymbolConfig" }, + "paternSize": { + "type": "number", + "description": "Distance between patern lines. Default = 8" + }, + "paternWidth": { + "type": "number", + "description": "Patern line width.default = 1." + }, + "fillStyle": { + "enum": ["solid", "backwardDiagonal", "cross", "diagonalCross", "forwardDiagonal", "horizontal", "null", "vertical"], + "description": "Kind of filling for vector features. Default = solid. " + } + }, + "required": ["type", "stroke"] + }, + + "TypeSimpleSymbolVectorConfig": { + + "type": "object", + "properties": { + "type": { + "enum": ["simpleSymbol"] + }, + "rotation": { + "type": "number", + "description": "Symbol rotation in radians." + }, + "color": { "type": "string" }, + "stroke": { "$ref": "#/definitions/TypeStrokeSymbolConfig" }, + "size": { "type": "number" }, + "offset": { + "type": "array", + "items": { + "type": "number" + }, + "minItems": 2, + "maxItems": 2 + }, + "symbol": { + "enum": ["circle", "+", "diamond", "square", "triangle", "X", "star"] + } + }, + "required": ["type", "symbol"] + }, + + "TypeIconSymbolVectorConfig": { + + "type": "object", + "properties": { + "type": { + "enum": ["iconSymbol"] + }, + "mimeType": { "type": "string" }, + "src": { "type": "string" }, + "width": { + "type": "integer", + "description": "Icon width in pixel." + }, + "height": { + "type": "integer", + "description": "Icon height in pixel." + }, + "rotation": { + "type": "number", + "description": "Icon rotation in radians." + }, + "opacity": { + "type": "number", + "minimum": 0, + "maximum": 1, + "default": 1 + }, + "offset": { + "type": "array", + "items": { + "type": "number" + }, + "minItems": 2, + "maxItems": 2 + }, + "crossOrigin": { + "type": "string", + "description": "The crossOrigin attribute for loaded images. Note that you must provide a crossOrigin value if you want to access pixel data with the Canvas renderer." + } + }, + "required": ["type", "mimeType", "src"] + }, + + "TypeSimpleStyleConfig": { + "additionalProperties": false, + "type": "object", + "properties": { + "styleId": { + "type": "string" + }, + "styleType": { + "enum": ["simple"] + }, + "label": { + "type": "string" + }, + "settings": { "$ref": "#/definitions/TypeKindOfVectorSettings" } + }, + "required": ["styleType", "label", "settings"] + }, + + + "TypeUniqueValueStyleConfig": { + + "type": "object", + "properties": { + "styleId": { + "type": "string" + }, + "styleType": { + "enum": ["uniqueValue"] + }, + "defaultLabel": { + "type": "string", + "description": "Label used if field/value association is not found." + }, + "defaultSettings": { + "$ref": "#/definitions/TypeKindOfVectorSettings", + "description": "Settings used if field/value association is not found." + }, + "fields": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "uniqueValueStyleInfo": { "$ref": "#/definitions/TypeUniqueValueStyleInfo" } + }, + "required": ["styleType", "fields", "uniqueValueStyleInfo"] + }, + + "TypeUniqueValueStyleInfo": { + "type": "array", + "minItems": 2, + "items": { + " type": "object", + "properties": { + "label": { + "type": "string" + }, + "values": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + + }, + "settings": { "$ref": "#/definitions/TypeKindOfVectorSettings" } + }, + + "required": ["label", "values", "settings"] + } + }, + + "TypeClassBreakStyleConfig": { + + "type": "object", + "properties": { + "styleId": { + "type": "string" + }, + "styleType": { + "enum": ["classBreaks"] + }, + "defaultLabel": { + "type": "string", + "description": "Label used if field/value association is not found." + }, + "defaultSettings": { + "$ref": "#/definitions/TypeKindOfVectorSettings", + "description": "Settings used if field/value association is not found." + }, + "field": { + "type": "string" + }, + "classBreakStyleInfos": { "$ref": "#/definitions/TypeClassBreakStyleInfo" } + }, + "required": ["styleType", "label", "field", "classBreakStyleInfo"] + }, + + + "TypeClassBreakStyleInfo": { + "additionalProperties": false, + "type": "array", + + "items": { + " type": "object", + "properties": { + + "label": { + "type": "string" + }, + "minValue": { + "type": "number" + }, + "maxValue": { + "type": "number" + }, + "settings": { "$ref": "#/definitions/TypeKindOfVectorSettings" } + } + }, + "minItems": 2, + "required": ["label", "minValue", "maxValue", "settings"] + + }, + + "TypeKindOfVectorSettings": { + "anyOf": [ + { "title":"LineString","$ref": "#/definitions/TypeLineStringVectorConfig" }, + {"title":"Polygon", "$ref": "#/definitions/TypePolygonVectorConfig" }, + {"title":"SimpleSymbol", "$ref": "#/definitions/TypeSimpleSymbolVectorConfig" }, + {"title":"IconSymbol", "$ref": "#/definitions/TypeIconSymbolVectorConfig" } + ] + }, + + "TypeStyleConfig": { + "anyOf": [ + { "title":"SimpleStyle","$ref": "#/definitions/TypeSimpleStyleConfig" }, + {"title":"UniqueValue","$ref": "#/definitions/TypeUniqueValueStyleConfig" }, + {"title":"ClassBreak", "$ref": "#/definitions/TypeClassBreakStyleConfig" } + ] + }, + + "TypeLayerInitialSettings": { + + "type": "object", + "properties": { + "opacity": { + "type": "number", + "minimum": 0, + "maximum": 1, + "default": 1, + "description": "Initial opacity setting." + }, + "visible": { + "type": "boolean", + "default": true, + "title": "Initial visibility setting." + }, + "extent": { + "type": "array", + "minItems": 4, + "maxItems": 4, + "items": { + "type": "number" + },"default":[-16763712,5165908,-5688293,10649806], + "description": "The extent that constrains the view. Called with [minX, minY, maxX, maxY] extent coordinates." + }, + "minZoom": { + "type": "integer", + "minimum": 0, + "maximum": 50, + "description": "The minimum view zoom level (exclusive) above which this layer will be visible." + }, + "maxZoom": { + "type": "integer", + "minimum": 0, + "maximum": 50, + "description": "The maximum view zoom level (inclusive) above which this layer will be visible." + }, + "className": { + "type": "string", + "description": "A CSS class name to set to the layer element." + } + } + }, + + "TypeVectorSourceFormats": { + "enum": ["GeoJSON", "EsriJSON", "KML", "WFS", "featureAPI"], + "description": "The feature format used by the XHR feature loader when access path is set." + }, + + "TypeVectorSourceInitialConfig": { + + "type": "object", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeTileGrid", + "format": "uri", + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "format": { "$ref": "#/definitions/TypeVectorSourceFormats" }, + "dataProjection": { + "type": "string", + "description": "The projection code of the source. Used only for GeoJSON format. Default value is EPSG:4326. " + }, + "featureInfo": { "$ref": "#/definitions/TypeFeatureInfoLayerConfig" }, + "cluster": { "$ref": "#/definitions/TypeSourceVectorClusterConfig" } + } + }, + + "TypeSourceVectorClusterConfig": { + + "type": "object", + "description": "Cluster vector data on vector layer. Works out of the box with point geometries. If another geometry is provided, it will be converted to points geometry.", + "properties": { + "enable": { + "type": "boolean", + "title": "Cluster vector data on vector layer. Default = false", + "default": false + }, + "distance": { + "type": "integer", + "description": "Distance in pixels within which features will be clustered together (deafult 20px)." + }, + "minDistance": { + "type": "integer", + "description": "Minimum distance in pixels between clusters. Will be capped at the configured distance. By default no minimum distance is guaranteed. This config can be used to avoid overlapping icons. As a tradoff, the cluster feature's position will no longer be the center of all its features." + } + } + }, + + "TypeSourceImageInitialConfig": { + "anyOf": [ + { "title":"Wms Image Config","$ref": "#/definitions/TypeSourceImageWmsInitialConfig" }, + { "title":"Esri Image Config","$ref": "#/definitions/TypeSourceImageEsriInitialConfig" } + ] + }, + + "TypeSourceImageWmsInitialConfig": { + + "type": "object", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeTileGrid", + "format": "uri", + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "crossOrigin": { + "type": "string", + "description": "The crossOrigin attribute for loaded images. Note that you must provide a crossOrigin value if you want to access pixel data with the Canvas renderer." + }, + "projection": { + "type": "integer", + "description": "Spatial Reference EPSG code supported (https://epsg.io/). We support Web Mercator and Lambert Conical Conform Canada." + }, + "featureInfo": { + "$ref": "#/definitions/TypeFeatureInfoLayerConfig" + }, + "serverType": { + "$ref": "#/definitions/TypeOfServer", + "description": "The type of the remote WMS server. The default value is mapserver." + }, + "style": { + "type": "string", + "default": "", + "description": "Style to apply" + } + } + }, + + "TypeOfServer": { + "enum": ["mapserver", "geoserver", "qgis"], + "description": "The type of the remote WMS server. The default value is mapserver." + }, + + "TypeSourceImageEsriInitialConfig": { + + "type": "object", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeTileGrid", + "format": "uri", + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "crossOrigin": { + "type": "string", + "description": "The crossOrigin attribute for loaded images. Note that you must provide a crossOrigin value if you want to access pixel data with the Canvas renderer." + }, + "projection": { + "type": "integer", + "description": "Spatial Reference EPSG code supported (https://epsg.io/). We support Web Mercator and Lambert Conical Conform Canada." + }, + "featureInfo": { + "$ref": "#/definitions/TypeFeatureInfoLayerConfig" + }, + "format": { + "$ref": "#/definitions/TypeEsriFormatParameter" + }, + "transparent": { + "type": "boolean", + "default": true, + "description": "If true, the image will be exported with the background color of the map set as its transparent color. Only the .png and .gif formats support transparency." + } + } + }, + + "TypeEsriFormatParameter": { + "enum": ["png", "jpg", "gif", "svg"], + "default": "png", + "description": "The format of the exported image. The default format is png." + }, + + "TypeSourceTileInitialConfig": { + + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeTileGrid", + "format": "uri", + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "crossOrigin": { + "type": "string", + "description": "The crossOrigin attribute for loaded images. Note that you must provide a crossOrigin value if you want to access pixel data with the Canvas renderer." + }, + "projection": { + "type": "integer", + "description": "Spatial Reference EPSG code supported (https://epsg.io/). We support Web Mercator and Lambert Conical Conform Canada." + }, + "tileGrid": { "$ref": "#/definitions/TypeTileGrid" } + } + }, + + "TypeTileGrid": { + + "type": "object", + "properties": { + "extent": { + "type": "array", + "items": [ + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + } + ], + "description": "The extent that constrains the view. Called with [minX, minY, maxX, maxY] extent coordinates." + }, + "origin": { + "type": "array", + "items": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "description": "The tile grid origin, i.e. where the x and y axes meet ([z, 0, 0]). Tile coordinates increase left to right and downwards. If not specified, extent must be provided." + }, + "resolutions": { + "type": "array", + "items": { + "type": "number" + }, + "description": "Resolutions. The array index of each resolution needs to match the zoom level. This means that even if a minZoom is configured, the resolutions array will have a length of maxZoom + 1." + }, + "tileSize": { + "type": "array", + "items": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "default": [256, 256], + "description": "The tile grid origin, i.e. where the x and y axes meet ([z, 0, 0]). Tile coordinates increase left to right and downwards. If not specified, extent must be provided." + } + }, + "required": ["origin", "resolutions"] + }, + + "TypeVectorHeatmapLayerEntryConfig": { + + "type": "object", + "properties": { + "entryType": { "enum": ["vector"],"default":"vector"}, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { "$ref": "#/definitions/TypeVectorSourceInitialConfig" }, + "gradient": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "minItems": 2, + "default": ["#00f", "#0ff", "#0f0", "#ff0", "#f00"], + "description": "Color gradient of the heatmap, specified as an array of CSS color strings." + }, + "radius": { + "type": "number", + "description": "Radius size in pixels (default 8px)." + }, + "blur": { + "type": "number", + "description": "Blur size in pixels (default 15px)." + }, + "weight": { + "type": "string", + "description": "Feature attribute to use for the weight or a function (ADD FORMAT) that returns a weight from a feature." + } + }, + "required": ["layerId"] + }, + + "TypeVectorLayerEntryConfig": { + + "type": "object", + "properties": { + "entryType": { "enum": ["vector"] ,"default":"vector"}, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { "$ref": "#/definitions/TypeVectorSourceInitialConfig" }, + "style": { "$ref": "#/definitions/TypeStyleConfig" } + }, + "required": ["layerId"] + }, + + "TypeVectorTileLayerEntryConfig": { + + "type": "object", + "description": "Layer sources providing vector data divided into a tile grid.", + "properties": { + "entryType": { "enum": ["vector"],"default":"vector" }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { + "$ref": "#/definitions/TypeVectorTileSourceInitialConfig", + "description": "Information used to configure the source of a vector tile layer." + } + }, + "required": ["layerId"] + }, + + "TypeVectorTileSourceInitialConfig": { + + "type": "object", + "description": "Layer sources providing vector data divided into a tile grid.", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeTileGrid", + "format": "uri", + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "format": { + "enum": ["GeoJSON", "EsriJSON", "KML", "WFS", "MVT", "featureAPI"], + "description": "The feature format used by the XHR feature loader when access path is set." + }, + "dataProjection": { + "type": "string", + "description": "The projection code of the source. Used only for GeoJSON format. Default value is EPSG:4326." + }, + "featureInfo": { "$ref": "#/definitions/TypeFeatureInfoLayerConfig" }, + "style": { "$ref": "#/definitions/TypeStyleConfig" }, + "tileGrid": { + + "type": "object", + "properties": { + "extent": { + "type": "array", + "items": [ + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + } + ], + "description": "The extent that constrains the view. Called with [minX, minY, maxX, maxY] extent coordinates." + }, + "origin": { + "type": "array", + "items": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "description": "The tile grid origin, i.e. where the x and y axes meet ([z, 0, 0]). Tile coordinates increase left to right and downwards. If not specified, extent must be provided." + }, + "resolutions": { + "type": "array", + "items": { + "type": "number" + }, + "description": "Resolutions. The array index of each resolution needs to match the zoom level. This means that even if a minZoom is configured, the resolutions array will have a length of maxZoom + 1." + }, + "tileSize": { + "type": "array", + "items": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "default": [256, 256], + "description": "The tile grid origin, i.e. where the x and y axes meet ([z, 0, 0]). Tile coordinates increase left to right and downwards. If not specified, extent must be provided." + } + }, + "required": ["origin", "resolutions"] + } + } + }, + + "TypeImageLayerEntryConfig": { + + "type": "object", + "properties": { + "entryType": { "enum": ["raster"] ,"default":"raster"}, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { "$ref": "#/definitions/TypeSourceImageInitialConfig" } + }, + "required": ["layerId"] + }, + + "TypeTileLayerEntryConfig": { + + "type": "object", + "properties": { + "entryType": { "enum": ["raster"] ,"default":"raster"}, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { "$ref": "#/definitions/TypeSourceTileInitialConfig" } + }, + "required": ["layerId"] + }, + + "TypeGeocoreLayerEntryConfig": { + + "type": "object", + "description": "Layer where configration is extracted by a configuration snippet stored on a server. The server configuration will handle bilangual informations.", + "properties": { + "entryType": { "enum": ["geocore"], "default":"geocore" }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "source": { "$ref": "#/definitions/TypeSourceGeocoreConfig" } + }, + "required": ["layerId"] + }, + + "TypeSourceGeocoreConfig": { + + "type": "object", + "description": "Layer source providing geocore data.", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The url path to the geoCore endpoint (optional, this value should be embeded in the GeoView API)." + } + } + }, + + "TypeLayerEntryType": { + "enum": ["vector", "raster", "geocore"], + "description": "Layer entry data type." + }, + + "TypeLayerGroupEntryConfig": { + + "type": "object", + "description": "Entry used to define a layer Group.", + "properties": { + "entryType": { "enum": ["group"], "default":"group"}, + "layerId": { + "type": "string", + "description": "The id of the layer group to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer group (English/French)." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer group entries at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "listOfLayerEntryConfig": { + "$ref": "#/definitions/TypeListOfLayerEntryConfig", + "description": "The list of layer entry configurations to use from the GeoView layer group." + } + }, + "required": ["entryType", "layerId", "layerName", "listOfLayerEntryConfig"] + }, + + "TypeLayerEntryConfig": { + "type":"object", + "anyOf": [ + { "title": "LayerGroup", "$ref": "#/definitions/TypeLayerGroupEntryConfig" }, + { "title": "VectorHeatmap","$ref": "#/definitions/TypeVectorHeatmapLayerEntryConfig" }, + { "title": "VectorTileLayer", "$ref": "#/definitions/TypeVectorTileLayerEntryConfig" }, + { "title": "VectorLayer", "$ref": "#/definitions/TypeVectorLayerEntryConfig" }, + { "title": "ImageLayer", "$ref": "#/definitions/TypeImageLayerEntryConfig" }, + { "title": "TileLayer", "$ref": "#/definitions/TypeTileLayerEntryConfig" }, + { "title": "GeocoreLayer", "$ref": "#/definitions/TypeGeocoreLayerEntryConfig" } + ] + }, + + "TypeListOfLayerEntryConfig": { + "type": "array", + "minItems": 1, + + "items": { + "$ref": "#/definitions/TypeLayerEntryConfig" + } + }, + + "TypeMapConfig": { + + "type": "object", + "properties": { + "basemapOptions": { "$ref": "#/definitions/TypeBasemapOptions" }, + "interaction": { "$ref": "#/definitions/TypeInteraction" }, + "listOfGeoviewLayerConfig": { "$ref": "#/definitions/TypeListOfGeoviewLayerConfig" }, + "viewSettings": { "$ref": "#/definitions/TypeViewSettings" }, + "extraOptions": { + "type": "object", + "description": "Additional options used for OpenLayers map options" + } + }, + "required": ["basemapOptions", "interaction", "viewSettings"] + }, + + "TypeBasemapOptions": { + + "type": "object", + "properties": { + "id": { "$ref": "#/definitions/TypeBasemapId" }, + "shaded": { + "type": "boolean", + "default": true, + "ui:style": { "color": "blue", "backgroundColor": "blue" }, + "title": "Enable or disable shaded basemap (if basemap id is set to shaded then this should be false)." + }, + "labeled": { + "type": "boolean", + "default": true, + "title": "Enable or disable basemap labels" + } + }, + "required": ["id", "shaded", "labeled"] + }, + + "TypeBasemapId": { + "description": "Id of the basemap to use." , + "enum": ["transport", "osm", "simple", "nogeom", "shaded"], + "default": "transport" + + }, + + "TypeInteraction": { + "enum": ["static", "dynamic"], + "default": "dynamic", + "description": "If map is dynamic (pan/zoom) or static to act as a thumbnail (no nav bar)." + }, + + "TypeListOfGeoviewLayerConfig": { + "description": "List of GeoView Layers in the order which they should be added to the map.", + "type": "array", + + "items": { + "$ref": "#/definitions/TypeGeoviewLayerConfig" + } + }, + + "TypeGeoviewLayerConfig": { + + "type": "object", + "properties": { + "layerId": { + "type": "string", + "description": "The id of the layer for referencing within the viewer (does not relate directly to any external service). The id will have the language extension (id-'lang')." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "metadataAccessPath": { + "format": "uri", + "$ref": "#/definitions/TypeLocalizedString", + "description": "The GeoView layer access path (English/French)." + }, + "geoviewLayerType": { + "$ref": "#/definitions/TypeGeoviewLayerType", + "description": "Type of GeoView layer." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the GeoView layer at creation time." + }, + "listOfLayerEntryConfig": { + "$ref": "#/definitions/TypeListOfLayerEntryConfig", + "description": "The layer entries to use from the GeoView layer." + } + }, + "required": [ + "layerId", + "geoviewLayerType", + "listOfLayerEntryConfig" + ] + }, + + "TypeGeoviewLayerType": { + "type": "array", + "uniqueItems": true, + "items": { + "enum": [ + "esriDynamic", + "esriFeature", + "GeoJSON", + "geoCore", + "xyzTiles", + "ogcFeature", + "ogcWfs", + "ogcWms" + ] + },"defaut":[ "esriDynamic","esriFeature", + "GeoJSON", + "geoCore", + "xyzTiles", + "ogcFeature", + "ogcWfs", + "ogcWms" + ], + "minItems": 1, + "description": "Type of GeoView layer." + }, + + "TypeViewSettings": { + + "type": "object", + "properties": { + "center": { + "type": "array", + "items": [ + { + "type": "number", + "minimum": -160, + "maximum": 160, + "default": -106, + "description": "Initial longitude value for map center." + }, + { + "type": "number", + "minimum": -80, + "maximum": 80, + "default": 60, + "description": "Initial latitude value for map center." + } + ], + "default": [-106, 60] + }, + "enableRotation": { + "type": "boolean", + "default": true, + "title": "Enable rotation. If false, a rotation constraint that always sets the rotation to zero is used." + }, + "extent": { + "type": "array", + "minItems":4, + "maxItems":4, + "items": { + + "type": "number" + + },"default":[-16763712,5165908,-5688293,10649806], + "description": "The extent that constrains the view. Called with [minX, minY, maxX, maxY] extent coordinates." + }, + "minZoom": { + "type": "integer", + "description": "The minimum zoom level used to determine the resolution constraint. If not set, will use default from basemap.", + "minimum": 0, + "maximum": 50 + }, + "maxZoom": { + "type": "integer", + "description": "The maximum zoom level used to determine the resolution constraint. If not set, will use default from basemap.", + "minimum": 0, + "maximum": 50 + }, + "projection": { "$ref": "#/definitions/TypeProjectionCodes" }, + "rotation": { + "type": "integer", + "minimum": -360, + "maximum": 360, + "default": 0, + "description": "The initial rotation for the view in degree (positive rotation clockwise, 0 means North). Will be converted to radiant by the viewer." + }, + "zoom": { + "type": "integer", + "minimum": 0, + "maximum": 28, + "default": 12, + "description": "Initial map zoom level. Zoom level are define by the basemap zoom levels." + } + }, + "required": ["zoom", "center"] + }, + + "TypeProjectionCodes": { + "enum": [3978, 3857], + "default": 3978, + "description": "Spatial Reference EPSG code supported (https://epsg.io/). We support Web Mercator and Lambert Conical Conform Canada." + }, + + "TypeAppBarProps": { + + "type": "object", + "properties": { + "about": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The content of the about section in Markdown format. If empty, it will be ignored. If not, it will create a button on the appbar to open the panel. In the basic view, this information may be added in a container above the map." + } + } + }, + + "TypeNavBarProps": { + "type": "array", + "uniqueItems": true, + "items": { + "enum": ["zoom", "fullscreen", "fullextent"] + }, + "default": ["zoom", "fullscreen", "fullextent"], + "description": "Controls availalbe on the navigation bar.", + "minItems": 0 + }, + + "TypeMapComponents": { + "type": "array", + "uniqueItems": true, + "items": { + "enum": ["app-bar", "nav-bar", "overview-map", "north-arrow"] + }, + "default": ["app-bar", "nav-bar", "overview-map", "north-arrow"], + "description": "Core components to initialize on viewer load. The schema for those are inside this file.", + "minItems": 0 + }, + + "TypeMapCorePackages": { + "type": "array", + "uniqueItems": true, + "items": { + "enum": ["basemap-panel", "layers-panel", "details-panel", "geolocator-panel"] + }, + "default": ["basemap-panel", "layers-panel", "details-panel", "geolocator-panel"], + "description": "Core packages to initialize on viewer load. The schema for those are on their own package. NOTE: config from packages are in the same loaction as core config (<>-<>.json).", + "minItems": 0 + }, + + "TypeExternalPackages": { + "type": "array", + "items": { + + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "External Package name. The name must be ideintical to the window external package object to load." + }, + "configUrl": { + "type": "string", + "description": "The url to the external package configuration setting. The core package will read the configuration and pass it inside the package." + } + }, + "required": ["name"] + }, + "default": [], + "description": "List of external packages to initialize on viewer load.", + "minItems": 0 + }, + + "TypeServiceUrls": { + + "type": "object", + "description": "Service endpoint urls", + "properties": { + "keys": { + "type": "string", + "default": "https://geocore.api.geo.ca", + "format": "uri", + "description": "Service end point to access API for layers specification (loading and plugins parameters). By default it is GeoCore but can be another endpoint with similar output." + }, + "proxyUrl": { + "type": "string", + "format": "uri", + "description": "An optional proxy to be used for dealing with same-origin issues. URL must either be a relative path on the same server or an absolute path on a server which sets CORS headers." + } + } + }, + + "TypeDisplayLanguage": { + "enum": ["en", "fr"], + "description": "Display languages supported." + }, + + "TypeLocalizedLanguages": { + "enum": ["en", "fr"], + "description": "ISO 639-1 code indicating the languages supported by the configuration file." + }, + + "TypeListOfLocalizedLanguages": { + "type": "array", + "uniqueItems": true, + "items": { "$ref": "#/definitions/TypeLocalizedLanguages" }, + "default": ["en", "fr"], + "description": "ISO 639-1 code indicating the languages supported by the configuration file. It will use value(s) provided here to access bilangual configuration nodes. For value(s) provided here, each bilingual configuration node MUST provide a value.", + "minItems": 1 + }, + + "TypeValidVersions": { + "enum": ["1.0"], + "description": "The schema version that can be used to validate the configuration file. The schema should enumerate the list of versions accepted by this version of the viewer." + }, + + "TypeMapFeaturesInstance": { + "description": "The map feature configuration.", + + "type": "object", + "properties": { + "map": { "$ref": "#/definitions/TypeMapConfig" }, + + + "appBar": { "$ref": "#/definitions/TypeAppBarProps" }, + "navBar": { "$ref": "#/definitions/TypeNavBarProps" }, + "components": { "$ref": "#/definitions/TypeMapComponents" }, + "corePackages": { "$ref": "#/definitions/TypeMapCorePackages" }, + "externalPackages": { "$ref": "#/definitions/TypeServiceUrls" }, + "serviceUrls": { "$ref": "#/definitions/TypeServiceUrls" }, + "suportedLanguages": { "$ref": "#/definitions/TypeListOfLocalizedLanguages" }, + "versionUsed": { "$ref": "#/definitions/TypeValidVersions" } + + }, + "required": ["map", "suportedLanguages"] + } + }, + + "properties": { + "map": { "$ref": "#/definitions/TypeMapConfig" }, + "appBar": { "$ref": "#/definitions/TypeAppBarProps" }, + "navBar": { "$ref": "#/definitions/TypeNavBarProps" }, + "components": { "$ref": "#/definitions/TypeMapComponents" }, + "corePackages": { "$ref": "#/definitions/TypeMapCorePackages" }, + "externalPackages": { "$ref": "#/definitions/TypeServiceUrls" }, + "serviceUrls": { "$ref": "#/definitions/TypeServiceUrls" }, + "suportedLanguages": { "$ref": "#/definitions/TypeListOfLocalizedLanguages" }, + "versionUsed": { "$ref": "#/definitions/TypeValidVersions" }, + "draw1": { + + + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "title": "Enable" + }, + "open": { + "type": "boolean", + "title": "Open by default", + "default": true + }, + "tools": { + "type": "array", + "title": "Tools", + "minItems":0, + "uniqueItems": true, + "items":{ + "enum": [ + "picker", + "point", + "polyline", + "polygon", + "edit", + "measure", + "extent", + "write", + "read" + ] + }, + + + "description": "Tools to add to draw toolbar.", + "default": [ + "picker", + "point", + "polyline", + "polygon", + "edit", + "measure", + "extent", + "write", + "read" + ] + } + + } + } + }, + + + + "required": ["map", "suportedLanguages"] + }, + "rangeSlider": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "title": "Enable", + "default": false + }, + "open": { + "type": "boolean", + "title": "Open by default", + "default": false + }, + "maximize": { + "type": "boolean", + "title": "Slider maximized by default", + "default": false + }, + "maximizeDesc": { + "type": "boolean", + "title": "Description section open by default", + "default": false + }, + "autorun": { + "type": "boolean", + "title": "Start animation on load", + "defaul": false + }, + "loop": { + "type": "boolean", + "title": "Play the animation in loop", + "default": false + }, + "reverse": { + "type": "boolean", + "title": "Animation in reverse mode", + "default": false + }, + "lock": { + "type": "boolean", + "title": "Lock handle", + "default": false + }, + "controls": { + "type": "array", + "minItems":0, + "uniqueItems": true, + + "items": { + "enum": [ + "lock", + "loop", + "delay", + "export", + "refresh", + "reverse" + ] + }, + "default": [ + "lock", + "delay" + ], + "title": "Slider bar controls" + }, + "params": { + "type": "object", + "title": "Parameters", + "properties": { + "type": { + "title": "Slider Type", + "type": "string", + "enum": [ + "number", + "date", + "wmst" + ], + "description": "If the Date or WMS-T is selected, range and limit must be in milliseconds. Note: Date is for esri layer and WMS-T is for ogc WMS-T layer.", + "default": "number" + }, + "rangeType": { + "title": "Range Type", + "type": "string", + "enum": [ + "single", + "dual" + ], + "description": "Type of range (single for one handle or dual for 2 handles).", + "default": "dual" + }, + "stepType": { + "title": "Step Type", + "type": "string", + "enum": [ + "dynamic", + "static" + ], + "description": "Type of step (dynamic for open values or static from a list of values).", + "default": "dynamic" + }, + "precision": { + "title": "Precision", + "type": "string", + "enum": [ + "0", + "1", + "2", + "date", + "hour" + ], + "description": "Precision of numeric data (0, 1, 2) or date (Date, Hour).", + "default": "0" + }, + "delay": { + "title": "Animation Delay", + "type": "string", + "enum": [ + "3000", + "4000", + "5000", + "6000", + "7000" + ], + "description": "Delay between animations.", + "default": "3000" + }, + "rangeInterval": { + "type": "number", + "title": "Interval (in milliseconds for date data type)", + "default": -1, + "description": "When the limit type is dynamic, this option allows you to define a preset interval between the two handles. The value must be in milliseconds date data type. For other numerical value formats, enter the desired value directly. To convert a time interval into milliseconds, use the built-in converter. Will start at the beginning of the scroll bar, unless the \"Start at end\" option is enabled." + }, + "startRangeEnd": { + "type": "boolean", + "title": "Start interval at the end", + "default": false + }, + "range": { + "type": "object", + "title": "", + "properties": { + "min": { + "type": "number", + "title": "Minimum value of the range (in milliseconds for date data type)", + "description": "The minimum value of the range that corresponds to the position of the left handle. If not defined, the minimum limit will be used. The value must be in milliseconds date data type. For other numerical value formats, enter the desired value directly. To convert a date to milliseconds, use the site's built-in converter.", + "default": 0 + }, + "max": { + "type": "number", + "title": "Maximum value of the range (in milliseconds for date data type)", + "description": "The maximum value of the range that corresponds to the position of the right handle. If not defined, the maximum limit will be used. The value must be in milliseconds date data type. For other numerical value formats, enter the desired value directly. To convert a date to milliseconds, use the site's built-in converter.", + "default": 1 + } + } + }, + "limit": { + "type": "object", + "title": "Limits of the data set values", + "properties": { + "min": { + "type": "number", + "title": "Minimum Limit", + "description": "The minimum value contained in the dataset. If not defined, the value will be found using the values present in the used field of the layer. To convert a date to milliseconds, use the site's built-in converter.", + "default": 0 + }, + "max": { + "type": "number", + "title": "Maximum Limit", + "description": "The maximum value contained in the dataset. If not defined, the value will be found using the values present in the used field of the layer. To convert a date to milliseconds, use the site's built-in converter.", + "default": 1 + }, + "staticItems": { + "type": "array", + "title": "Static Limit Values", + "items": { + "title": "Value", + "type": "number" + }, + "default": [], + "description": "The values for static limit. Note: the minimum and maximum limits are used to define the lower and upper static limits. Enter only the intermediate values here." + } + } + }, + "units": { + "type": "string", + "title": "Units", + "description": "Shown at the right of the time axis. Keep it short to improve readability.", + "default": "" + }, + "description": { + "type": "string", + "title": "Description", + "description": "Description to add in the section below the slider." + } + }, + "required": [ + "type" + ] + }, + "layers": { + "type": "array", + "title": "Layers", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The id of the layer for referencing within the viewer (does not relate directly to any external service).", + "title": "Layer id", + "enum":[] + + }, + "field": { + "type": "string", + "description": "The field name to use.", + "title": "Field Name", + "default": "" + }, + "isTimeAware": { + "type": "boolean", + "title": "Is Time Aware", + "default": true, + "description": "If time aware is true, the slider will use the TimeInfo (ESRI) or time dimension (WMS) to extract limits and range." + } + }, + "required": [ + "id, field", + "isTimeAware" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "params", + "layers" + ] + }, + "areasOfInterest": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "title": "Enable" + }, + "areas": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title-en-CA": { + "type": "string", + "title": "English Title" + }, + "title-fr-CA": { + "type": "string", + "title": "French Title" + }, + "xmin": { + "type": "number", + "title": "Minimum value of x", + "default": -4844430 + }, + "ymin": { + "type": "number", + "title": "Minimum value of y", + "default": -1052774 + }, + "xmax": { + "type": "number", + "title": "Maximum value of x", + "default": 5666163 + }, + "ymax": { + "type": "number", + "title": "Maximum value of y", + "default": 4170111 + }, + "wkid": { + "type": "number", + "title": "Spatial Reference", + "default": 3978 + }, + "thumbnailUrl": { + "type": "string", + "title": "Thumbnail URL" + } + }, + "required": [ + "title-en-CA", + "title-fr-CA" + ] + } + } + } + }, + "chart": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "title": "Enable" + }, + "type": { + "title": "Chart Type", + "type": "string", + "enum": [ + "pie", + "bar", + "line" + ], + "description": "", + "default": "pie" + }, + "title": { + "title": "Title", + "type": "string", + "default": "" + }, + "labelsPie": { + "type": "object", + "title": "Labels", + "properties": { + "type": { + "title": "Type", + "type": "string", + "enum": [ + "field", + "config" + ], + "description": "Retreive the labels from a field or from the configuration.", + "default": "config" + }, + "values": { + "title": "Values", + "type": "string", + "description": "Values separated by semi colon or field name.", + "default": "" + }, + "split": { + "title": "Split Character", + "type": "string", + "description": "Character to use to split list of values.", + "default": ";" + } + }, + "required": [ + "type", + "values", + "split" + ] + }, + "options": { + "title": "Options", + "type": "object", + "properties": { + "colors": { + "title": "Datasets Colors", + "type": "string", + "description": "Hexadecimal color code separated by semicolon. If not provided, default colors will be use.", + "default": "" + }, + "cutOut": { + "title": "Cut Out Percentage", + "type": "number", + "description": "Cut out percentage to use to give doughnut effect.", + "default": 0, + "minimum": 0, + "maximum": 80 + } + }, + "required": [ + "cutOut" + ] + }, + "axis": { + "type": "object", + "title": "Labels", + "properties": { + "xAxis": { + "title": "X Axis", + "type": "object", + "properties": { + "title": { + "title": "Title", + "type": "string", + "default": "" + }, + "type": { + "title": "Type", + "type": "string", + "enum": [ + "field", + "config", + "linear", + "date" + ], + "description": "Retreive the labels from a field or configuration for bar chart or from values (linear or time) for line chart.", + "default": "config" + }, + "values": { + "title": "Values", + "type": "string", + "description": "Values separated by semicolon or field name.", + "default": "" + }, + "split": { + "title": "Split Character", + "type": "string", + "description": "Character to use to split list of values.", + "default": ";" + } + }, + "required": [ + "type", + "values", + "split" + ] + }, + "yAxis": { + "title": "Y Axis", + "type": "object", + "properties": { + "title": { + "title": "Title", + "type": "string", + "default": "" + }, + "type": { + "title": "Type", + "type": "string", + "enum": [ + "field", + "config", + "linear", + "time" + ], + "description": "Retreive the labels from a field or configuration for bar chart or from values (linear or time) for line chart.", + "default": "config" + }, + "values": { + "title": "Values", + "type": "string", + "description": "Values separated by semicolon or field name.", + "default": "" + }, + "split": { + "title": "Split Character", + "type": "string", + "description": "Character to use to split list of values.", + "default": ";" + } + }, + "required": [ + "type", + "values", + "split" + ] + }, + "required": [ + "xAxis", + "yAxis" + ] + } + }, + "layers": { + "type": "array", + "title": "Layers", + "items": { + "type": "object", + "properties": { + "id": { + "title": "Layer ID", + "type": "string", + "description": "", + "enum":[] + }, + "nameField": { + "type": "string", + "title": "Name Field", + "description": "Field name to use for the chart selection combo box when multiple charts." + }, + "type": { + "title": "Chart Data Type", + "type": "string", + "enum": [ + "inline", + "link" + ], + "description": "Type of data (inline for items inside the layer or link for items inside a link table).", + "default": "inline" + }, + "linkUrl": { + "type": "string", + "title": "Link URL", + "description": "URL of the link table." + }, + "linkField": { + "type": "string", + "title": "Link Field", + "description": "Field name for the link between the layer and the table." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "title": "Type of data inside the field", + "type": "string", + "enum": [ + "single", + "combine" + ], + "description": "Single if there is only one value inside the field. Combine if we use time axis and time and value are part of the field.", + "default": "combine" + }, + "linkType": { + "title": "Type of link", + "type": "string", + "enum": [ + "single", + "multi" + ], + "description": "How data is structure inside the link table (single for one field for value and one for date OR multiple if there is multiple datasets inside one field and the chart needs to parse).", + "default": "single" + }, + "link": { + "title": "Link Field", + "type": "string", + "description": "Link field to link between layer and table." + }, + "date": { + "title": "Date Field", + "type": "string", + "description": "Field to use for the date" + }, + "measure": { + "title": "Measure Field", + "type": "string" + }, + "values": { + "title": "Label Values", + "type": "string", + "description": "Field name to get labels from for link type multi." + }, + "label": { + "type": "object", + "title": "Dataset Labels", + "properties": { + "type": { + "title": "Type", + "type": "string", + "enum": [ + "field", + "config" + ], + "description": "Retreive the labels from a field or from the configuration.", + "default": "config" + }, + "values": { + "title": "Values", + "type": "string", + "description": "Values separated by semicolon or field name.", + "default": "" + }, + "split": { + "title": "Split Character", + "type": "string", + "description": "Character to use to split list of values.", + "default": ";" + } + }, + "required": [ + "type", + "values", + "split" + ] + }, + "regex": { + "title": "Dataset splitter", + "type": "string", + "description": "

Regex value to split datasets inside the field.

This field is to manage when you have multiple datasets or combine values in the same field. To be able to separate datasets from values, we will use a regex expression. We encourage you to use your data and test your regex expression on a online site like https://regex101.com.

Below we list some samples of datasets and regex:

  • Sample 1
    • Data: [255;255;255];[120;232;23];[32;44;134]
    • Regex: \\\\[|\\\\];\\\\[|\\\\]
    • Ouput: 3 datasets (e.g. 255;255;255). Values inside dataset will be split by the field 'Values Splitter'.
  • Sample 2
    • Data: (2011-03-28,0.511),(2011-04-04,0.421)
    • Regex: \\\\(|\\\\),\\\\(|\\\\)
    • Ouput: 1 datasets, 2 pairs of values (e.g. 2011-03-28,0.511). Values inside are combined (y and x axis) and will be split by the field 'Values Splitter'.

Note: we need to double the '\\' character

", + "default": "\\(|\\),\\(|\\)" + }, + "split": { + "title": "Values splitter", + "type": "string", + "default": ",", + "description": "Character to use to split values inside a field. E.g. a field contains '10;20;30' means there is 3 values split by ';' or [1,2,3];[4,5,6] means there is 2 datasets with 3 values each split by ','." + }, + "prefix": { + "title": "Prefix", + "type": "string", + "default": "", + "description": "Prefix to add to data hover." + }, + "suffix": { + "title": "Suffix", + "type": "string", + "default": "", + "description": "Suffix to add to data hover." + } + }, + "required": [ + "type", + "measure", + "split" + ] + } + }, + "details": { + "type": "object", + "title": "Details", + "properties": { + "enabled": { + "type": "boolean", + "title": "Enable" + }, + "value": { + "type": "string", + "title": "Value", + "description": "String with the custom details in markdown notation." + } + } + } + }, + "required": [ + "id", + "nameField", + "type", + "data" + ] + } + }, + "required": [ + "type", + "layers" + ] + } + }, + "swiper": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "title": "Enable" + }, + "type": { + "type": "string", + "title": "Type", + "enum": [ + "vertical", + "horizontal" + ], + "default": "vertical" + }, + "keyboardOffset": { + "type": "number", + "title": "Keyboard Movement", + "description": "Pixel value of swiper displacement.", + "default": 10, + "minimum": 1, + "maximum": 100 + }, + "layers": { + "type": "string", + "title": "Layers", + "description": "The id of the layer for referencing within the viewer (does not relate directly to any external service).", + "enum":[] + } + + + + + + }, + "required": [ + "type", + "keyboardOffset", + "layers" + ] + }, + "draw": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "GeoView Core Plugin Schema", + "comments": "It correspond to the TypeMapFeaturesInstance type.", + + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "title": "Enable" + }, + "open": { + "type": "boolean", + "title": "Open by default", + "default": true + }, + "tools": { + "type": "array", + "title": "Tools", + "minItems":0, + "uniqueItems": true, + "items":{ + "enum": [ + "picker", + "point", + "polyline", + "polygon", + "edit", + "measure", + "extent", + "write", + "read" + ] + }, + + + "description": "Tools to add to draw toolbar.", + "default": [ + "picker", + "point", + "polyline", + "polygon", + "edit", + "measure", + "extent", + "write", + "read" + ] + } + + } + }, + "thematicSlider": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "title": "Enable" + }, + "open": { + "type": "boolean", + "title": "Open by default", + "default": true + }, + "autorun": { + "type": "boolean", + "title": "Start animation on load", + "defaul": false + }, + "loop": { + "type": "boolean", + "title": "Play the animation in loop", + "default": false + }, + "slider": { + "type": "boolean", + "title": "Enable slider control", + "default": true + }, + "stack": { + "type": "boolean", + "title": "Stack layer visibility", + "default": false + }, + "legendStack": { + "type": "boolean", + "title": "Stack legend items (useful with the stack option to see all active elements legend)", + "default": true + }, + "layers": { + "type": "array", + "title": "Layers", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The id of the layer for referencing within the viewer (does not relate directly to any external service).", + "title": "Layer id", + "enum":[] + + }, + "duration": { + "type": "number", + "title": "Animation duration in milliseconds", + "minimum": 3000, + "default": 3000 + }, + "title": { + "type": "string", + "title": "Title for this layer animation" + }, + "description": { + "type": "string", + "title": "Description for this layer animation" + }, + "legend": { + "type": "array", + "title": "Legend", + "description": "Add items for a custom legend, leave it blank for default legend.", + "default": [], + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "title": "Label" + }, + "image": { + "type": "object", + "properties": { + "url": { + "type": "string", + "title": "URL", + "default": "" + }, + "width": { + "type": "number", + "title": "Width", + "minimum": 25, + "maximum": 150, + "default": 150 + }, + "height": { + "type": "number", + "title": "Height", + "minimum": 25, + "maximum": 150, + "default": 150 + } + }, + "required": [ + "url", + "width", + "height" + ] + } + }, + "required": [ + "image" + ] + } + } + }, + "required": [ + "id", + "duration" + ] + } + }, + "required": [ + "layers" + ] + } + } + } + ] + } + + diff --git a/src/components/db.json b/src/components/db.json index 06557d9..33f98ee 100644 --- a/src/components/db.json +++ b/src/components/db.json @@ -1,13 +1,2309 @@ { + "plugins": [ + { - "rangeSlider": { + + + "map": { + "$id": "https://cgpv/schema", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "GeoView Core Config Schema", + + "version": 1.0, + "comments": "Configuration for GeoView core packages, each packages manages it own schema. It correspond to the TypeMapFeaturesInstance type.", + + "definitions": { + "TypeLocalizedString": { + + "minProperties": 1, + "type": "object", + "properties": { + "en": { + "type": "string", + "description": "The English version of the string." + }, + "fr": { + "type": "string", + "description": "The French version of the string. " + } + } + }, + + "TypeDetailsLayerConfig": { + + "type": "object", + "properties": { + + "parser": { + "type": "string", + "description": "A path to a javascript file with a function for parsing the layers identify output. Only needed if a custom template is being used." + }, + "template": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "A path to an html template (English/French) that will override default identify output." + } + }, + "required": ["template"] + }, + + "TypeFeatureInfoLayerConfig": { + + "type": "object", + "properties": { + "queryable": { + "type": "boolean", + "default": true, + "title": "Allow querying. Default = true." + }, + "customParser": { "$ref": "#/definitions/TypeDetailsLayerConfig" }, + "nameField": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display field (English/French) of the layer. If it is not present the viewer will make an attempt to find the first valid field." + }, + "outfields": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "A comma separated list of attribute names (English/French) that should be requested on query (all by default)." + }, + "fieldTypes": { + "type": "string", + "description": "A comma separated list of types. Type at index i is associated to the variable at index i." + }, + "aliasFields": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "A comma separated list of attribute names (English/French) that should be use for alias. If empty, no alias will be set if not found." + } + }, + "required": [ + "queryable" + ] + }, + "TypeFeatureInfoNotQueryable": { + + "properties": { + "queryable": { + "const": false, + "description": "Do not allow querying.", + "type": "boolean" + } + }, + "required": [ + "queryable" + ], + "type": "object" + }, + + "TypeStrokeSymbolConfig": { + + "type": "object", + "description": "Stroke style for vector features.", + "minProperties": 1, + "properties": { + "color": { + "type": "string","enum":["select color"] + }, + "lineStyle": { + "enum": [ + "dash", + "dash-dot", + "dash-dot-dot", + "dot", + "longDash", + "longDash-dot", + "null", + "shortDash", + "shortDash-dot", + "shortDash-dot-dot", + "solid" + ] + }, + "width": { + "type": "number" + } + } + }, + + "TypeLineStringVectorConfig": { + + "type": "object", + "properties": { + "type": { "type":"string", + "default": "lineString", + "enum": [ + "lineString" + ] + }, + "stroke": { "$ref": "#/definitions/TypeStrokeSymbolConfig" } + }, + "required": [ + "type", + "stroke" + ] + }, + + "TypePolygonVectorConfig": { + + "type": "object", + "properties": { + "type": {"type":"string", "default": "filledPolygon", + "enum": ["filledPolygon"] + }, + "color": { "type": "string" ,"enum":["select color"]}, + "stroke": { "$ref": "#/definitions/TypeStrokeSymbolConfig" }, + "paternSize": { + "type": "number", + "description": "Distance between patern lines. Default = 8" + }, + "paternWidth": { + "type": "number", + "description": "Patern line width.default = 1." + }, + "fillStyle": { + "enum": [ + "solid", + "backwardDiagonal", + "cross", + "diagonalCross", + "forwardDiagonal", + "horizontal", + "null", + "vertical" + ], + "description": "Kind of filling for vector features. Default = solid. " + } + }, + "required": [ + "type", + "stroke" + ] + }, + + "TypeSimpleSymbolVectorConfig": { + + "type": "object", + "properties": { + "type": {"type":"string", + "default": "simpleSymbol", + "enum": ["simpleSymbol"] + }, + "rotation": { + "type": "number", + "description": "Symbol rotation in radians." + }, + "color": { "type": "string" ,"enum":["select color"]}, + "stroke": { "$ref": "#/definitions/TypeStrokeSymbolConfig" }, + "size": { "type": "number" }, + "offset": { + "type": "array", + "items": { + "type": "number" + }, + "minItems": 2, + "maxItems": 2 + }, + "symbol": { + "enum": [ + "circle", + "+", + "diamond", + "square", + "triangle", + "X", + "star" + ] + } + }, + "required": + ["type", + "symbol" + ] + }, + + "TypeIconSymbolVectorConfig": { + + "type": "object", + "properties": { + "type": {"type":"string", + "default": "iconSymbol", + "enum": ["iconSymbol"] + }, + "mimeType": { "type": "string" }, + "src": { "type": "string" }, + "width": { + "type": "integer", + "description": "Icon width in pixel." + }, + "height": { + "type": "integer", + "description": "Icon height in pixel." + }, + "rotation": { + "type": "number", + "description": "Icon rotation in radians." + }, + "opacity": { + "type": "number", + "minimum": 0, + "maximum": 1, + "default": 1 + }, + "offset": { + "type": "array", + "items": { + "type": "number" + }, + "minItems": 2, + "maxItems": 2 + }, + "crossOrigin": { + "type": "string", + "description": "The crossOrigin attribute for loaded images. Note that you must provide a crossOrigin value if you want to access pixel data with the Canvas renderer." + } + }, + "required": ["type", "mimeType", "src"] + }, + + "TypeSimpleStyleConfig": { + + "type": "object", + "properties": { + "styleId": { + "type": "string" + }, + "styleType": { + "enum": ["simple"], + "default": "simple" + }, + "label": { + "type": "string" + }, + "settings": { "$ref": "#/definitions/TypeKindOfVectorSettings" } + }, + "required": [ + "styleType", + "label", + "settings" + ] + }, + + + "TypeUniqueValueStyleConfig": { + + "type": "object", + "properties": { + "styleId": { + "type": "string" + }, + "styleType": {"type":"string", + "default": "uniqueValue", + "enum": ["uniqueValue"] + }, + "defaultLabel": { + "type": "string", + "description": "Label used if field/value association is not found." + }, + "defaultSettings": { + "$ref": "#/definitions/TypeKindOfVectorSettings", + "description": "Settings used if field/value association is not found." + }, + "defaultVisible": { + "description": "Flag used to show/hide features associated to the default label (default: yes).", + "enum": [ + "yes", + "no", + "always" + ] + }, + "fields": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "uniqueValueStyleInfo": { "$ref": "#/definitions/TypeUniqueValueStyleInfo" } + }, + "required": [ + "styleType", + "fields", + "uniqueValueStyleInfo" + ] + }, + + "TypeUniqueValueStyleInfo": { + "type": "array", + "items": { + + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "settings": { + "$ref": "#/definitions/TypeKindOfVectorSettings" + }, + "values": { + "items": { + "oneOf": [ + { "title": "String Value", + "type": "string" + }, + { "title": "Numeric Value", + "type": "number" + } + ] + }, + "minItems": 1, + "type": "array" + }, + "visible": { + "description": "Flag used to show/hide features associated to the label (default: yes).", + "enum": [ + "yes", + "no", + "always" + ] + } + } + + }, + "minItems": 1, + "required": [ + "label", + "values", + "options" + ] + + }, + + "TypeValidMapProjectionCodes": { + "default": 3978, + "description": "Spatial Reference EPSG code supported (https://epsg.io/). We support Web Mercator and Lambert Conical Conform Canada.", + "enum": [ + 3978, + 3857 + ] + }, + + "TypeClassBreakStyleConfig": { + + "type": "object", + "properties": { + "styleId": { + "type": "string" + }, + "styleType": { + "default": "classBreaks", + "enum": ["classBreaks"] + }, + "field": { + "type": "string" + }, + "defaultLabel": { + "type": "string", + "description": "Label used if field/value association is not found." + }, + "defaultSettings": { + "$ref": "#/definitions/TypeKindOfVectorSettings", + "description": "Settings used if field/value association is not found." + }, + "defaultVisible": { + "description": "Flag used to show/hide features associated to the default label (default: yes).", + "default": "yes", + "enum": [ + "yes", + "no", + "always" + ] + }, + + "classBreakStyleInfo": { "$ref": "#/definitions/TypeClassBreakStyleInfo" } + }, + "required": ["styleType", "field", "classBreakStyleInfo"] + }, + + + "TypeClassBreakStyleInfo": { + + "type": "array", + "items": { + + "type": "object", + "properties": { + + "label": { + "type": "string" + }, + "minValue": { + "oneOf": [ + { "title": "minValue String value", + "type": "string" + }, + { "title": "minValue Numeric value", + "type": "number" + } + ] + }, + "maxValue": { + "oneOf": [ + { "title": "maxValue String value", + "type": "string" + }, + { "title": "maxValue Numeric value", + "type": "number" + } + ] + }, + "visible": { + "description": "Flag used to show/hide features associated to the label (default: yes).", + "enum": [ + "yes", + "no", + "always" + ], + "default" : ["no"] + }, + + "settings": { "$ref": "#/definitions/TypeKindOfVectorSettings" } + } + }, + "minItems": 1, + "required": ["label", "minValue", "maxValue", "settings"] + + }, + + "TypeKindOfVectorSettings": { + "oneOf": [ + { "title":"LineString", "$ref": "#/definitions/TypeLineStringVectorConfig" }, + { "title":"Polygon", "$ref": "#/definitions/TypePolygonVectorConfig" }, + { "title":"SimpleSymbol", "$ref": "#/definitions/TypeSimpleSymbolVectorConfig" }, + { "title":"IconSymbol", "$ref": "#/definitions/TypeIconSymbolVectorConfig" } + ] + }, + + "TypeStyleConfig": { + + "minProperties": 1, + "type": "object", + "Title": "Line Style Config", + "description":"Enter Line, Point and Polygon Style Config ", + "properties": { + "LineString": { "description":"Point Style Config ", + + "title":"Line", + + "$ref": "#/definitions/TypeStyleSettings" + }, + "Point": { "description": "Polygon Style Config", + "title":"Point Style", + + "$ref": "#/definitions/TypeStyleSettings" + }, + "Polygon": { + "title":"Polygon Style", + + "$ref": "#/definitions/TypeStyleSettings" + } + } + }, + + "TypeStyleSettings": { + "oneOf": [ {"title":"SimpleStyle", + "$ref": "#/definitions/TypeSimpleStyleConfig" + } , + {"title":"UniqueValueStyle", + "$ref": "#/definitions/TypeUniqueValueStyleConfig" + }, + {"title":"ClassBreakStyle", + "$ref": "#/definitions/TypeClassBreakStyleConfig" + } + ] + }, + + "TypeLayerInitialSettings": { + + "type": "object", + "properties": { + "bounds": { + "description": "The geographic bounding box that contains all the layer's features.", + "items": { + "type": "number" + }, + "maxItems": 4, + "minItems": 4, + "type": "array" + }, + "opacity": { + "type": "number", + "minimum": 0, + "maximum": 1, + "default": 1, + "description": "Initial opacity setting." + }, + "visible": { + "default": "yes", + "description": "Initial visibility setting.", + "enum": [ + "yes", + "no", + "always" + ] + }, + "extent": { + "type": "array", + "minItems": 4, + "maxItems": 4, + "items": { + "type": "number" + },"default":[-16763712,5165908,-5688293,10649806], + "description": "The extent that constrains the view. Called with [minX, minY, maxX, maxY] extent coordinates." + }, + "minZoom": { + "type": "integer", + "minimum": 0, + "maximum": 50, + "description": "The minimum view zoom level (exclusive) above which this layer will be visible." + }, + "maxZoom": { + "type": "integer", + "minimum": 0, + "maximum": 50, + "description": "The maximum view zoom level (inclusive) above which this layer will be visible." + }, + "className": { + "type": "string", + "description": "A CSS class name to set to the layer element." + } + } + }, + + "TypeListOfEsriDynamicLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + { "title": "GroupLayerEntry", + "$ref": "#/definitions/TypeLayerGroupEntryConfig" + }, + { "title": "EsriDynamicLayer","$ref": "#/definitions/TypeEsriDynamicLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeListOfEsriFeatureLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + { "title": "GroupLayerEntry", + "$ref": "#/definitions/TypeLayerGroupEntryConfig" + }, + { "title": "VectorLayerEntry", "$ref": "#/definitions/TypeVectorLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeListOfGeoCoreLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + { "title": "GroupLayerEntry", + "$ref": "#/definitions/TypeLayerGroupEntryConfig" + }, + { + "title": "GeocoreLayerEntry","$ref": "#/definitions/TypeGeocoreLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeListOfGeoJSONLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + + { + "title": "VectorLayerEntry", "$ref": "#/definitions/TypeVectorLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeListOfImageStaticLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + + { + "title": "ImageStaticLayerEntry", "$ref": "#/definitions/TypeImageStaticLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeListOfGeoPackageLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + + { + "title": "VectorLayerEntry", "$ref": "#/definitions/TypeVectorLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + + "TypeVectorSourceFormats": { + "enum": [ + "GeoJSON", + "EsriJSON", + "KML", + "WFS", + "featureAPI", + "GeoPackage" + ] , + "default": "GeoJSON", + "description": "The feature format used by the XHR feature loader when access path is set." + }, + + "TypeVectorSourceInitialConfig": { + + "type": "object", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "format": { "$ref": "#/definitions/TypeVectorSourceFormats" }, + "dataProjection": { + "type": "string", + "description": "The projection code of the source. Used only for GeoJSON format. Default value is EPSG:4326. " + }, + "featureInfo": { "$ref": "#/definitions/TypeFeatureInfoLayerConfig" }, + "cluster": { "$ref": "#/definitions/TypeSourceVectorClusterConfig" }, + "postSettings": { + "type": "object", + "properties": { + "data": + { + "type": "object" + }, + "header": + { + "type": "object" + } + } + }, + "strategy": { + "default": "all", + "description": "The loading strategy to use. By default an all strategy is used, a one-off strategy which loads all features at once.", + "enum": [ + "all", + "bbox" + ] + } + } + }, + + "TypeSourceVectorClusterConfig": { + + "type": "object", + "description": "Cluster vector data on vector layer. Works out of the box with point geometries. If another geometry is provided, it will be converted to points geometry.", + "properties": { + "enable": { + "type": "boolean", + "default": false + }, + "distance": { + "type": "integer", + "description": "Distance in pixels within which features will be clustered together (default 20px)." + }, + "minDistance": { + "type": "integer", + "description": "Minimum distance in pixels between clusters. Will be capped at the configured distance. By default no minimum distance is guaranteed. This config can be used to avoid overlapping icons. As a tradoff, the cluster feature's position will no longer be the center of all its features." + }, + "settings": { + "$ref": "#/definitions/TypeSimpleSymbolVectorConfig", + "description": "settings for the cluster symbol and clustered geometries" + }, + "splitZoom": { + "description": "Zoom level at which all clusters will split (default 7).", + "type": "integer" + }, + "textColor": { + "description": "Color for the text showing the number of points in a cluster", + "type": "string" + } + } + }, + + "TypeSourceImageWmsInitialConfig": { + + "type": "object", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "crossOrigin": { + "type": "string", + "description": "The crossOrigin attribute for loaded images. Note that you must provide a crossOrigin value if you want to access pixel data with the Canvas renderer." + }, + "projection": { + "type": "integer", + "description": "Spatial Reference EPSG code supported (https://epsg.io/). We support Web Mercator and Lambert Conical Conform Canada." + }, + "featureInfo": { + "$ref": "#/definitions/TypeFeatureInfoLayerConfig" + }, + "serverType": { + "$ref": "#/definitions/TypeOfServer", + "description": "The type of the remote WMS server. The default value is mapserver." + }, + "style": { + "oneOf": [ + { "title":"Single style", + "description": "Single style to apply", + "type": "string" + }, + { "title":"Array of styles", + "description": "Array of style to choose.", + "items": { + "type": "string" + }, + "type": "array" + } + ] + } + } + }, + + "TypeOfServer": { + "enum": [ + "mapserver", + "geoserver", + "qgis"], + "description": "The type of the remote WMS server. The default value is mapserver." + }, + + "TypeSourceImageEsriInitialConfig": { + + "type": "object", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "crossOrigin": { + "type": "string", + "description": "The crossOrigin attribute for loaded images. Note that you must provide a crossOrigin value if you want to access pixel data with the Canvas renderer." + }, + "projection": { + "type": "integer", + "description": "Spatial Reference EPSG code supported (https://epsg.io/). We support Web Mercator and Lambert Conical Conform Canada." + }, + "featureInfo": { + "$ref": "#/definitions/TypeFeatureInfoLayerConfig" + }, + "format": { + "$ref": "#/definitions/TypeEsriFormatParameter" + }, + "transparent": { + "type": "boolean", + "default": true, + "description": "If true, the image will be exported with the background color of the map set as its transparent color. Only the .png and .gif formats support transparency." + } + } + }, + + "TypeEsriDynamicLayerEntryConfig": { + + "properties": { + "entryType": { + "type": "string", + "enum": [ + "raster-image" + ], + "default": "raster-image" + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "layerFilter": { + "description": "Filter to apply on feature of this layer.", + "type": "string" + }, + "layerId": { + "description": "The id of the layer to display on the map.", + "type": "string" + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "schemaTag": { + "enum": [ + "esriDynamic" + ], + "default": "esriDynamic" + + }, + "source": { + "$ref": "#/definitions/TypeSourceImageEsriInitialConfig" + }, + "style": { + "$ref": "#/definitions/TypeStyleConfig" + } + }, + "required": [ + "schemaTag", + "entryType", + "layerId" + ], + "type": "object" + }, + + "TypeEsriFormatParameter": { + "enum": ["png", "jpg", "gif", "svg"], + "default": "png", + "description": "The format of the exported image. The default format is png." + }, + + "TypeSourceTileInitialConfig": { + + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "featureInfo": { + "$ref": "#/definitions/TypeFeatureInfoNotQueryable" + }, + "crossOrigin": { + "type": "string", + "description": "The crossOrigin attribute for loaded images. Note that you must provide a crossOrigin value if you want to access pixel data with the Canvas renderer." + }, + "projection": { + "type": "integer", + "description": "Spatial Reference EPSG code supported (https://epsg.io/). We support Web Mercator and Lambert Conical Conform Canada." + }, + "tileGrid": { "$ref": "#/definitions/TypeTileGrid" } + } + }, + + "TypeTileGrid": { + + "type": "object", + "properties": { + "extent": { + "type": "array", + "maxItems": 4, + "minItems": 4, + "items": + { + "type": "number" + }, + "description": "The extent that constrains the view. Called with [minX, minY, maxX, maxY] extent coordinates." + }, + "origin": { + "type": "array", + "maxItems": 2, + "minItems": 2, + "items": + { + "type": "number" + } + , + "description": "The tile grid origin, i.e. where the x and y axes meet ([z, 0, 0]). Tile coordinates increase left to right and downwards. If not specified, extent must be provided." + }, + "resolutions": { + "type": "array", + "items": { + "type": "number" + }, + "description": "Resolutions. The array index of each resolution needs to match the zoom level. This means that even if a minZoom is configured, the resolutions array will have a length of maxZoom + 1." + }, + "tileSize": { + "type": "array", + "maxItems": 2, + "minItems": 2, + "items": + { + "type": "number" + }, + "default": [256, + 256 + ], + "description": "The tile grid origin, i.e. where the x and y axes meet ([z, 0, 0]). Tile coordinates increase left to right and downwards. If not specified, extent must be provided." + } + }, + "required": ["origin", "resolutions"] + }, + + "TypeVectorHeatmapLayerEntryConfig": { + + "type": "object", + "properties": { + "schemaTag": { + "enum": [ + "not used yet" + ], + "defautl":"not used yet" + + }, + "entryType": { + "type": "string", + "enum": [ + "vector-heatmap" + ], + "default": "vector-heatmap" + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { "$ref": "#/definitions/TypeVectorSourceInitialConfig" }, + "gradient": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "minItems": 2, + "default": ["#00f", + "#0ff", + "#0f0", + "#ff0", + "#f00" + ], + "description": "Color gradient of the heatmap, specified as an array of CSS color strings." + }, + "radius": { + "type": "number", + "description": "Radius size in pixels (default 8px)." + }, + "blur": { + "type": "number", + "description": "Blur size in pixels (default 15px)." + }, + "weight": { + "type": "string", + "description": "Feature attribute to use for the weight or a function (ADD FORMAT) that returns a weight from a feature." + } + }, + "required": ["schemaTag", + "layerId", + "entryType" + ] + }, + + "TypeVectorLayerEntryConfig": { + + "type": "object", + "properties": { + "entryType": { + "type": "string", + "default": "vector", + "enum": [ + "vector" + ] + }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "layerFilter": { + "description": "Filter to apply on feature of this layer.", + "type": "string" + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { "$ref": "#/definitions/TypeVectorSourceInitialConfig" }, + "style": { "$ref": "#/definitions/TypeStyleConfig" }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "schemaTag": { + "enum": [ + "GeoJSON", + "esriFeature", + "ogcWfs", + "ogcFeature", + "GeoPackage" + ] + } + }, + "required": [ + "layerId", + "schemaTag", + "entryType" + ] + }, + + "TypeVectorTileLayerEntryConfig": { + + "type": "object", + "description": "Layer sources providing vector data divided into a tile grid.", + "properties": { + "entryType": { + "type": "string", + "enum": [ + "vector-tile" + ], + "default": "vector-tile" + }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "layerFilter": { + "description": "Filter to apply on feature of this layer.", + "type": "string" + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { + "$ref": "#/definitions/TypeVectorTileSourceInitialConfig", + "description": "Information used to configure the source of a vector tile layer." + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "style": { + "$ref": "#/definitions/TypeStyleConfig" + }, + "schemaTag": { + "enum": [ + "not used yet" + ] + } + }, + "required": [ + + "entryType", + "layerId" + ] + }, + + "TypeVectorTileSourceInitialConfig": { + + "type": "object", + "description": "Layer sources providing vector data divided into a tile grid.", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + }, + "format": { + "enum": ["GeoJSON", "EsriJSON", "KML", "WFS", "MVT", "featureAPI"], + "description": "The feature format used by the XHR feature loader when access path is set." + }, + "dataProjection": { + "type": "string", + "description": "The projection code of the source. Used only for GeoJSON format. Default value is EPSG:4326." + }, + "featureInfo": { "$ref": "#/definitions/TypeFeatureInfoLayerConfig" }, + "style": { "$ref": "#/definitions/TypeStyleConfig" }, + "tileGrid": { + "$ref": "#/definitions/TypeTileGrid" + } + + } + }, + + "TypeTileLayerEntryConfig": { + + "type": "object", + "properties": { + "entryType": { + "type": "string", + "enum": [ + "raster-tile" + ], + "default": "raster-tile" + }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "schemaTag": { + "enum": [ + "ogcWms", + "xyzTiles", + "vectorTiles" + ], + "default": "ogcWms" + }, + "source": { "$ref": "#/definitions/TypeSourceTileInitialConfig" } + }, + "required": [ + "schemaTag", + "entryType", + "layerId" + ] + }, + + "TypeListOfOgcWfsLayerEntryConfig": { + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "type": "array", + "minItems": 1, + + "items": { + "oneOf": [ + + { "title" :"VectorLayerEntry", + "$ref": "#/definitions/TypeVectorLayerEntryConfig" + } + ] + } + }, + + "TypeListOfOgcFeatureLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + + { "title" :"VectorLayerEntry", + "$ref": "#/definitions/TypeVectorLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeListOfOgcWmsLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + + { "title" :"OgcWmsLayerEntry", + "$ref": "#/definitions/TypeOgcWmsLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeListOfXyzTilesLayerEntryConfig": { + + "description": "This type is used recursively by the IsValidTypeListOfLayerEntryConfig method coded in config-validation.ts file. It completes the validation of the list of layer entry config.", + "items": { + "oneOf": [ + + { "title" :"TileLayerEntry", + "$ref": "#/definitions/TypeTileLayerEntryConfig" + } + ] + }, + "minItems": 1, + "type": "array" + }, + + "TypeGeocoreLayerEntryConfig": { + + "type": "object", + "description": "Layer where configration is extracted by a configuration snippet stored on a server. The server configuration will handle bilangual informations.", + "properties": { + "entryType": { + "type": "string", + "enum": [ + "geocore" + ], + "default": "geocore" + }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "geocoreLayerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "listOfLayerEntryConfig": { + "$ref": "#/definitions/TypeListOfLayerEntryConfig", + "description": "The list of layer entry configurations to use from the GeoView layer group." + }, + "schemaTag": { + "enum": [ + "geoCore" + ], + "defaut": "geoCore" + }, + "source": { "$ref": "#/definitions/TypeSourceGeocoreConfig" } + }, + "required": ["schemaTag","entryType","layerId"] + }, + + "TypeSourceGeocoreConfig": { + + "type": "object", + "description": "Layer source providing geocore data.", + "properties": { + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + + "description": "The url path to the geoCore endpoint (optional, this value should be embeded in the GeoView API)." + }, + "featureInfo": { + "$ref": "#/definitions/TypeFeatureInfoNotQueryable" + } + } + }, + + "TypeOgcWmsLayerEntryConfig": { + "type": "object", + "properties": { + "entryType": { + "type": "string", + "enum": [ + "raster-image" + ], + "default": "raster-image" + }, + + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "schemaTag": { + "enum": [ + "ogcWms" + ] + }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerPathEnding": { + "type": "string", + "description": "The ending element of the layer configuration path." + }, + "layerFilter": { + "type": "string", + "description": "Filter to apply on feature of this layer." + }, + "source": { + "$ref": "#/definitions/TypeSourceImageWmsInitialConfig" + }, + "style": { + "$ref": "#/definitions/TypeStyleConfig" + } + }, + "required": [ + "schemaTag", + "entryType", + "layerId" + ] + }, + + "TypeSourceImageStaticInitialConfig": { + + "properties": { + "crossOrigin": { + "description": "The crossOrigin attribute for loaded images. Note that you must provide a crossOrigin value if you want to access pixel data with the Canvas renderer.", + "type": "string" + }, + "dataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The path (English/French) to reach the data to display. If not specified, metadatAccessPath will be assigne dto it." + + }, + "extent": { + "description": "The extent of the static image. Called with [minX, minY, maxX, maxY] extent coordinates.", + "items": { + "type": "number" + }, + "maxItems": 4, + "minItems": 4, + "type": "array" + }, + "featureInfo": { + "$ref": "#/definitions/TypeFeatureInfoNotQueryable" + }, + "projection": { + "description": "Spatial Reference EPSG code supported (https://epsg.io/). We support Web Mercator and Lambert Conical Conform Canada.", + "type": "integer" + } + }, + "type": "object" + }, + + "TypeLayerEntryType": { "type": "string", + "enum": ["vector", + "vector-tile", + "vector-heatmap", + "raster-tile", + "raster-image", + "geoCore" + ], + "description": "Layer entry data type." + }, + + "TypeLayerGroupEntryConfig": { + + "type": "object", + "description": "Entry used to define a layer Group.", + + "properties": { + "entryType": { "type":"string", + + "enum": [ + "group" + ], + "default": "group" + }, + "layerId": { + "type": "string", + "description": "The id of the layer group to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer group (English/French)." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer group entries at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "listOfLayerEntryConfig": { + "$ref": "#/definitions/TypeListOfLayerEntryConfig", + "description": "The list of layer entry configurations to use from the GeoView layer group." + } + }, + + "required": ["entryType", "layerId", "listOfLayerEntryConfig"] + }, + + + + + "TypeLayerEntryConfig": { + "type":"object", + "oneOf": [ + { "title": "LayerGroup", + + "type": "object", + "description": "Entry used to define a layer Group.", + + "properties": { + "entryType": {"type":"string", + + "enum": [ + "group" + ], + "default": "group" + }, + "layerId": { + "type": "string", + "description": "The id of the layer group to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer group (English/French)." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer group entries at creation time. Initial settings are inherited from the parent in the configuration tree." + } + }, + + "required": ["entryType", "layerId"] + } , + {"title":"VectorTileLayer", + + "type": "object", + "description": "Layer sources providing vector data divided into a tile grid.", + "properties": { + "schemaTag": {"type": "string", + "enum": [ + "not used yet" + ], + "default": "not used yet" + }, + "entryType": { + "type": "string", + "enum": [ + "vector-tile" + ], + "default": "vector-tile" + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "layerFilter": { + "description": "Filter to apply on feature of this layer.", + "type": "string" + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { + "$ref": "#/definitions/TypeVectorTileSourceInitialConfig", + "description": "Information used to configure the source of a vector tile layer." + }, + "style": { + "$ref": "#/definitions/TypeStyleConfig" + } + }, + + "required": [ + "schemaTag", + "entryType", + "layerId" + ] + }, + + { + "title":"GeocoreLayer", + "type": "object", + "description": "Layer where configration is extracted by a configuration snippet stored on a server. The server configuration will handle bilangual informations.", + "properties": { + "schemaTag": { "type":"string", + "enum": [ + "geoCore" + ], + "defaut": "geoCore" + }, + "entryType": {"type": "string", + + "enum": [ + "geocore" + ], + "default": "geocore" + }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "geocoreLayerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { "$ref": "#/definitions/TypeSourceGeocoreConfig" + }, + "listOfLayerEntryConfig": { + "$ref": "#/definitions/TypeListOfLayerEntryConfig", + "description": "The list of layer entry configurations to use from the GeoView layer group." + } }, + "required": ["schemaTag","entryType","layerId"] + }, + + { "title": "VectorLayer", + "type": "object", + "properties": { + "schemaTag": {"type":"string", + "enum": ["GeoJSON","esriFeature","ogcWfs","ogcFeature","GeoPackage"],"default": "esriFeature" + }, + "entryType": { + "type": "string", + "enum": [ + "vector" + ] ,"default": "vector" + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "layerFilter": { + "description": "Filter to apply on feature of this layer.", + "type": "string" + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { "$ref": "#/definitions/TypeVectorSourceInitialConfig" }, + "style": { "$ref": "#/definitions/TypeStyleConfig" } + + }, + "required": ["layerId","schemaTag","entryType" ] + } + + , + + { "title": "OgcWmsLayer", + "type": "object", + "properties": { + "schemaTag": { "type": "string", + "enum": [ + "ogcWms" + ],"default": "ogcWms" + }, + "entryType": { + "type": "string", + "enum": [ + "raster-image" + ], + "default": "raster-image" + }, + + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerPathEnding": { + "type": "string", + "description": "The ending element of the layer configuration path." + }, + + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "layerFilter": { + "type": "string", + "description": "Filter to apply on feature of this layer." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { + "$ref": "#/definitions/TypeSourceImageWmsInitialConfig" + }, + "style": { + "$ref": "#/definitions/TypeStyleConfig" + } + }, + "required": [ "entryType", + "schemaTag", + "layerId" + ] + }, + { + "title": "EsriDynamicLayer", + "properties": { + "schemaTag": { "type": "string", + "enum": [ + "esriDynamic" + ], + "default": "esriDynamic" + + }, + "entryType": { + "type": "string", + "enum": [ + "raster-image" + ], + "default": "raster-image" + }, + "layerId": { + "description": "The id of the layer to display on the map.", + "type": "string" + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "layerFilter": { + "description": "Filter to apply on feature of this layer.", + "type": "string" + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { + "$ref": "#/definitions/TypeSourceImageEsriInitialConfig" + }, + "style": { + "$ref": "#/definitions/TypeStyleConfig" + } + }, + "required": [ + "entryType", + "layerId", + "schemaTag" + ], + "type": "object" + }, + { + "title": "TileLayer", + "type": "object", + "properties":{ + "schemaTag": {"type": "string", + "enum": [ + "ogcWms", + "xyzTiles", + "vectorTiles" + ], + "default": "ogcWms" + } , + "entryType": { + "type": "string", + "enum": [ + "raster-tile" + ], "default": "raster-tile" + }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "source": { "$ref": "#/definitions/TypeSourceTileInitialConfig" } + + }, + "required": [ + "schemaTag", + "entryType", + "layerId" + ] + }, + { + "title": "VectorHeatMap", + "type": "object", + "properties": { + "schemaTag": { + "enum": [ + "not used yet" + ], + "default":"not used yet" + + }, + "entryType": { + "type": "string", + "enum": [ + "vector-heatmap" + ], + "default": "vector-heatmap" + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "layerId": { + "type": "string", + "description": "The id of the layer to display on the map." + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "source": { "$ref": "#/definitions/TypeVectorSourceInitialConfig" }, + "gradient": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "minItems": 2, + "default": ["#00f", + "#0ff", + "#0f0", + "#ff0", + "#f00" + ], + "description": "Color gradient of the heatmap, specified as an array of CSS color strings." + }, + "radius": { + "type": "number", + "description": "Radius size in pixels (default 8px)." + }, + "blur": { + "type": "number", + "description": "Blur size in pixels (default 15px)." + }, + "weight": { + "type": "string", + "description": "Feature attribute to use for the weight or a function (ADD FORMAT) that returns a weight from a feature." + } + }, + "required": ["schemaTag", + "layerId", + "entryType" + ] + } + + ] + }, + + "TypeListOfLayerEntryConfig": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/TypeLayerEntryConfig" + } + }, + + "TypeMapConfig": { + + "type": "object", + "properties": { + "basemapOptions": { "$ref": "#/definitions/TypeBasemapOptions" }, + "interaction": { "$ref": "#/definitions/TypeInteraction" }, + "listOfGeoviewLayerConfig": { "$ref": "#/definitions/TypeListOfGeoviewLayerConfig" }, + "viewSettings": { "$ref": "#/definitions/TypeViewSettings" }, + "extraOptions": { + "type": "object", + "description": "Additional options used for OpenLayers map options" + } + }, + "required": ["basemapOptions", "interaction", "viewSettings"] + }, + + "TypeBasemapOptions": { + + "type": "object", + "properties": { + "basemapId": { "$ref": "#/definitions/TypeBasemapId" }, + + "shaded": { + "type": "boolean", + "default": true, + "title": "Enable or disable shaded basemap (if basemap id is set to shaded then this should be false)." + + }, + "labeled": { + "type": "boolean", + "default": true, + + "title": "Enable or disable basemap labels" + } + }, + "required": ["basemapId", "shaded", "labeled"] + }, + + "TypeBasemapId": { + "description": "Id of the basemap to use." , + "enum": ["transport", "osm", "simple", "nogeom", "shaded"], + "default": "transport" + + }, + + "TypeInteraction": { + "enum": ["static", "dynamic"], + "default": "dynamic", + "description": "If map is dynamic (pan/zoom) or static to act as a thumbnail (no nav bar)." + }, + + "TypeListOfGeoviewLayerConfig": { + + "description": "List of GeoView Layers in the order which they should be added to the map.", + "type": "array", + + "items": { + "$ref": "#/definitions/TypeGeoviewLayerConfig" + } + }, + + "TypeGeoviewLayerConfig": { + + "type": "object", + "properties": { + "externalDateFormat": { + "description": "Date format used by the getFeatureInfo to output date variable.", + "type": "string" + }, + "geoviewLayerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "metadataAccessPath": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The GeoView layer access path (English/French)." + }, + "geoviewLayerId": { + "description": "The id of the layer for referencing within the viewer (does not relate directly to any external service). The id will have the language extension (id-'lang').", + "type": "string" + }, + "geoviewLayerType": { + "$ref": "#/definitions/TypeGeoviewLayerType", + "description": "Type of GeoView layer." + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the GeoView layer at creation time." + }, + "listOfLayerEntryConfig": { + "$ref": "#/definitions/TypeListOfLayerEntryConfig", + "description": "The layer entries to use from the GeoView layer." + }, + "serviceDateFormat": { + "description": "Date format used by the service endpoint.", + "type": "string" + } + }, + "required": [ + "geoviewLayerType", + "listOfLayerEntryConfig" + ] + }, + + "TypeGeoviewLayerType": { + "type": "string", + "enum": [ + "esriDynamic", + "esriFeature", + "GeoJSON", + "geoCore", + "GeoPackage", + "xyzTiles", + "ogcFeature", + "ogcWfs", + "ogcWms", + "imageStatic", + "vectorTiles" + ], + "default": [ + "esriDynamic" + ], + "description": "Type of GeoView layer." + } + , + "TypeImageStaticLayerEntryConfig": { + + "properties": { + "entryType": { + "enum": [ + "raster-image" + ] + }, + "initialSettings": { + "$ref": "#/definitions/TypeLayerInitialSettings", + "description": "Initial settings to apply to the layer entry at creation time. Initial settings are inherited from the parent in the configuration tree." + }, + "layerId": { + "description": "The id of the layer to display on the map.", + "type": "string" + }, + "layerName": { + "$ref": "#/definitions/TypeLocalizedString", + "description": "The display name of the layer (English/French). If it is not present the viewer will make an attempt to scrape this information." + }, + "layerPathEnding": { + "description": "The ending element of the layer configuration path.", + "type": "string" + }, + "schemaTag": { + "enum": [ + "imageStatic" + ] + }, + "source": { + "$ref": "#/definitions/TypeSourceImageStaticInitialConfig" + } + }, + "required": [ + "schemaTag", + "entryType", + "layerId" + ], + "type": "object" + }, + + "TypeViewSettings": { + + "type": "object", + "properties": { + "center": { + "type": "array", + "items": [ + + { + "type": "number", + "minimum": -160, + "maximum": 160, + "default": -106, + "description": "Initial longitude value for map center." + }, + { + "type": "number", + "minimum": -80, + "maximum": 80, + "default": 60, + "description": "Initial latitude value for map center." + } + + ] + + }, + "enableRotation": { + "type": "boolean", + "default": true, + "title": "Enable rotation. If false, a rotation constraint that always sets the rotation to zero is used." + }, + "extent": { + "type": "array", + "minItems":4, + "maxItems":4, + "items": { + + "type": "number" + + },"default":[-16763712,5165908,-5688293,10649806], + "description": "The extent that constrains the view. Called with [minX, minY, maxX, maxY] extent coordinates." + }, + "minZoom": { + "type": "integer", + "description": "The minimum zoom level used to determine the resolution constraint. If not set, will use default from basemap.", + "minimum": 0, + "maximum": 50 + }, + "maxZoom": { + "type": "integer", + "description": "The maximum zoom level used to determine the resolution constraint. If not set, will use default from basemap.", + "minimum": 0, + "maximum": 50 + }, + "projection": { "$ref": "#/definitions/TypeValidMapProjectionCodes" }, + "rotation": { + "type": "integer", + "minimum": -360, + "maximum": 360, + "default": 0, + "description": "The initial rotation for the view in degree (positive rotation clockwise, 0 means North). Will be converted to radiant by the viewer." + }, + "zoom": { + "type": "number", + "minimum": 0, + "maximum": 28, + "default": 12, + "description": "Initial map zoom level. Zoom level are define by the basemap zoom levels." + } + }, + "required": ["zoom", "center"] + }, + + "TypeAppBarProps": { + "default": [ + "geolocator" + ], + "description": "Controls availalbe on the application bar.", + "items": { + "enum": [ + "geolocator", + "export" + ] + }, + "minItems": 0, + "type": "array", + "uniqueItems": true + + }, + + "TypeNavBarProps": { + "type": "array", + "uniqueItems": true, + "items": { + "enum": [ + "zoom", + "fullscreen", + "home", + "location", + "export" + ] + }, + "default": [ + "zoom", + "fullscreen", + "home" + ], + "description": "Controls availalbe on the navigation bar.", + "minItems": 0 + }, + + "TypeOverviewMapProps": { + "type": "object", + "additionalProperties": false, + "properties": { + "hideOnZoom": { + "type": "number", + "minimum": 0, + "maximum": 10, + "default": 0, + "description": "Minimum zoom level to show overview map" + } + } + }, + + "TypeMapComponents": { + "type": "array", + "uniqueItems": true, + "items": { + "enum": [ + "overview-map", + "north-arrow", + "geolocator" + ] + }, + "default": [ + "overview-map", + "north-arrow", + "geolocator" + ], + "description": "Core components to initialize on viewer load. The schema for those are inside this file.", + "minItems": 0 + }, + + "TypeMapCorePackages": { + "type": "array", + "uniqueItems": true, + "items": { + "enum": [ + "basemap-panel", + "layers-panel", + "details-panel", + "geolocator-panel", + "footer-panel", + "swiper" + ] + }, + "default": ["basemap-panel", + "layers-panel", + "details-panel", + "geolocator-panel" + ], + "description": "Core packages to initialize on viewer load. The schema for those are on their own package. NOTE: config from packages are in the same loaction as core config (<>-<>.json).", + "minItems": 0 + }, + + "TypeExternalPackages": { + "type": "array", + "items": { + "type": "object", "properties": { + "name": { + "type": "string", + + + "description": "External Package name. The name must be ideintical to the window external package object to load." + }, + "configUrl": { + "type": "string", + + "format": "uri", + "description": "The url to the external package configuration setting. The core package will read the configuration and pass it inside the package." + } + }, + "required": ["name"] + }, + "default": [], + "description": "List of external packages to initialize on viewer load.", + "minItems": 0 + }, + + "TypeServiceUrls": { + + "type": "object", + "description": "Service endpoint urls", + "properties": { + "keys": { + "type": "string", + "default": "https://geocore.api.geo.ca", + + "description": "Service end point to access API for layers specification (loading and plugins parameters). By default it is GeoCore but can be another endpoint with similar output." + }, + "geolocator": { + "type": "string", + + "description": "Service end point to access geo location of searched value." + }, + + "proxyUrl": { + "type": "string", + + "description": "An optional proxy to be used for dealing with same-origin issues. URL must either be a relative path on the same server or an absolute path on a server which sets CORS headers." + } + }, + "required": [ + "keys" + ] + }, + + "TypeDisplayLanguage": { + "enum": ["en", "fr"], + "description": "Display languages supported." + }, + + "TypeLocalizedLanguages": { + "enum": ["en", "fr"], + "description": "ISO 639-1 code indicating the languages supported by the configuration file." + }, + + "TypeListOfLocalizedLanguages": { + "type": "array", + "uniqueItems": true, + "items": { "$ref": "#/definitions/TypeLocalizedLanguages" }, + "default": ["en", "fr"], + "description": "ISO 639-1 code indicating the languages supported by the configuration file. It will use value(s) provided here to access bilangual configuration nodes. For value(s) provided here, each bilingual configuration node MUST provide a value.", + "minItems": 1 + }, + + "TypeValidVersions": { + "enum": ["1.0"], + "description": "The schema version that can be used to validate the configuration file. The schema should enumerate the list of versions accepted by this version of the viewer." + }, + + "TypeMapFeaturesInstance": { + + "description": "The map features configuration. This type is used by the IsValidTypeMapFeaturesInstance method coded in config-validation.ts file. It does the validation down to the list of layer entry config.", + "type": "object", + "properties": { + "map": { "$ref": "#/definitions/TypeMapConfig" }, + "appBar": { "$ref": "#/definitions/TypeAppBarProps" }, + "navBar": { "$ref": "#/definitions/TypeNavBarProps" }, + "overviewMap": {"$ref": "#/definitions/TypeOverviewMapProps"}, + "components": { "$ref": "#/definitions/TypeMapComponents" }, + "corePackages": { "$ref": "#/definitions/TypeMapCorePackages" }, + "externalPackages": { "$ref": "#/definitions/TypeExternalPackages" }, + "serviceUrls": { "$ref": "#/definitions/TypeServiceUrls" }, + "suportedLanguages": { "$ref": "#/definitions/TypeListOfLocalizedLanguages" }, + "schemaVersionUsed": { "$ref": "#/definitions/TypeValidVersions" } + }, + "required": ["map", "suportedLanguages"] + } + }, + + "properties": { + "map": { "$ref": "#/definitions/TypeMapConfig" }, + "theme": { "Title": "Map Theme Style", + "enum": [ + "dark", + "light", + "royal" + ], + "default": "dark", + "description": "Theme style of the viewer." + }, + "appBar": { "$ref": "#/definitions/TypeAppBarProps" }, + "navBar": { "$ref": "#/definitions/TypeNavBarProps" }, + "overviewMap": {"$ref": "#/definitions/TypeOverviewMapProps"}, + "components": { "$ref": "#/definitions/TypeMapComponents" }, + "corePackages": { "$ref": "#/definitions/TypeMapCorePackages" }, + "externalPackages": {"$ref": "#/definitions/TypeExternalPackages"}, + "serviceUrls": { "$ref": "#/definitions/TypeServiceUrls" }, + "suportedLanguages": { "$ref": "#/definitions/TypeListOfLocalizedLanguages" }, + "versionUsed": { "$ref": "#/definitions/TypeValidVersions" } + } + }, + + "rangeSlider": { + "title": "Range Slider", + "type": "object", + "properties": { "enable": { "type": "boolean", - "title": "Enable", - "default": false + "title": "Enable", + "default": true }, "open": { "type": "boolean", @@ -45,14 +2341,12 @@ "default": false }, "controls": { - "type": "array", - "default": [ - "lock", - "delay" - ], + "type": "array", + "minItems":0, + "uniqueItems": true, + "items": { - "type": "string", - "enum": [ + "enum": [ "lock", "loop", "delay", @@ -60,8 +2354,13 @@ "refresh", "reverse" ] - }, + }, + "default": [ + "lock", + "delay" + ], "title": "Slider bar controls" + }, "params": { "type": "object", @@ -207,7 +2506,8 @@ "type": "string", "description": "The id of the layer for referencing within the viewer (does not relate directly to any external service).", "title": "Layer id", - "default": "" + "enum":[] + }, "field": { "type": "string", @@ -229,18 +2529,21 @@ } } }, - "additionalProperties": false, + "required": [ "params", "layers" ] }, - "areasOfInterest": { + + "areasOfInterest": { + "title": "Areas of Interest", "type": "object", "properties": { "enable": { "type": "boolean", - "title": "Enable" + "title": "Enable", + "default":true }, "areas": { "type": "array", @@ -293,12 +2596,21 @@ } } }, + "chart": { + "title": "Chart", + + "type": "object", "properties": { - "enable": { - "type": "boolean", - "title": "Enable" + "enable": { + "type": "boolean", + "title": "Enable", + + + "default":true + + }, "type": { "title": "Chart Type", @@ -308,7 +2620,7 @@ "bar", "line" ], - "description": "", + "default": "pie" }, "title": { @@ -471,7 +2783,8 @@ "id": { "title": "Layer ID", "type": "string", - "description": "" + "description": "", + "enum":[] }, "nameField": { "type": "string", @@ -638,11 +2951,13 @@ } }, "swiper": { + "title": "Swiper", "type": "object", "properties": { "enable": { "type": "boolean", - "title": "Enable" + "title": "Enable", + "default":true }, "type": { "type": "string", @@ -662,22 +2977,16 @@ "maximum": 100 }, "layers": { - "type": "array", + "type": "string", "title": "Layers", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The id of the layer for referencing within the viewer (does not relate directly to any external service).", - "title": "Layer id" - } - }, - "required": [ - "id" - ] - } - } + "description": "The id of the layer for referencing within the viewer (does not relate directly to any external service).", + "enum":[] + } + + + + + }, "required": [ "type", @@ -685,12 +2994,14 @@ "layers" ] }, - "draw": { + "draw": { + "title": "Draw", "type": "object", "properties": { "enable": { "type": "boolean", - "title": "Enable" + "title": "Enable", + "default":true }, "open": { "type": "boolean", @@ -700,8 +3011,9 @@ "tools": { "type": "array", "title": "Tools", - "items": { - "type": "string", + "minItems":0, + "uniqueItems": true, + "items":{ "enum": [ "picker", "point", @@ -714,6 +3026,8 @@ "read" ] }, + + "description": "Tools to add to draw toolbar.", "default": [ "picker", @@ -727,18 +3041,17 @@ "read" ] } - }, - "required": [ - "active", - "tools" - ] + + } }, "thematicSlider": { + "title": "Thematic Slider", "type": "object", "properties": { "enable": { "type": "boolean", - "title": "Enable" + "title": "Enable", + "default":true }, "open": { "type": "boolean", @@ -779,7 +3092,9 @@ "id": { "type": "string", "description": "The id of the layer for referencing within the viewer (does not relate directly to any external service).", - "title": "Layer id" + "title": "Layer id", + "enum":[] + }, "duration": { "type": "number", @@ -855,5 +3170,7 @@ } } } - ] -} + ] + } + + diff --git a/src/index.js b/src/index.js index ccf1f27..97ec7f5 100644 --- a/src/index.js +++ b/src/index.js @@ -3,6 +3,7 @@ import ReactDOM from "react-dom"; import "./App.css"; import App from "./App"; + ReactDOM.render( diff --git a/src/popups.js b/src/popups.js new file mode 100644 index 0000000..c807eb0 --- /dev/null +++ b/src/popups.js @@ -0,0 +1,26 @@ +import React, { Component } from "react"; + +function Popup() { +const [isOpen, setIsOpen] = useState(false); + +return ( +
+ + +{isOpen && ( +
+
+This is the content of the pop-up. +
+ +
+)} +
+); +} + +export default PopUps; \ No newline at end of file