diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 605f2438a9096b2fe287b3fbaadc201eb7a5d39d..c4721b59f44361cef85cde0cfc037af5810b52ea 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -19,6 +19,6 @@ module.exports = { }, root: true, settings: { - "svelte3/typescript": require("typescript"), + "svelte3/typescript": () => require("typescript"), }, } diff --git a/.gitignore b/.gitignore index 594419fe31fa5fa2385854a3fef6b2e117557b93..b4e1c1bc418b50785057cf7b9d35da0b3af0a4a2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,4 @@ node_modules /*.env !/example.env /.svelte-kit -/build -/functions +/package diff --git a/.prettierignore b/.prettierignore index d292d21862b5af847149c155e9f6bb9f783b70db..7dde8a0aed1f0aaeeae5e90d104331528e2d9950 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,4 @@ -.svelte/** +.svelte-kit/** build/** node_modules/** static/** diff --git a/package-lock.json b/package-lock.json index 9e74a414404a2c92e9ab743e03279c25fbda34e2..1244d1f3ea0af1f8c043230c470829f17893e072 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,7 +35,7 @@ "prettier-plugin-svelte": "^2.2.0", "sanitize-filename": "^1.6.3", "sockette": "^2.0.6", - "svelte": "^3.37.0", + "svelte": "^3.39.0", "svelte-check": "^2.0.0", "svelte-dnd-action": "^0.9.8", "svelte-json-tree": "github:eraviart/svelte-json-tree", @@ -306,15 +306,15 @@ } }, "node_modules/@sveltejs/kit": { - "version": "1.0.0-next.132", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.132.tgz", - "integrity": "sha512-mX3ihuyTQr3302ZpihG3gXfTBcDPODlJ6ZoYu6f7TGo8+1OdpuDdozgi1CKLkrUBHYGnPO4E75XOVKlgJLjBQw==", + "version": "1.0.0-next.137", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.137.tgz", + "integrity": "sha512-YdcwaN9zWcbz4jLZS4j9/7fNZIVO8WkXDuwGTiKARhOLIuuJAjCvSuOZ3btJdV/ySpizTWX22u632weVPLECdw==", "dev": true, "dependencies": { - "@sveltejs/vite-plugin-svelte": "^1.0.0-next.12", + "@sveltejs/vite-plugin-svelte": "^1.0.0-next.14", "cheap-watch": "^1.0.3", "sade": "^1.7.4", - "vite": "^2.4.1" + "vite": "^2.4.3" }, "bin": { "svelte-kit": "svelte-kit.js" @@ -327,25 +327,30 @@ } }, "node_modules/@sveltejs/vite-plugin-svelte": { - "version": "1.0.0-next.13", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.13.tgz", - "integrity": "sha512-hzacNmIOR55aE+yQj750R90+BbQERRVGjlu6TQLgy+Aw2bPmRJMLKvS/NmwO+I66DEiWQdFFHR+lxtwH4bbbXw==", + "version": "1.0.0-next.14", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.14.tgz", + "integrity": "sha512-46IKPtoGcdo6YLyUhvsXyC1Dg3m2HlbgreZqxM/h5DzavgUa75c/WHT5cIxxLppG+gxtct7V08/WNEdpFdmM3Q==", "dev": true, "dependencies": { "@rollup/pluginutils": "^4.1.1", "debug": "^4.3.2", - "diff-match-patch": "^1.0.5", "kleur": "^4.1.4", "magic-string": "^0.25.7", "require-relative": "^0.8.7", - "svelte-hmr": "^0.14.6" + "svelte-hmr": "^0.14.7" }, "engines": { "node": "^12.20 || ^14.13.1 || >= 16" }, "peerDependencies": { + "diff-match-patch": "^1.0.5", "svelte": "^3.34.0", "vite": "^2.3.7" + }, + "peerDependenciesMeta": { + "diff-match-patch": { + "optional": true + } } }, "node_modules/@tailwindcss/forms": { @@ -391,9 +396,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.0.tgz", - "integrity": "sha512-HrJuE7Mlqcjj+00JqMWpZ3tY8w7EUd+S0U3L1+PQSWiXZbOgyQDvi+ogoUxaHApPJq5diKxYBQwA3iIlNcPqOg==", + "version": "16.4.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.1.tgz", + "integrity": "sha512-UW7cbLqf/Wu5XH2RKKY1cHwUNLicIDRLMraYKz+HHAerJ0ZffUEk+fMnd8qU2JaS6cAy0r8tsaf7yqHASf/Y0Q==", "dev": true }, "node_modules/@types/parse-json": { @@ -954,9 +959,9 @@ "dev": true }, "node_modules/colord": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.3.0.tgz", - "integrity": "sha512-0NaS8lq6xZ9Zb+cWRwQf6ql1Z/7HMIAMzPrM2pgfAqskGAhUksBcaau6W8sL+6OK0xIujcSo1TJfdctG7K85Qg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.4.0.tgz", + "integrity": "sha512-2306/NeTDOykDwvFQK0ctnP+9I5KQdqVm+IJAM6MsAr4vvy1llAdJyax4YmZoqTxdJ/lvRBwR8MqyJi/tupBAw==", "dev": true }, "node_modules/colorette": { @@ -1324,12 +1329,6 @@ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true }, - "node_modules/diff-match-patch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", - "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==", - "dev": true - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -1425,9 +1424,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.782", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.782.tgz", - "integrity": "sha512-6AI2se1NqWA1SBf/tlD6tQD/6ZOt+yAhqmrTlh4XZw4/g0Mt3p6JhTQPZxRPxPZiOg0o7ss1EBP/CpYejfnoIA==", + "version": "1.3.785", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.785.tgz", + "integrity": "sha512-WmCgAeURsMFiyoJ646eUaJQ7GNfvMRLXo+GamUyKVNEM4MqTAsXyC0f38JEB4N3BtbD0tlAKozGP5E2T9K3YGg==", "dev": true }, "node_modules/emoji-regex": { @@ -3359,9 +3358,9 @@ "dev": true }, "node_modules/regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "dev": true }, "node_modules/regexpp": { @@ -3745,9 +3744,9 @@ "dev": true }, "node_modules/svelte-hmr": { - "version": "0.14.6", - "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.6.tgz", - "integrity": "sha512-0oXQmRiEh3uNjyVQiGmIE7imbKO4dYc1WL6XRXTC0X9XbSacJgj9MOLguqqbZygPsNnlglhlk4eB0pCmM6nQAA==", + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.7.tgz", + "integrity": "sha512-pDrzgcWSoMaK6AJkBWkmgIsecW0GChxYZSZieIYfCP0v2oPyx2CYU/zm7TBIcjLVUPP714WxmViE9Thht4etog==", "dev": true, "peerDependencies": { "svelte": ">=3.19.0" @@ -3884,9 +3883,9 @@ "dev": true }, "node_modules/tailwindcss": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.5.tgz", - "integrity": "sha512-/85aI7qltFUXCF/zRKCm2Z1TYKy74DK3V4DP1gxz++YK0CgV3TlXB9h7ylKAukrc+ILcRPe6+dSQ1lbCj8XSJQ==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.7.tgz", + "integrity": "sha512-jv35rugP5j8PpzbXnsria7ZAry7Evh0KtQ4MZqNd+PhF+oIKPwJTVwe/rmfRx9cZw3W7iPZyzBmeoAoNwfJ1yg==", "dev": true, "dependencies": { "arg": "^5.0.0", @@ -4418,30 +4417,29 @@ } }, "@sveltejs/kit": { - "version": "1.0.0-next.132", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.132.tgz", - "integrity": "sha512-mX3ihuyTQr3302ZpihG3gXfTBcDPODlJ6ZoYu6f7TGo8+1OdpuDdozgi1CKLkrUBHYGnPO4E75XOVKlgJLjBQw==", + "version": "1.0.0-next.137", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.137.tgz", + "integrity": "sha512-YdcwaN9zWcbz4jLZS4j9/7fNZIVO8WkXDuwGTiKARhOLIuuJAjCvSuOZ3btJdV/ySpizTWX22u632weVPLECdw==", "dev": true, "requires": { - "@sveltejs/vite-plugin-svelte": "^1.0.0-next.12", + "@sveltejs/vite-plugin-svelte": "^1.0.0-next.14", "cheap-watch": "^1.0.3", "sade": "^1.7.4", - "vite": "^2.4.1" + "vite": "^2.4.3" } }, "@sveltejs/vite-plugin-svelte": { - "version": "1.0.0-next.13", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.13.tgz", - "integrity": "sha512-hzacNmIOR55aE+yQj750R90+BbQERRVGjlu6TQLgy+Aw2bPmRJMLKvS/NmwO+I66DEiWQdFFHR+lxtwH4bbbXw==", + "version": "1.0.0-next.14", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.14.tgz", + "integrity": "sha512-46IKPtoGcdo6YLyUhvsXyC1Dg3m2HlbgreZqxM/h5DzavgUa75c/WHT5cIxxLppG+gxtct7V08/WNEdpFdmM3Q==", "dev": true, "requires": { "@rollup/pluginutils": "^4.1.1", "debug": "^4.3.2", - "diff-match-patch": "^1.0.5", "kleur": "^4.1.4", "magic-string": "^0.25.7", "require-relative": "^0.8.7", - "svelte-hmr": "^0.14.6" + "svelte-hmr": "^0.14.7" } }, "@tailwindcss/forms": { @@ -4481,9 +4479,9 @@ "dev": true }, "@types/node": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.0.tgz", - "integrity": "sha512-HrJuE7Mlqcjj+00JqMWpZ3tY8w7EUd+S0U3L1+PQSWiXZbOgyQDvi+ogoUxaHApPJq5diKxYBQwA3iIlNcPqOg==", + "version": "16.4.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.1.tgz", + "integrity": "sha512-UW7cbLqf/Wu5XH2RKKY1cHwUNLicIDRLMraYKz+HHAerJ0ZffUEk+fMnd8qU2JaS6cAy0r8tsaf7yqHASf/Y0Q==", "dev": true }, "@types/parse-json": { @@ -4877,9 +4875,9 @@ } }, "colord": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.3.0.tgz", - "integrity": "sha512-0NaS8lq6xZ9Zb+cWRwQf6ql1Z/7HMIAMzPrM2pgfAqskGAhUksBcaau6W8sL+6OK0xIujcSo1TJfdctG7K85Qg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.4.0.tgz", + "integrity": "sha512-2306/NeTDOykDwvFQK0ctnP+9I5KQdqVm+IJAM6MsAr4vvy1llAdJyax4YmZoqTxdJ/lvRBwR8MqyJi/tupBAw==", "dev": true }, "colorette": { @@ -5164,12 +5162,6 @@ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true }, - "diff-match-patch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", - "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==", - "dev": true - }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -5238,9 +5230,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.782", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.782.tgz", - "integrity": "sha512-6AI2se1NqWA1SBf/tlD6tQD/6ZOt+yAhqmrTlh4XZw4/g0Mt3p6JhTQPZxRPxPZiOg0o7ss1EBP/CpYejfnoIA==", + "version": "1.3.785", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.785.tgz", + "integrity": "sha512-WmCgAeURsMFiyoJ646eUaJQ7GNfvMRLXo+GamUyKVNEM4MqTAsXyC0f38JEB4N3BtbD0tlAKozGP5E2T9K3YGg==", "dev": true }, "emoji-regex": { @@ -6647,9 +6639,9 @@ } }, "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "dev": true }, "regexpp": { @@ -6927,9 +6919,9 @@ "dev": true }, "svelte-hmr": { - "version": "0.14.6", - "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.6.tgz", - "integrity": "sha512-0oXQmRiEh3uNjyVQiGmIE7imbKO4dYc1WL6XRXTC0X9XbSacJgj9MOLguqqbZygPsNnlglhlk4eB0pCmM6nQAA==", + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.7.tgz", + "integrity": "sha512-pDrzgcWSoMaK6AJkBWkmgIsecW0GChxYZSZieIYfCP0v2oPyx2CYU/zm7TBIcjLVUPP714WxmViE9Thht4etog==", "dev": true, "requires": {} }, @@ -7000,9 +6992,9 @@ } }, "tailwindcss": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.5.tgz", - "integrity": "sha512-/85aI7qltFUXCF/zRKCm2Z1TYKy74DK3V4DP1gxz++YK0CgV3TlXB9h7ylKAukrc+ILcRPe6+dSQ1lbCj8XSJQ==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.7.tgz", + "integrity": "sha512-jv35rugP5j8PpzbXnsria7ZAry7Evh0KtQ4MZqNd+PhF+oIKPwJTVwe/rmfRx9cZw3W7iPZyzBmeoAoNwfJ1yg==", "dev": true, "requires": { "arg": "^5.0.0", diff --git a/package.json b/package.json index a7e06eaf86e19a560a3b980ea8c43d71267df9d4..a834281698cf0d5c6c6928e4971611424a3c93bf 100644 --- a/package.json +++ b/package.json @@ -6,11 +6,9 @@ "check": "svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-check --tsconfig ./tsconfig.json --watch", "dev": "svelte-kit dev", - "format": "prettier --write .", - "lint": "prettier --check . && eslint--ignore-path .gitignore .", - "prettier": "prettier --plugin-search-dir=. --write \"*.cjs\" --write \"src/*.ts\" \"src/**/*.ts\" \"src/**/*.svelte\"", - "preview": "svelte-kit preview", - "start": "svelte-kit start" + "format": "prettier --write --plugin-search-dir=. .", + "lint": "prettier --check --plugin-search-dir=. . && eslint --ignore-path .gitignore .", + "preview": "svelte-kit preview" }, "devDependencies": { "@auditors/core": "^0.1.7", @@ -41,7 +39,7 @@ "prettier-plugin-svelte": "^2.2.0", "sanitize-filename": "^1.6.3", "sockette": "^2.0.6", - "svelte": "^3.37.0", + "svelte": "^3.39.0", "svelte-check": "^2.0.0", "svelte-dnd-action": "^0.9.8", "svelte-json-tree": "github:eraviart/svelte-json-tree", diff --git a/src/app.html b/src/app.html index c4d7cde65303f85f6dba383d62945e5a03261298..7921122ef85489f3f1e5e2042e61a76d91b89317 100644 --- a/src/app.html +++ b/src/app.html @@ -2,7 +2,7 @@ <html lang="fr"> <head> <meta charset="utf-8" /> - <link rel="icon" href="/favicon.ico" /> + <link rel="icon" href="/favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> %svelte.head% </head> diff --git a/src/global.d.ts b/src/global.d.ts index c57bce8c6b32f0dd8c723c951f37aa6d1631cc35..357a61643b91e989384c05d8751b418301c8709c 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -1,6 +1,4 @@ /// <reference types="@sveltejs/kit" /> -/// <reference types="svelte" /> -/// <reference types="vite/client" /> // See: https://github.com/isaacHagoel/svelte-dnd-action#typescript // Needed until following bug is solved: diff --git a/src/lib/components/tutorial/StartTutorial.svelte b/src/lib/components/tutorial/StartTutorial.svelte index a49ca302bd3e4757078193e6f58d5824811987d4..871ce2d0b7542a56a5a3b56ffc2f3009edd23695 100644 --- a/src/lib/components/tutorial/StartTutorial.svelte +++ b/src/lib/components/tutorial/StartTutorial.svelte @@ -1,6 +1,3 @@ -<script lang="ts"> -</script> - <div class="bg-white border-le-bleu-light border-4 shadow-lg rounded-md my-12 mx-2 xl:mx-10" > diff --git a/src/lib/decompositions.ts b/src/lib/decompositions.ts index f41442764c283d593e3d8e084ec40777f22182c7..fdd9e6a8964ac73bdf6e8e546389e1c3a67f1fe6 100644 --- a/src/lib/decompositions.ts +++ b/src/lib/decompositions.ts @@ -68,9 +68,15 @@ export function decompositionByNameFromCore( decomposition.childrenName = decompositionCore.children let ancestor: Decomposition | undefined = undefined let depth = 0 - for (const ancestorName of iterDecompositionAncestorsName(decompositionByName, name)) { + for (const ancestorName of iterDecompositionAncestorsName( + decompositionByName, + name, + )) { if (depth === 0) { - const ancestorIndex = ancestor === undefined ? 0 : ancestor.childrenName.indexOf(ancestorName) + const ancestorIndex = + ancestor === undefined + ? 0 + : ancestor.childrenName.indexOf(ancestorName) if (ancestorIndex > 0) { depth++ } @@ -197,20 +203,22 @@ export function updateDecompositionEvaluations( return newDecompositionByName } -export function updateVectorIndex(decompositionByName: DecompositionByName, vectorIndex: number +export function updateVectorIndex( + decompositionByName: DecompositionByName, + vectorIndex: number, ): DecompositionByName { let changed = false const newDecompositionByName: DecompositionByName = {} for (const [name, decomposition] of Object.entries(decompositionByName)) { let decompositionChanged = false const newDecomposition = { ...decomposition } - const { delta, deltaAtVectorIndex, values, valuesAtVectorIndex } = decomposition + const { delta, deltaAtVectorIndex, values, valuesAtVectorIndex } = + decomposition if (vectorIndex < delta.length) { const newDeltaAtVectorIndex = delta[vectorIndex] if (newDeltaAtVectorIndex != deltaAtVectorIndex) { newDecomposition.deltaAtVectorIndex = newDeltaAtVectorIndex decompositionChanged = true - } } if (vectorIndex < values.length) { @@ -218,10 +226,11 @@ export function updateVectorIndex(decompositionByName: DecompositionByName, vect if (newValuesAtVectorIndex != valuesAtVectorIndex) { newDecomposition.valuesAtVectorIndex = newValuesAtVectorIndex decompositionChanged = true - } } - newDecompositionByName[name] = decompositionChanged ? newDecomposition : decomposition + newDecompositionByName[name] = decompositionChanged + ? newDecomposition + : decomposition if (decompositionChanged) { changed = true } diff --git a/src/lib/server/decompositions.ts b/src/lib/server/decompositions.ts index 8f1e26563c6e5e425567807636821e7630e37e02..1255d075e48b4718692f207f1c52f0cf75527368 100644 --- a/src/lib/server/decompositions.ts +++ b/src/lib/server/decompositions.ts @@ -2,11 +2,11 @@ import assert from "assert" import fs from "fs-extra" import type { DecompositionCore } from "$lib/decompositions" -import { decompositionByNameFromCore, walkDecompositionsCore } from "$lib/decompositions" -import type { - Variable, - VariableByName, -} from "@openfisca/ast" +import { + decompositionByNameFromCore, + walkDecompositionsCore, +} from "$lib/decompositions" +import type { Variable, VariableByName } from "@openfisca/ast" import config from "$lib/server/config" import { variableSummaryByName } from "$lib/server/variables" import { guessVariableLastReview } from "$lib/variables" @@ -22,7 +22,11 @@ assert.notStrictEqual( undefined, ) -for (const [variableName, decompositionCore] of walkDecompositionsCore(decompositionCoreByName, rootDecompositionName, false)) { +for (const [variableName, decompositionCore] of walkDecompositionsCore( + decompositionCoreByName, + rootDecompositionName, + false, +)) { const variable = variableSummaryByName[variableName] decompositionCore.label = variable.ux_name ?? variable.label const lastReview = guessVariableLastReview(variable) diff --git a/src/lib/situations.ts b/src/lib/situations.ts index 10536879b4b530ace8e370857a8ad30dbbabbdcb..a1b9438807a6a346c184393f4343f78c1038036f 100644 --- a/src/lib/situations.ts +++ b/src/lib/situations.ts @@ -25,9 +25,9 @@ export interface Population extends PopulationWithoutId { export interface PopulationWithoutId { name?: string [key: string]: - | { [instant: string]: boolean | number | string | null } // variable value by instant - | string // id & name - | string[] // ids of persons (when key is a role and entity is not a person) + | { [instant: string]: boolean | number | string | null } // variable value by instant + | string // id & name + | string[] // ids of persons (when key is a role and entity is not a person) } export interface Situation { @@ -43,11 +43,11 @@ export function getPopulationReservedKeys(entity: Entity): Set<string> { entity.is_person ? ["name"] : [ - "name", - ...(entity as GroupEntity).roles.map((role) => - getRolePersonsIdKey(role), - ), - ], + "name", + ...(entity as GroupEntity).roles.map((role) => + getRolePersonsIdKey(role), + ), + ], ) } @@ -60,16 +60,23 @@ export function getSituationVariableValue( ): number | string { const entity = entityByKey[variable.entity] const entitySituation = situation[entity.key_plural] - return entitySituation?.[populationId]?.[variable.name]?.[ - year - ] ?? variable.default_value + return ( + entitySituation?.[populationId]?.[variable.name]?.[year] ?? + variable.default_value + ) } -export function indexOfSituationPopulationId(entity: Entity, situation: Situation, - populationId: string): number { +export function indexOfSituationPopulationId( + entity: Entity, + situation: Situation, + populationId: string, +): number { const entitySituation = situation[entity.key_plural] - return Object.keys(entitySituation).sort(([populationId1], [populationId2]) => populationId1.localeCompare(populationId2)).indexOf(populationId) - + return Object.keys(entitySituation) + .sort(([populationId1], [populationId2]) => + populationId1.localeCompare(populationId2), + ) + .indexOf(populationId) } export function* iterSituationVariablesName( diff --git a/src/lib/variables.ts b/src/lib/variables.ts index e3be8f9b7cb9a8f01016ce0e9c5c51b2f3918099..b8734400137914bee1a7c195a6ab21ea42570a62 100644 --- a/src/lib/variables.ts +++ b/src/lib/variables.ts @@ -2,14 +2,18 @@ import type { Variable } from "@openfisca/ast" export type VariableValues = boolean[] | number[] | string[] -export function guessVariableLastReview(variable: Variable): string | undefined { +export function guessVariableLastReview( + variable: Variable, +): string | undefined { if (variable.last_review !== undefined) { return variable.last_review } if (variable.formulas === undefined) { return undefined } - const last_date = Object.keys(variable.formulas).sort((date1, date2) => date2.localeCompare(date1),)[0] + const last_date = Object.keys(variable.formulas).sort((date1, date2) => + date2.localeCompare(date1), + )[0] return last_date === "0001-01-01" ? undefined : last_date } @@ -26,7 +30,8 @@ export async function retrieveVariableSummaryByName( const res = await fetch(new URL(url, baseUrl).toString()) if (!res.ok) { console.error( - `Error ${res.status + `Error ${ + res.status } while retrieving variables at ${url}\n\n${await res.text()}`, ) return undefined diff --git a/src/routes/simulation.svelte b/src/routes/simulation.svelte index 5db0409bfab0cd138f50731b921fd4be0bf9f3f9..c1f075e9a5cc969c13b130b62e997bb713389d11 100644 --- a/src/routes/simulation.svelte +++ b/src/routes/simulation.svelte @@ -15,6 +15,7 @@ import TestCaseEdit from "$lib/components/test_cases/TestCaseEdit.svelte" import TestCasesPane from "$lib/components/test_cases/TestCasesPane.svelte" import VariableReferredInputsPane from "$lib/components/variables/VariableReferredInputsPane.svelte" + import StartTutorial from "$lib/components/tutorial/StartTutorial.svelte" import VariableReferredParametersPane from "$lib/components/variables/VariableReferredParametersPane.svelte" import type { DecompositionByName } from "$lib/decompositions" import { @@ -30,7 +31,6 @@ } from "$lib/situations" import { getPopulationReservedKeys } from "$lib/situations" import type { SelfTargetAProps } from "$lib/urls" - import StartTutorial from "$lib/components/tutorial/StartTutorial.svelte" type EditionMode = | { diff --git a/static/favicon.ico b/static/favicon.ico deleted file mode 100644 index d75d248ef0b15096a95054643a4d97f5d9b60846..0000000000000000000000000000000000000000 Binary files a/static/favicon.ico and /dev/null differ diff --git a/static/favicon.png b/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..825b9e65af7c104cfb07089bb28659393b4f2097 Binary files /dev/null and b/static/favicon.png differ diff --git a/svelte.config.js b/svelte.config.js index 85eeb2bba537b5b63d0bccbc2065911075e5ed8c..5593b2f7bf883956d7368893dd46340319748322 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,5 +1,5 @@ import node from "@sveltejs/adapter-node" -import sveltePreprocess from "svelte-preprocess" +import preprocess from "svelte-preprocess" /** @type {import('@sveltejs/kit').Config} */ const config = { @@ -16,10 +16,7 @@ const config = { // Consult https://github.com/sveltejs/svelte-preprocess // for more information about preprocessors preprocess: [ - sveltePreprocess({ - defaults: { - style: "postcss", - }, + preprocess({ postcss: true, }), ], diff --git a/tsconfig.json b/tsconfig.json index 1d2637b85a90aeb19c9d230ae202bec8d2ff7218..1d26442f0843996403dd1b174f078017a0dfad41 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,10 @@ "compilerOptions": { "moduleResolution": "node", "module": "es2020", - "lib": ["es2020"], + "lib": [ + "es2020", + "DOM" + ], "target": "es2019", /** svelte-preprocess cannot figure out whether you have a value or a type, so tell TypeScript @@ -23,8 +26,18 @@ "allowJs": true, "checkJs": true, "paths": { - "$lib/*": ["src/lib/*"] + "$lib": [ + "src/lib" + ], + "$lib/*": [ + "src/lib/*" + ] } }, - "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.ts", "src/**/*.svelte"] -} + "include": [ + "src/**/*.d.ts", + "src/**/*.js", + "src/**/*.ts", + "src/**/*.svelte" + ] +} \ No newline at end of file