diff --git a/WNPRC_EHR/package-lock.json b/WNPRC_EHR/package-lock.json index 68793cd72..c0f5bdb50 100644 --- a/WNPRC_EHR/package-lock.json +++ b/WNPRC_EHR/package-lock.json @@ -10,6 +10,7 @@ "license": "ISC", "dependencies": { "@labkey/api": "1.35.6", + "@labkey/components": "5.20.4", "dayjs": "^1.11.8", "jquery": "^3.6.4", "react": "18.3.1", @@ -29,7 +30,6 @@ "devDependencies": { "@babel/core": "7.23.2", "@labkey/build": "8.2.0", - "@labkey/components": "5.20.4", "@types/react": "18.3.1", "@types/react-bootstrap": "~0.32.32", "@types/react-data-grid": "4.0.10", @@ -45,8 +45,7 @@ "node_modules/@adobe/css-tools": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.1.tgz", - "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==", - "dev": true + "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==" }, "node_modules/@ampproject/remapping": { "version": "2.3.0", @@ -1852,7 +1851,6 @@ "version": "10.3.1", "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.3.1.tgz", "integrity": "sha512-447aUEjPIm0MnE6QYIaFz9VQOHSXf4Iu6EWOIqq11EAPqinkSZmfymPTmlOE3QjLv846lH4JVZBUOtwGbuQoww==", - "dev": true, "dependencies": { "@babel/runtime": "^7.5.5", "@emotion/cache": "^10.0.27", @@ -1869,7 +1867,6 @@ "version": "10.0.29", "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz", "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==", - "dev": true, "dependencies": { "@emotion/sheet": "0.9.4", "@emotion/stylis": "0.8.5", @@ -1880,20 +1877,17 @@ "node_modules/@emotion/core/node_modules/@emotion/hash": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", - "dev": true + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" }, "node_modules/@emotion/core/node_modules/@emotion/memoize": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "dev": true + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" }, "node_modules/@emotion/core/node_modules/@emotion/serialize": { "version": "0.11.16", "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", - "dev": true, "dependencies": { "@emotion/hash": "0.8.0", "@emotion/memoize": "0.7.4", @@ -1905,38 +1899,32 @@ "node_modules/@emotion/core/node_modules/@emotion/sheet": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", - "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==", - "dev": true + "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==" }, "node_modules/@emotion/core/node_modules/@emotion/unitless": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", - "dev": true + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" }, "node_modules/@emotion/core/node_modules/@emotion/utils": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", - "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==", - "dev": true + "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" }, "node_modules/@emotion/core/node_modules/@emotion/weak-memoize": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", - "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==", - "dev": true + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" }, "node_modules/@emotion/core/node_modules/csstype": { "version": "2.6.21", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", - "dev": true + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, "node_modules/@emotion/css": { "version": "10.0.27", "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz", "integrity": "sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==", - "dev": true, "dependencies": { "@emotion/serialize": "^0.11.15", "@emotion/utils": "0.11.3", @@ -1946,20 +1934,17 @@ "node_modules/@emotion/css/node_modules/@emotion/hash": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", - "dev": true + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" }, "node_modules/@emotion/css/node_modules/@emotion/memoize": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "dev": true + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" }, "node_modules/@emotion/css/node_modules/@emotion/serialize": { "version": "0.11.16", "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", - "dev": true, "dependencies": { "@emotion/hash": "0.8.0", "@emotion/memoize": "0.7.4", @@ -1971,20 +1956,17 @@ "node_modules/@emotion/css/node_modules/@emotion/unitless": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", - "dev": true + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" }, "node_modules/@emotion/css/node_modules/@emotion/utils": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", - "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==", - "dev": true + "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" }, "node_modules/@emotion/css/node_modules/csstype": { "version": "2.6.21", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", - "dev": true + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, "node_modules/@emotion/hash": { "version": "0.9.2", @@ -1995,7 +1977,6 @@ "version": "0.8.8", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", - "dev": true, "dependencies": { "@emotion/memoize": "0.7.4" } @@ -2003,8 +1984,7 @@ "node_modules/@emotion/is-prop-valid/node_modules/@emotion/memoize": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "dev": true + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" }, "node_modules/@emotion/memoize": { "version": "0.9.0", @@ -2068,7 +2048,6 @@ "version": "10.3.0", "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.3.0.tgz", "integrity": "sha512-GgcUpXBBEU5ido+/p/mCT2/Xx+Oqmp9JzQRuC+a4lYM4i4LBBn/dWvc0rQ19N9ObA8/T4NWMrPNe79kMBDJqoQ==", - "dev": true, "dependencies": { "@emotion/styled-base": "^10.3.0", "babel-plugin-emotion": "^10.0.27" @@ -2082,7 +2061,6 @@ "version": "10.3.0", "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.3.0.tgz", "integrity": "sha512-PBRqsVKR7QRNkmfH78hTSSwHWcwDpecH9W6heujWAcyp2wdz/64PP73s7fWS1dIPm8/Exc8JAzYS8dEWXjv60w==", - "dev": true, "dependencies": { "@babel/runtime": "^7.5.5", "@emotion/is-prop-valid": "0.8.8", @@ -2097,20 +2075,17 @@ "node_modules/@emotion/styled-base/node_modules/@emotion/hash": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", - "dev": true + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" }, "node_modules/@emotion/styled-base/node_modules/@emotion/memoize": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "dev": true + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" }, "node_modules/@emotion/styled-base/node_modules/@emotion/serialize": { "version": "0.11.16", "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", - "dev": true, "dependencies": { "@emotion/hash": "0.8.0", "@emotion/memoize": "0.7.4", @@ -2122,26 +2097,22 @@ "node_modules/@emotion/styled-base/node_modules/@emotion/unitless": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", - "dev": true + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" }, "node_modules/@emotion/styled-base/node_modules/@emotion/utils": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", - "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==", - "dev": true + "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" }, "node_modules/@emotion/styled-base/node_modules/csstype": { "version": "2.6.21", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", - "dev": true + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, "node_modules/@emotion/stylis": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==", - "dev": true + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" }, "node_modules/@emotion/unitless": { "version": "0.10.0", @@ -2187,7 +2158,6 @@ "version": "0.26.28", "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz", "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==", - "dev": true, "dependencies": { "@floating-ui/react-dom": "^2.1.2", "@floating-ui/utils": "^0.2.8", @@ -2202,7 +2172,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", - "dev": true, "dependencies": { "@floating-ui/dom": "^1.0.0" }, @@ -2220,7 +2189,6 @@ "version": "16.6.0", "resolved": "https://registry.npmjs.org/@hello-pangea/dnd/-/dnd-16.6.0.tgz", "integrity": "sha512-vfZ4GydqbtUPXSLfAvKvXQ6xwRzIjUSjVU0Sx+70VOhc2xx6CdmJXJ8YhH70RpbTUGjxctslQTHul9sIOxCfFQ==", - "dev": true, "dependencies": { "@babel/runtime": "^7.24.1", "css-box-model": "^1.2.1", @@ -2239,7 +2207,6 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/@icons/material/-/material-0.2.4.tgz", "integrity": "sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==", - "dev": true, "peerDependencies": { "react": "*" } @@ -2934,7 +2901,6 @@ "version": "5.20.4", "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-5.20.4.tgz", "integrity": "sha512-OpCA8QmiwxAgiyJnq+lcW9cYwsd2XfWgoN2wTRolqV1IJiCLxcirDb55AeMW8SrK/c+8QY1Ycu+/nDqxJ3B4kQ==", - "dev": true, "dependencies": { "@hello-pangea/dnd": "16.6.0", "@labkey/api": "1.35.6", @@ -2966,7 +2932,6 @@ "version": "7.3.0", "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-7.3.0.tgz", "integrity": "sha512-EqRKLAtLZUTztiq6a+tjSjQX9ES0Xd229JPckAtyZZ4GoY3rtvNWAzkYZnQUf6zTWT50Ki0+t+W9VRQIkSJLfg==", - "dev": true, "dependencies": { "@floating-ui/react": "^0.26.2", "clsx": "^2.1.0", @@ -3097,7 +3062,6 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.17.1.tgz", "integrity": "sha512-mCOMec4BKd6BRGBZeSnGiIgwsbLGp3yhVqAD8H+PxiRNEHgDpZb8J1TnrSDlg97t0ySKMQJTHCWBCmBpSmkF6Q==", - "dev": true, "engines": { "node": ">=14.0.0" } @@ -3137,7 +3101,6 @@ "version": "10.4.0", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -3156,7 +3119,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.5.0.tgz", "integrity": "sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==", - "dev": true, "dependencies": { "@adobe/css-tools": "^4.4.0", "aria-query": "^5.0.0", @@ -3176,7 +3138,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3188,14 +3149,12 @@ "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", - "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", - "dev": true + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==" }, "node_modules/@testing-library/react": { "version": "16.0.1", "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.0.1.tgz", "integrity": "sha512-dSmwJVtJXmku+iocRhWOUFbrERC76TX2Mnf0ATODz8brzAZrMBbzLwQixlBSanZxR6LddK3eiwpSFZgDET1URg==", - "dev": true, "dependencies": { "@babel/runtime": "^7.12.5" }, @@ -3222,7 +3181,6 @@ "version": "14.5.2", "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz", "integrity": "sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==", - "dev": true, "engines": { "node": ">=12", "npm": ">=6" @@ -3234,8 +3192,7 @@ "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", - "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", - "dev": true + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" }, "node_modules/@types/body-parser": { "version": "1.19.5", @@ -3347,7 +3304,6 @@ "version": "3.3.5", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", - "dev": true, "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" @@ -3357,7 +3313,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dev": true, "dependencies": { "react-is": "^16.7.0" } @@ -3365,8 +3320,7 @@ "node_modules/@types/hoist-non-react-statics/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==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/@types/html-minifier-terser": { "version": "6.1.0", @@ -3539,8 +3493,7 @@ "node_modules/@types/use-sync-external-store": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", - "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==", - "dev": true + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" }, "node_modules/@types/warning": { "version": "3.0.3", @@ -3909,7 +3862,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -3951,7 +3903,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, "dependencies": { "dequal": "^2.0.3" } @@ -3988,7 +3939,6 @@ "version": "10.2.2", "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz", "integrity": "sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==", - "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.0.0", "@emotion/hash": "0.8.0", @@ -4005,20 +3955,17 @@ "node_modules/babel-plugin-emotion/node_modules/@emotion/hash": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", - "dev": true + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" }, "node_modules/babel-plugin-emotion/node_modules/@emotion/memoize": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "dev": true + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" }, "node_modules/babel-plugin-emotion/node_modules/@emotion/serialize": { "version": "0.11.16", "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", - "dev": true, "dependencies": { "@emotion/hash": "0.8.0", "@emotion/memoize": "0.7.4", @@ -4030,20 +3977,17 @@ "node_modules/babel-plugin-emotion/node_modules/@emotion/unitless": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", - "dev": true + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" }, "node_modules/babel-plugin-emotion/node_modules/@emotion/utils": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", - "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==", - "dev": true + "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" }, "node_modules/babel-plugin-emotion/node_modules/babel-plugin-macros": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "dev": true, "dependencies": { "@babel/runtime": "^7.7.2", "cosmiconfig": "^6.0.0", @@ -4053,14 +3997,12 @@ "node_modules/babel-plugin-emotion/node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/babel-plugin-emotion/node_modules/cosmiconfig": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.1.0", @@ -4075,14 +4017,12 @@ "node_modules/babel-plugin-emotion/node_modules/csstype": { "version": "2.6.21", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", - "dev": true + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, "node_modules/babel-plugin-emotion/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, "engines": { "node": ">=0.8.0" } @@ -4091,7 +4031,6 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -4167,8 +4106,7 @@ "node_modules/babel-plugin-syntax-jsx": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==", - "dev": true + "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" }, "node_modules/balanced-match": { "version": "1.0.2", @@ -4277,7 +4215,6 @@ "version": "3.4.1", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz", "integrity": "sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==", - "dev": true, "engines": { "node": ">=6" } @@ -4375,7 +4312,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -4805,7 +4741,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", - "dev": true, "dependencies": { "tiny-invariant": "^1.0.6" } @@ -4888,8 +4823,7 @@ "node_modules/css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", - "dev": true + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" }, "node_modules/cssesc": { "version": "3.0.0", @@ -4912,7 +4846,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", - "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/kossnocorp" @@ -4922,7 +4855,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-3.1.3.tgz", "integrity": "sha512-ZfbMu+nbzW0mEzC8VZrLiSWvUIaI3aRHeq33mTe7Y38UctKukgqPR4nTDwcwS4d64Gf8GghnVsroBuMY3eiTeA==", - "dev": true, "peerDependencies": { "date-fns": "^3.0.0" } @@ -4958,7 +4890,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", - "dev": true, "dependencies": { "is-arguments": "^1.1.1", "is-date-object": "^1.0.5", @@ -5027,7 +4958,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -5053,7 +4983,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -5141,8 +5070,7 @@ "node_modules/dom-accessibility-api": { "version": "0.5.16", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", - "dev": true + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" }, "node_modules/dom-converter": { "version": "0.2.0", @@ -5335,7 +5263,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.4" }, @@ -5347,7 +5274,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, "engines": { "node": ">= 0.4" } @@ -5735,7 +5661,6 @@ "version": "4.7.0", "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", "integrity": "sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==", - "dev": true, "engines": { "node": ">=0.10.3" } @@ -5915,7 +5840,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5933,7 +5857,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", @@ -6069,7 +5992,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -6115,7 +6037,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, "dependencies": { "es-define-property": "^1.0.0" }, @@ -6127,7 +6048,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -6139,7 +6059,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -6151,7 +6070,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, "dependencies": { "has-symbols": "^1.0.3" }, @@ -6453,7 +6371,6 @@ "version": "10.1.1", "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", - "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" @@ -6463,7 +6380,6 @@ "version": "3.8.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -6579,7 +6495,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, "engines": { "node": ">=8" } @@ -6631,7 +6546,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -6678,7 +6592,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -6815,7 +6728,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -7094,7 +7006,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "dev": true, "bin": { "lz-string": "bin/bin.js" } @@ -7102,8 +7013,7 @@ "node_modules/material-colors": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", - "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==", - "dev": true + "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==" }, "node_modules/media-typer": { "version": "0.3.0", @@ -7222,7 +7132,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, "engines": { "node": ">=4" } @@ -7377,8 +7286,7 @@ "node_modules/normalizr": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/normalizr/-/normalizr-3.6.2.tgz", - "integrity": "sha512-30qCybsBaCBciotorvuOZTCGEg2AXrJfADMT2Kk/lvpIAcipHdK0zc33nNtwKzyfQAqIJXAcqET6YgflYUgsoQ==", - "dev": true + "integrity": "sha512-30qCybsBaCBciotorvuOZTCGEg2AXrJfADMT2Kk/lvpIAcipHdK0zc33nNtwKzyfQAqIJXAcqET6YgflYUgsoQ==" }, "node_modules/npm-run-path": { "version": "4.0.1", @@ -7408,7 +7316,6 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==", - "dev": true, "engines": { "node": "*" } @@ -7437,7 +7344,6 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1" @@ -7453,7 +7359,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, "engines": { "node": ">= 0.4" } @@ -7872,7 +7777,6 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -7886,7 +7790,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, "engines": { "node": ">=10" }, @@ -8001,8 +7904,7 @@ "node_modules/raf-schd": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", - "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==", - "dev": true + "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" }, "node_modules/randombytes": { "version": "2.1.0", @@ -8103,7 +8005,6 @@ "version": "2.19.3", "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.19.3.tgz", "integrity": "sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA==", - "dev": true, "dependencies": { "@icons/material": "^0.2.4", "lodash": "^4.17.15", @@ -8269,8 +8170,7 @@ "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "node_modules/react-lifecycles-compat": { "version": "3.0.4", @@ -8327,7 +8227,6 @@ "version": "8.1.3", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz", "integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==", - "dev": true, "dependencies": { "@babel/runtime": "^7.12.1", "@types/hoist-non-react-statics": "^3.3.1", @@ -8366,7 +8265,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dev": true, "dependencies": { "react-is": "^16.7.0" } @@ -8374,14 +8272,12 @@ "node_modules/react-redux/node_modules/hoist-non-react-statics/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==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/react-redux/node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" }, "node_modules/react-refresh": { "version": "0.14.2", @@ -8396,7 +8292,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.24.1.tgz", "integrity": "sha512-PTXFXGK2pyXpHzVo3rR9H7ip4lSPZZc0bHG5CARmj65fTT6qG7sTngmb6lcYu1gf3y/8KxORoy9yn59pGpCnpg==", - "dev": true, "dependencies": { "@remix-run/router": "1.17.1" }, @@ -8411,7 +8306,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.24.1.tgz", "integrity": "sha512-U19KtXqooqw967Vw0Qcn5cOvrX5Ejo9ORmOtJMzYWtCT4/WOfFLIZGGsVLxcd9UkBO0mSTZtXqhZBsWlHr7+Sg==", - "dev": true, "dependencies": { "@remix-run/router": "1.17.1", "react-router": "6.24.1" @@ -8483,7 +8377,6 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/react-treebeard/-/react-treebeard-3.2.4.tgz", "integrity": "sha512-TsvdUq2kbLavRXa8k4mmqfPse8HmSA9G9s1SZUtIpiYSccSwa0Tm6miMgx7DZ5gpKofQ+j/3Ua0rjsahM3/FQg==", - "dev": true, "dependencies": { "@emotion/core": "^10.0.10", "@emotion/styled": "^10.0.10", @@ -8503,7 +8396,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz", "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==", - "dev": true, "dependencies": { "lodash": "^4.0.1" } @@ -8550,7 +8442,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -8563,7 +8454,6 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dev": true, "dependencies": { "@babel/runtime": "^7.9.2" } @@ -8610,7 +8500,6 @@ "version": "1.5.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -9164,7 +9053,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -9181,7 +9069,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -9213,8 +9100,7 @@ "node_modules/shallowequal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "dev": true + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" }, "node_modules/shebang-command": { "version": "2.0.0", @@ -9506,7 +9392,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, "dependencies": { "min-indent": "^1.0.0" }, @@ -9568,8 +9453,7 @@ "node_modules/tabbable": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", - "dev": true + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, "node_modules/tapable": { "version": "2.2.1", @@ -9701,14 +9585,12 @@ "node_modules/tiny-invariant": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", - "dev": true + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" }, "node_modules/tinycolor2": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", - "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", - "dev": true + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" }, "node_modules/to-regex-range": { "version": "5.0.1", @@ -9967,7 +9849,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", - "dev": true, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } @@ -9976,7 +9857,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", - "dev": true, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } @@ -10023,14 +9903,12 @@ "node_modules/velocity-animate": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/velocity-animate/-/velocity-animate-1.5.2.tgz", - "integrity": "sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg==", - "dev": true + "integrity": "sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg==" }, "node_modules/velocity-react": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/velocity-react/-/velocity-react-1.4.3.tgz", "integrity": "sha512-zvefGm85A88S3KdF9/dz5vqyFLAiwKYlXGYkHH2EbXl+CZUD1OT0a0aS1tkX/WXWTa/FUYqjBaAzAEFYuSobBQ==", - "dev": true, "dependencies": { "lodash": "^4.17.5", "prop-types": "^15.5.8", @@ -10046,7 +9924,6 @@ "version": "3.4.0", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", - "dev": true, "dependencies": { "@babel/runtime": "^7.1.2" } @@ -10055,7 +9932,6 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", - "dev": true, "dependencies": { "dom-helpers": "^3.4.0", "loose-envify": "^1.4.0", @@ -10071,7 +9947,6 @@ "version": "7.1.9", "resolved": "https://registry.npmjs.org/vis-data/-/vis-data-7.1.9.tgz", "integrity": "sha512-COQsxlVrmcRIbZMMTYwD+C2bxYCFDNQ2EHESklPiInbD/Pk3JZ6qNL84Bp9wWjYjAzXfSlsNaFtRk+hO9yBPWA==", - "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/visjs" @@ -10085,7 +9960,6 @@ "version": "9.1.9", "resolved": "https://registry.npmjs.org/vis-network/-/vis-network-9.1.9.tgz", "integrity": "sha512-Ft+hLBVyiLstVYSb69Q1OIQeh3FeUxHJn0WdFcq+BFPqs+Vq1ibMi2sb//cxgq1CP7PH4yOXnHxEH/B2VzpZYA==", - "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/visjs" diff --git a/WNPRC_EHR/resources/queries/study/WaterScheduleWithWeight.sql b/WNPRC_EHR/resources/queries/study/WaterScheduleWithWeight.sql index 44e7abf98..3107a1a86 100644 --- a/WNPRC_EHR/resources/queries/study/WaterScheduleWithWeight.sql +++ b/WNPRC_EHR/resources/queries/study/WaterScheduleWithWeight.sql @@ -20,6 +20,7 @@ SELECT frequencyMeaning AS frequencyMeaningCoalesced, timeofday AS timeofday, displaytimeofday AS displaytimeofday, + actionRequired AS actionRequired, qcstate AS qcstate, --(SELECT max(wg.qcstate) as label FROM study.waterGiven wg WHERE WCO.objectid = wg.treatmentid AND WCO.dateOrdered = wg.dateordered ) AS waterStatus, diff --git a/WNPRC_EHR/resources/queries/study/WaterScheduleWithWeight/.qview.xml b/WNPRC_EHR/resources/queries/study/WaterScheduleWithWeight/.qview.xml index 94d6b88d0..22cd5484f 100644 --- a/WNPRC_EHR/resources/queries/study/WaterScheduleWithWeight/.qview.xml +++ b/WNPRC_EHR/resources/queries/study/WaterScheduleWithWeight/.qview.xml @@ -20,6 +20,7 @@ + diff --git a/WNPRC_EHR/resources/queries/study/deaths.js b/WNPRC_EHR/resources/queries/study/deaths.js index a8ca9fa94..d5b85a5aa 100644 --- a/WNPRC_EHR/resources/queries/study/deaths.js +++ b/WNPRC_EHR/resources/queries/study/deaths.js @@ -16,8 +16,35 @@ function onComplete(event, errors, helper) { var ids = helper.getRows().map(function (row) { return row.row.id; }); + var animalDateMap= []; + let clientRows = helper.getRows(); + + console.log("number of rows "+ clientRows.length); + if (clientRows){ + + for (var i= 0; i < clientRows.length; i++){ + console.log("animalId "+clientRows[i].row.id); + + animalDateMap.push({ + animalId: clientRows[i].row.id, + endDate : clientRows[i].row.date + }); + + } + + } + /*console.log("array line 37 " + Object.values(animalDateMap).length); + + for (var i = 0; i < animalDateMap.length; i++){ + console.log("array value " + animalDateMap[i]); + }*/ + + WNPRC.Utils.getJavaHelper().removeWaterAmounts(animalDateMap); //Sends notification. var hostName = 'https://' + LABKEY.serverName; WNPRC.Utils.getJavaHelper().sendDeathNotification(ids, hostName); + + + } \ No newline at end of file diff --git a/WNPRC_EHR/resources/queries/study/waterGiven.js b/WNPRC_EHR/resources/queries/study/waterGiven.js index e72858ff3..d623ac973 100644 --- a/WNPRC_EHR/resources/queries/study/waterGiven.js +++ b/WNPRC_EHR/resources/queries/study/waterGiven.js @@ -85,36 +85,19 @@ function onInit(event, helper){ } function onUpsert(helper, scriptErrors, row, oldRow) { - /*if (row.volume == null){ - EHR.Server.Utils.addError(scriptErrors, 'volume', 'This field is required', 'WARN'); - console.log ("value of QCState "+ row.QCState) - }*/ - if (row.QCStateLabel == 'Scheduled'){ EHR.Server.Validation.verifyDate(row, scriptErrors, helper); } if (row.Id && row.date) { - // volume is handled differently for requestsvs actual draws var errorQC = 'ERROR'; - //if (EHR.Server.Security.getQCStateByLabel(row.QCStateLabel)['isRequest'] && !row.taskid) - // errorQC = 'ERROR'; - //else - // errorQC = 'INFO'; var map = helper.getProperty('waterInTransaction'); var waters = []; if (map && map[row.Id]) { waters = map[row.Id]; - /*for (var i=0;ihusbandry_fruit value - - - Water Source @@ -59,6 +56,9 @@ value title + + + Water Location diff --git a/WNPRC_EHR/resources/queries/study/waterOrders.js b/WNPRC_EHR/resources/queries/study/waterOrders.js index 53760c8fd..9d037b697 100644 --- a/WNPRC_EHR/resources/queries/study/waterOrders.js +++ b/WNPRC_EHR/resources/queries/study/waterOrders.js @@ -7,7 +7,8 @@ let allowUsersMap = {}; function onInit(event, helper){ helper.setScriptOptions({ allowFutureDates: true, - allowDatesInDistantPast: true + allowDatesInDistantPast: true, + skipWaterRegulationCheck: false }); LABKEY.Query.selectRows({ requiredVersion: 9.1, @@ -35,9 +36,40 @@ function onInit(event, helper){ }); } +function onInsert(helper, scriptErrors, row){ + if (row.frequency !== 4 && row.waterSource === 'lixit'){ + EHR.Server.Utils.addError(scriptErrors,"frequency", "Frequency should be 'Daily - Any Time' when selecting Lixit/Ad Lib", "ERROR"); + } -function onUpsert(helper, scriptErrors, row, oldRow){ + if (row.id && row.waterSource === 'regulated' && row.frequency && row.assignedTo && row.provideFruit && row.date){ + let lixitOrderMap = WNPRC.Utils.getJavaHelper().checkWaterLixit(row.id, row.date); + let lixitStartDate; + let lixitOrderObjectid; + let latestWaterSource; + + if (lixitOrderMap != null){ + lixitStartDate = new Date(lixitOrderMap.date); + lixitOrderObjectid = lixitOrderMap.objectid; + latestWaterSource = lixitOrderMap.waterSource; + + if(latestWaterSource === "lixit" ) { + let lixitEndDate = new Date(row.date); + console.log(lixitEndDate) + lixitEndDate.setDate(lixitEndDate.getDate()-1); + console.log("startdate " + lixitStartDate + " objectid " + lixitOrderObjectid + "enddate " + lixitEndDate + " watersource " +row.waterSource); + let jsonArray = WNPRC.Utils.getJavaHelper().closeWaterOrder(row.id, lixitStartDate, lixitEndDate, row.project, lixitOrderObjectid, true); + if (jsonArray != null) { + for (var i = 0; i < jsonArray.length; i++) { + var errorObject = jsonArray[i]; + EHR.Server.Utils.addError(scriptErrors, errorObject.field, errorObject.message, errorObject.severity); + } + } + } + } + } +} +function onUpsert(helper, scriptErrors, row, oldRow){ if (row.Id){ EHR.Server.Utils.findDemographics({ participant: row.Id, @@ -54,13 +86,9 @@ function onUpsert(helper, scriptErrors, row, oldRow){ }); var animalRestricted = {}; animalRestricted = WNPRC.Utils.getJavaHelper().checkIfAnimalInCondition(row.Id, row.date); - //console.log (animalRestricted); if (!animalRestricted && !row.skipWaterRegulationCheck){ EHR.Server.Utils.addError(scriptErrors,'Id', 'Animal not assigned to water restriction protocol or is already in ' + row.waterSource + ' condition.', 'ERROR'); } - - - } @@ -84,27 +112,31 @@ function onUpsert(helper, scriptErrors, row, oldRow){ if (rowDate.getTime() > endDate.getTime()){ EHR.Server.Utils.addError(scriptErrors,'endDate', 'EndDate cannot be before StartDate', 'ERROR'); } - - if (!row.frequency && row.waterSource == 'regulated'){ + if (!row.frequency && row.waterSource === 'regulated'){ EHR.Server.Utils.addError(scriptErrors, 'frequency', 'Frequency is required when entering regulated water orders.', 'ERROR'); } - if (!row.volume && row.waterSource == 'regulated'){ + if (!row.volume && row.waterSource === 'regulated'){ //console.log ("water vol "+ row.volume); EHR.Server.Utils.addError(scriptErrors, 'volume', 'Volume is required when entering regulated water orders.', 'ERROR'); } - - if (!row.assignedTo && row.waterSource == 'regulated'){ + if (!row.assignedTo && row.waterSource === 'regulated'){ EHR.Server.Utils.addError(scriptErrors, 'assignedTo', 'Assigned To is required when entering regulated water orders.', 'ERROR'); } - + if (!row.provideFruit && row.waterSource === 'regulated'){ + EHR.Server.Utils.addError(scriptErrors, 'provideFruit', 'Provide Fruit is required when entering regulated water orders.', 'INFO'); + } if (!row.waterSource){ EHR.Server.Utils.addError(scriptErrors, 'waterSource', 'Water Source is required when entering new orders.', 'ERROR'); } + if (row.volume !== undefined && row.volume!== null && row.waterSource === 'lixit'){ + EHR.Server.Utils.addError(scriptErrors,"volume", "Volume should be blank when selecting Lixit/Ad Lib for Water Source", "ERROR"); + } + if (row.frequency !== 4 && row.waterSource === 'lixit'){ + EHR.Server.Utils.addError(scriptErrors,"frequency", "Frequency should be 'Daily - Any Time' when selecting Lixit/Ad Lib", "ERROR"); + } + - //console.log ("value of ObjectId "+oldRow.objectid + " Value of new objectId "+ row.objectid); - //console.log ('skipWaterRegulation '+ row.skipWaterRegulationCheck); - // if (oldRow && row.date && row.Id && row.frequency && (oldRow.objectid != row.objectid)) { - if (row.project && row.objectid && row.Id && row.date && row.frequency && row.assignedTo && row.waterSource != 'lixit' && !row.skipWaterRegulationCheck) { + if (row.project && row.objectid && row.Id && row.date && row.frequency && row.assignedTo && row.waterSource !== 'lixit' && !row.skipWaterRegulationCheck && !row.closingRecord ) { let jsonArray = WNPRC.Utils.getJavaHelper().checkWaterRegulation(row.id, row.date, row.enddate ? row.enddate : null, row.frequency, row.waterSource, row.objectid, row.project, this.extraContext); if (jsonArray != null) { for (var i = 0; i < jsonArray.length; i++) { @@ -115,35 +147,19 @@ function onUpsert(helper, scriptErrors, row, oldRow){ row.date = rowDate; } - //if (oldRow && oldRow.waterSource == 'regulated' && row.waterSource == 'lixit'){ - //TODO: by pass water regulation to change water order to lixit and also chnage the water regulated animals data - if ( row.waterSource == 'lixit' && !row.skipWaterRegulationCheck && !oldRow){ - - let jsonArray = WNPRC.Utils.getJavaHelper().changeWaterScheduled(row.id,row.date,row.waterSource, row.project, row.objectid,this.extraContext); - let jsonExtraContext = this.extraContext.extraContextArray; - - if (jsonArray != null){ - for (var i=0; i < jsonArray.length; i++){ - let errorObject = JSON.parse(jsonArray[i]); - EHR.Server.Utils.addError(scriptErrors,errorObject.field, errorObject.message, errorObject.severity); - - } - if (jsonExtraContext != null){ - for (var i = 0; i < jsonExtraContext.length; i++){ - let extraContextObject = jsonExtraContext[i]; - let date = extraContextObject.date; - let dateOnly = new Date(date.getTime()); - dateOnly = dateOnly.getFullYear()+ "-" +dateOnly.getMonth()+ "-" + dateOnly.getDate(); - let infoMessage = "Water Order for "+ row.Id + " started on " + dateOnly + " with frequency of " + extraContextObject.frequency + " and volume of " + extraContextObject.volume + "ml will close."; - EHR.Server.Utils.addError(scriptErrors,"waterSource",infoMessage,"INFO") - - } - + if (row.Id && row.date && row.enddate && row.project && row.objectid && row.closingRecord){ + let jsonArray = WNPRC.Utils.getJavaHelper().closeWaterOrder(row.id, row.date, row.enddate, row.project, row.objectid, row.closingRecord); + if (jsonArray != null) { + for (var i = 0; i < jsonArray.length; i++) { + var errorObject = jsonArray[i]; + EHR.Server.Utils.addError(scriptErrors, errorObject.field, errorObject.message, errorObject.severity); } - } } + if ( row.waterSource === 'lixit' && row.volume === undefined && row.project && row.assignedTo && !row.skipWaterRegulationCheck){ + changeWaterScheduled(row, scriptErrors); + } } function onUpdate(helper, scriptErrors, row, oldRow){ @@ -211,17 +227,40 @@ function onUpdate(helper, scriptErrors, row, oldRow){ } } } + } - - if (row.id !== oldRow.id || row.date !== oldRow.date || row.volume !== oldRow.volume) - { - //EHR.Server.Utils.addError(scriptErrors,'date'); - - } - + if ( row.waterSource === 'lixit' && row.project && row.volume === undefined && row.assignedTo && !row.skipWaterRegulationCheck){ + changeWaterScheduled(row, scriptErrors); } } function addErrorMessage(key,scriptErrors){ EHR.Server.Utils.addError(scriptErrors, key, 'User does not have permission to modify this field.', 'ERROR'); } + +function changeWaterScheduled(row, scriptErrors){ + + let jsonArray = WNPRC.Utils.getJavaHelper().changeWaterScheduled(row.id,row.date,row.waterSource, row.project, row.objectid,this.extraContext); + let jsonExtraContext = this.extraContext.extraContextArray; + + if (jsonArray != null){ + for (var i=0; i < jsonArray.length; i++){ + let errorObject = jsonArray[i]; + EHR.Server.Utils.addError(scriptErrors,errorObject.field, errorObject.message, errorObject.severity); + } + if (jsonExtraContext != null){ + for (var j = 0; j < jsonExtraContext.length; j++){ + let extraContextObject = jsonExtraContext[j]; + let date = extraContextObject.date; + let dateOnly = new Date(date.getTime()); + let monthString = dateOnly.getMonth(); + monthString++; + + dateOnly = dateOnly.getFullYear()+ "-" + monthString + "-" + dateOnly.getDate(); + let infoMessage = "Water Order for "+ row.Id + " started on " + dateOnly + " with frequency of " + extraContextObject.frequency + " and volume of " + extraContextObject.volume + "ml will close."; + EHR.Server.Utils.addError(scriptErrors,"waterSource",infoMessage,"INFO"); + } + } + } + +} diff --git a/WNPRC_EHR/resources/queries/study/waterSchedule.sql b/WNPRC_EHR/resources/queries/study/waterSchedule.sql index 9c921b9c0..fcc232cbe 100644 --- a/WNPRC_EHR/resources/queries/study/waterSchedule.sql +++ b/WNPRC_EHR/resources/queries/study/waterSchedule.sql @@ -10,9 +10,9 @@ d.calculated_status AS calculated_status, s.*, s.objectid as treatmentid, --(SELECT max(d.qcstate) as label FROM study.drug d WHERE s.objectid = d.treatmentid AND s.date = d.timeordered) as treatmentStatus, -COALESCE((SELECT max(wg.qcstate) as label FROM study.waterGiven wg WHERE wg.treatmentid LIKE '%' || s.objectid || '%' AND s.date = wg.dateordered AND wg.volume IS NOT NULL ),10) as waterStatus, +COALESCE((SELECT max(wg.qcstate) as label FROM study.waterGiven wg WHERE wg.treatmentid LIKE '%' || s.objectid || '%' AND s.date = wg.dateordered AND (wg.volume IS NOT NULL OR wg.waterSource = 'lixit') ),10) as waterStatus, --COALESCE((SELECT max(wg.qcstate) as label FROM study.waterGiven wg WHERE s.objectid IN (wg.treatmentid) AND s.date = wg.dateordered AND wg.volume IS NOT NULL ),10) as waterStatus, -COALESCE((SELECT max(wg.treatmentid) as treatmentIds FROM study.waterGiven wg WHERE s.date = wg.dateordered AND wg.volume IS NOT NULL ),'objectId') as watertreatment +COALESCE((SELECT max(wg.treatmentid) as treatmentIds FROM study.waterGiven wg WHERE s.date = wg.dateordered AND (wg.volume IS NOT NULL OR wg.waterSource = 'lixit') ),'objectId') as watertreatment FROM study.demographics d diff --git a/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/Treatments AM.qview.xml b/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/Treatments AM.qview.xml index 11fffa874..d8c25f4f9 100644 --- a/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/Treatments AM.qview.xml +++ b/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/Treatments AM.qview.xml @@ -21,6 +21,7 @@ + \ No newline at end of file diff --git a/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/Treatments PM.qview.xml b/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/Treatments PM.qview.xml index 25edae2bc..afb012fed 100644 --- a/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/Treatments PM.qview.xml +++ b/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/Treatments PM.qview.xml @@ -21,6 +21,7 @@ + \ No newline at end of file diff --git a/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/Treatments.qview.xml b/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/Treatments.qview.xml index 70db97c06..518868d7f 100644 --- a/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/Treatments.qview.xml +++ b/WNPRC_EHR/resources/queries/study/waterScheduleCoalesced/Treatments.qview.xml @@ -25,7 +25,8 @@ - - + + + \ No newline at end of file diff --git a/WNPRC_EHR/resources/views/ehrBegin.html b/WNPRC_EHR/resources/views/ehrBegin.html index a0eed66a6..568b455cf 100644 --- a/WNPRC_EHR/resources/views/ehrBegin.html +++ b/WNPRC_EHR/resources/views/ehrBegin.html @@ -78,7 +78,7 @@ items: [ {name: 'Animal Utilization By Category', url: '<%=contextPath%>' + ctx['EHRStudyContainer'] + '/query-executeQuery.view?schemaName=study&query.queryName=colonyAssignmentSummary'}, {name: 'Blood Draw Summary', url: '<%=contextPath%>' + ctx['EHRStudyContainer'] + '/query-executeQuery.view?schemaName=study&query.queryName=ScheduledBlood'}, - {name: 'Colony Population By Age', url: '<%=contextPath%>' + ctx['EHRStudyContainer'] + '/query-.view?schemaName=study&query.queryName=colonyPopulationByAge'}, + {name: 'Colony Population By Age', url: '<%=contextPath%>' + ctx['EHRStudyContainer'] + '/query-executeQuery.view?schemaName=study&query.queryName=colonyPopulationByAge'}, {name: 'MHC Genotype Summary', url: '<%=contextPath%>' + ctx['EHRStudyContainer'] + '/query-executeQuery.view?schemaName=study&query.queryName=alleleFrequencies'}, {name: 'Population Summary', url: '<%=contextPath%>' + ctx['EHRStudyContainer'] + '/ehr-populationOverview.view'}, {name: 'Colony Census', url: '<%=contextPath%>' + ctx['EHRStudyContainer'] + '/wnprc_ehr-colonyCensus.view'}, diff --git a/WNPRC_EHR/resources/views/wnprcLabs.html b/WNPRC_EHR/resources/views/wnprcLabs.html index 8a03d7857..13394906c 100644 --- a/WNPRC_EHR/resources/views/wnprcLabs.html +++ b/WNPRC_EHR/resources/views/wnprcLabs.html @@ -11,10 +11,6 @@ renderTo: 'wnprcLabs', width: 300, sections: [ - {header: 'Information to Laboratories', - items: [ - {name: 'Pricing for WNPRC Services', url: '<%=contextPath%>' + '/WNPRC/EHR/WNPRC_EHR-unitPricing.view'} - ]}, {header: 'WNPRC Lab Sites', items: [ {name: 'Tom Friedrich Lab**', url: '<%=contextPath%>' + '/WNPRC/WNPRC_Laboratories/friedrich/project-begin.view'}, diff --git a/WNPRC_EHR/resources/web/wnprc_ehr/animalWaterCalendar.js b/WNPRC_EHR/resources/web/wnprc_ehr/animalWaterCalendar.js index 3b73b342c..a062785fc 100644 --- a/WNPRC_EHR/resources/web/wnprc_ehr/animalWaterCalendar.js +++ b/WNPRC_EHR/resources/web/wnprc_ehr/animalWaterCalendar.js @@ -15,6 +15,7 @@ EHR.reports.animalWaterCalendar = function (panel, tab){ } else if (panel.getFilterArray(tab).nonRemovable.length === 0){ entireColony = true; panel.resolveSubjectsFromHousing(tab,renderCalendar,this); + calendarRender++; //renderCalendar('null', tab) } else{ diff --git a/WNPRC_EHR/resources/web/wnprc_ehr/ext4/components/buttons/husbandryButtons.js b/WNPRC_EHR/resources/web/wnprc_ehr/ext4/components/buttons/husbandryButtons.js index 942ca3c9f..e543bdc1e 100644 --- a/WNPRC_EHR/resources/web/wnprc_ehr/ext4/components/buttons/husbandryButtons.js +++ b/WNPRC_EHR/resources/web/wnprc_ehr/ext4/components/buttons/husbandryButtons.js @@ -250,4 +250,69 @@ Ext4.define('EHR.window.SubmitForReviewWindowHusbandry', { this.callParent(arguments); }, -}); \ No newline at end of file +}); + + +EHR.DataEntryUtils.registerDataEntryFormButton('SUBMIT_WATER', { + text: 'Submit Final', + name: 'submit', + requiredQC: 'Completed', + targetQC: 'Completed', + errorThreshold: 'WARN', + successURL: LABKEY.ActionURL.getParameter('srcURL') || LABKEY.ActionURL.buildURL('wnprc_ehr', 'dataEntry.view'), + disabled: true, + itemId: 'submitWtrBtn', + disableOn: 'WARN', + handler: function(btn){ + //this.onSubmit(btn); + // let waterGiven = btn.up('gridpanel').store; + // if (store.getFields().get('waterSource')){ + // + // } + + let waterStore = this.storeCollection.getServerStoreForQuery("study", "waterGiven"); + + if (waterStore){ + var animalIds = []; + for (var idx=0; idx1){ + animalIds.forEach((animalId)=> animalString+=animalId+','); + }else{ + animalString = animalIds[0]; + } + + Ext4.MessageBox.show({ + title: 'Lixit Confirmation', + msg: 'Is the water line connected for animal '+ animalString, + width: '300', + buttons: Ext4.MessageBox.YESNO, + icon: Ext4.MessageBox.QUESTION, + scope: this, + fn: function proceed(resp){ + if (resp === 'yes'){ + this.onSubmit(btn); + }else{ + Ext4.MessageBox.hide(); + } + } + }); + }else { + this.onSubmit(btn); + } + } + + + + //var panel = btn.up('ehr-dataentrypanel'); + + + } + +}); diff --git a/WNPRC_EHR/resources/web/wnprc_ehr/ext4/utils/DataEntryButtons.js b/WNPRC_EHR/resources/web/wnprc_ehr/ext4/utils/DataEntryButtons.js index 953f5569c..2078018f6 100644 --- a/WNPRC_EHR/resources/web/wnprc_ehr/ext4/utils/DataEntryButtons.js +++ b/WNPRC_EHR/resources/web/wnprc_ehr/ext4/utils/DataEntryButtons.js @@ -120,52 +120,6 @@ tooltip: "Set the status of this record to Complete, save the record, and leave this page." })); - var SubmitWaterButtonName = 'WNPRC_SUBMIT_WATER'; - registerBtn(SubmitWaterButtonName, _.extend(getBtn("SUBMIT"), { - text: "Submit Water", - name: "submit_water", - successURL: getReturnURL() || LABKEY.ActionURL.buildURL('wnprc_ehr', 'dataEntry.view'), - hideOnQCState: "Scheduled", - tooltip: "Set the status of this record to Complete, save the record, and leave this page.", - handler: function (btn){ - var storeCollection = this.storeCollection; - let waterStore = storeCollection.getServerStoreForQuery("study", "waterGiven"); - - if (waterStore){ - var animalIds = []; - for (var idx=0; idx1){ - animalIds.forEach((animalId)=> animalString+=animalId+','); - }else{ - animalString = animalIds[0]; - } - - Ext4.MessageBox.show({ - title: 'Lixit Confirmation', - msg: 'Is the water line connected for animal '+ animalString, - width: '300', - buttons: Ext4.MessageBox.YESNO, - icon: Ext4.MessageBox.QUESTION, - fn: function proceed(resp){ - if (resp == 'yes'){ - this.onSubmit(btn); - }else{ - Ext4.MessageBox.hide(); - } - } - }); - } - } - } - })); - /* * Prompt the user for a yes or no answer. Resolves on "yes" and rejects with an error with a * message of "canceled" if "no" is selected. diff --git a/WNPRC_EHR/resources/web/wnprc_ehr/ext4/windows/AddScheduleWaterWindow.js b/WNPRC_EHR/resources/web/wnprc_ehr/ext4/windows/AddScheduleWaterWindow.js index d272d0435..f9667ed98 100644 --- a/WNPRC_EHR/resources/web/wnprc_ehr/ext4/windows/AddScheduleWaterWindow.js +++ b/WNPRC_EHR/resources/web/wnprc_ehr/ext4/windows/AddScheduleWaterWindow.js @@ -312,11 +312,15 @@ Ext4.define('wnprc_ehr.window.AddScheduledWaterWindow', { } waterObjects[Id].push(waterObject); + let volumeText = null; + if (row.getValue('volume') !== null){ + volumeText = row.getValue('volume') + previousVolume + } var tempModel = this.targetStore.createModel({ Id: row.getValue('Id'), date: modelDate, - volume: row.getValue('volume') + previousVolume, + volume: volumeText, project: row.getValue('project'), assignedto: row.getValue('assignedTo'), waterSource: row.getValue('waterSource'), diff --git a/WNPRC_EHR/resources/web/wnprc_ehr/model/sources/Encounter.js b/WNPRC_EHR/resources/web/wnprc_ehr/model/sources/Encounter.js index 20591606d..81e748e23 100644 --- a/WNPRC_EHR/resources/web/wnprc_ehr/model/sources/Encounter.js +++ b/WNPRC_EHR/resources/web/wnprc_ehr/model/sources/Encounter.js @@ -51,7 +51,7 @@ EHR.model.DataModelManager.registerMetadata('Encounter', { waterSource:{ editable: false, allowBlank: false, - shownInGrid: false + shownInGrid: true }, remarks :{ diff --git a/WNPRC_EHR/resources/web/wnprc_ehr/model/sources/WaterOrderTask.js b/WNPRC_EHR/resources/web/wnprc_ehr/model/sources/WaterOrderTask.js index 6364a0864..225e2abb0 100644 --- a/WNPRC_EHR/resources/web/wnprc_ehr/model/sources/WaterOrderTask.js +++ b/WNPRC_EHR/resources/web/wnprc_ehr/model/sources/WaterOrderTask.js @@ -98,7 +98,7 @@ EHR.model.DataModelManager.registerMetadata('WaterOrderTask', { }, provideFruit:{ defaultValue: 'none', - allowBlank: false, + allowBlank: true, lookup:{ schemaName: 'ehr_lookups', queryName: 'husbandry_fruit', diff --git a/WNPRC_EHR/resources/web/wnprc_ehr/reports/IncompleteTreatmentsReport.js b/WNPRC_EHR/resources/web/wnprc_ehr/reports/IncompleteTreatmentsReport.js index 57ac0fae9..f065e374e 100644 --- a/WNPRC_EHR/resources/web/wnprc_ehr/reports/IncompleteTreatmentsReport.js +++ b/WNPRC_EHR/resources/web/wnprc_ehr/reports/IncompleteTreatmentsReport.js @@ -10,6 +10,8 @@ EHR.reports.IncompleteTreatmentsReport = function (panel, tab) { let reportStartDate = new Date(); reportStartDate.setDate(reportStartDate.getDate()-40); reportStartDate = reportStartDate.format(LABKEY.extDefaultDateFormat) + var reportEndDate = new Date(); + reportEndDate = reportEndDate.format(LABKEY.extDefaultDateFormat) let config = panel.getQWPConfig({ title: 'Incomplete Water Treatments', @@ -27,7 +29,7 @@ EHR.reports.IncompleteTreatmentsReport = function (panel, tab) { schemaName: 'study', queryName: 'waterTotalByDateWithWeight', viewName: 'tooLittleWater', - //parameters: {'NumDays': '180', 'StartDate': reportStartDate}, + parameters: {'STARTTARGET': reportStartDate, 'ENDTARGETDATE': reportEndDate}, filters: filterArray.nonRemovable, removeableFilters: filterArray.removable, frame: true diff --git a/WNPRC_EHR/resources/web/wnprc_ehr/wnprcHusbandryReports.js b/WNPRC_EHR/resources/web/wnprc_ehr/wnprcHusbandryReports.js index 605134192..3110516f6 100644 --- a/WNPRC_EHR/resources/web/wnprc_ehr/wnprcHusbandryReports.js +++ b/WNPRC_EHR/resources/web/wnprc_ehr/wnprcHusbandryReports.js @@ -24,8 +24,40 @@ EHR.reports.waterGridCalendar = function (panel, tab) { tab.add({ xtype: 'ldk-querypanel', style: 'margin-bottom:20px;', - queryConfig: config + queryConfig: config, + height: 3000 }); }; + +EHR.reports.totalWaterByDay = function (panel, tab) { + var filterArray = panel.getFilterArray(tab); + var title = panel.getTitleSuffix(); + + var target = tab.add({tag: 'span', style: 'padding-bottom: 20px'}); + tab.doLayout(); + var reportStartDate = new Date("1947-02-10"); + reportStartDate = reportStartDate.format(LABKEY.extDefaultDateFormat); + var reportEndDate = new Date(); + reportEndDate = reportEndDate.format(LABKEY.extDefaultDateFormat); + + var config = panel.getQWPConfig({ + title: 'Total Water By Date', + schemaName: 'study', + queryName: 'waterTotalByDateWithWeight', + parameters: {'STARTTARGET': reportStartDate, 'ENDTARGETDATE': reportEndDate}, + filters: filterArray.nonRemovable, + removeableFilters: filterArray.removable, + frame: true + + }); + + tab.add({ + xtype: 'ldk-querypanel', + style: 'margin-bottom:20px;', + queryConfig: config + + }); + +}; diff --git a/WNPRC_EHR/src/client/components/GridPanelConfig.tsx b/WNPRC_EHR/src/client/components/GridPanelConfig.tsx index f48eb1950..1cc174bdf 100644 --- a/WNPRC_EHR/src/client/components/GridPanelConfig.tsx +++ b/WNPRC_EHR/src/client/components/GridPanelConfig.tsx @@ -4,7 +4,8 @@ import { SchemaQuery, ServerContextProvider, withAppUser, - AppContextProvider + AppContextProvider, + NotificationsContextProvider } from '@labkey/components'; import { DefaultGridPanel } from "./DefaultGridPanel"; import { configProps } from './grid_panel/configProps'; @@ -86,14 +87,16 @@ export const GridPanelConfig: FC = ({ return ( - + + + ); diff --git a/WNPRC_EHR/src/org/labkey/wnprc_ehr/TriggerScriptHelper.java b/WNPRC_EHR/src/org/labkey/wnprc_ehr/TriggerScriptHelper.java index b2929a3c0..fd7b70a6d 100644 --- a/WNPRC_EHR/src/org/labkey/wnprc_ehr/TriggerScriptHelper.java +++ b/WNPRC_EHR/src/org/labkey/wnprc_ehr/TriggerScriptHelper.java @@ -4,10 +4,11 @@ import com.google.common.collect.Maps; import org.apache.commons.beanutils.ConversionException; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.apache.commons.lang3.time.DateUtils; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.json.JSONArray; import org.json.JSONObject; import org.labkey.api.announcements.api.Announcement; @@ -17,16 +18,16 @@ import org.labkey.api.data.CompareType; import org.labkey.api.data.Container; import org.labkey.api.data.ContainerManager; -import org.labkey.api.data.Results; -import org.labkey.api.data.SimpleFilter; import org.labkey.api.data.ConvertHelper; import org.labkey.api.data.JdbcType; +import org.labkey.api.data.Results; import org.labkey.api.data.Selector; +import org.labkey.api.data.SimpleFilter; import org.labkey.api.data.Sort; import org.labkey.api.data.Table; import org.labkey.api.data.TableInfo; -import org.labkey.api.ehr.EHRDemographicsService; import org.labkey.api.data.TableSelector; +import org.labkey.api.ehr.EHRDemographicsService; import org.labkey.api.ehr.EHRService; import org.labkey.api.ehr.demographics.AnimalRecord; import org.labkey.api.ehr.security.EHRDataAdminPermission; @@ -39,14 +40,15 @@ import org.labkey.api.query.FieldKey; import org.labkey.api.query.InvalidKeyException; import org.labkey.api.query.QueryHelper; -import org.labkey.api.query.QueryUpdateServiceException; import org.labkey.api.query.QueryService; +import org.labkey.api.query.QueryUpdateServiceException; import org.labkey.api.query.UserSchema; import org.labkey.api.security.User; import org.labkey.api.security.UserManager; +import org.labkey.api.study.security.SecurityEscalator; +import org.labkey.api.util.DateUtil; import org.labkey.api.util.PageFlowUtil; import org.labkey.api.view.ActionURL; -import org.labkey.api.study.security.SecurityEscalator; import org.labkey.dbutils.api.SimpleQueryFactory; import org.labkey.dbutils.api.SimpleQueryUpdater; import org.labkey.dbutils.api.SimplerFilter; @@ -62,11 +64,12 @@ import org.labkey.wnprc_ehr.notification.ProjectRequestNotification; import org.labkey.wnprc_ehr.notification.VvcNotification; +import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Timestamp; -import java.sql.ResultSet; import java.text.SimpleDateFormat; import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; @@ -84,7 +87,6 @@ import java.util.Set; import java.util.TreeMap; import java.util.UUID; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -1421,11 +1423,11 @@ public JSONArray checkWaterRegulation(String animalId, Date clientStartDate, Dat JSONArray extraContextArray = new JSONArray(); boolean existingOrder = false; + // boolean closingWaterRecord = closingRecord; Map majorErrorMap = new HashMap<>(); Map errorMap = new HashMap<>(); - //TODO: Check is the animal is at least one time in the WaterSchedule Table if(checkIfAnimalInCondition(animalId,clientStartDate).size()==0){ JSONObject returnErrors = new JSONObject(); returnErrors.put("field", "Id"); @@ -1460,10 +1462,11 @@ public JSONArray checkWaterRegulation(String animalId, Date clientStartDate, Dat SimpleFilter filter = new SimpleFilter(FieldKey.fromString("Id"), animalId); filter.addCondition(FieldKey.fromString("date"), startDate.getTime(),CompareType.DATE_GTE); filter.addCondition(FieldKey.fromString("waterSource"),"regulated"); - //filter.addCondition(FieldKey.fromString("frequency"), frequency); + filter.addCondition(FieldKey.fromString("QCState"), EHRService.get().getQCStates(container).get(EHRService.QCSTATES.Scheduled.getLabel()).getRowId(), CompareType.EQUAL); + //Adding all the water records from database to a list of waterRecord objects that can be compared - TableSelector waterOrdersFromDatabase = new TableSelector(waterSchedule, PageFlowUtil.set( "taskId","objectid","lsid","Id", "date", "startDateCoalesced","endDateCoalescedFuture","dataSource","project","frequency", "assignedTo","volume","waterOrderObjectId"), filter, null); + TableSelector waterOrdersFromDatabase = new TableSelector(waterSchedule, PageFlowUtil.set( "taskId","objectid","lsid","Id", "date", "qcstate","startDateCoalesced","endDateCoalescedFuture","dataSource","project","frequency", "assignedTo","volume","waterOrderObjectId"), filter, null); waterOrdersFromDatabase.setNamedParameters(parameters); waterRecords.addAll(waterOrdersFromDatabase.getArrayList(WaterDataBaseRecord.class)); @@ -1500,10 +1503,10 @@ public JSONArray checkWaterRegulation(String animalId, Date clientStartDate, Dat if (loopDate.compareTo(convertToLocalDateViaSqlDate(waterRecord.getDate()))==0){ - String serverMeaning = getMeaningFromRowid( waterRecord.getFrequency(), "husbandry_frequency", "wnprc" ); + String serverFrequencyMeaning = getMeaningFromRowid( waterRecord.getFrequency(), "husbandry_frequency", "wnprc" ); //Check frequency compatibility with water orders in the server - if (!checkFrequencyCompatibility(serverMeaning, meaningFrequency)) + if (!checkFrequencyCompatibility(serverFrequencyMeaning, meaningFrequency)) { //Formatting the dates to return a legible date for error message @@ -1556,7 +1559,7 @@ else if (Date.from(endOfLoop.atStartOfDay(ZoneId.systemDefault()).toInstant()).g //Adding dataSource, objetcId, severity and message to the exception in case of error returnErrors.put("dataSource", waterRecord.getDataSource()); returnErrors.put("message", "Overlapping Water Order already in the system. Start date: " + startFormatDate + - " End Date: " + endFormattedDate +" Frequency: "+waterRecord.getFrequency() +" Source: " + waterRecord.getDataSource() + " EDIT"); + " End Date: " + endFormattedDate +" Frequency: "+serverFrequencyMeaning +" Source: " + waterRecord.getDataSource() + " EDIT"); returnErrors.put("objectId", waterRecord.getObjectId()); returnErrors.put("severity", "ERROR"); @@ -1619,7 +1622,8 @@ else if (Date.from(endOfLoop.atStartOfDay(ZoneId.systemDefault()).toInstant()).g } } if (!returnErrors.isEmpty() && checkIfAnimalInCondition(animalId,clientStartDate).size()>0){ - errorMap.put(waterRecord.getObjectId(), returnErrors); + JSONObject returnErrorsExport = new JSONObject(returnErrors,JSONObject.getNames(returnErrors)); + errorMap.put(waterRecord.getObjectId(), returnErrorsExport); extraContext.put("extraContextArray", extraContextArray); } } @@ -1838,38 +1842,190 @@ public JSONArray checkWaterSchedule(String animalId, Date clientDate, String ob + } + + public JSONArray closeWaterOrder(String animalId, Date clientStartDate, Date clientEndDate, Integer project, String objectId, boolean closingRecord){ + JSONArray arrayOfErrors = new JSONArray(); + Map majorErrorMap = new HashMap<>(); + Map errorMap = new HashMap<>(); + + if(checkIfAnimalInCondition(animalId,clientStartDate).size()==0){ + JSONObject returnErrors = new JSONObject(); + returnErrors.put("field", "Id"); + returnErrors.put("severity","ERROR"); + returnErrors.put("message","Animal not in waterScheduledAnimals table, contact compliance staff to enter new animals into the water monitoring system"); + majorErrorMap.put(objectId, returnErrors); + + } + + if (majorErrorMap.isEmpty()){ + //Closing existing lixit order in the system and adding a record in the waterScheduleAnimals table + TableInfo waterOrders = getTableInfo("study","waterOrders"); + SimpleFilter filterOrders = new SimpleFilter (FieldKey.fromString("objectid"), objectId); + filterOrders.addCondition(FieldKey.fromString("Id"), animalId, CompareType.EQUAL); + + TableSelector waterOrderRecords = new TableSelector(waterOrders, PageFlowUtil.set("lsid", "id", "date","frequency","enddate"),filterOrders,null); + Map [] waterOrderObject = waterOrderRecords.getMapArray(); + + + if (waterOrderObject.length > 0){ + List> toUpdate = new ArrayList<>(); + List> oldKeys = new ArrayList<>(); + + for (Map waterOrderMap : waterOrderObject){ + String lsid = ConvertHelper.convert(waterOrderMap.get("lsid"), String.class); + Map updateWaterOrder = new CaseInsensitiveHashMap<>(); + updateWaterOrder.put("lsid", lsid); + updateWaterOrder.put("enddate",clientEndDate); + updateWaterOrder.put("skipWaterRegulationCheck", true); + toUpdate.add(updateWaterOrder); + Map keyMap = new CaseInsensitiveHashMap<>(); + keyMap.put("lsid", lsid); + oldKeys.add(keyMap); + } + try + { + if (!toUpdate.isEmpty()) + { + Container container = getContainer(); + User user = getUser(); + BatchValidationException errors = new BatchValidationException(); + List> updateRows = waterOrders.getUpdateService().updateRows(user, container, toUpdate, oldKeys, errors, null, null); + if (updateRows.isEmpty() || errors.hasErrors()) + { + JSONObject returnErrors = new JSONObject(); + returnErrors.put("field", "Id"); + returnErrors.put("severity", "ERROR"); + returnErrors.put("message", "Error closing water orders."); + + errorMap.put(objectId, returnErrors); + } + } + } + catch(Exception e){ + JSONObject returnErrors = new JSONObject(); + returnErrors.put("field", "project"); + returnErrors.put("severity", "ERROR"); + returnErrors.put("message", "Error closing water order."); + + errorMap.put(objectId, returnErrors); + + } + } + errorMap.forEach((objectIdString, JSONObject)->{ + arrayOfErrors.put(JSONObject); + }); + } + majorErrorMap.forEach((objectIdString, JSONObject)->{ + arrayOfErrors.put(JSONObject); + }); + + return arrayOfErrors; + } public LocalDate convertToLocalDateViaSqlDate(Date dateToConvert) { return new java.sql.Date(dateToConvert.getTime()).toLocalDate(); } - public boolean checkFrequencyCompatibility(String serverRecord, String clientRecord){ + public boolean checkFrequencyCompatibility(String serverRecord, String clientRecord) + { boolean validation = true; - if (clientRecord.compareTo(serverRecord) == 0){ + if (clientRecord.compareTo(serverRecord) == 0) + { validation = false; return validation; - } else if (clientRecord.compareTo("Daily - AM")==0){ - if (serverRecord.compareTo("Daily - Anytime")==0){ + } + else if (clientRecord.compareTo("Daily - AM") == 0) + { + if (serverRecord.compareTo("Daily - Anytime") == 0) + { + validation = false; + return validation; + } + else if (serverRecord.compareTo("Daily - AM/PM") == 0) + { + validation = false; + return validation; + } + } + else if (clientRecord.compareTo("Daily - PM") == 0) + { + if (serverRecord.contains("PM")) + { + validation = false; + return validation; + } + } + else if (clientRecord.compareTo("Daily - Anytime") == 0) + { + if (serverRecord.contains("PM") || serverRecord.contains("AM")) + { + validation = false; + return validation; + } + } + else if (clientRecord.compareTo("Daily - AM/PM") == 0) + { + if (serverRecord.contains("PM") || serverRecord.contains("AM") || serverRecord.compareTo("Daily - Anytime") == 0) + { + validation = false; + return validation; + } + } + else if (clientRecord.compareTo("Sunday - PM") == 0) + { + if (serverRecord.compareTo("Daily - PM") == 0) + { + validation = false; + return validation; + } + } + else if (clientRecord.compareTo("Monday - PM") == 0) + { + if (serverRecord.compareTo("Daily - PM") == 0) + { + validation = false; + return validation; + } + } + else if (clientRecord.compareTo("Tuesday - PM") == 0) + { + if (serverRecord.compareTo("Daily - PM") == 0) + { validation = false; return validation; - }else if (serverRecord.compareTo("Daily - AM/PM")==0){ + } + } + else if (clientRecord.compareTo("Wednesday - PM") == 0) + { + if (serverRecord.compareTo("Daily - PM") == 0) + { validation = false; return validation; } - } else if (clientRecord.contains("PM")){ - if (serverRecord.contains("PM")){ + } + else if (clientRecord.compareTo("Thursday - PM") == 0) + { + if (serverRecord.compareTo("Daily - PM") == 0) + { validation = false; return validation; } - } else if (clientRecord.compareTo("Daily - Anytime")==0){ - if (serverRecord.contains("PM") || serverRecord.contains("AM")){ + } + else if (clientRecord.compareTo("Friday - PM") == 0) + { + if (serverRecord.compareTo("Daily - PM") == 0) + { validation = false; return validation; } - } else if (clientRecord.compareTo("Daily - AM/PM")==0){ - if (serverRecord.contains("PM") || serverRecord.contains("AM") || serverRecord.compareTo("Daily - Anytime")==0){ + } + else if (clientRecord.compareTo("Saturday - PM") == 0) + { + if (serverRecord.compareTo("Daily - PM") == 0) + { validation = false; return validation; } @@ -2170,6 +2326,35 @@ public Map checkIfAnimalInCondition(String animalId, Date clientD } return returnCondition; } + public Map checkWaterLixit(String animalId, Date clientDate) + { + Map returnMap = new HashMap<>(); + + Calendar filterDate = Calendar.getInstance(); + filterDate.setTime(clientDate); + + TableInfo waterOrders = getTableInfo("study", "waterOrders"); + SimpleFilter filter = new SimpleFilter(FieldKey.fromString("Id"), animalId); + filter.addCondition(FieldKey.fromString("date"), filterDate.getTime(),CompareType.DATE_LT); + + Sort sort = new Sort(); + sort.appendSortColumn(FieldKey.fromString("date"), Sort.SortDirection.DESC, true); + + TableSelector ts = new TableSelector(waterOrders, PageFlowUtil.set("objectid", "date", "waterSource"),filter, sort); + ts.setMaxRows(1); + Map[] waterOrderFromServer = ts.getMapArray(); + + if (waterOrderFromServer.length>0){ + for (Map openWaterOrder : waterOrderFromServer) + { + returnMap.put("objectid", ConvertHelper.convert(openWaterOrder.get("objectid"), String.class)); + returnMap.put("date", ConvertHelper.convert(openWaterOrder.get("date"), Date.class)); + returnMap.put("waterSource", ConvertHelper.convert(openWaterOrder.get("waterSource"), String.class)); + + } + } + return returnMap; + } public static List filterBloodDraws(List bloodRecords, Integer limit) @@ -2177,17 +2362,14 @@ public static List filterBloodDraws(List bloodRecords, Integer l return null; } //This function will always have lixit as the waterSource - public JSONArray changeWaterScheduled(String animalId, Date startDate, String waterSource, Integer project, String objectId, Map extraContext) throws Exception + public JSONArray changeWaterScheduled(String animalId, Date startDate, String waterSource, Integer project, String objectId, @Nullable Map extraContext) throws Exception { JSONArray arrayOfErrors = new JSONArray(); JSONArray extraContextArray = new JSONArray(); JSONObject returnErrors = new JSONObject(); - - - Map errorMap = new HashMap<>(); - if(checkIfAnimalInCondition(animalId,startDate).size()==0 || checkIfAnimalInCondition(animalId,startDate).get(animalId).equals("lixit")){ + if(checkIfAnimalInCondition(animalId, startDate).isEmpty() || checkIfAnimalInCondition(animalId,startDate).get(animalId).equals("lixit")){ returnErrors.put("field","waterSource"); returnErrors.put("severity", "ERROR"); returnErrors.put("message", "Error animal not in WaterScheduleAnimal table or is already in "+waterSource +" condition"); @@ -2199,12 +2381,14 @@ public JSONArray changeWaterScheduled(String animalId, Date startDate, String wa TableInfo waterOrders = getTableInfo("study","waterOrders"); SimpleFilter filter = new SimpleFilter (FieldKey.fromString("id"), animalId); filter.addCondition(FieldKey.fromString("waterSource"),"regulated"); + //filter.addCondition(FieldKey.fromString("date"),startDate,CompareType.DATE_LT); filter.addCondition(FieldKey.fromString("enddateCoalescedFuture"),startDate,CompareType.DATE_GT); TableSelector waterOrderRecords = new TableSelector(waterOrders, PageFlowUtil.set("lsid", "objectid","id", "date","volume","frequency","enddateCoalescedFuture"),filter,null); Map [] waterOrderObjects = waterOrderRecords.getMapArray(); List> toUpdate = new ArrayList<>(); List> oldKeys = new ArrayList<>(); + List> waterAmounts = new ArrayList<>(); if (waterOrderObjects.length >0) { @@ -2220,8 +2404,15 @@ public JSONArray changeWaterScheduled(String animalId, Date startDate, String wa updateWaterOrder.put("lsid", lsid); //closing water order the day before, new lixit orders have to be completed the first time. java.time.LocalDateTime newEndDate = java.time.LocalDateTime.ofInstant(startDate.toInstant(),ZoneId.systemDefault()); - newEndDate.minusDays(1); - updateWaterOrder.put("enddate", Date.from(newEndDate.atZone(ZoneId.systemDefault()).toInstant())); + newEndDate = newEndDate.minusDays(1); + if (ConvertHelper.convert(waterOrderMap.get("date"), Date.class).before(startDate)){ + updateWaterOrder.put("enddate", Date.from(newEndDate.atZone(ZoneId.systemDefault()).toInstant())); + + }else if(ConvertHelper.convert(waterOrderMap.get("date"), Date.class).after(startDate)){ + updateWaterOrder.put("qcstate", EHRService.QCSTATES.DeleteRequested.getQCState(getContainer()).getRowId()); + } + + updateWaterOrder.put("skipWaterRegulationCheck", true); toUpdate.add(updateWaterOrder); @@ -2244,6 +2435,14 @@ public JSONArray changeWaterScheduled(String animalId, Date startDate, String wa } } + Map keyMapAmount = new CaseInsensitiveHashMap<>(); + keyMapAmount.put("animalId", animalId); + Timestamp timestamp = new Timestamp(startDate.getTime()); + keyMapAmount.put("endDate", timestamp); + waterAmounts.add(keyMapAmount); + + removeWaterAmounts(waterAmounts, arrayOfErrors); + List> rowToAdd = null; Map scheduledAnimalRecord = new HashMap<>(); @@ -2258,7 +2457,7 @@ public JSONArray changeWaterScheduled(String animalId, Date startDate, String wa //service = ti.getUpdateService(); //if(errorMap.get(animalId)!= null && !"ERROR".equals(errorMap.get(animalId).get("severity"))) - if( arrayOfErrors.length() > 0 && !"ERROR".equals(returnHighestError(arrayOfErrors))) + if(!arrayOfErrors.isEmpty() && !"ERROR".equals(returnHighestError(arrayOfErrors))) { try { @@ -2289,7 +2488,7 @@ public JSONArray changeWaterScheduled(String animalId, Date startDate, String wa } } - if (extraContextArray.length()>0){ + if (!extraContextArray.isEmpty()){ extraContext.put("extraContextArray", extraContextArray); } @@ -2621,4 +2820,72 @@ public void exec(ResultSet rs) throws SQLException return StringUtils.join(errors, "<>"); } + + public void removeWaterAmounts ( List> animalDateMap) throws SQLException, BatchValidationException, QueryUpdateServiceException, InvalidKeyException{ + removeWaterAmounts(animalDateMap, null); + } + + public void removeWaterAmounts ( List> animalDateMap, @Nullable JSONArray errorArray) throws SQLException, BatchValidationException, QueryUpdateServiceException, InvalidKeyException + { + + + + if (animalDateMap != null){ + for (Map record : animalDateMap){ + String Id = (String)record.get("animalId"); + Date animalDeath = (Timestamp)record.get("endDate"); + //Date animalDeath = new Date(DateUtil.parseISODateTime((String)record.get("deathDate"))); + if (!checkIfAnimalInCondition(Id, animalDeath).isEmpty()){ + Calendar filterDate = Calendar.getInstance(); + filterDate.setTime(animalDeath); + + TableInfo waterAmount= getTableInfo("study", "waterAmount"); + SimpleFilter filter = new SimpleFilter(FieldKey.fromString("Id"), Id); + filter.addCondition(FieldKey.fromString("date"), filterDate.getTime(),CompareType.DATE_GTE); + filter.addCondition(FieldKey.fromString("QCState/label"), "Scheduled", CompareType.EQUAL); + + Sort sort = new Sort(); + sort.appendSortColumn(FieldKey.fromString("date"), Sort.SortDirection.ASC, false); + + TableSelector ts = new TableSelector(waterAmount, filter,sort); + final List> rowTobeUpdated = new ArrayList<>(); + final List> oldKeys = new ArrayList<>(); + + ts.forEach(new Selector.ForEachBlock() + { + @Override + public void exec(ResultSet rs) throws SQLException + { + JSONObject returnErrors = new JSONObject(); + returnErrors.put("field", "waterSource"); + returnErrors.put("severity", "INFO"); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime waterDate = LocalDateTime.parse(rs.getString("date"),formatter); + DateTimeFormatter formatterDate = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTimeFormatter formatterTime = DateTimeFormatter.ofPattern("HH:mm"); + returnErrors.put("message", "Water Amount for " + rs.getString("id") + " on " + waterDate.format(formatterDate) + " at " + waterDate.format(formatterTime) + " will be deleted."); + if (errorArray != null){ + errorArray.put(returnErrors); + } + String objectid =rs.getString("objectId"); + Map toUpdate = new CaseInsensitiveHashMap<>(); + Map keyMap = new CaseInsensitiveHashMap<>(); + toUpdate.put("qcstate", EHRService.QCSTATES.DeleteRequested.getQCState(getContainer()).getRowId()); + toUpdate.put("objectid",objectid); + rowTobeUpdated.add(toUpdate); + + keyMap.put("objectid", objectid); + oldKeys.add(keyMap); + + } + }); + //Table.update(getUser(),waterAmount,toUpdate, objectid); + if (waterAmount.getUpdateService()!=null){ + BatchValidationException errors = new BatchValidationException(); + waterAmount.getUpdateService().updateRows(user, container,rowTobeUpdated,oldKeys,errors,null,null); + } + } + } + } + } } diff --git a/WNPRC_EHR/src/org/labkey/wnprc_ehr/WNPRC_EHRController.java b/WNPRC_EHR/src/org/labkey/wnprc_ehr/WNPRC_EHRController.java index 4742774b7..9a0636135 100644 --- a/WNPRC_EHR/src/org/labkey/wnprc_ehr/WNPRC_EHRController.java +++ b/WNPRC_EHR/src/org/labkey/wnprc_ehr/WNPRC_EHRController.java @@ -1552,6 +1552,7 @@ public Object execute (WaterOrderRecord event, BindException errors) throws Exce waterOrderRecord.put("taskid", woRow.get("taskid")); waterOrderRecord.put("objectid", event.getObjectId()); waterOrderRecord.put("enddate", event.getEndDate()); + waterOrderRecord.put("closingRecord", event.isCloseRecord()); if (event.isSkipWaterRegulationCheck()){ waterOrderRecord.put("skipWaterRegulationCheck", true); } @@ -1737,6 +1738,7 @@ public static class WaterOrderRecord { private String frequency; private String assignedTo; private String action; + private boolean closeRecord; private boolean skipWaterRegulationCheck; @@ -1893,6 +1895,15 @@ public String getAction() return action; } + public boolean isCloseRecord() + { + return closeRecord; + } + + public void setCloseRecord(boolean closeRecord){ + this.closeRecord= closeRecord; + } + public boolean isSkipWaterRegulationCheck() { return skipWaterRegulationCheck; diff --git a/WNPRC_EHR/src/org/labkey/wnprc_ehr/dataentry/forms/WaterMonitoring/EnterMultipleWater.java b/WNPRC_EHR/src/org/labkey/wnprc_ehr/dataentry/forms/WaterMonitoring/EnterMultipleWater.java index d23c207d3..b58796a2a 100644 --- a/WNPRC_EHR/src/org/labkey/wnprc_ehr/dataentry/forms/WaterMonitoring/EnterMultipleWater.java +++ b/WNPRC_EHR/src/org/labkey/wnprc_ehr/dataentry/forms/WaterMonitoring/EnterMultipleWater.java @@ -29,6 +29,8 @@ public EnterMultipleWater(DataEntryFormContext ctx, Module owner) this.addClientDependency(ClientDependency.supplierFromPath("wnprc_ehr/model/sources/Encounter.js")); this.addClientDependency(ClientDependency.supplierFromPath("wnprc_ehr/ext4/data/SingleAnimal/WaterServerStore.js")); this.addClientDependency(ClientDependency.supplierFromPath("wnprc_ehr/ext4/data/SingleAnimal/WaterStoreCollection.js")); + this.addClientDependency(ClientDependency.supplierFromPath("wnprc_ehr/ext4/components/buttons/husbandryButtons.js")); + for (FormSection section : this.getFormSections()){ // section.addConfigSource("Husbandry"); @@ -41,7 +43,7 @@ public EnterMultipleWater(DataEntryFormContext ctx, Module owner) @Override protected List getButtonConfigs(){ List buttons = super.getButtonConfigs(); - buttons.add("WNPRC_SUBMIT_FINAL"); + buttons.add("SUBMIT_WATER"); buttons.remove("WNPRC_SAVE"); buttons.remove("WNPRC_SAVE_AND_EXIT"); diff --git a/WNPRC_EHR/src/org/labkey/wnprc_ehr/notification/WaterMonitoringNotification.java b/WNPRC_EHR/src/org/labkey/wnprc_ehr/notification/WaterMonitoringNotification.java index 41d515309..56d3dd131 100644 --- a/WNPRC_EHR/src/org/labkey/wnprc_ehr/notification/WaterMonitoringNotification.java +++ b/WNPRC_EHR/src/org/labkey/wnprc_ehr/notification/WaterMonitoringNotification.java @@ -135,8 +135,16 @@ protected void findAnimalsWithEnoughWater(final Container c, final User u, final final Map columns = QueryService.get().getColumns(waterTotalByDateWithWeightReport, colKeys); + LocalDate date = LocalDate.now(); + LocalDate startDate = date.minusDays(1); + LocalDate endDate = LocalDate.now(); + Map parameters = new CaseInsensitiveHashMap<>(); + parameters.put("STARTTARGET", startDate); + parameters.put("ENDTARGETDATE", endDate); + TableSelector ts = new TableSelector(waterTotalByDateWithWeightReport, columns.values(), filter, null); + ts.setNamedParameters(parameters); //TableSelector ts = new TableSelector(getStudySchema(c, u).getTable("waterTotalByDateWithWeight"),PageFlowUtil.set("Id","date","mlsPerKg","TotalWater","project","currentWaterCondition"), filter, null); long count = ts.getRowCount(); if (count > 0) diff --git a/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp b/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp index 852a8ab04..ac51dd106 100644 --- a/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp +++ b/WNPRC_EHR/src/org/labkey/wnprc_ehr/pages/husbandry/WaterCalendar.jsp @@ -594,6 +594,8 @@ } }); $(document).ready(function(){ + //Map of animals added for each day in the calendar + //This map is used by loadWaterTotal to show or hide the total water for the day const calendarDates = new Map(); const currentTime = new Date().setHours(0,0,0,0); @@ -612,10 +614,7 @@ { events: function (fetchInfo, successCallback, failureCallback) { console.log(" startStr " + fetchInfo.startStr); - console.log(" startStr " + fetchInfo.endStr); - - //TODO:Knockout not working when animalId is sent - //have to troubleshot error "in"when sending $animalId + console.log(" endtStr " + fetchInfo.endStr); if ($animalId === 'undefined' || $animalId === "null" || $animalId === ''){ let queryConfig ={}; @@ -627,42 +626,45 @@ successCallback( events.map(function (row) { - if (moment(row.date).isSameOrAfter(currentTime) && !calendarDates.get(row.date)){ - var animalIds = []; - animalIds.push(row.Id); - calendarDates.set(row.date,animalIds); - }else { - calendarDates.get(row.date).push(row.Id); - } - var volume; - if (row.volume != null) { - volume = row.volume + 'mL'; - } - else { - volume = "On Lixit"; - } - var eventObj = { - id : LABKEY.Utils.generateUUID(), - title: row.Id + ' ' + volume, - start: new Date(row.date), - allDay: true, - groupId : groupId(row), - rawRowData: row, - textColor: '#000000', - //editable: true, - description: 'Water for animal ' + row.Id - }; - - if (row.assignedToCoalesced in husbandryAssignmentLookup) { - eventObj.color = husbandryAssignmentLookup[row.assignedToCoalesced].color; - - } - else { - eventObj.color = '#F78181'; - } - - console.log("event from waterSchedule"); - return eventObj; + //creating an array per day to store animalIds + //there are cases where the water amount do not get completed on the day. + //The calendar should display even if the water amount was not complete it. + var dateIndex = new Date(row.date); + dateIndex=dateIndex.getFullYear() +'-'+dateIndex.getMonth()+'-'+dateIndex.getDate(); + if (!calendarDates.get(dateIndex)){ + var animalIds = []; + animalIds.push(row.Id); + calendarDates.set(dateIndex,animalIds); + }else { + calendarDates.get(dateIndex).push(row.Id); + } + var volume; + if (row.volume != null) { + volume = row.volume + 'mL'; + } + else { + volume = "On Lixit"; + } + var eventObj = { + id : LABKEY.Utils.generateUUID(), + title: row.Id + ' ' + volume, + start: new Date(row.date), + allDay: true, + groupId : groupId(row), + rawRowData: row, + textColor: '#000000', + //editable: true, + description: 'Water for animal ' + row.Id + }; + + if (row.assignedToCoalesced in husbandryAssignmentLookup && row.actionRequired) { + eventObj.color = husbandryAssignmentLookup[row.assignedToCoalesced].color; + + } + else { + eventObj.color = '#FFFFFF'; + } + return eventObj; }) ); @@ -684,51 +686,55 @@ else{ let queryConfig ={}; queryConfig = queryConfigFunc(fetchInfo,isSuperUser, isAnimalCare, $animalId); - console.log("fetching single animal schedule"); WebUtils.API.selectRows("study", "waterScheduleWithWeight", queryConfig).then(function (data) { var events = data.rows; - successCallback(events.map(function (row) { - if (moment(row.date).isSameOrAfter(currentTime) && !calendarDates.get(row.date)){ - var animalIds = []; - animalIds.push(row.Id); - calendarDates.set(row.date, animalIds); - }else{ - calendarDates.get(row.date).push(row.Id); - } - var volume; - if (row.volume != null) { - volume = row.volume+ 'ml'; - } - else { - volume = ' On Lixit'; - } - - var eventObj = { - id : LABKEY.Utils.generateUUID(), - title: row.Id + ' ' + volume, - start: new Date(row.date), - allDay: true, - textColor: '#000000', - groupId : groupId(row), - rawRowData: row, - //editable: true, - description: 'Water for animal ' + row.Id - }; - - if (row.assignedToCoalesced in husbandryAssignmentLookup) { - eventObj.color = husbandryAssignmentLookup[row.assignedToCoalesced].color; - - } - else { - eventObj.color = '#F78181'; - } - console.log("event from waterSchedule"); - return eventObj; - - })) + successCallback( + events.map(function (row) { + var dateIndex = new Date(row.date); + dateIndex=dateIndex.getFullYear() +'-'+dateIndex.getMonth()+'-'+dateIndex.getDate(); + if (!calendarDates.get(dateIndex)){ + var animalIds = []; + animalIds.push(row.Id); + calendarDates.set(dateIndex, animalIds); + }else{ + calendarDates.get(dateIndex).push(row.Id); + } + var volume; + if (row.volume != null) { + volume = row.volume+ 'ml'; + } + else { + volume = ' On Lixit'; + } + + var eventObj = { + id : LABKEY.Utils.generateUUID(), + title: row.Id + ' ' + volume, + start: new Date(row.date), + allDay: true, + textColor: '#000000', + groupId : groupId(row), + rawRowData: row, + //editable: true, + description: 'Water for animal ' + row.Id + }; + + if (row.assignedToCoalesced in husbandryAssignmentLookup && row.actionRequired) { + eventObj.color = husbandryAssignmentLookup[row.assignedToCoalesced].color; + + } + else { + eventObj.color = '#FFFFFF'; + } + return eventObj; + + }) + ); + failureCallback((function(data){ + console.log ("Error retriving waterScheduleWithWeight"); + })); }).then(function (data){ - debugger; if(!loadWaterTotalOnce){ loadWaterTotal($animalId,calendarDates,calendar,currentTime); loadWaterTotalOnce=true; @@ -775,7 +781,7 @@ //This updates all the fields that can be change in this form //We also have to reset the dirty flag to track any change after the event is loaded into //the form to be able to change. - if (info.event.source.id == "totalWater") { + if (info.event.source.id === "totalWater") { $('#collapseOne').collapse('hide'); $('#collapseTwo').collapse('show'); WebUtils.VM.taskDetails["volume"](info.event.extendedProps.rawRowData.TotalWater.toString()); @@ -789,7 +795,12 @@ }else{ $('#collapseOne').collapse('show'); $('#collapseTwo').collapse('hide'); - WebUtils.VM.form.volumeForm.value(info.event.extendedProps.rawRowData.volume.toString()); + if ( info.event.extendedProps.rawRowData.volume !== null){ + WebUtils.VM.form.volumeForm.value(info.event.extendedProps.rawRowData.volume.toString()); + }else{ + WebUtils.VM.taskDetails["volume"](info.event.extendedProps.rawRowData.conditionAtTime.toString()); + } + } WebUtils.VM.form.volumeForm.dirtyFlag.reset(); @@ -942,7 +953,8 @@ rawDate: ko.observable(), mlsPerKg: ko.observable(), conditionAtTime: ko.observable(), - animalStatus: ko.observable() + animalStatus: ko.observable(), + actionRequired: ko.observable() }, form: { lsidForm: ko.observable(), @@ -985,13 +997,14 @@ LABKEY.Ajax.request({ url: LABKEY.ActionURL.buildURL("wnprc_ehr", "CloseWaterOrder", null, { - lsid: waterOrder.lsid, - taskId: waterOrder.taskid, - objectId: waterOrder.objectIdCoalesced, - animalId: waterOrder.Id, - endDate: waterOrder.date, - dataSource: waterOrder.dataSource, - skipWaterRegulationCheck: true + lsid: waterOrder.lsid, + taskId: waterOrder.taskid, + objectId: waterOrder.objectIdCoalesced, + animalId: waterOrder.Id, + endDate: waterOrder.date, + dataSource: waterOrder.dataSource, + closeRecord: "true", + skipWaterRegulationCheck: 'true' }), success: LABKEY.Utils.getCallbackWrapper(function (response) @@ -1076,6 +1089,7 @@ objectId: waterOrder.objectIdCoalesced, animalId: waterOrder.Id, endDate: waterOrder.date, + closeRecord: true, dataSource: waterOrder.dataSource }), @@ -1268,9 +1282,7 @@ WebUtils.VM.taskDetails.conditionAtTimeValue = ko.pureComputed(function(){ if (WebUtils.VM.taskDetails.calculatedStatusValue() === 'Alive' ){ - debugger; return WebUtils.VM.taskDetails.conditionAtTime(); - } else if(WebUtils.VM.taskDetails.calculatedStatusValue() === 'Dead' ){ return 'dead'; @@ -1543,24 +1555,29 @@ function queryConfigFunc (fetchInfo, isSuperUser, isAnimalCare, animalId){ let today = new Date(); - let momentStarDate = fetchInfo.start.format('Y-m-d'); + let momentStartDate = fetchInfo.start.format('Y-m-d'); let momentEndDate = fetchInfo.end.format('Y-m-d'); let numOfDate; let startCalendarDate; - if (moment(today).isBetween(momentStarDate, momentEndDate)){ + //Calculate if today is between the calendar start date and the calendar end date + //If the user navigates to the next month we only calculate the dates for that month and + //ignore the current date. + if (moment(today).isBetween(momentStartDate, momentEndDate)){ numOfDate = moment(momentEndDate).diff(today, "days", false); startCalendarDate = today.format(LABKEY.extDefaultDateFormat) - }else{ - numOfDate = moment(momentEndDate).diff(momentStarDate,"days",false); + }else if(moment(momentStartDate).isBefore(today) || moment(momentEndDate).isAfter(today)) { + numOfDate = moment(momentEndDate).diff(momentStartDate, "days", false); startCalendarDate = fetchInfo.start.format(LABKEY.extDefaultDateFormat); } + console.log("value of numofDate " + numOfDate) let configObject = { - "date~gte": fetchInfo.start.format('Y-m-d'), - "date~lte": fetchInfo.end.format('Y-m-d'), "parameters": {NumDays: numOfDate + 1, StartDate: startCalendarDate}, - "qcstate/label~eq": "Scheduled" + "qcstate/label~eq": "Scheduled", + "date~dategte": fetchInfo.start.format('Y-m-d'), + "date~datelte": fetchInfo.end.format('Y-m-d') + //"Id/Demographics/calculated_status~eq": "Alive" }; @@ -1655,8 +1672,9 @@ function loadWaterTotal(animalId, calendarDates, calendar, currentTime){ calendar.addEventSource( { - events:function (fetchInfo, successCallback, failureCallback) { - if (animalId === 'undefined' || animalId === "null" || animalId === ''){ + events:function (fetchInfo, successCallback, failureCallback) { + + if (animalId === 'undefined' || animalId === "null" || animalId === '') { let momentStarDate = fetchInfo.start.format('Y-m-d'); let momentEndDate = fetchInfo.end.format('Y-m-d'); @@ -1664,7 +1682,7 @@ WebUtils.API.selectRows("study", "waterTotalByDateWithWeight", { "date~gte": fetchInfo.start.format('Y-m-d'), "date~lte": fetchInfo.end.format('Y-m-d'), - "parameters": {STARTTARGET: momentStarDate, ENDTARGETDATE: momentEndDate} + "parameters": { STARTTARGET: momentStarDate, ENDTARGETDATE: momentEndDate } }).then(function (data) { var events = data.rows; @@ -1673,79 +1691,81 @@ events.map(function (row) { let parsedTotalWater = 0; let eventTitle = row.Id; - row.animalStatus=row['Id/Demographics/calculated_status']; - if( row.conditionAtTime === 'regulated' ) { + row.animalStatus = row['Id/Demographics/calculated_status']; + let dateIndexWaterTotal = new Date(row.date); + dateIndexWaterTotal = dateIndexWaterTotal.getFullYear() + '-' + dateIndexWaterTotal.getMonth() + '-' + dateIndexWaterTotal.getDate(); + let animalInDay = false + if (calendarDates.has(dateIndexWaterTotal)) { + let animalIdArray = []; + animalIdArray = calendarDates.get(dateIndexWaterTotal); + for (var i = 0; i < animalIdArray.length; i++) { + if (animalIdArray[i] === row.Id) { + animalInDay = true; + break; + } + } + } + if (row.conditionAtTime === 'regulated') { if (row['Id/Demographics/calculated_status'] === 'Alive') { - if (row.TotalWater === null) { + if (row.TotalWater === null && !animalInDay) { row.TotalWater = ' none'; parsedTotalWater = row.TotalWater; - } - else if (row.TotalWater !== null) { + } else if (row.TotalWater !== null) { parsedTotalWater = row.TotalWater; eventTitle += " Total: "; } - - } - else { - row.TotalWater = row['Id/Demographics/calculated_status']; + } else { + row.TotalWater = ' ' + row['Id/Demographics/calculated_status']; parsedTotalWater = row.TotalWater; } - } - else { + } else { if (row['Id/Demographics/calculated_status'] === 'Alive') { row.TotalWater = ' on Lixit'; parsedTotalWater = row.TotalWater; - } - else { - row.TotalWater = row['Id/Demographics/calculated_status']; + } else { + row.TotalWater = ' ' + row['Id/Demographics/calculated_status']; parsedTotalWater = row.TotalWater; - } } eventTitle += parsedTotalWater; var eventObj = { - id : LABKEY.Utils.generateUUID(), + id: LABKEY.Utils.generateUUID(), title: eventTitle, start: new Date(row.date), allDay: true, - groupId : row.Id, + groupId: row.Id, textColor: '#000000', rawRowData: row }; - if (row.mlsPerKg >= row.InnerMlsPerKg || row.conditionAtTime === 'lixit'){ + if (row.mlsPerKg >= row.InnerMlsPerKg || row.conditionAtTime === 'lixit') { eventObj.color = '#FFFFFF'; - } - else if (row.mlsPerKg >= '10' && row.mlsPerKg < row.InnerMlsPerKg){ + } else if (row.mlsPerKg >= '10' && row.mlsPerKg < row.InnerMlsPerKg) { eventObj.color = '#FF7F50'; - } - else{ + } else { eventObj.color = '#EE2020' } - debugger; - if (calendarDates.has(row.date) && calendarDates.get(row.date).includes(row.Id) ){ + if (animalInDay) { eventObj.display = 'none'; - }else{ + } else { eventObj.display = 'auto'; } - debugger; - console.log("event from waterTotal"); return eventObj; }) ); - failureCallback((function (data){ + failureCallback((function (data) { console.log("error from waterTotalByDateWithWeight"); })) }) - }else{ + } else { let momentStarDate = fetchInfo.start.format('Y-m-d'); let momentEndDate = fetchInfo.end.format('Y-m-d'); WebUtils.API.selectRows("study", "waterTotalByDateWithWeight", { "date~gte": fetchInfo.start.format('Y-m-d'), "date~lte": fetchInfo.end.format('Y-m-d'), - "parameters": {STARTTARGET: momentStarDate, ENDTARGETDATE: momentEndDate}, + "parameters": { STARTTARGET: momentStarDate, ENDTARGETDATE: momentEndDate }, "Id~in": animalId }).then(function (data) { var events = data.rows; @@ -1753,69 +1773,74 @@ successCallback( events.map(function (row) { - let parsedTotalWater = 0; - let eventTitle = row.Id; - row.animalStatus=row['Id/Demographics/calculated_status']; - if( row.conditionAtTime === 'regulated' ) { - if (row['Id/Demographics/calculated_status'] === 'Alive') { - if (row.TotalWater === null) { - row.TotalWater = ' none'; - parsedTotalWater = row.TotalWater; - } - else if (row.TotalWater !== null) { - parsedTotalWater = row.TotalWater; - eventTitle += " Total: "; - } - - } - else { - row.TotalWater = row.TotalWater; - parsedTotalWater += row.TotalWater; - eventTitle += " Total: "; + let parsedTotalWater = 0; + let eventTitle = row.Id; + row.animalStatus = row['Id/Demographics/calculated_status']; + let dateIndexWaterTotal = new Date(row.date); + dateIndexWaterTotal = dateIndexWaterTotal.getFullYear() + '-' + dateIndexWaterTotal.getMonth() + '-' + dateIndexWaterTotal.getDate(); + let animalInDay = false + if (calendarDates.has(dateIndexWaterTotal)) { + let animalIdArray = []; + animalIdArray = calendarDates.get(dateIndexWaterTotal); + for (var i = 0; i < animalIdArray.length; i++) { + if (animalIdArray[i] === row.Id) { + animalInDay = true; + break; } } - else { - if (row['Id/Demographics/calculated_status'] === 'Alive') { - row.TotalWater = ' on Lixit'; + } + if (row.conditionAtTime === 'regulated') { + if (row['Id/Demographics/calculated_status'] === 'Alive') { + if (row.TotalWater === null && !animalInDay) { + row.TotalWater = ' none'; parsedTotalWater = row.TotalWater; - } - else { - row.TotalWater = ' on Lixit'; + } else if (row.TotalWater !== null) { parsedTotalWater = row.TotalWater; - + eventTitle += " Total: "; } + } else { + row.TotalWater = ' ' + row['Id/Demographics/calculated_status']; + parsedTotalWater += row.TotalWater; } - eventTitle += parsedTotalWater; - - var eventObj = { - id : LABKEY.Utils.generateUUID(), - title: eventTitle, - start: new Date(row.date), - textColor: '#000000', - allDay: true, - groupId : row.Id, - rawRowData: row - }; - if (row.mlsPerKg >= row.InnerMlsPerKg || row.conditionAtTime === 'lixit'){ - eventObj.color = '#FFFFFF'; - }else if (row.mlsPerKg >= '10' && row.mlsPerKg < row.InnerMlsPerKg){ - eventObj.color = '#FF7F50'; - } - else{ - eventObj.color = '#EE2020' - } - if (calendarDates.has(row.date) && calendarDates.get(row.date).includes(row.Id)){ - eventObj.display = 'none'; - }else{ - eventObj.display = 'auto'; + } else { + if (row['Id/Demographics/calculated_status'] === 'Alive') { + row.TotalWater = ' on Lixit'; + parsedTotalWater = row.TotalWater; + } else { + row.TotalWater = ' ' + row['Id/Demographics/calculated_status']; + ; + parsedTotalWater = row.TotalWater; } - console.log("event from waterTotal"); - return eventObj; + } + eventTitle += parsedTotalWater; + + var eventObj = { + id: LABKEY.Utils.generateUUID(), + title: eventTitle, + start: new Date(row.date), + textColor: '#000000', + allDay: true, + groupId: row.Id, + rawRowData: row + }; + if (row.mlsPerKg >= row.InnerMlsPerKg || row.conditionAtTime === 'lixit') { + eventObj.color = '#FFFFFF'; + } else if (row.mlsPerKg >= '10' && row.mlsPerKg < row.InnerMlsPerKg) { + eventObj.color = '#FF7F50'; + } else { + eventObj.color = '#EE2020' + } + if (calendarDates.has(dateIndexWaterTotal) && calendarDates.get(dateIndexWaterTotal).includes(row.Id)) { + eventObj.display = 'none'; + } else { + eventObj.display = 'auto'; + } + return eventObj; }) ); - failureCallback((function (data){ + failureCallback((function (data) { console.log("error from waterTotalByDateWithWeight"); })) }) diff --git a/WNPRC_Purchasing/test/src/org/labkey/test/tests/wnprc_purchasing/WNPRC_PurchasingTest.java b/WNPRC_Purchasing/test/src/org/labkey/test/tests/wnprc_purchasing/WNPRC_PurchasingTest.java index eaf72010b..8567e0225 100644 --- a/WNPRC_Purchasing/test/src/org/labkey/test/tests/wnprc_purchasing/WNPRC_PurchasingTest.java +++ b/WNPRC_Purchasing/test/src/org/labkey/test/tests/wnprc_purchasing/WNPRC_PurchasingTest.java @@ -352,7 +352,7 @@ public void testOtherVendorRequest() throws IOException, CommandException { goToRequesterPage(); impersonate(REQUESTER_USER_1); - clickButton("Create Request"); + waitAndClickAndWait(Locator.linkWithText("Create Request")); CreateRequestPage requestPage = new CreateRequestPage(getDriver()); requestPage.setVendor("Other"); @@ -969,6 +969,7 @@ private String createRequest(Map request, @Nullable File fileNam else { DataRegionTable table = DataRegionTable.DataRegion(getDriver()).refindWhenNeeded(); + sleep(500); return table.getDataAsText(table.getDataRowCount() - 1, "rowId"); } } diff --git a/WNPRC_Virology/package-lock.json b/WNPRC_Virology/package-lock.json index 76ef92cd7..e74fba66f 100644 --- a/WNPRC_Virology/package-lock.json +++ b/WNPRC_Virology/package-lock.json @@ -51,9 +51,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -90,12 +90,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", + "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -116,26 +116,13 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", - "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.25.9", + "@babel/compat-data": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", @@ -146,17 +133,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz", + "integrity": "sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-member-expression-to-functions": "^7.25.9", "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-replace-supers": "^7.26.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.25.9", + "@babel/traverse": "^7.26.9", "semver": "^6.3.1" }, "engines": { @@ -167,13 +154,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", - "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", + "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.1.1", + "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, "engines": { @@ -254,9 +241,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, "engines": { "node": ">=6.9.0" @@ -280,14 +267,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", "dev": true, "dependencies": { "@babel/helper-member-expression-to-functions": "^7.25.9", "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/traverse": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -296,19 +283,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", - "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", @@ -362,24 +336,24 @@ } }, "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz", + "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", "dev": true, "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", - "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", + "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", "dependencies": { - "@babel/types": "^7.26.0" + "@babel/types": "^7.26.9" }, "bin": { "parser": "bin/babel-parser.js" @@ -745,14 +719,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", + "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/traverse": "^7.26.8" }, "engines": { "node": ">=6.9.0" @@ -779,12 +753,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", - "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -938,12 +912,11 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", - "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", + "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { @@ -969,12 +942,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz", + "integrity": "sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { @@ -1078,14 +1051,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", - "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", + "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-simple-access": "^7.25.9" + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1160,12 +1132,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "version": "7.26.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", + "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1460,12 +1432,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz", + "integrity": "sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1475,12 +1447,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", - "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz", + "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1490,14 +1462,14 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", - "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.8.tgz", + "integrity": "sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", "@babel/plugin-syntax-typescript": "^7.25.9" }, @@ -1720,9 +1692,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", - "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz", + "integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1731,28 +1703,28 @@ } }, "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", + "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1761,9 +1733,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", - "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", + "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" @@ -1813,9 +1785,9 @@ } }, "node_modules/@emotion/cache": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.5.tgz", - "integrity": "sha512-Z3xbtJ+UcK76eWkagZ1onvn/wAVb1GOMuR15s30Fm2wrMgC7jzpnO2JZXr4eujTTqoQFUrZIw/rT0c6Zzjca1g==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", "dependencies": { "@emotion/memoize": "^0.9.0", "@emotion/sheet": "^1.4.0", @@ -1835,15 +1807,15 @@ "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" }, "node_modules/@emotion/react": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.5.tgz", - "integrity": "sha512-6zeCUxUH+EPF1s+YF/2hPVODeV/7V07YU5x+2tfuRL8MdW6rv5vb2+CBEGTGwBdux0OIERcOS+RzxeK80k2DsQ==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", - "@emotion/cache": "^11.13.5", + "@emotion/cache": "^11.14.0", "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", "@emotion/utils": "^1.4.2", "@emotion/weak-memoize": "^0.4.0", "hoist-non-react-statics": "^3.3.1" @@ -1880,9 +1852,9 @@ "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz", - "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", "peerDependencies": { "react": ">=16.8.0" } @@ -1898,26 +1870,26 @@ "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==" }, "node_modules/@floating-ui/core": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", - "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", "dependencies": { - "@floating-ui/utils": "^0.2.8" + "@floating-ui/utils": "^0.2.9" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.12", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz", - "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", "dependencies": { "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.8" + "@floating-ui/utils": "^0.2.9" } }, "node_modules/@floating-ui/utils": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", - "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", @@ -1964,9 +1936,9 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2033,9 +2005,9 @@ } }, "node_modules/@jsonjoy.com/json-pack": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", - "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.1.tgz", + "integrity": "sha512-osjeBqMJ2lb/j/M8NCPjs1ylqWIcTRTycIhVB5pt6LgzgeRSb0YRZ7j9RfA8wIUrsr/medIuhVyonXRZWLyfdw==", "dev": true, "dependencies": { "@jsonjoy.com/base64": "^1.1.1", @@ -2251,9 +2223,9 @@ } }, "node_modules/@restart/ui": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.9.1.tgz", - "integrity": "sha512-qghR21ynHiUrpcIkKCoKYB+3rJtezY5Y7ikrwradCL+7hZHdQ2Ozc5ffxtpmpahoAGgc31gyXaSx2sXXaThmqA==", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.9.4.tgz", + "integrity": "sha512-N4C7haUc3vn4LTwVUPlkJN8Ach/+yIMvRuTVIhjilNHqegY60SGLrzud6errOMNJwSnmYFnt1J0H/k8FE3A4KA==", "dependencies": { "@babel/runtime": "^7.26.0", "@popperjs/core": "^2.11.8", @@ -2271,9 +2243,9 @@ } }, "node_modules/@restart/ui/node_modules/@restart/hooks": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.5.0.tgz", - "integrity": "sha512-wS+h6IusJCPjTkmOOrRZxIPICD/mtFA3PRZviutoM23/b7akyDGfZF/WS+nIFk27u7JDhPE2+0GBdZxjSqHZkg==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.5.1.tgz", + "integrity": "sha512-EMoH04NHS1pbn07iLTjIjgttuqb7qu4+/EyhAx27MHpoENcB2ZdSsLTNxmKD+WEPnZigo62Qc8zjGnNxoSE/5Q==", "dependencies": { "dequal": "^2.0.3" }, @@ -2386,9 +2358,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz", - "integrity": "sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", + "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", "dev": true, "dependencies": { "@types/node": "*", @@ -2422,9 +2394,9 @@ "dev": true }, "node_modules/@types/http-proxy": { - "version": "1.17.15", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", - "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", + "version": "1.17.16", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz", + "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", "dev": true, "dependencies": { "@types/node": "*" @@ -2443,12 +2415,12 @@ "dev": true }, "node_modules/@types/node": { - "version": "22.9.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.4.tgz", - "integrity": "sha512-d9RWfoR7JC/87vj7n+PVTzGg9hDyuFjir3RxUHbjFSKNd9mpxbxwMEyaCim/ddCmy4IuW7HjTzF3g9p3EtWEOg==", + "version": "22.13.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", + "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", "dev": true, "dependencies": { - "undici-types": "~6.19.8" + "undici-types": "~6.20.0" } }, "node_modules/@types/node-forge": { @@ -2466,14 +2438,14 @@ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/prop-types": { - "version": "15.7.13", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==" + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==" }, "node_modules/@types/qs": { - "version": "6.9.17", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", - "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "version": "6.9.18", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", "dev": true }, "node_modules/@types/range-parser": { @@ -2507,10 +2479,10 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.11", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.11.tgz", - "integrity": "sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==", - "dependencies": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "peerDependencies": { "@types/react": "*" } }, @@ -2565,9 +2537,9 @@ "integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==" }, "node_modules/@types/ws": { - "version": "8.5.13", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", - "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz", + "integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", "dev": true, "dependencies": { "@types/node": "*" @@ -3178,9 +3150,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -3197,9 +3169,9 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.1" }, "bin": { @@ -3239,17 +3211,27 @@ "node": ">= 0.8" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, "dependencies": { - "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -3277,9 +3259,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001684", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz", - "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==", + "version": "1.0.30001699", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz", + "integrity": "sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==", "dev": true, "funding": [ { @@ -3458,9 +3440,9 @@ } }, "node_modules/compression": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", - "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", + "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", "dev": true, "dependencies": { "bytes": "3.1.2", @@ -3572,12 +3554,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", + "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", "dev": true, "dependencies": { - "browserslist": "^4.24.2" + "browserslist": "^4.24.3" }, "funding": { "type": "opencollective", @@ -3585,9 +3567,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.39.0.tgz", - "integrity": "sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==", + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.40.0.tgz", + "integrity": "sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A==", "dev": true, "hasInstallScript": true, "funding": { @@ -3695,9 +3677,9 @@ } }, "node_modules/css-loader/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -3758,9 +3740,9 @@ "dev": true }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dependencies": { "ms": "^2.1.3" }, @@ -3822,23 +3804,6 @@ "node": ">= 10" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/define-lazy-prop": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", @@ -3985,6 +3950,20 @@ "integrity": "sha512-Y+zZAmv7p2zOdpyZcSIA+aIxohsyfTcNaMeh3YJn9exq85bQhso65Wz9IhjYYNB4zyvXnfi7Ae+FuygARljVJw==", "dev": true }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -4004,9 +3983,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.5.65", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.65.tgz", - "integrity": "sha512-PWVzBjghx7/wop6n22vS2MLU8tKGd4Q91aCEGhG/TYmW6PP5OcSXcdnxTe1NNt0T66N8D6jxh4kC8UsdzOGaIw==", + "version": "1.5.100", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.100.tgz", + "integrity": "sha512-u1z9VuzDXV86X2r3vAns0/5ojfXBue9o0+JDUDBKYqGLjxLkSqsSUoPU/6kW0gx76V44frHaf6Zo+QF74TQCMg==", "dev": true }, "node_modules/emoji-regex": { @@ -4034,9 +4013,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -4085,13 +4064,10 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, "engines": { "node": ">= 0.4" } @@ -4106,11 +4082,23 @@ } }, "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", "dev": true }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -4243,9 +4231,9 @@ "dev": true }, "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "dev": true, "dependencies": { "accepts": "~1.3.8", @@ -4267,7 +4255,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -4282,6 +4270,10 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/express/node_modules/debug": { @@ -4306,16 +4298,16 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -4340,10 +4332,20 @@ "dev": true }, "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", - "dev": true + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] }, "node_modules/fastest-levenshtein": { "version": "1.0.16", @@ -4355,9 +4357,9 @@ } }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", + "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -4580,9 +4582,9 @@ } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -4661,16 +4663,21 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "dev": true, "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -4679,6 +4686,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -4692,9 +4712,9 @@ } }, "node_modules/glob": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", + "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", @@ -4765,17 +4785,17 @@ } }, "node_modules/globby": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", - "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", "dev": true, "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" + "unicorn-magic": "^0.3.0" }, "engines": { "node": ">=18" @@ -4785,24 +4805,24 @@ } }, "node_modules/globby/node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", "dev": true, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4844,34 +4864,10 @@ "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, "engines": { "node": ">= 0.4" @@ -5076,9 +5072,9 @@ } }, "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", + "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", "dev": true }, "node_modules/http-proxy": { @@ -5162,9 +5158,9 @@ } }, "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.3.tgz", + "integrity": "sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==", "dev": true, "engines": { "node": ">= 4" @@ -5177,9 +5173,9 @@ "dev": true }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -5333,9 +5329,9 @@ } }, "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dependencies": { "hasown": "^2.0.2" }, @@ -5503,9 +5499,9 @@ } }, "node_modules/jackspeak": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", - "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.3.tgz", + "integrity": "sha512-oSwM7q8PTHQWuZAlp995iPpPJ4Vkl7qT0ZRD+9duL9j2oBy6KcTfyxc8mEuHJYC+z/kbps80aJLkaNzTOrf/kw==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -5569,9 +5565,9 @@ } }, "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "bin": { "jsesc": "bin/jsesc" }, @@ -5717,6 +5713,15 @@ "yallist": "^3.0.2" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -5906,9 +5911,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -5964,9 +5969,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true }, "node_modules/normalize-path": { @@ -6011,9 +6016,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, "engines": { "node": ">= 0.4" @@ -6259,9 +6264,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", "dev": true }, "node_modules/path-type": { @@ -6305,9 +6310,9 @@ } }, "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", + "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", "dev": true, "funding": [ { @@ -6324,7 +6329,7 @@ } ], "dependencies": { - "nanoid": "^3.3.7", + "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -6345,9 +6350,9 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz", - "integrity": "sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", "dev": true, "dependencies": { "icss-utils": "^5.0.0", @@ -6392,9 +6397,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -6724,9 +6729,9 @@ } }, "node_modules/regex-parser": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", - "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", + "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", "dev": true }, "node_modules/regexpu-core": { @@ -6764,6 +6769,18 @@ "regjsparser": "bin/parser" } }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -6802,17 +6819,20 @@ "dev": true }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7042,9 +7062,9 @@ } }, "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", @@ -7053,7 +7073,7 @@ "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", @@ -7238,23 +7258,6 @@ "node": ">= 0.8.0" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -7295,24 +7298,81 @@ } }, "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -7614,9 +7674,9 @@ } }, "node_modules/terser": { - "version": "5.36.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", - "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -7632,16 +7692,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -7665,55 +7725,6 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/thingies": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", @@ -7824,9 +7835,9 @@ } }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -7870,9 +7881,9 @@ } }, "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", "dev": true, "engines": { "node": ">=18" @@ -7900,9 +7911,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "dev": true, "funding": [ { @@ -7920,7 +7931,7 @@ ], "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -7939,11 +7950,11 @@ } }, "node_modules/use-isomorphic-layout-effect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", - "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.0.tgz", + "integrity": "sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -8186,9 +8197,9 @@ } }, "node_modules/webpack-dev-middleware/node_modules/memfs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.14.0.tgz", - "integrity": "sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==", + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.17.0.tgz", + "integrity": "sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==", "dev": true, "dependencies": { "@jsonjoy.com/json-pack": "^1.0.3", diff --git a/WebUtils/src/org/labkey/webutils/view/JspPage.jsp b/WebUtils/src/org/labkey/webutils/view/JspPage.jsp index 8c1bcba2e..b10629329 100644 --- a/WebUtils/src/org/labkey/webutils/view/JspPage.jsp +++ b/WebUtils/src/org/labkey/webutils/view/JspPage.jsp @@ -170,7 +170,17 @@ // Use a try block to ensure that we always show the hidden div. try { if ($numberOfRenders == 0){ - ko.applyBindings(WebUtils.VM); + if (unBindComponents.length == 0){ + ko.applyBindings(WebUtils.VM); + }else{ + for(var i =0; i